diff --git a/libs/ui-modules/.babelrc b/libs/ui-modules/.babelrc
new file mode 100644
index 0000000..1ea870e
--- /dev/null
+++ b/libs/ui-modules/.babelrc
@@ -0,0 +1,12 @@
+{
+ "presets": [
+ [
+ "@nx/react/babel",
+ {
+ "runtime": "automatic",
+ "useBuiltIns": "usage"
+ }
+ ]
+ ],
+ "plugins": []
+}
diff --git a/libs/ui-modules/.eslintrc.json b/libs/ui-modules/.eslintrc.json
new file mode 100644
index 0000000..a39ac5d
--- /dev/null
+++ b/libs/ui-modules/.eslintrc.json
@@ -0,0 +1,18 @@
+{
+ "extends": ["plugin:@nx/react", "../../.eslintrc.json"],
+ "ignorePatterns": ["!**/*"],
+ "overrides": [
+ {
+ "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.ts", "*.tsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.js", "*.jsx"],
+ "rules": {}
+ }
+ ]
+}
diff --git a/libs/ui-modules/README.md b/libs/ui-modules/README.md
new file mode 100644
index 0000000..32059df
--- /dev/null
+++ b/libs/ui-modules/README.md
@@ -0,0 +1,7 @@
+# ui-modules
+
+This library was generated with [Nx](https://nx.dev).
+
+## Running unit tests
+
+Run `nx test ui-modules` to execute the unit tests via [Vitest](https://vitest.dev/).
diff --git a/libs/ui-modules/jest.config.ts b/libs/ui-modules/jest.config.ts
new file mode 100644
index 0000000..d7263e9
--- /dev/null
+++ b/libs/ui-modules/jest.config.ts
@@ -0,0 +1,11 @@
+/* eslint-disable */
+export default {
+ displayName: 'ui-modules',
+ preset: '../../jest.preset.js',
+ transform: {
+ '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
+ '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
+ },
+ moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
+ coverageDirectory: '../../coverage/libs/ui-modules',
+};
diff --git a/libs/ui-modules/package.json b/libs/ui-modules/package.json
new file mode 100644
index 0000000..1b1c6cf
--- /dev/null
+++ b/libs/ui-modules/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "@platform/ui-modules",
+ "version": "0.0.1",
+ "main": "./index.js",
+ "types": "./index.d.ts",
+ "exports": {
+ ".": {
+ "import": "./index.mjs",
+ "require": "./index.js"
+ }
+ }
+}
diff --git a/libs/ui-modules/project.json b/libs/ui-modules/project.json
new file mode 100644
index 0000000..5782f19
--- /dev/null
+++ b/libs/ui-modules/project.json
@@ -0,0 +1,46 @@
+{
+ "name": "ui-modules",
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
+ "sourceRoot": "libs/ui-modules/src",
+ "projectType": "library",
+ "tags": [],
+ "targets": {
+ "lint": {
+ "executor": "@nx/linter:eslint",
+ "outputs": ["{options.outputFile}"],
+ "options": {
+ "lintFilePatterns": ["libs/ui-modules/**/*.{ts,tsx,js,jsx}"]
+ }
+ },
+ "build": {
+ "executor": "@nx/vite:build",
+ "outputs": ["{options.outputPath}"],
+ "defaultConfiguration": "production",
+ "options": {
+ "outputPath": "dist/libs/ui-modules"
+ },
+ "configurations": {
+ "development": {
+ "mode": "development"
+ },
+ "production": {
+ "mode": "production"
+ }
+ }
+ },
+ "test": {
+ "executor": "@nx/jest:jest",
+ "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
+ "options": {
+ "jestConfig": "libs/ui-modules/jest.config.ts",
+ "passWithNoTests": true
+ },
+ "configurations": {
+ "ci": {
+ "ci": true,
+ "codeCoverage": true
+ }
+ }
+ }
+ }
+}
diff --git a/libs/ui-modules/src/index.ts b/libs/ui-modules/src/index.ts
new file mode 100644
index 0000000..efde1e1
--- /dev/null
+++ b/libs/ui-modules/src/index.ts
@@ -0,0 +1 @@
+export * from './lib/ui-modules';
diff --git a/libs/ui-modules/src/lib/ui-modules.module.scss b/libs/ui-modules/src/lib/ui-modules.module.scss
new file mode 100644
index 0000000..45c2aa4
--- /dev/null
+++ b/libs/ui-modules/src/lib/ui-modules.module.scss
@@ -0,0 +1,7 @@
+/*
+ * Replace this with your own classes
+ *
+ * e.g.
+ * .container {
+ * }
+*/
diff --git a/libs/ui-modules/src/lib/ui-modules.spec.tsx b/libs/ui-modules/src/lib/ui-modules.spec.tsx
new file mode 100644
index 0000000..15d0d54
--- /dev/null
+++ b/libs/ui-modules/src/lib/ui-modules.spec.tsx
@@ -0,0 +1,10 @@
+import { render } from '@testing-library/react';
+
+import UiModules from './ui-modules';
+
+describe('UiModules', () => {
+ it('should render successfully', () => {
+ const { baseElement } = render(