diff --git a/.gitignore b/.gitignore
index d824a1f1..94b8f06e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,12 +7,9 @@ yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
-node_modules
+artifacts
coverage
-.jitar
-dist
-dist-ssr
-*.local
+node_modules
# Editor directories and files
!.vscode/extensions.json
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 00000000..84503b80
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
+min-release-age=4
\ No newline at end of file
diff --git a/.nvmrc b/.nvmrc
deleted file mode 100644
index 36060ce8..00000000
--- a/.nvmrc
+++ /dev/null
@@ -1,2 +0,0 @@
-# .nvmrc
-lts/*
\ No newline at end of file
diff --git a/changelog.hbs b/changelog.hbs
deleted file mode 100644
index 5a9d2342..00000000
--- a/changelog.hbs
+++ /dev/null
@@ -1,33 +0,0 @@
-{{#each releases}}
-# {{title}}
-[{{isoDate}}]
-
-{{#commit-list
-merges
-heading='### Features'
-message='feat(?:(\(\w+\))|):'}}
-* \[[{{id}}]({{href}})] {{commit.subject}} by {{commit.author}}
-{{/commit-list}}
-
-{{#commit-list
-merges
-heading='### Fixes'
-message='(bug(?:(\(\w+\))|):)|(fix(?:(\(\w+\))|):)'}}
-* \[[{{id}}]({{href}})] {{commit.subject}} by {{commit.author}}
-{{/commit-list}}
-
-{{#commit-list
-merges
-heading='### Chores'
-message='(chore(?:(\(\w+\))|):)|(build(?:(\(\w+\))|):)|(npm(?:(\(\w+\))|):)'}}
-* \[[{{id}}]({{href}})] {{commit.subject}} by {{commit.author}}
-{{/commit-list}}
-
-{{#commit-list
-merges
-heading='### Other'
-exclude='(feat(?:(\(\w+\))|):)|(chore(?:(\(\w+\))|):)|(build(?:(\(\w+\))|):)|(npm(?:(\(\w+\))|):)|(fix(?:(\(\w+\))|):)|(bug(?:(\(\w+\))|):)'}}
-* \[[{{id}}]({{href}})] {{commit.subject}} by {{commit.author}}
-{{/commit-list}}
-
-{{/each}}
\ No newline at end of file
diff --git a/docker/Dockerfile b/deployment/docker/Dockerfile
similarity index 100%
rename from docker/Dockerfile
rename to deployment/docker/Dockerfile
diff --git a/docker/build.sh b/deployment/docker/build.sh
similarity index 100%
rename from docker/build.sh
rename to deployment/docker/build.sh
diff --git a/docker/keycloak/comify-realm.json b/deployment/docker/keycloak/comify-realm.json
similarity index 100%
rename from docker/keycloak/comify-realm.json
rename to deployment/docker/keycloak/comify-realm.json
diff --git a/docker/keycloak/themes/keycloak-theme-for-kc-all-other-versions.jar b/deployment/docker/keycloak/themes/keycloak-theme-for-kc-all-other-versions.jar
similarity index 100%
rename from docker/keycloak/themes/keycloak-theme-for-kc-all-other-versions.jar
rename to deployment/docker/keycloak/themes/keycloak-theme-for-kc-all-other-versions.jar
diff --git a/docker/keycloak/themes_src/README.md b/deployment/docker/keycloak/themes_src/README.md
similarity index 100%
rename from docker/keycloak/themes_src/README.md
rename to deployment/docker/keycloak/themes_src/README.md
diff --git a/docker/keycloak/themes_src/logo.svg b/deployment/docker/keycloak/themes_src/logo.svg
similarity index 100%
rename from docker/keycloak/themes_src/logo.svg
rename to deployment/docker/keycloak/themes_src/logo.svg
diff --git a/docker/keycloak/themes_src/main.css b/deployment/docker/keycloak/themes_src/main.css
similarity index 100%
rename from docker/keycloak/themes_src/main.css
rename to deployment/docker/keycloak/themes_src/main.css
diff --git a/docker/mongodb/init.js b/deployment/docker/mongodb/init.js
similarity index 100%
rename from docker/mongodb/init.js
rename to deployment/docker/mongodb/init.js
diff --git a/docker/push.sh b/deployment/docker/push.sh
similarity index 100%
rename from docker/push.sh
rename to deployment/docker/push.sh
diff --git a/resources/global.json b/deployment/resources/global.json
similarity index 100%
rename from resources/global.json
rename to deployment/resources/global.json
diff --git a/deployment/segments/common.bff.json b/deployment/segments/common.bff.json
new file mode 100644
index 00000000..d85acbfc
--- /dev/null
+++ b/deployment/segments/common.bff.json
@@ -0,0 +1,3 @@
+{
+ "./common/domain/tenant/getByOriginConverted": { "default": { "access": "public" } }
+}
\ No newline at end of file
diff --git a/deployment/segments/common.reads.json b/deployment/segments/common.reads.json
new file mode 100644
index 00000000..d2157492
--- /dev/null
+++ b/deployment/segments/common.reads.json
@@ -0,0 +1,3 @@
+{
+ "./common/domain/tenant/getByOrigin": { "default": { "access": "protected" }, "TenantNotFound": { } }
+}
\ No newline at end of file
diff --git a/deployment/segments/social.bff.json b/deployment/segments/social.bff.json
new file mode 100644
index 00000000..1b61bd4f
--- /dev/null
+++ b/deployment/segments/social.bff.json
@@ -0,0 +1,46 @@
+{
+ "./social/domain/authentication/getLoginUrl": { "default": { "access": "public" } },
+ "./social/domain/authentication/login": { "default": { "access": "public" } },
+ "./social/domain/authentication/logout": { "default": { "access": "public" } },
+
+ "./social/domain/creator/aggregate": { "default": { "access": "private" }},
+ "./social/domain/creator/getByIdAggregated": { "default": { "access": "private" } },
+ "./social/domain/creator/getByNicknameAggregated": { "default": { "access": "public" } },
+ "./social/domain/creator/getMeAggregated": { "default": { "access": "public" } },
+ "./social/domain/creator/updateFullName": { "default": { "access": "public" } },
+ "./social/domain/creator/updateNickname": { "default": { "access": "public" } },
+
+ "./social/domain/creator.metrics/create": { "subscriptions": { "access": "private" } },
+ "./social/domain/creator.metrics/updateFollowers": { "subscriptions": { "access": "private" } },
+ "./social/domain/creator.metrics/updateFollowing": { "subscriptions": { "access": "private" } },
+ "./social/domain/creator.metrics/updatePosts": { "subscriptions": { "access": "private" } },
+
+ "./social/domain/notification/aggregate": { "default": { "access": "private" } },
+ "./social/domain/notification/notify": { "subscriptions": { "access": "private" } },
+ "./social/domain/notification/getRecentAggregated": { "default": { "access": "public" } },
+
+ "./social/domain/post/aggregate": { "default": { "access": "private" } },
+ "./social/domain/post/create": { "default": { "access": "private" }, "subscribe": { "access": "private" } },
+ "./social/domain/post/createWithComic": { "default": { "access": "public" } },
+ "./social/domain/post/createWithComment": { "default": { "access": "public" } },
+ "./social/domain/post/getByCreatorAggregated": { "default": { "access": "public" } },
+ "./social/domain/post/getByFollowingAggregated": { "default": { "access": "public" } },
+ "./social/domain/post/exploreAggregated": { "default": { "access": "public" } },
+ "./social/domain/post/getByIdAggregated": { "default": { "access": "public" } },
+ "./social/domain/post/getByParentAggregated": { "default": { "access": "public" } },
+ "./social/domain/post/getRecommendedAggregated": { "default": { "access": "public"}},
+ "./social/domain/post/remove": { "default": { "access": "public" }, "subscribe": { "access": "private" } },
+
+ "./social/domain/post.metrics/create": { "subscriptions": { "access": "private" } },
+ "./social/domain/post.metrics/updateRatings": { "subscriptions": { "access": "private" } },
+ "./social/domain/post.metrics/updateReactions": { "subscriptions": { "access": "private" } },
+
+ "./social/domain/rating/toggle": { "default": { "access": "public" }, "subscribe": { "access": "private" } },
+
+ "./social/domain/relation/aggregate": { "default": { "access": "private" }},
+ "./social/domain/relation/exploreAggregated": { "default": { "access": "public" } },
+ "./social/domain/relation/establish": { "default": { "access": "public" }, "subscribe": { "access": "private" } },
+ "./social/domain/relation/getAggregated": { "default": { "access": "public" } },
+ "./social/domain/relation/getFollowersAggregated": { "default": { "access": "public" } },
+ "./social/domain/relation/getFollowingAggregated": { "default": { "access": "public" } }
+}
\ No newline at end of file
diff --git a/deployment/segments/social.notification.json b/deployment/segments/social.notification.json
new file mode 100644
index 00000000..02806337
--- /dev/null
+++ b/deployment/segments/social.notification.json
@@ -0,0 +1,6 @@
+{
+ "./social/domain/notification/create": { "default": { "access": "protected" } },
+ "./social/domain/notification/getByPostId": { "default": { "access": "protected" } },
+ "./social/domain/notification/getRecent": { "default": { "access": "protected" } },
+ "./social/domain/notification/remove": { "default": { "access": "protected" } }
+}
\ No newline at end of file
diff --git a/deployment/segments/social.reads.json b/deployment/segments/social.reads.json
new file mode 100644
index 00000000..865e5b94
--- /dev/null
+++ b/deployment/segments/social.reads.json
@@ -0,0 +1,36 @@
+{
+ "./social/domain/comic/getById": { "default": { "access": "protected" } },
+
+ "./social/domain/comment/getById": { "default": { "access": "protected" } },
+
+ "./social/domain/creator/generateNickname/retrieveByNickname": { "default": { "access": "protected" } },
+ "./social/domain/creator/generateNickname/retrieveByStartNickname": { "default": { "access": "protected" } },
+ "./social/domain/creator/getByEmail": { "default": { "access": "protected" } },
+ "./social/domain/creator/getById": { "default": { "access": "protected" } },
+ "./social/domain/creator/getByNickname": { "default": { "access": "protected" } },
+ "./social/domain/creator/getMe": { "default": { "access": "protected" } },
+ "./social/domain/creator/getOthers": { "default": { "access": "private" }},
+ "./social/domain/creator/updateNickname/retrieveByNickname": { "default": { "access": "protected" } },
+
+ "./social/domain/creator.metrics/getByCreator": { "default": { "access": "protected" } },
+
+ "./social/domain/image/getById": { "default": { "access": "protected" } },
+
+ "./social/domain/post/explore": { "default": { "access": "protected" } },
+ "./social/domain/post/getByCreator": { "default": { "access": "protected" } },
+ "./social/domain/post/getByFollowing": { "default": { "access": "protected" } },
+ "./social/domain/post/getById": { "default": { "access": "protected" } },
+ "./social/domain/post/getByParent": { "default": { "access": "protected" } },
+ "./social/domain/post/getRecommended": { "default": { "access": "protected" } },
+
+ "./social/domain/post.metrics/getByPost": { "default": { "access": "protected" } },
+
+ "./social/domain/rating/exists": { "default": { "access": "protected" } },
+ "./social/domain/rating/toggle/getData": { "default": { "access": "protected" } },
+
+ "./social/domain/relation/exists": { "default": { "access": "protected" } },
+ "./social/domain/relation/explore": { "default": { "access": "protected" } },
+ "./social/domain/relation/get": { "default": { "access": "protected" } },
+ "./social/domain/relation/getFollowers": { "default": { "access": "protected" } },
+ "./social/domain/relation/getFollowing": { "default": { "access": "protected" } }
+}
\ No newline at end of file
diff --git a/deployment/segments/social.writes.json b/deployment/segments/social.writes.json
new file mode 100644
index 00000000..37c8b288
--- /dev/null
+++ b/deployment/segments/social.writes.json
@@ -0,0 +1,32 @@
+{
+ "./social/domain/comic/create/insertData": { "default": { "access": "protected" } },
+ "./social/domain/comic/erase": { "default": { "access": "protected" } },
+
+ "./social/domain/comment/create": { "default": { "access": "protected" } },
+ "./social/domain/comment/erase": { "default": { "access": "protected" } },
+
+ "./social/domain/creator/create": { "default": { "access": "protected" } },
+ "./social/domain/creator/erase": { "default": { "access": "protected" } },
+ "./social/domain/creator/update": { "default": { "access": "protected" } },
+
+ "./social/domain/creator.metrics/create/insertData": { "default": { "access": "protected" } },
+ "./social/domain/creator.metrics/update": { "default": { "access": "protected" } },
+
+ "./social/domain/image/erase": { "default": { "access": "protected" } },
+ "./social/domain/image/save": { "default": { "access": "protected" } },
+
+ "./social/domain/post/create/insertData": { "default": { "access": "protected" } },
+ "./social/domain/post/erase": { "default": { "access": "protected" } },
+ "./social/domain/post/remove/deleteData": { "default": { "access": "protected" }},
+ "./social/domain/post/remove/undeleteData": { "default": { "access": "protected" }},
+ "./social/domain/post/update": { "default": { "access": "protected" } },
+
+ "./social/domain/post.metrics/create/insertData": { "default": { "access": "protected" } },
+ "./social/domain/post.metrics/update": { "default": { "access": "protected" } },
+
+ "./social/domain/rating/create": { "default": { "access": "protected" } },
+ "./social/domain/rating/erase": { "default": { "access": "protected" } },
+
+ "./social/domain/relation/create": { "default": { "access": "protected" } },
+ "./social/domain/relation/erase": { "default": { "access": "protected" } }
+}
\ No newline at end of file
diff --git a/deployment/services/demonstration/social.json b/deployment/services/demonstration/social.json
new file mode 100644
index 00000000..6d3ef2da
--- /dev/null
+++ b/deployment/services/demonstration/social.json
@@ -0,0 +1,40 @@
+{
+ "url": "http://127.0.0.1:3000",
+ "setUp": [
+ "./common/integrations/authentication/setUp",
+ "./common/integrations/database/setUp",
+ "./common/integrations/fileStore/setUp",
+ "./common/integrations/eventBroker/setUp"
+ ],
+ "tearDown": [
+ "./common/integrations/authentication/tearDown",
+ "./common/integrations/database/tearDown",
+ "./common/integrations/fileStore/tearDown",
+ "./common/integrations/eventBroker/tearDown"
+ ],
+ "healthChecks": [
+ "./common/integrations/database/healthCheck",
+ "./common/integrations/fileStore/healthCheck",
+ "./common/integrations/eventBroker/healthCheck"
+ ],
+ "middleware": [
+ "./common/integrations/authentication/originMiddleware",
+ "./common/integrations/authentication/authenticationMiddleware",
+ "./common/integrations/tenancy/tenantMiddleware"
+ ],
+ "standalone":
+ {
+ "segments": [
+ "common.bff",
+ "common.reads",
+ "social.bff",
+ "social.notification",
+ "social.reads",
+ "social.writes"
+ ],
+
+ "serveIndexOnNotFound": true,
+ "assetRoot": "./social/app",
+ "assets": ["index.html", "assets/**/*", "registerSW.js", "sw.js", "workbox-*.js", "manifest.webmanifest" ]
+ }
+}
\ No newline at end of file
diff --git a/deployment/services/development/worker.json b/deployment/services/development/worker.json
new file mode 100644
index 00000000..a598ba4f
--- /dev/null
+++ b/deployment/services/development/worker.json
@@ -0,0 +1,36 @@
+{
+ "url": "http://127.0.0.1:3000",
+ "setUp": [
+ "./common/integrations/authentication/setUp",
+ "./common/integrations/database/setUp",
+ "./common/integrations/fileStore/setUp",
+ "./common/integrations/eventBroker/setUp"
+ ],
+ "tearDown": [
+ "./common/integrations/authentication/tearDown",
+ "./common/integrations/database/tearDown",
+ "./common/integrations/fileStore/tearDown",
+ "./common/integrations/eventBroker/tearDown"
+ ],
+ "healthChecks": [
+ "./common/integrations/database/healthCheck",
+ "./common/integrations/fileStore/healthCheck",
+ "./common/integrations/eventBroker/healthCheck"
+ ],
+ "middleware": [
+ "./common/integrations/authentication/originMiddleware",
+ "./common/integrations/authentication/authenticationMiddleware",
+ "./common/integrations/tenancy/tenantMiddleware"
+ ],
+ "worker":
+ {
+ "segments": [
+ "common.bff",
+ "common.reads",
+ "social.bff",
+ "social.notification",
+ "social.reads",
+ "social.writes"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/deployment/services/production/bff.json b/deployment/services/production/bff.json
new file mode 100644
index 00000000..0c09bd56
--- /dev/null
+++ b/deployment/services/production/bff.json
@@ -0,0 +1,25 @@
+{
+ "url": "http://127.0.0.1:4000",
+ "setUp": [
+ "./common/integrations/authentication/setUp",
+ "./common/integrations/eventBroker/setUp"
+ ],
+ "tearDown": [
+ "./common/integrations/authentication/tearDown",
+ "./common/integrations/eventBroker/tearDown"
+ ],
+ "healthChecks": [
+ "./common/integrations/eventBroker/healthCheck"
+ ],
+ "middleware": [
+ "./common/integrations/authentication/originMiddleware",
+ "./common/integrations/authentication/authenticationMiddleware",
+ "./common/integrations/tenancy/tenantMiddleware"
+ ],
+ "worker":
+ {
+ "gateway": "http://127.0.0.1:2000",
+ "trustKey": "${JITAR_TRUST_KEY}",
+ "segments": ["common.bff", "social.bff"]
+ }
+}
\ No newline at end of file
diff --git a/services/gateway.json b/deployment/services/production/gateway.json
similarity index 100%
rename from services/gateway.json
rename to deployment/services/production/gateway.json
diff --git a/deployment/services/production/insights-app.json b/deployment/services/production/insights-app.json
new file mode 100644
index 00000000..5f262b45
--- /dev/null
+++ b/deployment/services/production/insights-app.json
@@ -0,0 +1,9 @@
+{
+ "url": "http://127.0.0.1:1000",
+ "repository":
+ {
+ "serveIndexOnNotFound": true,
+ "assetRoot": "./insights/app",
+ "assets": ["index.html", "assets/**/*", "registerSW.js", "sw.js", "workbox-*.js", "manifest.webmanifest" ]
+ }
+}
\ No newline at end of file
diff --git a/deployment/services/production/moderation-app.json b/deployment/services/production/moderation-app.json
new file mode 100644
index 00000000..a555f21d
--- /dev/null
+++ b/deployment/services/production/moderation-app.json
@@ -0,0 +1,9 @@
+{
+ "url": "http://127.0.0.1:1000",
+ "repository":
+ {
+ "serveIndexOnNotFound": true,
+ "assetRoot": "./moderation/app",
+ "assets": ["index.html", "assets/**/*", "registerSW.js", "sw.js", "workbox-*.js", "manifest.webmanifest" ]
+ }
+}
\ No newline at end of file
diff --git a/services/notification.json b/deployment/services/production/notification.json
similarity index 53%
rename from services/notification.json
rename to deployment/services/production/notification.json
index 98f2fcf5..e48fb644 100644
--- a/services/notification.json
+++ b/deployment/services/production/notification.json
@@ -1,18 +1,18 @@
{
"url": "http://127.0.0.1:4001",
"setUp": [
- "./integrations/database/setUp"
+ "./common/integrations/database/setUp"
],
"tearDown": [
- "./integrations/database/tearDown"
+ "./common/integrations/database/tearDown"
],
"healthChecks": [
- "./integrations/database/healthCheck"
+ "./common/integrations/database/healthCheck"
],
"worker":
{
"gateway": "http://127.0.0.1:2000",
"trustKey": "${JITAR_TRUST_KEY}",
- "segments": ["notification"]
+ "segments": ["social.notification"]
}
}
\ No newline at end of file
diff --git a/services/proxy.json b/deployment/services/production/proxy.json
similarity index 100%
rename from services/proxy.json
rename to deployment/services/production/proxy.json
diff --git a/deployment/services/production/reads.json b/deployment/services/production/reads.json
new file mode 100644
index 00000000..64e5f547
--- /dev/null
+++ b/deployment/services/production/reads.json
@@ -0,0 +1,21 @@
+{
+ "url": "http://127.0.0.1:4002",
+ "setUp": [
+ "./common/integrations/database/setUp",
+ "./common/integrations/fileStore/setUp"
+ ],
+ "tearDown": [
+ "./common/integrations/database/tearDown",
+ "./common/integrations/fileStore/tearDown"
+ ],
+ "healthChecks": [
+ "./common/integrations/database/healthCheck",
+ "./common/integrations/fileStore/healthCheck"
+ ],
+ "worker":
+ {
+ "gateway": "http://127.0.0.1:2000",
+ "trustKey": "${JITAR_TRUST_KEY}",
+ "segments": ["common.reads", "social.reads"]
+ }
+}
\ No newline at end of file
diff --git a/deployment/services/production/reads2.json b/deployment/services/production/reads2.json
new file mode 100644
index 00000000..6fa08551
--- /dev/null
+++ b/deployment/services/production/reads2.json
@@ -0,0 +1,21 @@
+{
+ "url": "http://127.0.0.1:4003",
+ "setUp": [
+ "./common/integrations/database/setUp",
+ "./common/integrations/fileStore/setUp"
+ ],
+ "tearDown": [
+ "./common/integrations/database/tearDown",
+ "./common/integrations/fileStore/tearDown"
+ ],
+ "healthChecks": [
+ "./common/integrations/database/healthCheck",
+ "./common/integrations/fileStore/healthCheck"
+ ],
+ "worker":
+ {
+ "gateway": "http://127.0.0.1:2000",
+ "trustKey": "${JITAR_TRUST_KEY}",
+ "segments": ["common.reads", "social.reads"]
+ }
+}
\ No newline at end of file
diff --git a/deployment/services/production/social-app.json b/deployment/services/production/social-app.json
new file mode 100644
index 00000000..fc9bd41b
--- /dev/null
+++ b/deployment/services/production/social-app.json
@@ -0,0 +1,9 @@
+{
+ "url": "http://127.0.0.1:1000",
+ "repository":
+ {
+ "serveIndexOnNotFound": true,
+ "assetRoot": "./social/app",
+ "assets": ["index.html", "assets/**/*", "registerSW.js", "sw.js", "workbox-*.js", "manifest.webmanifest" ]
+ }
+}
\ No newline at end of file
diff --git a/deployment/services/production/writes.json b/deployment/services/production/writes.json
new file mode 100644
index 00000000..66c7bd18
--- /dev/null
+++ b/deployment/services/production/writes.json
@@ -0,0 +1,21 @@
+{
+ "url": "http://127.0.0.1:4004",
+ "setUp": [
+ "./common/integrations/database/setUp",
+ "./common/integrations/fileStore/setUp"
+ ],
+ "tearDown": [
+ "./common/integrations/database/tearDown",
+ "./common/integrations/fileStore/tearDown"
+ ],
+ "healthChecks": [
+ "./common/integrations/database/healthCheck",
+ "./common/integrations/fileStore/healthCheck"
+ ],
+ "worker":
+ {
+ "gateway": "http://127.0.0.1:2000",
+ "trustKey": "${JITAR_TRUST_KEY}",
+ "segments": ["social.writes"]
+ }
+}
\ No newline at end of file
diff --git a/src/domain/tenant/definitions.ts b/development/common/domain/tenant/definitions.ts
similarity index 100%
rename from src/domain/tenant/definitions.ts
rename to development/common/domain/tenant/definitions.ts
diff --git a/src/domain/tenant/getByOrigin/TenantNotFound.ts b/development/common/domain/tenant/getByOrigin/TenantNotFound.ts
similarity index 100%
rename from src/domain/tenant/getByOrigin/TenantNotFound.ts
rename to development/common/domain/tenant/getByOrigin/TenantNotFound.ts
diff --git a/src/domain/tenant/getByOrigin/getByOrigin.ts b/development/common/domain/tenant/getByOrigin/getByOrigin.ts
similarity index 100%
rename from src/domain/tenant/getByOrigin/getByOrigin.ts
rename to development/common/domain/tenant/getByOrigin/getByOrigin.ts
diff --git a/src/domain/tenant/getByOrigin/index.ts b/development/common/domain/tenant/getByOrigin/index.ts
similarity index 100%
rename from src/domain/tenant/getByOrigin/index.ts
rename to development/common/domain/tenant/getByOrigin/index.ts
diff --git a/src/domain/tenant/getByOriginConverted/InvalidOrigin.ts b/development/common/domain/tenant/getByOriginConverted/InvalidOrigin.ts
similarity index 100%
rename from src/domain/tenant/getByOriginConverted/InvalidOrigin.ts
rename to development/common/domain/tenant/getByOriginConverted/InvalidOrigin.ts
diff --git a/src/domain/tenant/getByOriginConverted/getByOriginConverted.ts b/development/common/domain/tenant/getByOriginConverted/getByOriginConverted.ts
similarity index 100%
rename from src/domain/tenant/getByOriginConverted/getByOriginConverted.ts
rename to development/common/domain/tenant/getByOriginConverted/getByOriginConverted.ts
diff --git a/src/domain/tenant/getByOriginConverted/index.ts b/development/common/domain/tenant/getByOriginConverted/index.ts
similarity index 100%
rename from src/domain/tenant/getByOriginConverted/index.ts
rename to development/common/domain/tenant/getByOriginConverted/index.ts
diff --git a/src/domain/tenant/getByOriginConverted/types.ts b/development/common/domain/tenant/getByOriginConverted/types.ts
similarity index 100%
rename from src/domain/tenant/getByOriginConverted/types.ts
rename to development/common/domain/tenant/getByOriginConverted/types.ts
diff --git a/src/domain/tenant/getByOriginConverted/validateData.ts b/development/common/domain/tenant/getByOriginConverted/validateData.ts
similarity index 100%
rename from src/domain/tenant/getByOriginConverted/validateData.ts
rename to development/common/domain/tenant/getByOriginConverted/validateData.ts
diff --git a/src/domain/tenant/index.ts b/development/common/domain/tenant/index.ts
similarity index 100%
rename from src/domain/tenant/index.ts
rename to development/common/domain/tenant/index.ts
diff --git a/src/domain/tenant/tenant.ts b/development/common/domain/tenant/tenant.ts
similarity index 100%
rename from src/domain/tenant/tenant.ts
rename to development/common/domain/tenant/tenant.ts
diff --git a/src/domain/tenant/types.ts b/development/common/domain/tenant/types.ts
similarity index 100%
rename from src/domain/tenant/types.ts
rename to development/common/domain/tenant/types.ts
diff --git a/development/common/domain/types.ts b/development/common/domain/types.ts
new file mode 100644
index 00000000..0ba2f92b
--- /dev/null
+++ b/development/common/domain/types.ts
@@ -0,0 +1,6 @@
+
+type BaseDataModel = {
+ readonly id: string;
+};
+
+export type { BaseDataModel };
diff --git a/src/integrations/authentication/authenticationMiddleware.ts b/development/common/integrations/authentication/authenticationMiddleware.ts
similarity index 63%
rename from src/integrations/authentication/authenticationMiddleware.ts
rename to development/common/integrations/authentication/authenticationMiddleware.ts
index 8e40278a..492324e1 100644
--- a/src/integrations/authentication/authenticationMiddleware.ts
+++ b/development/common/integrations/authentication/authenticationMiddleware.ts
@@ -4,15 +4,15 @@ import { AuthenticationMiddleware } from '@jitar-plugins/authentication';
import identityProvider from './identityProvider';
const authProcedures = {
- loginUrl: 'domain/authentication/getLoginUrl',
- login: 'domain/authentication/login',
- logout: 'domain/authentication/logout'
+ loginUrl: 'social/domain/authentication/getLoginUrl',
+ login: 'social/domain/authentication/login',
+ logout: 'social/domain/authentication/logout'
};
const redirectPath = process.env.AUTHENTICATION_CLIENT_PATH || '';
const whiteList: string[] = [
- 'domain/tenant/getByOriginConverted'
+ 'common/domain/tenant/getByOriginConverted'
];
export default new AuthenticationMiddleware(identityProvider, authProcedures, redirectPath, whiteList);
diff --git a/src/integrations/authentication/identityProvider.ts b/development/common/integrations/authentication/identityProvider.ts
similarity index 100%
rename from src/integrations/authentication/identityProvider.ts
rename to development/common/integrations/authentication/identityProvider.ts
diff --git a/src/integrations/authentication/originMiddleware.ts b/development/common/integrations/authentication/originMiddleware.ts
similarity index 100%
rename from src/integrations/authentication/originMiddleware.ts
rename to development/common/integrations/authentication/originMiddleware.ts
diff --git a/src/integrations/authentication/requesterMiddleware.ts b/development/common/integrations/authentication/requesterMiddleware.ts
similarity index 100%
rename from src/integrations/authentication/requesterMiddleware.ts
rename to development/common/integrations/authentication/requesterMiddleware.ts
diff --git a/src/integrations/authentication/setUp.ts b/development/common/integrations/authentication/setUp.ts
similarity index 100%
rename from src/integrations/authentication/setUp.ts
rename to development/common/integrations/authentication/setUp.ts
diff --git a/src/integrations/authentication/tearDown.ts b/development/common/integrations/authentication/tearDown.ts
similarity index 100%
rename from src/integrations/authentication/tearDown.ts
rename to development/common/integrations/authentication/tearDown.ts
diff --git a/src/integrations/database/database.ts b/development/common/integrations/database/database.ts
similarity index 100%
rename from src/integrations/database/database.ts
rename to development/common/integrations/database/database.ts
diff --git a/src/integrations/database/healthCheck.ts b/development/common/integrations/database/healthCheck.ts
similarity index 100%
rename from src/integrations/database/healthCheck.ts
rename to development/common/integrations/database/healthCheck.ts
diff --git a/src/integrations/database/index.ts b/development/common/integrations/database/index.ts
similarity index 100%
rename from src/integrations/database/index.ts
rename to development/common/integrations/database/index.ts
diff --git a/src/integrations/database/setUp.ts b/development/common/integrations/database/setUp.ts
similarity index 100%
rename from src/integrations/database/setUp.ts
rename to development/common/integrations/database/setUp.ts
diff --git a/src/integrations/database/tearDown.ts b/development/common/integrations/database/tearDown.ts
similarity index 100%
rename from src/integrations/database/tearDown.ts
rename to development/common/integrations/database/tearDown.ts
diff --git a/src/integrations/errors/BadRequest.ts b/development/common/integrations/errors/BadRequest.ts
similarity index 100%
rename from src/integrations/errors/BadRequest.ts
rename to development/common/integrations/errors/BadRequest.ts
diff --git a/src/integrations/errors/NotFound.ts b/development/common/integrations/errors/NotFound.ts
similarity index 100%
rename from src/integrations/errors/NotFound.ts
rename to development/common/integrations/errors/NotFound.ts
diff --git a/src/integrations/errors/ServerError.ts b/development/common/integrations/errors/ServerError.ts
similarity index 100%
rename from src/integrations/errors/ServerError.ts
rename to development/common/integrations/errors/ServerError.ts
diff --git a/src/integrations/errors/Unauthorized.ts b/development/common/integrations/errors/Unauthorized.ts
similarity index 100%
rename from src/integrations/errors/Unauthorized.ts
rename to development/common/integrations/errors/Unauthorized.ts
diff --git a/src/integrations/errors/ValidationError.ts b/development/common/integrations/errors/ValidationError.ts
similarity index 100%
rename from src/integrations/errors/ValidationError.ts
rename to development/common/integrations/errors/ValidationError.ts
diff --git a/src/integrations/errors/index.ts b/development/common/integrations/errors/index.ts
similarity index 100%
rename from src/integrations/errors/index.ts
rename to development/common/integrations/errors/index.ts
diff --git a/src/integrations/eventBroker/eventBroker.ts b/development/common/integrations/eventBroker/eventBroker.ts
similarity index 100%
rename from src/integrations/eventBroker/eventBroker.ts
rename to development/common/integrations/eventBroker/eventBroker.ts
diff --git a/src/integrations/eventBroker/healthCheck.ts b/development/common/integrations/eventBroker/healthCheck.ts
similarity index 100%
rename from src/integrations/eventBroker/healthCheck.ts
rename to development/common/integrations/eventBroker/healthCheck.ts
diff --git a/src/integrations/eventBroker/index.ts b/development/common/integrations/eventBroker/index.ts
similarity index 100%
rename from src/integrations/eventBroker/index.ts
rename to development/common/integrations/eventBroker/index.ts
diff --git a/src/integrations/eventBroker/setUp.ts b/development/common/integrations/eventBroker/setUp.ts
similarity index 100%
rename from src/integrations/eventBroker/setUp.ts
rename to development/common/integrations/eventBroker/setUp.ts
diff --git a/src/integrations/eventBroker/tearDown.ts b/development/common/integrations/eventBroker/tearDown.ts
similarity index 100%
rename from src/integrations/eventBroker/tearDown.ts
rename to development/common/integrations/eventBroker/tearDown.ts
diff --git a/src/integrations/fileStore/fileStore.ts b/development/common/integrations/fileStore/fileStore.ts
similarity index 95%
rename from src/integrations/fileStore/fileStore.ts
rename to development/common/integrations/fileStore/fileStore.ts
index a7cade02..ed65f527 100644
--- a/src/integrations/fileStore/fileStore.ts
+++ b/development/common/integrations/fileStore/fileStore.ts
@@ -10,7 +10,7 @@ function setUpMemory(): MemoryDriver
return new MemoryDriver();
}
-function setUpMinio(): S3Driver
+function setUpS3(): S3Driver
{
const config = {
bucketName: process.env.S3_BUCKET_NAME ?? '',
@@ -29,7 +29,7 @@ function setUpMinio(): S3Driver
}
export const driver = process.env.FILE_STORE_DRIVER === 's3'
- ? setUpMinio()
+ ? setUpS3()
: setUpMemory();
const fileStore = new FileStore(driver, shelfLogger);
diff --git a/src/integrations/fileStore/healthCheck.ts b/development/common/integrations/fileStore/healthCheck.ts
similarity index 100%
rename from src/integrations/fileStore/healthCheck.ts
rename to development/common/integrations/fileStore/healthCheck.ts
diff --git a/src/integrations/fileStore/index.ts b/development/common/integrations/fileStore/index.ts
similarity index 100%
rename from src/integrations/fileStore/index.ts
rename to development/common/integrations/fileStore/index.ts
diff --git a/src/integrations/fileStore/setUp.ts b/development/common/integrations/fileStore/setUp.ts
similarity index 100%
rename from src/integrations/fileStore/setUp.ts
rename to development/common/integrations/fileStore/setUp.ts
diff --git a/src/integrations/fileStore/tearDown.ts b/development/common/integrations/fileStore/tearDown.ts
similarity index 100%
rename from src/integrations/fileStore/tearDown.ts
rename to development/common/integrations/fileStore/tearDown.ts
diff --git a/src/integrations/http/http.ts b/development/common/integrations/http/http.ts
similarity index 100%
rename from src/integrations/http/http.ts
rename to development/common/integrations/http/http.ts
diff --git a/src/integrations/http/index.ts b/development/common/integrations/http/index.ts
similarity index 100%
rename from src/integrations/http/index.ts
rename to development/common/integrations/http/index.ts
diff --git a/src/integrations/logging/index.ts b/development/common/integrations/logging/index.ts
similarity index 100%
rename from src/integrations/logging/index.ts
rename to development/common/integrations/logging/index.ts
diff --git a/src/integrations/logging/logger.ts b/development/common/integrations/logging/logger.ts
similarity index 100%
rename from src/integrations/logging/logger.ts
rename to development/common/integrations/logging/logger.ts
diff --git a/src/integrations/notification/notificationHealthCheck.ts b/development/common/integrations/notification/notificationHealthCheck.ts
similarity index 100%
rename from src/integrations/notification/notificationHealthCheck.ts
rename to development/common/integrations/notification/notificationHealthCheck.ts
diff --git a/src/integrations/notification/notificationService.ts b/development/common/integrations/notification/notificationService.ts
similarity index 100%
rename from src/integrations/notification/notificationService.ts
rename to development/common/integrations/notification/notificationService.ts
diff --git a/src/integrations/tenancy/middleware/MultiTenantMiddleware.ts b/development/common/integrations/tenancy/middleware/MultiTenantMiddleware.ts
similarity index 95%
rename from src/integrations/tenancy/middleware/MultiTenantMiddleware.ts
rename to development/common/integrations/tenancy/middleware/MultiTenantMiddleware.ts
index b8fd22b0..572693e3 100644
--- a/src/integrations/tenancy/middleware/MultiTenantMiddleware.ts
+++ b/development/common/integrations/tenancy/middleware/MultiTenantMiddleware.ts
@@ -5,7 +5,7 @@ import { Response } from 'jitar';
import type { Tenant } from '^/domain/tenant';
import getByOrigin from '^/domain/tenant/getByOriginConverted';
-const GEY_BY_ORIGIN_FQN = 'domain/tenant/getByOriginConverted';
+const GEY_BY_ORIGIN_FQN = 'common/domain/tenant/getByOriginConverted';
const TENANT_PARAMETER = '*tenant';
export default class MultiTenantMiddleware implements Middleware
diff --git a/src/integrations/tenancy/tenantMiddleware.ts b/development/common/integrations/tenancy/tenantMiddleware.ts
similarity index 100%
rename from src/integrations/tenancy/tenantMiddleware.ts
rename to development/common/integrations/tenancy/tenantMiddleware.ts
diff --git a/src/integrations/utilities/crypto.ts b/development/common/integrations/utilities/crypto.ts
similarity index 100%
rename from src/integrations/utilities/crypto.ts
rename to development/common/integrations/utilities/crypto.ts
diff --git a/src/integrations/utilities/dates.ts b/development/common/integrations/utilities/dates.ts
similarity index 100%
rename from src/integrations/utilities/dates.ts
rename to development/common/integrations/utilities/dates.ts
diff --git a/src/integrations/utilities/webbrowser.ts b/development/common/integrations/utilities/webbrowser.ts
similarity index 100%
rename from src/integrations/utilities/webbrowser.ts
rename to development/common/integrations/utilities/webbrowser.ts
diff --git a/src/integrations/validation/index.ts b/development/common/integrations/validation/index.ts
similarity index 100%
rename from src/integrations/validation/index.ts
rename to development/common/integrations/validation/index.ts
diff --git a/src/integrations/validation/validator.ts b/development/common/integrations/validation/validator.ts
similarity index 100%
rename from src/integrations/validation/validator.ts
rename to development/common/integrations/validation/validator.ts
diff --git a/development/common/package.json b/development/common/package.json
new file mode 100644
index 00000000..1bcfc493
--- /dev/null
+++ b/development/common/package.json
@@ -0,0 +1,13 @@
+{
+ "name": "@comify/common",
+ "private": true,
+ "version": "0.0.1",
+ "type": "module",
+ "scripts": {
+ "dev": "vite --config app/vite.config.js",
+ "build": "npm run clean && npm run build-domain",
+ "build-domain": "tsc && tsc-alias",
+ "clean": "rimraf ../../artifacts/build/common",
+ "lint": "eslint"
+ }
+}
diff --git a/development/common/tsconfig.json b/development/common/tsconfig.json
new file mode 100644
index 00000000..2153ea77
--- /dev/null
+++ b/development/common/tsconfig.json
@@ -0,0 +1,12 @@
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "composite": true,
+ "rootDir": "./",
+ "outDir": "../../artifacts/build/common",
+ "paths": {
+ "^/*": ["./*"],
+ }
+ },
+ "include": ["./domain", "./integrations"]
+}
\ No newline at end of file
diff --git a/src/assets/localhost.css b/development/insights/app/assets/.gitkeep
similarity index 100%
rename from src/assets/localhost.css
rename to development/insights/app/assets/.gitkeep
diff --git a/development/insights/app/components/main.tsx b/development/insights/app/components/main.tsx
new file mode 100644
index 00000000..29ad513b
--- /dev/null
+++ b/development/insights/app/components/main.tsx
@@ -0,0 +1,6 @@
+
+import ReactDOM from 'react-dom/client';
+
+ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
+
Hello Insights
+);
diff --git a/development/insights/app/index.html b/development/insights/app/index.html
new file mode 100644
index 00000000..9f8de572
--- /dev/null
+++ b/development/insights/app/index.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+ Insights
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/development/insights/app/public/.gitkeep b/development/insights/app/public/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/src/apps/social/tsconfig.json b/development/insights/app/tsconfig.json
similarity index 75%
rename from src/apps/social/tsconfig.json
rename to development/insights/app/tsconfig.json
index d62702c7..2e1aba0d 100644
--- a/src/apps/social/tsconfig.json
+++ b/development/insights/app/tsconfig.json
@@ -3,9 +3,8 @@
"compilerOptions": {
"jsx": "react-jsx",
"noEmit": true,
- "outDir": "../../../dist",
"paths": {
- "^/*": ["../../*"],
+ "^/*": ["../*"],
"~/*": ["./*"],
}
},
diff --git a/src/apps/social/app/vite-env.d.ts b/development/insights/app/vite-env.d.ts
similarity index 100%
rename from src/apps/social/app/vite-env.d.ts
rename to development/insights/app/vite-env.d.ts
diff --git a/development/insights/app/vite.config.ts b/development/insights/app/vite.config.ts
new file mode 100644
index 00000000..7b437368
--- /dev/null
+++ b/development/insights/app/vite.config.ts
@@ -0,0 +1,32 @@
+
+import jitar, { JitarConfig } from '@jitar/plugin-vite';
+import react from '@vitejs/plugin-react';
+import { defineConfig } from 'vite';
+import tsconfigPaths from 'vite-tsconfig-paths';
+
+const JITAR_URL = 'http://localhost:3000';
+const JITAR_SEGMENTS: string[] = [];
+const JITAR_MIDDLEWARES: string[] = [];
+
+const jitarConfig: JitarConfig = {
+ projectRoot: '../../../',
+ sourceRoot: '../../',
+ jitarUrl: JITAR_URL,
+ segments: JITAR_SEGMENTS,
+ middleware: JITAR_MIDDLEWARES
+};
+
+export default defineConfig({
+ root: './app',
+ publicDir: 'public',
+ build: {
+ outDir: '../../../artifacts/build/insights/app',
+ assetsDir: 'assets',
+ emptyOutDir: true
+ },
+ plugins: [
+ react(),
+ tsconfigPaths(),
+ jitar(jitarConfig)
+ ]
+});
\ No newline at end of file
diff --git a/development/insights/domain/definitions.ts b/development/insights/domain/definitions.ts
new file mode 100644
index 00000000..e69de29b
diff --git a/development/insights/domain/types.ts b/development/insights/domain/types.ts
new file mode 100644
index 00000000..e69de29b
diff --git a/development/insights/package.json b/development/insights/package.json
new file mode 100644
index 00000000..60effa42
--- /dev/null
+++ b/development/insights/package.json
@@ -0,0 +1,14 @@
+{
+ "name": "@comify/insights",
+ "private": true,
+ "version": "0.0.1",
+ "type": "module",
+ "scripts": {
+ "dev": "vite --config app/vite.config.js",
+ "build": "npm run clean && npm run build-domain && npm run build-app",
+ "build-app": "vite build --config app/vite.config.js",
+ "build-domain": "tsc && tsc-alias",
+ "clean": "rimraf ../../artifacts/build/insights",
+ "lint": "eslint"
+ }
+}
diff --git a/development/insights/tsconfig.json b/development/insights/tsconfig.json
new file mode 100644
index 00000000..86a26e91
--- /dev/null
+++ b/development/insights/tsconfig.json
@@ -0,0 +1,16 @@
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "composite": true,
+ "rootDir": "./",
+ "outDir": "../../artifacts/build/insights",
+ "paths": {
+ "^/*": ["./*"],
+ "@comify/common/*": ["../common/*"]
+ }
+ },
+ "references": [
+ { "path" : "../common" }
+ ],
+ "include": ["./domain"]
+}
\ No newline at end of file
diff --git a/development/moderation/app/assets/.gitkeep b/development/moderation/app/assets/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/development/moderation/app/components/main.tsx b/development/moderation/app/components/main.tsx
new file mode 100644
index 00000000..24d7fea2
--- /dev/null
+++ b/development/moderation/app/components/main.tsx
@@ -0,0 +1,6 @@
+
+import ReactDOM from 'react-dom/client';
+
+ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
+ Hello Moderation
+);
diff --git a/development/moderation/app/index.html b/development/moderation/app/index.html
new file mode 100644
index 00000000..1d24f377
--- /dev/null
+++ b/development/moderation/app/index.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+ Moderation
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/development/moderation/app/public/.gitkeep b/development/moderation/app/public/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/development/moderation/app/tsconfig.json b/development/moderation/app/tsconfig.json
new file mode 100644
index 00000000..2e1aba0d
--- /dev/null
+++ b/development/moderation/app/tsconfig.json
@@ -0,0 +1,12 @@
+{
+ "extends": "../../../tsconfig.json",
+ "compilerOptions": {
+ "jsx": "react-jsx",
+ "noEmit": true,
+ "paths": {
+ "^/*": ["../*"],
+ "~/*": ["./*"],
+ }
+ },
+ "include": ["./"]
+}
\ No newline at end of file
diff --git a/src/apps/social/vite-env.d.ts b/development/moderation/app/vite-env.d.ts
similarity index 100%
rename from src/apps/social/vite-env.d.ts
rename to development/moderation/app/vite-env.d.ts
diff --git a/development/moderation/app/vite.config.ts b/development/moderation/app/vite.config.ts
new file mode 100644
index 00000000..d5d854bd
--- /dev/null
+++ b/development/moderation/app/vite.config.ts
@@ -0,0 +1,32 @@
+
+import jitar, { JitarConfig } from '@jitar/plugin-vite';
+import react from '@vitejs/plugin-react';
+import { defineConfig } from 'vite';
+import tsconfigPaths from 'vite-tsconfig-paths';
+
+const JITAR_URL = 'http://localhost:3000';
+const JITAR_SEGMENTS: string[] = [];
+const JITAR_MIDDLEWARES: string[] = [];
+
+const jitarConfig: JitarConfig = {
+ projectRoot: '../../../',
+ sourceRoot: '../../',
+ jitarUrl: JITAR_URL,
+ segments: JITAR_SEGMENTS,
+ middleware: JITAR_MIDDLEWARES
+};
+
+export default defineConfig({
+ root: './app',
+ publicDir: 'public',
+ build: {
+ outDir: '../../../artifacts/build/moderation/app',
+ assetsDir: 'assets',
+ emptyOutDir: true
+ },
+ plugins: [
+ react(),
+ tsconfigPaths(),
+ jitar(jitarConfig)
+ ]
+});
\ No newline at end of file
diff --git a/development/moderation/domain/definitions.ts b/development/moderation/domain/definitions.ts
new file mode 100644
index 00000000..e69de29b
diff --git a/development/moderation/domain/types.ts b/development/moderation/domain/types.ts
new file mode 100644
index 00000000..e69de29b
diff --git a/development/moderation/package.json b/development/moderation/package.json
new file mode 100644
index 00000000..734a8d03
--- /dev/null
+++ b/development/moderation/package.json
@@ -0,0 +1,14 @@
+{
+ "name": "@comify/moderation",
+ "private": true,
+ "version": "0.0.1",
+ "type": "module",
+ "scripts": {
+ "dev": "vite --config app/vite.config.js",
+ "build": "npm run clean && npm run build-domain && npm run build-app",
+ "build-app": "vite build --config app/vite.config.js",
+ "build-domain": "tsc && tsc-alias",
+ "clean": "rimraf ../../artifacts/build/moderation",
+ "lint": "eslint"
+ }
+}
diff --git a/development/moderation/tsconfig.json b/development/moderation/tsconfig.json
new file mode 100644
index 00000000..7cca0e3e
--- /dev/null
+++ b/development/moderation/tsconfig.json
@@ -0,0 +1,16 @@
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "composite": true,
+ "rootDir": "./",
+ "outDir": "../../artifacts/build/moderation",
+ "paths": {
+ "^/*": ["./*"],
+ "@comify/common/*": ["../common/*"]
+ }
+ },
+ "references": [
+ { "path" : "../common" }
+ ],
+ "include": ["./domain"]
+}
\ No newline at end of file
diff --git a/src/apps/social/assets/images/icons/logout.svg b/development/social/app/assets/images/icons/logout.svg
similarity index 100%
rename from src/apps/social/assets/images/icons/logout.svg
rename to development/social/app/assets/images/icons/logout.svg
diff --git a/src/apps/social/assets/images/icons/rated.svg b/development/social/app/assets/images/icons/rated.svg
similarity index 100%
rename from src/apps/social/assets/images/icons/rated.svg
rename to development/social/app/assets/images/icons/rated.svg
diff --git a/src/apps/social/assets/images/icons/reactions.svg b/development/social/app/assets/images/icons/reactions.svg
similarity index 100%
rename from src/apps/social/assets/images/icons/reactions.svg
rename to development/social/app/assets/images/icons/reactions.svg
diff --git a/src/apps/social/assets/images/icons/unrated.svg b/development/social/app/assets/images/icons/unrated.svg
similarity index 100%
rename from src/apps/social/assets/images/icons/unrated.svg
rename to development/social/app/assets/images/icons/unrated.svg
diff --git a/src/apps/social/assets/images/introduction.png b/development/social/app/assets/images/introduction.png
similarity index 100%
rename from src/apps/social/assets/images/introduction.png
rename to development/social/app/assets/images/introduction.png
diff --git a/src/apps/social/assets/images/logo.svg b/development/social/app/assets/images/logo.svg
similarity index 100%
rename from src/apps/social/assets/images/logo.svg
rename to development/social/app/assets/images/logo.svg
diff --git a/src/apps/social/assets/images/navigation/create-active.svg b/development/social/app/assets/images/navigation/create-active.svg
similarity index 100%
rename from src/apps/social/assets/images/navigation/create-active.svg
rename to development/social/app/assets/images/navigation/create-active.svg
diff --git a/src/apps/social/assets/images/navigation/create-inactive.svg b/development/social/app/assets/images/navigation/create-inactive.svg
similarity index 100%
rename from src/apps/social/assets/images/navigation/create-inactive.svg
rename to development/social/app/assets/images/navigation/create-inactive.svg
diff --git a/src/apps/social/assets/images/navigation/explore-active.svg b/development/social/app/assets/images/navigation/explore-active.svg
similarity index 100%
rename from src/apps/social/assets/images/navigation/explore-active.svg
rename to development/social/app/assets/images/navigation/explore-active.svg
diff --git a/src/apps/social/assets/images/navigation/explore-inactive.svg b/development/social/app/assets/images/navigation/explore-inactive.svg
similarity index 100%
rename from src/apps/social/assets/images/navigation/explore-inactive.svg
rename to development/social/app/assets/images/navigation/explore-inactive.svg
diff --git a/src/apps/social/assets/images/navigation/notifications-active.svg b/development/social/app/assets/images/navigation/notifications-active.svg
similarity index 100%
rename from src/apps/social/assets/images/navigation/notifications-active.svg
rename to development/social/app/assets/images/navigation/notifications-active.svg
diff --git a/src/apps/social/assets/images/navigation/notifications-inactive.svg b/development/social/app/assets/images/navigation/notifications-inactive.svg
similarity index 100%
rename from src/apps/social/assets/images/navigation/notifications-inactive.svg
rename to development/social/app/assets/images/navigation/notifications-inactive.svg
diff --git a/src/apps/social/assets/images/navigation/profile-active.svg b/development/social/app/assets/images/navigation/profile-active.svg
similarity index 100%
rename from src/apps/social/assets/images/navigation/profile-active.svg
rename to development/social/app/assets/images/navigation/profile-active.svg
diff --git a/src/apps/social/assets/images/navigation/profile-inactive.svg b/development/social/app/assets/images/navigation/profile-inactive.svg
similarity index 100%
rename from src/apps/social/assets/images/navigation/profile-inactive.svg
rename to development/social/app/assets/images/navigation/profile-inactive.svg
diff --git a/src/apps/social/assets/images/navigation/timeline-active.svg b/development/social/app/assets/images/navigation/timeline-active.svg
similarity index 100%
rename from src/apps/social/assets/images/navigation/timeline-active.svg
rename to development/social/app/assets/images/navigation/timeline-active.svg
diff --git a/src/apps/social/assets/images/navigation/timeline-inactive.svg b/development/social/app/assets/images/navigation/timeline-inactive.svg
similarity index 100%
rename from src/apps/social/assets/images/navigation/timeline-inactive.svg
rename to development/social/app/assets/images/navigation/timeline-inactive.svg
diff --git a/src/apps/social/assets/images/noresult.svg b/development/social/app/assets/images/noresult.svg
similarity index 100%
rename from src/apps/social/assets/images/noresult.svg
rename to development/social/app/assets/images/noresult.svg
diff --git a/src/apps/social/assets/images/portrait.svg b/development/social/app/assets/images/portrait.svg
similarity index 100%
rename from src/apps/social/assets/images/portrait.svg
rename to development/social/app/assets/images/portrait.svg
diff --git a/src/apps/social/app/App.tsx b/development/social/app/components/App.tsx
similarity index 100%
rename from src/apps/social/app/App.tsx
rename to development/social/app/components/App.tsx
diff --git a/src/apps/social/app/Routes.tsx b/development/social/app/components/Routes.tsx
similarity index 100%
rename from src/apps/social/app/Routes.tsx
rename to development/social/app/components/Routes.tsx
diff --git a/src/apps/social/app/account/Edit.tsx b/development/social/app/components/account/Edit.tsx
similarity index 100%
rename from src/apps/social/app/account/Edit.tsx
rename to development/social/app/components/account/Edit.tsx
diff --git a/src/apps/social/app/account/Main.tsx b/development/social/app/components/account/Main.tsx
similarity index 82%
rename from src/apps/social/app/account/Main.tsx
rename to development/social/app/components/account/Main.tsx
index 4a6a44e6..41dc751f 100644
--- a/src/apps/social/app/account/Main.tsx
+++ b/development/social/app/components/account/Main.tsx
@@ -5,8 +5,8 @@ import { Column, Ruler } from '@maskingtech/designsystem';
import type { AggregatedData as AggregatedCreatorData } from '^/domain/creator/aggregate';
-import { useAppContext } from '~/app/application';
-import { Profile } from '~/app/creator';
+import { useAppContext } from '~/components/application';
+import { Profile } from '~/components/creator';
export default function Feature()
{
diff --git a/src/apps/social/app/account/Routes.tsx b/development/social/app/components/account/Routes.tsx
similarity index 83%
rename from src/apps/social/app/account/Routes.tsx
rename to development/social/app/components/account/Routes.tsx
index 14fb3b2f..9c69c0a3 100644
--- a/src/apps/social/app/account/Routes.tsx
+++ b/development/social/app/components/account/Routes.tsx
@@ -1,7 +1,7 @@
import { Route } from 'react-router-dom';
-import { NotFound } from '~/app/common';
+import { NotFound } from '~/components/common';
import Main from './Main';
import Edit from './Edit';
diff --git a/src/apps/social/app/account/components/FullNameForm.tsx b/development/social/app/components/account/components/FullNameForm.tsx
similarity index 95%
rename from src/apps/social/app/account/components/FullNameForm.tsx
rename to development/social/app/components/account/components/FullNameForm.tsx
index ee013406..2f1dd1cf 100644
--- a/src/apps/social/app/account/components/FullNameForm.tsx
+++ b/development/social/app/components/account/components/FullNameForm.tsx
@@ -1,7 +1,7 @@
import { Input, Label, Panel, TextBox } from '@maskingtech/designsystem';
-import { Form } from '~/app/common';
+import { Form } from '~/components/common';
import type { SubmitHandler } from './hooks/useFullNameFormHandler';
import useFullNameFormHandler from './hooks/useFullNameFormHandler';
diff --git a/src/apps/social/app/account/components/NicknameForm.tsx b/development/social/app/components/account/components/NicknameForm.tsx
similarity index 96%
rename from src/apps/social/app/account/components/NicknameForm.tsx
rename to development/social/app/components/account/components/NicknameForm.tsx
index 2ffce43b..cb71f21f 100644
--- a/src/apps/social/app/account/components/NicknameForm.tsx
+++ b/development/social/app/components/account/components/NicknameForm.tsx
@@ -1,7 +1,7 @@
import { Input, Label, Panel, TextBox } from '@maskingtech/designsystem';
-import { Form } from '~/app/common';
+import { Form } from '~/components/common';
import type { SubmitHandler } from './hooks/useNicknameFormHandler';
import useNicknameFormHandler from './hooks/useNicknameFormHandler';
diff --git a/src/apps/social/app/account/components/hooks/useFullNameFormHandler.ts b/development/social/app/components/account/components/hooks/useFullNameFormHandler.ts
similarity index 100%
rename from src/apps/social/app/account/components/hooks/useFullNameFormHandler.ts
rename to development/social/app/components/account/components/hooks/useFullNameFormHandler.ts
diff --git a/src/apps/social/app/account/components/hooks/useNicknameFormHandler.ts b/development/social/app/components/account/components/hooks/useNicknameFormHandler.ts
similarity index 100%
rename from src/apps/social/app/account/components/hooks/useNicknameFormHandler.ts
rename to development/social/app/components/account/components/hooks/useNicknameFormHandler.ts
diff --git a/src/apps/social/app/account/hooks/useUpdateFullName.ts b/development/social/app/components/account/hooks/useUpdateFullName.ts
similarity index 90%
rename from src/apps/social/app/account/hooks/useUpdateFullName.ts
rename to development/social/app/components/account/hooks/useUpdateFullName.ts
index fccccc7b..9b30a96b 100644
--- a/src/apps/social/app/account/hooks/useUpdateFullName.ts
+++ b/development/social/app/components/account/hooks/useUpdateFullName.ts
@@ -5,7 +5,7 @@ import { requester } from '^/domain/authentication';
import type { AggregatedData as AggregatedCreatorData } from '^/domain/creator/aggregate';
import updateFullName from '^/domain/creator/updateFullName';
-import { useAppContext } from '~/app/application';
+import { useAppContext } from '~/components/application';
export default function useUpdateFullName()
{
diff --git a/src/apps/social/app/account/hooks/useUpdateNickname.ts b/development/social/app/components/account/hooks/useUpdateNickname.ts
similarity index 90%
rename from src/apps/social/app/account/hooks/useUpdateNickname.ts
rename to development/social/app/components/account/hooks/useUpdateNickname.ts
index 5c88070a..d5bdae9b 100644
--- a/src/apps/social/app/account/hooks/useUpdateNickname.ts
+++ b/development/social/app/components/account/hooks/useUpdateNickname.ts
@@ -5,9 +5,9 @@ import { requester } from '^/domain/authentication';
import type { AggregatedData as AggregatedCreatorData } from '^/domain/creator/aggregate';
import updateNickname from '^/domain/creator/updateNickname';
import NicknameAlreadyExists from '^/domain/creator/updateNickname/NicknameAlreadyExists';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
-import { useAppContext } from '~/app/application';
+import { useAppContext } from '~/components/application';
export default function useUpdateNickname()
{
diff --git a/src/apps/social/app/account/index.ts b/development/social/app/components/account/index.ts
similarity index 100%
rename from src/apps/social/app/account/index.ts
rename to development/social/app/components/account/index.ts
diff --git a/src/apps/social/app/application/ErrorHandler.tsx b/development/social/app/components/application/ErrorHandler.tsx
similarity index 100%
rename from src/apps/social/app/application/ErrorHandler.tsx
rename to development/social/app/components/application/ErrorHandler.tsx
diff --git a/src/apps/social/app/application/Home.tsx b/development/social/app/components/application/Home.tsx
similarity index 100%
rename from src/apps/social/app/application/Home.tsx
rename to development/social/app/components/application/Home.tsx
diff --git a/src/apps/social/app/application/Identify.tsx b/development/social/app/components/application/Identify.tsx
similarity index 100%
rename from src/apps/social/app/application/Identify.tsx
rename to development/social/app/components/application/Identify.tsx
diff --git a/src/apps/social/app/application/Login.tsx b/development/social/app/components/application/Login.tsx
similarity index 100%
rename from src/apps/social/app/application/Login.tsx
rename to development/social/app/components/application/Login.tsx
diff --git a/src/apps/social/app/application/Logout.tsx b/development/social/app/components/application/Logout.tsx
similarity index 100%
rename from src/apps/social/app/application/Logout.tsx
rename to development/social/app/components/application/Logout.tsx
diff --git a/src/apps/social/app/application/NotFound.tsx b/development/social/app/components/application/NotFound.tsx
similarity index 100%
rename from src/apps/social/app/application/NotFound.tsx
rename to development/social/app/components/application/NotFound.tsx
diff --git a/src/apps/social/app/application/Privacy.tsx b/development/social/app/components/application/Privacy.tsx
similarity index 100%
rename from src/apps/social/app/application/Privacy.tsx
rename to development/social/app/components/application/Privacy.tsx
diff --git a/src/apps/social/app/application/ProtectedRoute.tsx b/development/social/app/components/application/ProtectedRoute.tsx
similarity index 100%
rename from src/apps/social/app/application/ProtectedRoute.tsx
rename to development/social/app/components/application/ProtectedRoute.tsx
diff --git a/src/apps/social/app/application/Routes.tsx b/development/social/app/components/application/Routes.tsx
similarity index 93%
rename from src/apps/social/app/application/Routes.tsx
rename to development/social/app/components/application/Routes.tsx
index 1f2526b8..47719151 100644
--- a/src/apps/social/app/application/Routes.tsx
+++ b/development/social/app/components/application/Routes.tsx
@@ -1,7 +1,7 @@
import { Route } from 'react-router-dom';
-import { NotFound } from '~/app/common';
+import { NotFound } from '~/components/common';
import Home from './Home';
import Login from './Login';
diff --git a/src/apps/social/app/application/Terms.tsx b/development/social/app/components/application/Terms.tsx
similarity index 100%
rename from src/apps/social/app/application/Terms.tsx
rename to development/social/app/components/application/Terms.tsx
diff --git a/src/apps/social/app/application/components/Footer.tsx b/development/social/app/components/application/components/Footer.tsx
similarity index 100%
rename from src/apps/social/app/application/components/Footer.tsx
rename to development/social/app/components/application/components/Footer.tsx
diff --git a/src/apps/social/app/application/components/Header.tsx b/development/social/app/components/application/components/Header.tsx
similarity index 91%
rename from src/apps/social/app/application/components/Header.tsx
rename to development/social/app/components/application/components/Header.tsx
index 766084be..ad2afad3 100644
--- a/src/apps/social/app/application/components/Header.tsx
+++ b/development/social/app/components/application/components/Header.tsx
@@ -3,7 +3,7 @@ import { Row } from '@maskingtech/designsystem';
import type { AggregatedData as IdentityModel } from '^/domain/creator/aggregate';
-import { ConciseIdentity } from '~/app/creator';
+import { ConciseIdentity } from '~/components/creator';
import Logo from './Logo';
import LogoutButton from './LogoutButton';
diff --git a/src/apps/social/app/application/components/Identity.tsx b/development/social/app/components/application/components/Identity.tsx
similarity index 90%
rename from src/apps/social/app/application/components/Identity.tsx
rename to development/social/app/components/application/components/Identity.tsx
index 112de7f4..f29c6bca 100644
--- a/src/apps/social/app/application/components/Identity.tsx
+++ b/development/social/app/components/application/components/Identity.tsx
@@ -3,7 +3,7 @@ import { Row } from '@maskingtech/designsystem';
import type { AggregatedData as AggregatedCreatorData } from '^/domain/creator/aggregate';
-import { FullIdentity } from '~/app/creator';
+import { FullIdentity } from '~/components/creator';
import LogoutButton from './LogoutButton';
type Props = {
diff --git a/src/apps/social/app/application/components/Introduction.tsx b/development/social/app/components/application/components/Introduction.tsx
similarity index 100%
rename from src/apps/social/app/application/components/Introduction.tsx
rename to development/social/app/components/application/components/Introduction.tsx
diff --git a/src/apps/social/app/application/components/LegalHeader.tsx b/development/social/app/components/application/components/LegalHeader.tsx
similarity index 100%
rename from src/apps/social/app/application/components/LegalHeader.tsx
rename to development/social/app/components/application/components/LegalHeader.tsx
diff --git a/src/apps/social/app/application/components/LegalInfo.tsx b/development/social/app/components/application/components/LegalInfo.tsx
similarity index 100%
rename from src/apps/social/app/application/components/LegalInfo.tsx
rename to development/social/app/components/application/components/LegalInfo.tsx
diff --git a/src/apps/social/app/application/components/Logo.tsx b/development/social/app/components/application/components/Logo.tsx
similarity index 100%
rename from src/apps/social/app/application/components/Logo.tsx
rename to development/social/app/components/application/components/Logo.tsx
diff --git a/src/apps/social/app/application/components/LogoutButton.tsx b/development/social/app/components/application/components/LogoutButton.tsx
similarity index 100%
rename from src/apps/social/app/application/components/LogoutButton.tsx
rename to development/social/app/components/application/components/LogoutButton.tsx
diff --git a/src/apps/social/app/application/components/LogoutPanel.tsx b/development/social/app/components/application/components/LogoutPanel.tsx
similarity index 100%
rename from src/apps/social/app/application/components/LogoutPanel.tsx
rename to development/social/app/components/application/components/LogoutPanel.tsx
diff --git a/src/apps/social/app/application/components/Menu.tsx b/development/social/app/components/application/components/Menu.tsx
similarity index 97%
rename from src/apps/social/app/application/components/Menu.tsx
rename to development/social/app/components/application/components/Menu.tsx
index 1d23a4a7..0f24b160 100644
--- a/src/apps/social/app/application/components/Menu.tsx
+++ b/development/social/app/components/application/components/Menu.tsx
@@ -14,7 +14,7 @@ import profileInactiveIcon from '~/assets/images/navigation/profile-inactive.svg
import timelineActiveIcon from '~/assets/images/navigation/timeline-active.svg';
import timelineInactiveIcon from '~/assets/images/navigation/timeline-inactive.svg';
-import { Menu } from '~/app/common';
+import { Menu } from '~/components/common';
type Props = {
readonly vertical: boolean;
diff --git a/src/apps/social/app/application/components/Modal.tsx b/development/social/app/components/application/components/Modal.tsx
similarity index 100%
rename from src/apps/social/app/application/components/Modal.tsx
rename to development/social/app/components/application/components/Modal.tsx
diff --git a/src/apps/social/app/application/components/Sidebar.tsx b/development/social/app/components/application/components/Sidebar.tsx
similarity index 100%
rename from src/apps/social/app/application/components/Sidebar.tsx
rename to development/social/app/components/application/components/Sidebar.tsx
diff --git a/src/apps/social/app/application/contexts/AppContext.tsx b/development/social/app/components/application/contexts/AppContext.tsx
similarity index 100%
rename from src/apps/social/app/application/contexts/AppContext.tsx
rename to development/social/app/components/application/contexts/AppContext.tsx
diff --git a/src/apps/social/app/application/contexts/hooks/useAppContextValue.ts b/development/social/app/components/application/contexts/hooks/useAppContextValue.ts
similarity index 100%
rename from src/apps/social/app/application/contexts/hooks/useAppContextValue.ts
rename to development/social/app/components/application/contexts/hooks/useAppContextValue.ts
diff --git a/src/apps/social/app/application/hooks/useAppState.ts b/development/social/app/components/application/hooks/useAppState.ts
similarity index 100%
rename from src/apps/social/app/application/hooks/useAppState.ts
rename to development/social/app/components/application/hooks/useAppState.ts
diff --git a/src/apps/social/app/application/hooks/useIdentify.ts b/development/social/app/components/application/hooks/useIdentify.ts
similarity index 94%
rename from src/apps/social/app/application/hooks/useIdentify.ts
rename to development/social/app/components/application/hooks/useIdentify.ts
index a2d7d5be..2b58bafe 100644
--- a/src/apps/social/app/application/hooks/useIdentify.ts
+++ b/development/social/app/components/application/hooks/useIdentify.ts
@@ -5,7 +5,7 @@ import { useNavigate } from 'react-router-dom';
import { requester } from '^/domain/authentication';
import type { AggregatedData as IdentityModel } from '^/domain/creator/aggregate';
import getMe from '^/domain/creator/getMeAggregated';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
import { useAppContext } from '../contexts/AppContext';
diff --git a/src/apps/social/app/application/hooks/useLogin.ts b/development/social/app/components/application/hooks/useLogin.ts
similarity index 100%
rename from src/apps/social/app/application/hooks/useLogin.ts
rename to development/social/app/components/application/hooks/useLogin.ts
diff --git a/src/apps/social/app/application/hooks/useLogout.ts b/development/social/app/components/application/hooks/useLogout.ts
similarity index 100%
rename from src/apps/social/app/application/hooks/useLogout.ts
rename to development/social/app/components/application/hooks/useLogout.ts
diff --git a/src/apps/social/app/application/hooks/useNavigateHome.ts b/development/social/app/components/application/hooks/useNavigateHome.ts
similarity index 100%
rename from src/apps/social/app/application/hooks/useNavigateHome.ts
rename to development/social/app/components/application/hooks/useNavigateHome.ts
diff --git a/src/apps/social/app/application/hooks/useNavigateLogin.ts b/development/social/app/components/application/hooks/useNavigateLogin.ts
similarity index 100%
rename from src/apps/social/app/application/hooks/useNavigateLogin.ts
rename to development/social/app/components/application/hooks/useNavigateLogin.ts
diff --git a/src/apps/social/app/application/index.ts b/development/social/app/components/application/index.ts
similarity index 100%
rename from src/apps/social/app/application/index.ts
rename to development/social/app/components/application/index.ts
diff --git a/src/apps/social/app/application/layouts/Application.tsx b/development/social/app/components/application/layouts/Application.tsx
similarity index 100%
rename from src/apps/social/app/application/layouts/Application.tsx
rename to development/social/app/components/application/layouts/Application.tsx
diff --git a/src/apps/social/app/application/layouts/Guest.tsx b/development/social/app/components/application/layouts/Guest.tsx
similarity index 100%
rename from src/apps/social/app/application/layouts/Guest.tsx
rename to development/social/app/components/application/layouts/Guest.tsx
diff --git a/src/apps/social/app/application/layouts/Legal.tsx b/development/social/app/components/application/layouts/Legal.tsx
similarity index 100%
rename from src/apps/social/app/application/layouts/Legal.tsx
rename to development/social/app/components/application/layouts/Legal.tsx
diff --git a/src/apps/social/app/comic/components/Editor.tsx b/development/social/app/components/comic/components/Editor.tsx
similarity index 100%
rename from src/apps/social/app/comic/components/Editor.tsx
rename to development/social/app/components/comic/components/Editor.tsx
diff --git a/src/apps/social/app/comic/components/Image.tsx b/development/social/app/components/comic/components/Image.tsx
similarity index 100%
rename from src/apps/social/app/comic/components/Image.tsx
rename to development/social/app/components/comic/components/Image.tsx
diff --git a/src/apps/social/app/comic/components/hooks/useCreateHandler.ts b/development/social/app/components/comic/components/hooks/useCreateHandler.ts
similarity index 100%
rename from src/apps/social/app/comic/components/hooks/useCreateHandler.ts
rename to development/social/app/components/comic/components/hooks/useCreateHandler.ts
diff --git a/src/apps/social/app/comic/components/hooks/useEditor.ts b/development/social/app/components/comic/components/hooks/useEditor.ts
similarity index 100%
rename from src/apps/social/app/comic/components/hooks/useEditor.ts
rename to development/social/app/components/comic/components/hooks/useEditor.ts
diff --git a/src/apps/social/app/comic/index.ts b/development/social/app/components/comic/index.ts
similarity index 100%
rename from src/apps/social/app/comic/index.ts
rename to development/social/app/components/comic/index.ts
diff --git a/src/apps/social/app/comment/components/Comment.tsx b/development/social/app/components/comment/components/Comment.tsx
similarity index 100%
rename from src/apps/social/app/comment/components/Comment.tsx
rename to development/social/app/components/comment/components/Comment.tsx
diff --git a/src/apps/social/app/comment/components/Form.tsx b/development/social/app/components/comment/components/Form.tsx
similarity index 100%
rename from src/apps/social/app/comment/components/Form.tsx
rename to development/social/app/components/comment/components/Form.tsx
diff --git a/src/apps/social/app/comment/components/hooks/useCreateHandler.ts b/development/social/app/components/comment/components/hooks/useCreateHandler.ts
similarity index 100%
rename from src/apps/social/app/comment/components/hooks/useCreateHandler.ts
rename to development/social/app/components/comment/components/hooks/useCreateHandler.ts
diff --git a/src/apps/social/app/comment/index.ts b/development/social/app/components/comment/index.ts
similarity index 100%
rename from src/apps/social/app/comment/index.ts
rename to development/social/app/components/comment/index.ts
diff --git a/src/apps/social/app/common/components/BackButton.tsx b/development/social/app/components/common/components/BackButton.tsx
similarity index 100%
rename from src/apps/social/app/common/components/BackButton.tsx
rename to development/social/app/components/common/components/BackButton.tsx
diff --git a/src/apps/social/app/common/components/BackRow.tsx b/development/social/app/components/common/components/BackRow.tsx
similarity index 100%
rename from src/apps/social/app/common/components/BackRow.tsx
rename to development/social/app/components/common/components/BackRow.tsx
diff --git a/src/apps/social/app/common/components/CompactNumber.tsx b/development/social/app/components/common/components/CompactNumber.tsx
similarity index 100%
rename from src/apps/social/app/common/components/CompactNumber.tsx
rename to development/social/app/components/common/components/CompactNumber.tsx
diff --git a/src/apps/social/app/common/components/ConfirmationPanel.tsx b/development/social/app/components/common/components/ConfirmationPanel.tsx
similarity index 100%
rename from src/apps/social/app/common/components/ConfirmationPanel.tsx
rename to development/social/app/components/common/components/ConfirmationPanel.tsx
diff --git a/src/apps/social/app/common/components/EditButton.tsx b/development/social/app/components/common/components/EditButton.tsx
similarity index 100%
rename from src/apps/social/app/common/components/EditButton.tsx
rename to development/social/app/components/common/components/EditButton.tsx
diff --git a/src/apps/social/app/common/components/Form.tsx b/development/social/app/components/common/components/Form.tsx
similarity index 100%
rename from src/apps/social/app/common/components/Form.tsx
rename to development/social/app/components/common/components/Form.tsx
diff --git a/src/apps/social/app/common/components/LoadingAndResultContainer.tsx b/development/social/app/components/common/components/LoadingAndResultContainer.tsx
similarity index 100%
rename from src/apps/social/app/common/components/LoadingAndResultContainer.tsx
rename to development/social/app/components/common/components/LoadingAndResultContainer.tsx
diff --git a/src/apps/social/app/common/components/LoadingContainer.tsx b/development/social/app/components/common/components/LoadingContainer.tsx
similarity index 100%
rename from src/apps/social/app/common/components/LoadingContainer.tsx
rename to development/social/app/components/common/components/LoadingContainer.tsx
diff --git a/src/apps/social/app/common/components/Menu.tsx b/development/social/app/components/common/components/Menu.tsx
similarity index 100%
rename from src/apps/social/app/common/components/Menu.tsx
rename to development/social/app/components/common/components/Menu.tsx
diff --git a/src/apps/social/app/common/components/Modal.tsx b/development/social/app/components/common/components/Modal.tsx
similarity index 100%
rename from src/apps/social/app/common/components/Modal.tsx
rename to development/social/app/components/common/components/Modal.tsx
diff --git a/src/apps/social/app/common/components/NotFound.tsx b/development/social/app/components/common/components/NotFound.tsx
similarity index 100%
rename from src/apps/social/app/common/components/NotFound.tsx
rename to development/social/app/components/common/components/NotFound.tsx
diff --git a/src/apps/social/app/common/components/OrderAndAddRow.tsx b/development/social/app/components/common/components/OrderAndAddRow.tsx
similarity index 100%
rename from src/apps/social/app/common/components/OrderAndAddRow.tsx
rename to development/social/app/components/common/components/OrderAndAddRow.tsx
diff --git a/src/apps/social/app/common/components/OrderAndSearchRow.tsx b/development/social/app/components/common/components/OrderAndSearchRow.tsx
similarity index 100%
rename from src/apps/social/app/common/components/OrderAndSearchRow.tsx
rename to development/social/app/components/common/components/OrderAndSearchRow.tsx
diff --git a/src/apps/social/app/common/components/OrderRow.tsx b/development/social/app/components/common/components/OrderRow.tsx
similarity index 100%
rename from src/apps/social/app/common/components/OrderRow.tsx
rename to development/social/app/components/common/components/OrderRow.tsx
diff --git a/src/apps/social/app/common/components/PullToRefresh.tsx b/development/social/app/components/common/components/PullToRefresh.tsx
similarity index 100%
rename from src/apps/social/app/common/components/PullToRefresh.tsx
rename to development/social/app/components/common/components/PullToRefresh.tsx
diff --git a/src/apps/social/app/common/components/Quantifier.tsx b/development/social/app/components/common/components/Quantifier.tsx
similarity index 100%
rename from src/apps/social/app/common/components/Quantifier.tsx
rename to development/social/app/components/common/components/Quantifier.tsx
diff --git a/src/apps/social/app/common/components/RemoveOption.tsx b/development/social/app/components/common/components/RemoveOption.tsx
similarity index 100%
rename from src/apps/social/app/common/components/RemoveOption.tsx
rename to development/social/app/components/common/components/RemoveOption.tsx
diff --git a/src/apps/social/app/common/components/ResultContainer.tsx b/development/social/app/components/common/components/ResultContainer.tsx
similarity index 100%
rename from src/apps/social/app/common/components/ResultContainer.tsx
rename to development/social/app/components/common/components/ResultContainer.tsx
diff --git a/src/apps/social/app/common/components/ScrollLoader.tsx b/development/social/app/components/common/components/ScrollLoader.tsx
similarity index 100%
rename from src/apps/social/app/common/components/ScrollLoader.tsx
rename to development/social/app/components/common/components/ScrollLoader.tsx
diff --git a/src/apps/social/app/common/components/Tabs.tsx b/development/social/app/components/common/components/Tabs.tsx
similarity index 100%
rename from src/apps/social/app/common/components/Tabs.tsx
rename to development/social/app/components/common/components/Tabs.tsx
diff --git a/src/apps/social/app/common/components/TenantContainer.tsx b/development/social/app/components/common/components/TenantContainer.tsx
similarity index 89%
rename from src/apps/social/app/common/components/TenantContainer.tsx
rename to development/social/app/components/common/components/TenantContainer.tsx
index 4e54256f..9ef0a558 100644
--- a/src/apps/social/app/common/components/TenantContainer.tsx
+++ b/development/social/app/components/common/components/TenantContainer.tsx
@@ -17,7 +17,7 @@ export default function Component({ children }: Props)
const link = document.createElement('link');
link.setAttribute('rel', 'stylesheet');
- link.setAttribute('href', `/assets/${tenant.id}.css`);
+ link.setAttribute('href', `/${tenant.id}.css`);
document.head.appendChild(link);
diff --git a/src/apps/social/app/common/components/TimeElapsed.tsx b/development/social/app/components/common/components/TimeElapsed.tsx
similarity index 84%
rename from src/apps/social/app/common/components/TimeElapsed.tsx
rename to development/social/app/components/common/components/TimeElapsed.tsx
index 880ee07f..3982922c 100644
--- a/src/apps/social/app/common/components/TimeElapsed.tsx
+++ b/development/social/app/components/common/components/TimeElapsed.tsx
@@ -1,7 +1,7 @@
import { Text } from '@maskingtech/designsystem';
-import { timeElapsed } from '^/integrations/utilities/dates';
+import { timeElapsed } from '@comify/common/integrations/utilities/dates';
type Props = {
readonly date: string;
diff --git a/src/apps/social/app/common/components/elements/LoadingIndicator.tsx b/development/social/app/components/common/components/elements/LoadingIndicator.tsx
similarity index 100%
rename from src/apps/social/app/common/components/elements/LoadingIndicator.tsx
rename to development/social/app/components/common/components/elements/LoadingIndicator.tsx
diff --git a/src/apps/social/app/common/components/elements/NoResult.tsx b/development/social/app/components/common/components/elements/NoResult.tsx
similarity index 100%
rename from src/apps/social/app/common/components/elements/NoResult.tsx
rename to development/social/app/components/common/components/elements/NoResult.tsx
diff --git a/src/apps/social/app/common/components/elements/OrderSelection.tsx b/development/social/app/components/common/components/elements/OrderSelection.tsx
similarity index 100%
rename from src/apps/social/app/common/components/elements/OrderSelection.tsx
rename to development/social/app/components/common/components/elements/OrderSelection.tsx
diff --git a/src/apps/social/app/common/components/hooks/useLoadOnScroll.ts b/development/social/app/components/common/components/hooks/useLoadOnScroll.ts
similarity index 100%
rename from src/apps/social/app/common/components/hooks/useLoadOnScroll.ts
rename to development/social/app/components/common/components/hooks/useLoadOnScroll.ts
diff --git a/src/apps/social/app/common/components/hooks/useRefreshOnPull.ts b/development/social/app/components/common/components/hooks/useRefreshOnPull.ts
similarity index 100%
rename from src/apps/social/app/common/components/hooks/useRefreshOnPull.ts
rename to development/social/app/components/common/components/hooks/useRefreshOnPull.ts
diff --git a/src/apps/social/app/common/components/hooks/useScrollContainer.ts b/development/social/app/components/common/components/hooks/useScrollContainer.ts
similarity index 100%
rename from src/apps/social/app/common/components/hooks/useScrollContainer.ts
rename to development/social/app/components/common/components/hooks/useScrollContainer.ts
diff --git a/src/apps/social/app/common/components/hooks/useTenant.ts b/development/social/app/components/common/components/hooks/useTenant.ts
similarity index 67%
rename from src/apps/social/app/common/components/hooks/useTenant.ts
rename to development/social/app/components/common/components/hooks/useTenant.ts
index 16c087d8..9e14a657 100644
--- a/src/apps/social/app/common/components/hooks/useTenant.ts
+++ b/development/social/app/components/common/components/hooks/useTenant.ts
@@ -3,8 +3,8 @@ import { useCallback } from 'react';
import { useLoadData } from '@maskingtech/react-toolkit';
-import { tenant } from '^/domain/tenant';
-import getByOriginConverted from '^/domain/tenant/getByOriginConverted';
+import { tenant } from '@comify/common/domain/tenant';
+import getByOriginConverted from '@comify/common/domain/tenant/getByOriginConverted';
export function useTenant()
{
diff --git a/src/apps/social/app/common/index.ts b/development/social/app/components/common/index.ts
similarity index 100%
rename from src/apps/social/app/common/index.ts
rename to development/social/app/components/common/index.ts
diff --git a/src/apps/social/app/creator/components/ConciseIdentity.tsx b/development/social/app/components/creator/components/ConciseIdentity.tsx
similarity index 100%
rename from src/apps/social/app/creator/components/ConciseIdentity.tsx
rename to development/social/app/components/creator/components/ConciseIdentity.tsx
diff --git a/src/apps/social/app/creator/components/Counters.tsx b/development/social/app/components/creator/components/Counters.tsx
similarity index 100%
rename from src/apps/social/app/creator/components/Counters.tsx
rename to development/social/app/components/creator/components/Counters.tsx
diff --git a/src/apps/social/app/creator/components/FullIdentity.tsx b/development/social/app/components/creator/components/FullIdentity.tsx
similarity index 100%
rename from src/apps/social/app/creator/components/FullIdentity.tsx
rename to development/social/app/components/creator/components/FullIdentity.tsx
diff --git a/src/apps/social/app/creator/components/Profile.tsx b/development/social/app/components/creator/components/Profile.tsx
similarity index 100%
rename from src/apps/social/app/creator/components/Profile.tsx
rename to development/social/app/components/creator/components/Profile.tsx
diff --git a/src/apps/social/app/creator/components/TimeElapsed.tsx b/development/social/app/components/creator/components/TimeElapsed.tsx
similarity index 100%
rename from src/apps/social/app/creator/components/TimeElapsed.tsx
rename to development/social/app/components/creator/components/TimeElapsed.tsx
diff --git a/src/apps/social/app/creator/components/elements/Avatar.tsx b/development/social/app/components/creator/components/elements/Avatar.tsx
similarity index 100%
rename from src/apps/social/app/creator/components/elements/Avatar.tsx
rename to development/social/app/components/creator/components/elements/Avatar.tsx
diff --git a/src/apps/social/app/creator/components/elements/AvatarRow.tsx b/development/social/app/components/creator/components/elements/AvatarRow.tsx
similarity index 100%
rename from src/apps/social/app/creator/components/elements/AvatarRow.tsx
rename to development/social/app/components/creator/components/elements/AvatarRow.tsx
diff --git a/src/apps/social/app/creator/components/elements/CountersColumn.tsx b/development/social/app/components/creator/components/elements/CountersColumn.tsx
similarity index 100%
rename from src/apps/social/app/creator/components/elements/CountersColumn.tsx
rename to development/social/app/components/creator/components/elements/CountersColumn.tsx
diff --git a/src/apps/social/app/creator/components/elements/CountersRow.tsx b/development/social/app/components/creator/components/elements/CountersRow.tsx
similarity index 90%
rename from src/apps/social/app/creator/components/elements/CountersRow.tsx
rename to development/social/app/components/creator/components/elements/CountersRow.tsx
index 9f4eafc3..f364adcb 100644
--- a/src/apps/social/app/creator/components/elements/CountersRow.tsx
+++ b/development/social/app/components/creator/components/elements/CountersRow.tsx
@@ -1,7 +1,7 @@
import { Row } from '@maskingtech/designsystem';
-import { Quantifier } from '~/app/common';
+import { Quantifier } from '~/components/common';
type Props = {
readonly postCount: number;
diff --git a/src/apps/social/app/creator/components/elements/JoinedColumn.tsx b/development/social/app/components/creator/components/elements/JoinedColumn.tsx
similarity index 100%
rename from src/apps/social/app/creator/components/elements/JoinedColumn.tsx
rename to development/social/app/components/creator/components/elements/JoinedColumn.tsx
diff --git a/src/apps/social/app/creator/components/elements/NamesColumn.tsx b/development/social/app/components/creator/components/elements/NamesColumn.tsx
similarity index 100%
rename from src/apps/social/app/creator/components/elements/NamesColumn.tsx
rename to development/social/app/components/creator/components/elements/NamesColumn.tsx
diff --git a/src/apps/social/app/creator/components/elements/NamesRow.tsx b/development/social/app/components/creator/components/elements/NamesRow.tsx
similarity index 100%
rename from src/apps/social/app/creator/components/elements/NamesRow.tsx
rename to development/social/app/components/creator/components/elements/NamesRow.tsx
diff --git a/src/apps/social/app/creator/components/elements/TimeElapsedColumn.tsx b/development/social/app/components/creator/components/elements/TimeElapsedColumn.tsx
similarity index 90%
rename from src/apps/social/app/creator/components/elements/TimeElapsedColumn.tsx
rename to development/social/app/components/creator/components/elements/TimeElapsedColumn.tsx
index 4963982b..e3c9cb41 100644
--- a/src/apps/social/app/creator/components/elements/TimeElapsedColumn.tsx
+++ b/development/social/app/components/creator/components/elements/TimeElapsedColumn.tsx
@@ -1,7 +1,7 @@
import { ClickArea, Column, Text } from '@maskingtech/designsystem';
-import { TimeElapsed } from '~/app/common';
+import { TimeElapsed } from '~/components/common';
type Props = {
readonly fullName: string;
diff --git a/src/apps/social/app/creator/index.ts b/development/social/app/components/creator/index.ts
similarity index 100%
rename from src/apps/social/app/creator/index.ts
rename to development/social/app/components/creator/index.ts
diff --git a/src/apps/social/app/editor/Editor.ts b/development/social/app/components/editor/Editor.ts
similarity index 100%
rename from src/apps/social/app/editor/Editor.ts
rename to development/social/app/components/editor/Editor.ts
diff --git a/src/apps/social/app/editor/Renderer.ts b/development/social/app/components/editor/Renderer.ts
similarity index 100%
rename from src/apps/social/app/editor/Renderer.ts
rename to development/social/app/components/editor/Renderer.ts
diff --git a/src/apps/social/app/editor/Workbench.ts b/development/social/app/components/editor/Workbench.ts
similarity index 100%
rename from src/apps/social/app/editor/Workbench.ts
rename to development/social/app/components/editor/Workbench.ts
diff --git a/src/apps/social/app/editor/assets/add-speech-bubble.png b/development/social/app/components/editor/assets/add-speech-bubble.png
similarity index 100%
rename from src/apps/social/app/editor/assets/add-speech-bubble.png
rename to development/social/app/components/editor/assets/add-speech-bubble.png
diff --git a/src/apps/social/app/editor/assets/delete.png b/development/social/app/components/editor/assets/delete.png
similarity index 100%
rename from src/apps/social/app/editor/assets/delete.png
rename to development/social/app/components/editor/assets/delete.png
diff --git a/src/apps/social/app/editor/assets/edit.png b/development/social/app/components/editor/assets/edit.png
similarity index 100%
rename from src/apps/social/app/editor/assets/edit.png
rename to development/social/app/components/editor/assets/edit.png
diff --git a/src/apps/social/app/editor/assets/instructions.png b/development/social/app/components/editor/assets/instructions.png
similarity index 100%
rename from src/apps/social/app/editor/assets/instructions.png
rename to development/social/app/components/editor/assets/instructions.png
diff --git a/src/apps/social/app/editor/assets/move.png b/development/social/app/components/editor/assets/move.png
similarity index 100%
rename from src/apps/social/app/editor/assets/move.png
rename to development/social/app/components/editor/assets/move.png
diff --git a/src/apps/social/app/editor/assets/resize.png b/development/social/app/components/editor/assets/resize.png
similarity index 100%
rename from src/apps/social/app/editor/assets/resize.png
rename to development/social/app/components/editor/assets/resize.png
diff --git a/src/apps/social/app/editor/assets/select-image.png b/development/social/app/components/editor/assets/select-image.png
similarity index 100%
rename from src/apps/social/app/editor/assets/select-image.png
rename to development/social/app/components/editor/assets/select-image.png
diff --git a/src/apps/social/app/editor/assets/take-picture.png b/development/social/app/components/editor/assets/take-picture.png
similarity index 100%
rename from src/apps/social/app/editor/assets/take-picture.png
rename to development/social/app/components/editor/assets/take-picture.png
diff --git a/src/apps/social/app/editor/definitions/Styling.ts b/development/social/app/components/editor/definitions/Styling.ts
similarity index 100%
rename from src/apps/social/app/editor/definitions/Styling.ts
rename to development/social/app/components/editor/definitions/Styling.ts
diff --git a/src/apps/social/app/editor/elements/Element.ts b/development/social/app/components/editor/elements/Element.ts
similarity index 100%
rename from src/apps/social/app/editor/elements/Element.ts
rename to development/social/app/components/editor/elements/Element.ts
diff --git a/src/apps/social/app/editor/elements/Group.ts b/development/social/app/components/editor/elements/Group.ts
similarity index 100%
rename from src/apps/social/app/editor/elements/Group.ts
rename to development/social/app/components/editor/elements/Group.ts
diff --git a/src/apps/social/app/editor/elements/ImageElement.ts b/development/social/app/components/editor/elements/ImageElement.ts
similarity index 100%
rename from src/apps/social/app/editor/elements/ImageElement.ts
rename to development/social/app/components/editor/elements/ImageElement.ts
diff --git a/src/apps/social/app/editor/index.ts b/development/social/app/components/editor/index.ts
similarity index 100%
rename from src/apps/social/app/editor/index.ts
rename to development/social/app/components/editor/index.ts
diff --git a/src/apps/social/app/editor/model/Background.ts b/development/social/app/components/editor/model/Background.ts
similarity index 100%
rename from src/apps/social/app/editor/model/Background.ts
rename to development/social/app/components/editor/model/Background.ts
diff --git a/src/apps/social/app/editor/model/Bubble.ts b/development/social/app/components/editor/model/Bubble.ts
similarity index 100%
rename from src/apps/social/app/editor/model/Bubble.ts
rename to development/social/app/components/editor/model/Bubble.ts
diff --git a/src/apps/social/app/editor/model/Model.ts b/development/social/app/components/editor/model/Model.ts
similarity index 100%
rename from src/apps/social/app/editor/model/Model.ts
rename to development/social/app/components/editor/model/Model.ts
diff --git a/src/apps/social/app/editor/model/SpeechBubble.ts b/development/social/app/components/editor/model/SpeechBubble.ts
similarity index 100%
rename from src/apps/social/app/editor/model/SpeechBubble.ts
rename to development/social/app/components/editor/model/SpeechBubble.ts
diff --git a/src/apps/social/app/editor/toolkit/BubbleSelection.ts b/development/social/app/components/editor/toolkit/BubbleSelection.ts
similarity index 100%
rename from src/apps/social/app/editor/toolkit/BubbleSelection.ts
rename to development/social/app/components/editor/toolkit/BubbleSelection.ts
diff --git a/src/apps/social/app/editor/toolkit/Button.ts b/development/social/app/components/editor/toolkit/Button.ts
similarity index 100%
rename from src/apps/social/app/editor/toolkit/Button.ts
rename to development/social/app/components/editor/toolkit/Button.ts
diff --git a/src/apps/social/app/editor/toolkit/MainActions.ts b/development/social/app/components/editor/toolkit/MainActions.ts
similarity index 100%
rename from src/apps/social/app/editor/toolkit/MainActions.ts
rename to development/social/app/components/editor/toolkit/MainActions.ts
diff --git a/src/apps/social/app/editor/utils/Camera.ts b/development/social/app/components/editor/utils/Camera.ts
similarity index 100%
rename from src/apps/social/app/editor/utils/Camera.ts
rename to development/social/app/components/editor/utils/Camera.ts
diff --git a/src/apps/social/app/editor/utils/CameraDialog.ts b/development/social/app/components/editor/utils/CameraDialog.ts
similarity index 100%
rename from src/apps/social/app/editor/utils/CameraDialog.ts
rename to development/social/app/components/editor/utils/CameraDialog.ts
diff --git a/src/apps/social/app/editor/utils/FileDialog.ts b/development/social/app/components/editor/utils/FileDialog.ts
similarity index 100%
rename from src/apps/social/app/editor/utils/FileDialog.ts
rename to development/social/app/components/editor/utils/FileDialog.ts
diff --git a/src/apps/social/app/editor/utils/Geometry.ts b/development/social/app/components/editor/utils/Geometry.ts
similarity index 100%
rename from src/apps/social/app/editor/utils/Geometry.ts
rename to development/social/app/components/editor/utils/Geometry.ts
diff --git a/src/apps/social/app/editor/utils/InputDialog.ts b/development/social/app/components/editor/utils/InputDialog.ts
similarity index 100%
rename from src/apps/social/app/editor/utils/InputDialog.ts
rename to development/social/app/components/editor/utils/InputDialog.ts
diff --git a/src/apps/social/app/editor/utils/InputManager.ts b/development/social/app/components/editor/utils/InputManager.ts
similarity index 100%
rename from src/apps/social/app/editor/utils/InputManager.ts
rename to development/social/app/components/editor/utils/InputManager.ts
diff --git a/src/apps/social/app/editor/utils/TextProcessor.ts b/development/social/app/components/editor/utils/TextProcessor.ts
similarity index 100%
rename from src/apps/social/app/editor/utils/TextProcessor.ts
rename to development/social/app/components/editor/utils/TextProcessor.ts
diff --git a/src/apps/social/app/explore/Creators.tsx b/development/social/app/components/explore/Creators.tsx
similarity index 56%
rename from src/apps/social/app/explore/Creators.tsx
rename to development/social/app/components/explore/Creators.tsx
index 121bfa40..183aa422 100644
--- a/src/apps/social/app/explore/Creators.tsx
+++ b/development/social/app/components/explore/Creators.tsx
@@ -1,5 +1,5 @@
-import { Explore } from '~/app/relation';
+import { Explore } from '~/components/relation';
export default function Feature()
{
diff --git a/src/apps/social/app/explore/Main.tsx b/development/social/app/components/explore/Main.tsx
similarity index 85%
rename from src/apps/social/app/explore/Main.tsx
rename to development/social/app/components/explore/Main.tsx
index 04f6bf88..6a58bb9e 100644
--- a/src/apps/social/app/explore/Main.tsx
+++ b/development/social/app/components/explore/Main.tsx
@@ -1,7 +1,7 @@
import { Outlet } from 'react-router-dom';
-import { Tabs } from '~/app/common';
+import { Tabs } from '~/components/common';
const tabItems = [
{ title: 'Comics', route: 'comics' },
diff --git a/src/apps/social/app/explore/Posts.tsx b/development/social/app/components/explore/Posts.tsx
similarity index 58%
rename from src/apps/social/app/explore/Posts.tsx
rename to development/social/app/components/explore/Posts.tsx
index 6ae248b6..e3af0d5c 100644
--- a/src/apps/social/app/explore/Posts.tsx
+++ b/development/social/app/components/explore/Posts.tsx
@@ -1,5 +1,5 @@
-import { Explore } from '~/app/post';
+import { Explore } from '~/components/post';
export default function Feature()
{
diff --git a/src/apps/social/app/explore/Routes.tsx b/development/social/app/components/explore/Routes.tsx
similarity index 89%
rename from src/apps/social/app/explore/Routes.tsx
rename to development/social/app/components/explore/Routes.tsx
index 0d78ad96..cbad8a1c 100644
--- a/src/apps/social/app/explore/Routes.tsx
+++ b/development/social/app/components/explore/Routes.tsx
@@ -1,7 +1,7 @@
import { Route, Navigate } from 'react-router-dom';
-import { NotFound } from '~/app/common';
+import { NotFound } from '~/components/common';
import Main from './Main';
import Posts from './Posts';
diff --git a/src/apps/social/app/explore/index.ts b/development/social/app/components/explore/index.ts
similarity index 100%
rename from src/apps/social/app/explore/index.ts
rename to development/social/app/components/explore/index.ts
diff --git a/src/apps/social/app/main.css b/development/social/app/components/main.css
similarity index 100%
rename from src/apps/social/app/main.css
rename to development/social/app/components/main.css
diff --git a/src/apps/social/app/main.tsx b/development/social/app/components/main.tsx
similarity index 100%
rename from src/apps/social/app/main.tsx
rename to development/social/app/components/main.tsx
diff --git a/src/apps/social/app/notification/Main.tsx b/development/social/app/components/notification/Main.tsx
similarity index 91%
rename from src/apps/social/app/notification/Main.tsx
rename to development/social/app/components/notification/Main.tsx
index e24d69ff..a7c895ee 100644
--- a/src/apps/social/app/notification/Main.tsx
+++ b/development/social/app/components/notification/Main.tsx
@@ -3,9 +3,9 @@ import { Column } from '@maskingtech/designsystem';
import type { AggregatedData as AggregatedNotificationData } from '^/domain/notification/aggregate';
-import { PullToRefresh, ResultContainer, ScrollLoader } from '~/app/common';
-import { useViewProfile } from '~/app/profile';
-import { useEstablish } from '~/app/relation';
+import { PullToRefresh, ResultContainer, ScrollLoader } from '~/components/common';
+import { useViewProfile } from '~/components/profile';
+import { useEstablish } from '~/components/relation';
import PanelList from './components/PanelList';
diff --git a/src/apps/social/app/notification/Routes.tsx b/development/social/app/components/notification/Routes.tsx
similarity index 78%
rename from src/apps/social/app/notification/Routes.tsx
rename to development/social/app/components/notification/Routes.tsx
index 3d08e651..88e65259 100644
--- a/src/apps/social/app/notification/Routes.tsx
+++ b/development/social/app/components/notification/Routes.tsx
@@ -1,7 +1,7 @@
import { Route } from 'react-router-dom';
-import { NotFound } from '~/app/common';
+import { NotFound } from '~/components/common';
import Main from './Main';
diff --git a/src/apps/social/app/notification/components/Panel.tsx b/development/social/app/components/notification/components/Panel.tsx
similarity index 97%
rename from src/apps/social/app/notification/components/Panel.tsx
rename to development/social/app/components/notification/components/Panel.tsx
index 89b3efe1..4ef8ae0d 100644
--- a/src/apps/social/app/notification/components/Panel.tsx
+++ b/development/social/app/components/notification/components/Panel.tsx
@@ -5,7 +5,7 @@ import { Types } from '^/domain/notification';
import type { AggregatedData as AggregatedNotificationData } from '^/domain/notification/aggregate';
import type { AggregatedData as AggregatedRelationData } from '^/domain/relation/aggregate';
-import { TimeElapsed } from '~/app/relation';
+import { TimeElapsed } from '~/components/relation';
import RatedPost from './elements/RatedPost';
import ReactedToPost from './elements/ReactedToPost';
diff --git a/src/apps/social/app/notification/components/PanelList.tsx b/development/social/app/components/notification/components/PanelList.tsx
similarity index 100%
rename from src/apps/social/app/notification/components/PanelList.tsx
rename to development/social/app/components/notification/components/PanelList.tsx
diff --git a/src/apps/social/app/notification/components/elements/Comic.tsx b/development/social/app/components/notification/components/elements/Comic.tsx
similarity index 100%
rename from src/apps/social/app/notification/components/elements/Comic.tsx
rename to development/social/app/components/notification/components/elements/Comic.tsx
diff --git a/src/apps/social/app/notification/components/elements/Comment.tsx b/development/social/app/components/notification/components/elements/Comment.tsx
similarity index 100%
rename from src/apps/social/app/notification/components/elements/Comment.tsx
rename to development/social/app/components/notification/components/elements/Comment.tsx
diff --git a/src/apps/social/app/notification/components/elements/RatedPost.tsx b/development/social/app/components/notification/components/elements/RatedPost.tsx
similarity index 100%
rename from src/apps/social/app/notification/components/elements/RatedPost.tsx
rename to development/social/app/components/notification/components/elements/RatedPost.tsx
diff --git a/src/apps/social/app/notification/components/elements/ReactedToPost.tsx b/development/social/app/components/notification/components/elements/ReactedToPost.tsx
similarity index 100%
rename from src/apps/social/app/notification/components/elements/ReactedToPost.tsx
rename to development/social/app/components/notification/components/elements/ReactedToPost.tsx
diff --git a/src/apps/social/app/notification/components/elements/StartedFollowing.tsx b/development/social/app/components/notification/components/elements/StartedFollowing.tsx
similarity index 100%
rename from src/apps/social/app/notification/components/elements/StartedFollowing.tsx
rename to development/social/app/components/notification/components/elements/StartedFollowing.tsx
diff --git a/src/apps/social/app/notification/hooks/useNotifications.ts b/development/social/app/components/notification/hooks/useNotifications.ts
similarity index 90%
rename from src/apps/social/app/notification/hooks/useNotifications.ts
rename to development/social/app/components/notification/hooks/useNotifications.ts
index 14c390d4..73ca7021 100644
--- a/src/apps/social/app/notification/hooks/useNotifications.ts
+++ b/development/social/app/components/notification/hooks/useNotifications.ts
@@ -5,7 +5,7 @@ import { usePagination } from '@maskingtech/react-toolkit';
import { requester } from '^/domain/authentication';
import getRecentNotifications from '^/domain/notification/getRecentAggregated';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function useNotifications()
{
diff --git a/src/apps/social/app/notification/hooks/useViewNotificationDetails.ts b/development/social/app/components/notification/hooks/useViewNotificationDetails.ts
similarity index 100%
rename from src/apps/social/app/notification/hooks/useViewNotificationDetails.ts
rename to development/social/app/components/notification/hooks/useViewNotificationDetails.ts
diff --git a/src/apps/social/app/notification/index.ts b/development/social/app/components/notification/index.ts
similarity index 100%
rename from src/apps/social/app/notification/index.ts
rename to development/social/app/components/notification/index.ts
diff --git a/src/apps/social/app/post/Create.tsx b/development/social/app/components/post/Create.tsx
similarity index 80%
rename from src/apps/social/app/post/Create.tsx
rename to development/social/app/components/post/Create.tsx
index b27a425c..e6653096 100644
--- a/src/apps/social/app/post/Create.tsx
+++ b/development/social/app/components/post/Create.tsx
@@ -1,5 +1,5 @@
-import { Editor } from '~/app/comic';
+import { Editor } from '~/components/comic';
import useAddComicPost from './hooks/useAddComicPost';
diff --git a/src/apps/social/app/post/Creator.tsx b/development/social/app/components/post/Creator.tsx
similarity index 94%
rename from src/apps/social/app/post/Creator.tsx
rename to development/social/app/components/post/Creator.tsx
index 7ffcb11e..5402c774 100644
--- a/src/apps/social/app/post/Creator.tsx
+++ b/development/social/app/components/post/Creator.tsx
@@ -1,8 +1,8 @@
import { Column } from '@maskingtech/designsystem';
-import { PullToRefresh, ResultContainer, ScrollLoader } from '~/app/common';
-import { useToggle } from '~/app/rating';
+import { PullToRefresh, ResultContainer, ScrollLoader } from '~/components/common';
+import { useToggle } from '~/components/rating';
import useCreatorPosts from './hooks/useCreatorPosts';
import useViewPostDetails from './hooks/useViewPostDetails';
diff --git a/src/apps/social/app/post/Details.tsx b/development/social/app/components/post/Details.tsx
similarity index 88%
rename from src/apps/social/app/post/Details.tsx
rename to development/social/app/components/post/Details.tsx
index 4b1f3749..5a04af7d 100644
--- a/src/apps/social/app/post/Details.tsx
+++ b/development/social/app/components/post/Details.tsx
@@ -5,10 +5,10 @@ import { Column, Ruler } from '@maskingtech/designsystem';
import type { AggregatedData as AggregatedPostData } from '^/domain/post/aggregate';
-import { BackRow, LoadingAndResultContainer } from '~/app/common';
-import { useViewProfile } from '~/app/profile';
-import { useToggle } from '~/app/rating';
-import { useEstablish } from '~/app/relation';
+import { BackRow, LoadingAndResultContainer } from '~/components/common';
+import { useViewProfile } from '~/components/profile';
+import { useToggle } from '~/components/rating';
+import { useEstablish } from '~/components/relation';
import DetailsPanel from './components/DetailsPanel';
diff --git a/src/apps/social/app/post/Explore.tsx b/development/social/app/components/post/Explore.tsx
similarity index 89%
rename from src/apps/social/app/post/Explore.tsx
rename to development/social/app/components/post/Explore.tsx
index 8be8c3db..72736cc2 100644
--- a/src/apps/social/app/post/Explore.tsx
+++ b/development/social/app/components/post/Explore.tsx
@@ -1,11 +1,11 @@
import { Column } from '@maskingtech/designsystem';
-import { PullToRefresh, ResultContainer, ScrollLoader, OrderRow } from '~/app/common';
+import { PullToRefresh, ResultContainer, ScrollLoader, OrderRow } from '~/components/common';
-import { useViewProfile } from '~/app/profile';
-import { useToggle } from '~/app/rating';
-import { useEstablish } from '~/app/relation';
+import { useViewProfile } from '~/components/profile';
+import { useToggle } from '~/components/rating';
+import { useEstablish } from '~/components/relation';
import PanelList from './components/PanelList';
diff --git a/src/apps/social/app/post/Following.tsx b/development/social/app/components/post/Following.tsx
similarity index 88%
rename from src/apps/social/app/post/Following.tsx
rename to development/social/app/components/post/Following.tsx
index bc299632..d52e3d00 100644
--- a/src/apps/social/app/post/Following.tsx
+++ b/development/social/app/components/post/Following.tsx
@@ -1,10 +1,10 @@
import { Column } from '@maskingtech/designsystem';
-import { PullToRefresh, ResultContainer, ScrollLoader } from '~/app/common';
-import { useViewProfile } from '~/app/profile';
-import { useToggle } from '~/app/rating';
-import { useEstablish } from '~/app/relation';
+import { PullToRefresh, ResultContainer, ScrollLoader } from '~/components/common';
+import { useViewProfile } from '~/components/profile';
+import { useToggle } from '~/components/rating';
+import { useEstablish } from '~/components/relation';
import PanelList from './components/PanelList';
diff --git a/src/apps/social/app/post/Highlight.tsx b/development/social/app/components/post/Highlight.tsx
similarity index 88%
rename from src/apps/social/app/post/Highlight.tsx
rename to development/social/app/components/post/Highlight.tsx
index a42c945c..f635aa4f 100644
--- a/src/apps/social/app/post/Highlight.tsx
+++ b/development/social/app/components/post/Highlight.tsx
@@ -5,11 +5,11 @@ import { Column, Ruler } from '@maskingtech/designsystem';
import type { AggregatedData as AggregatedPostData } from '^/domain/post/aggregate';
-import { LoadingAndResultContainer } from '~/app/common';
-import { useViewProfile } from '~/app/profile';
-import { useToggle } from '~/app/rating';
-import { SingleReactionRow } from '~/app/reaction';
-import { useEstablish } from '~/app/relation';
+import { LoadingAndResultContainer } from '~/components/common';
+import { useViewProfile } from '~/components/profile';
+import { useToggle } from '~/components/rating';
+import { SingleReactionRow } from '~/components/reaction';
+import { useEstablish } from '~/components/relation';
import DetailsPanel from './components/DetailsPanel';
import LargePanel from './components/LargePanel';
diff --git a/src/apps/social/app/post/Main.tsx b/development/social/app/components/post/Main.tsx
similarity index 100%
rename from src/apps/social/app/post/Main.tsx
rename to development/social/app/components/post/Main.tsx
diff --git a/src/apps/social/app/post/Reactions.tsx b/development/social/app/components/post/Reactions.tsx
similarity index 90%
rename from src/apps/social/app/post/Reactions.tsx
rename to development/social/app/components/post/Reactions.tsx
index 8da2d5b5..2594a9cf 100644
--- a/src/apps/social/app/post/Reactions.tsx
+++ b/development/social/app/components/post/Reactions.tsx
@@ -3,11 +3,11 @@ import { Column } from '@maskingtech/designsystem';
import type { AggregatedData as AggregatedPostData } from '^/domain/post/aggregate';
-import { PullToRefresh, ResultContainer, ScrollLoader, OrderAndAddRow } from '~/app/common';
+import { PullToRefresh, ResultContainer, ScrollLoader, OrderAndAddRow } from '~/components/common';
-import { useViewProfile } from '~/app/profile';
-import { useToggle } from '~/app/rating';
-import { useEstablish } from '~/app/relation';
+import { useViewProfile } from '~/components/profile';
+import { useToggle } from '~/components/rating';
+import { useEstablish } from '~/components/relation';
import PanelList from './components/PanelList';
diff --git a/src/apps/social/app/post/Recommended.tsx b/development/social/app/components/post/Recommended.tsx
similarity index 88%
rename from src/apps/social/app/post/Recommended.tsx
rename to development/social/app/components/post/Recommended.tsx
index 68f9b502..fc192738 100644
--- a/src/apps/social/app/post/Recommended.tsx
+++ b/development/social/app/components/post/Recommended.tsx
@@ -1,10 +1,10 @@
import { Column } from '@maskingtech/designsystem';
-import { PullToRefresh, ResultContainer, ScrollLoader } from '~/app/common';
-import { useViewProfile } from '~/app/profile';
-import { useToggle } from '~/app/rating';
-import { useEstablish } from '~/app/relation';
+import { PullToRefresh, ResultContainer, ScrollLoader } from '~/components/common';
+import { useViewProfile } from '~/components/profile';
+import { useToggle } from '~/components/rating';
+import { useEstablish } from '~/components/relation';
import PanelList from './components/PanelList';
diff --git a/src/apps/social/app/post/Remove.tsx b/development/social/app/components/post/Remove.tsx
similarity index 88%
rename from src/apps/social/app/post/Remove.tsx
rename to development/social/app/components/post/Remove.tsx
index 89046146..451a863d 100644
--- a/src/apps/social/app/post/Remove.tsx
+++ b/development/social/app/components/post/Remove.tsx
@@ -1,7 +1,7 @@
import { useNavigate, useParams } from 'react-router-dom';
-import { ConfirmationPanel, Modal } from '~/app/common';
+import { ConfirmationPanel, Modal } from '~/components/common';
import useRemove from './hooks/useRemovePost';
diff --git a/src/apps/social/app/post/Routes.tsx b/development/social/app/components/post/Routes.tsx
similarity index 92%
rename from src/apps/social/app/post/Routes.tsx
rename to development/social/app/components/post/Routes.tsx
index 440bc8c4..17101d4c 100644
--- a/src/apps/social/app/post/Routes.tsx
+++ b/development/social/app/components/post/Routes.tsx
@@ -1,7 +1,7 @@
import { Route } from 'react-router-dom';
-import reactionRoutes from '~/app/reaction';
+import reactionRoutes from '~/components/reaction';
import Main from './Main';
import Create from './Create';
diff --git a/src/apps/social/app/post/components/DetailsPanel.tsx b/development/social/app/components/post/components/DetailsPanel.tsx
similarity index 90%
rename from src/apps/social/app/post/components/DetailsPanel.tsx
rename to development/social/app/components/post/components/DetailsPanel.tsx
index 3a9c01ee..a9a76d0f 100644
--- a/src/apps/social/app/post/components/DetailsPanel.tsx
+++ b/development/social/app/components/post/components/DetailsPanel.tsx
@@ -4,10 +4,10 @@ import type { AggregatedData as AggregatedRelationData } from '^/domain/relation
import { Column, Panel, Row } from '@maskingtech/designsystem';
-import { RemoveOption } from '~/app/common';
-import { Image as Comic } from '~/app/comic';
-import { Comment } from '~/app/comment';
-import { TimeElapsed } from '~/app/relation';
+import { RemoveOption } from '~/components/common';
+import { Image as Comic } from '~/components/comic';
+import { Comment } from '~/components/comment';
+import { TimeElapsed } from '~/components/relation';
import EngagementRow from './elements/EngagementRow';
diff --git a/src/apps/social/app/post/components/LargePanel.tsx b/development/social/app/components/post/components/LargePanel.tsx
similarity index 91%
rename from src/apps/social/app/post/components/LargePanel.tsx
rename to development/social/app/components/post/components/LargePanel.tsx
index 10a49878..f12cb719 100644
--- a/src/apps/social/app/post/components/LargePanel.tsx
+++ b/development/social/app/components/post/components/LargePanel.tsx
@@ -4,9 +4,9 @@ import type { AggregatedData as AggregatedRelationData } from '^/domain/relation
import { ClickArea, Column, Panel } from '@maskingtech/designsystem';
-import { Image as Comic } from '~/app/comic';
-import { Comment } from '~/app/comment';
-import { TimeElapsed } from '~/app/relation';
+import { Image as Comic } from '~/components/comic';
+import { Comment } from '~/components/comment';
+import { TimeElapsed } from '~/components/relation';
import EngagementsRow from './elements/EngagementRow';
diff --git a/src/apps/social/app/post/components/PanelGrid.tsx b/development/social/app/components/post/components/PanelGrid.tsx
similarity index 100%
rename from src/apps/social/app/post/components/PanelGrid.tsx
rename to development/social/app/components/post/components/PanelGrid.tsx
diff --git a/src/apps/social/app/post/components/PanelList.tsx b/development/social/app/components/post/components/PanelList.tsx
similarity index 100%
rename from src/apps/social/app/post/components/PanelList.tsx
rename to development/social/app/components/post/components/PanelList.tsx
diff --git a/src/apps/social/app/post/components/SmallPanel.tsx b/development/social/app/components/post/components/SmallPanel.tsx
similarity index 89%
rename from src/apps/social/app/post/components/SmallPanel.tsx
rename to development/social/app/components/post/components/SmallPanel.tsx
index 0db750e9..86cdb9cb 100644
--- a/src/apps/social/app/post/components/SmallPanel.tsx
+++ b/development/social/app/components/post/components/SmallPanel.tsx
@@ -3,9 +3,9 @@ import type { AggregatedData as AggregatedPostData } from '^/domain/post/aggrega
import { ClickArea, Column, Panel, Row } from '@maskingtech/designsystem';
-import { TimeElapsed } from '~/app/common';
-import { Image as Comic } from '~/app/comic';
-import { Comment } from '~/app/comment';
+import { TimeElapsed } from '~/components/common';
+import { Image as Comic } from '~/components/comic';
+import { Comment } from '~/components/comment';
import EngagementsRow from './elements/EngagementRow';
diff --git a/src/apps/social/app/post/components/elements/EngagementRow.tsx b/development/social/app/components/post/components/elements/EngagementRow.tsx
similarity index 81%
rename from src/apps/social/app/post/components/elements/EngagementRow.tsx
rename to development/social/app/components/post/components/elements/EngagementRow.tsx
index 4ce50827..ae45ce22 100644
--- a/src/apps/social/app/post/components/elements/EngagementRow.tsx
+++ b/development/social/app/components/post/components/elements/EngagementRow.tsx
@@ -1,8 +1,8 @@
import { Row } from '@maskingtech/designsystem';
-import { Engagement as RatingEngagement } from '~/app/rating';
-import { Engagement as ReactionEngagement } from '~/app/reaction';
+import { Engagement as RatingEngagement } from '~/components/rating';
+import { Engagement as ReactionEngagement } from '~/components/reaction';
type Props = {
readonly isRated: boolean;
diff --git a/src/apps/social/app/post/hooks/useAddComicPost.ts b/development/social/app/components/post/hooks/useAddComicPost.ts
similarity index 82%
rename from src/apps/social/app/post/hooks/useAddComicPost.ts
rename to development/social/app/components/post/hooks/useAddComicPost.ts
index ac4a21b9..1af22460 100644
--- a/src/apps/social/app/post/hooks/useAddComicPost.ts
+++ b/development/social/app/components/post/hooks/useAddComicPost.ts
@@ -4,9 +4,9 @@ import { useNavigate } from 'react-router-dom';
import { requester } from '^/domain/authentication';
import createPostWithComic from '^/domain/post/createWithComic';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
-import { useAppContext } from '~/app/application';
+import { useAppContext } from '~/components/application';
export default function useAddComicPost()
{
diff --git a/src/apps/social/app/post/hooks/useConfirmPostRemoval.ts b/development/social/app/components/post/hooks/useConfirmPostRemoval.ts
similarity index 100%
rename from src/apps/social/app/post/hooks/useConfirmPostRemoval.ts
rename to development/social/app/components/post/hooks/useConfirmPostRemoval.ts
diff --git a/src/apps/social/app/post/hooks/useCreatorPosts.ts b/development/social/app/components/post/hooks/useCreatorPosts.ts
similarity index 90%
rename from src/apps/social/app/post/hooks/useCreatorPosts.ts
rename to development/social/app/components/post/hooks/useCreatorPosts.ts
index e4f15277..b3535339 100644
--- a/src/apps/social/app/post/hooks/useCreatorPosts.ts
+++ b/development/social/app/components/post/hooks/useCreatorPosts.ts
@@ -5,7 +5,7 @@ import { usePagination } from '@maskingtech/react-toolkit';
import { requester } from '^/domain/authentication';
import getCreatorPosts from '^/domain/post/getByCreatorAggregated';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function useCreatorPosts(creatorId: string)
{
diff --git a/src/apps/social/app/post/hooks/useExplorePosts.ts b/development/social/app/components/post/hooks/useExplorePosts.ts
similarity index 89%
rename from src/apps/social/app/post/hooks/useExplorePosts.ts
rename to development/social/app/components/post/hooks/useExplorePosts.ts
index 002150dc..055e79e9 100644
--- a/src/apps/social/app/post/hooks/useExplorePosts.ts
+++ b/development/social/app/components/post/hooks/useExplorePosts.ts
@@ -5,7 +5,7 @@ import { usePagination } from '@maskingtech/react-toolkit';
import { requester } from '^/domain/authentication';
import explorePosts from '^/domain/post/exploreAggregated';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function useExplorePosts()
{
diff --git a/src/apps/social/app/post/hooks/useGoToParentPost.ts b/development/social/app/components/post/hooks/useGoToParentPost.ts
similarity index 100%
rename from src/apps/social/app/post/hooks/useGoToParentPost.ts
rename to development/social/app/components/post/hooks/useGoToParentPost.ts
diff --git a/src/apps/social/app/post/hooks/useHighlight.ts b/development/social/app/components/post/hooks/useHighlight.ts
similarity index 91%
rename from src/apps/social/app/post/hooks/useHighlight.ts
rename to development/social/app/components/post/hooks/useHighlight.ts
index f06bfaea..84b2ba19 100644
--- a/src/apps/social/app/post/hooks/useHighlight.ts
+++ b/development/social/app/components/post/hooks/useHighlight.ts
@@ -6,7 +6,7 @@ import { useLoadData } from '@maskingtech/react-toolkit';
import requester from '^/domain/authentication/requester';
import get from '^/domain/post/getByIdAggregated';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function useReaction()
{
diff --git a/src/apps/social/app/post/hooks/usePost.ts b/development/social/app/components/post/hooks/usePost.ts
similarity index 90%
rename from src/apps/social/app/post/hooks/usePost.ts
rename to development/social/app/components/post/hooks/usePost.ts
index acdddbe6..d6d4288c 100644
--- a/src/apps/social/app/post/hooks/usePost.ts
+++ b/development/social/app/components/post/hooks/usePost.ts
@@ -6,7 +6,7 @@ import { useLoadData } from '@maskingtech/react-toolkit';
import { requester } from '^/domain/authentication';
import get from '^/domain/post/getByIdAggregated';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function usePost()
{
diff --git a/src/apps/social/app/post/hooks/usePostsFollowing.ts b/development/social/app/components/post/hooks/usePostsFollowing.ts
similarity index 89%
rename from src/apps/social/app/post/hooks/usePostsFollowing.ts
rename to development/social/app/components/post/hooks/usePostsFollowing.ts
index ebe8a4b7..c67a75cb 100644
--- a/src/apps/social/app/post/hooks/usePostsFollowing.ts
+++ b/development/social/app/components/post/hooks/usePostsFollowing.ts
@@ -5,7 +5,7 @@ import { usePagination } from '@maskingtech/react-toolkit';
import { requester } from '^/domain/authentication';
import getPostsFollowing from '^/domain/post/getByFollowingAggregated';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function usePostsFollowing()
{
diff --git a/src/apps/social/app/post/hooks/usePostsRecommended.ts b/development/social/app/components/post/hooks/usePostsRecommended.ts
similarity index 90%
rename from src/apps/social/app/post/hooks/usePostsRecommended.ts
rename to development/social/app/components/post/hooks/usePostsRecommended.ts
index fffaf3f0..dcfd1452 100644
--- a/src/apps/social/app/post/hooks/usePostsRecommended.ts
+++ b/development/social/app/components/post/hooks/usePostsRecommended.ts
@@ -5,7 +5,7 @@ import { usePagination } from '@maskingtech/react-toolkit';
import { requester } from '^/domain/authentication';
import getPostsRecommended from '^/domain/post/getRecommendedAggregated';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function usePostsRecommended()
{
diff --git a/src/apps/social/app/post/hooks/useReactions.ts b/development/social/app/components/post/hooks/useReactions.ts
similarity index 91%
rename from src/apps/social/app/post/hooks/useReactions.ts
rename to development/social/app/components/post/hooks/useReactions.ts
index d711dae6..38d8073b 100644
--- a/src/apps/social/app/post/hooks/useReactions.ts
+++ b/development/social/app/components/post/hooks/useReactions.ts
@@ -6,7 +6,7 @@ import { usePagination } from '@maskingtech/react-toolkit';
import { requester } from '^/domain/authentication';
import type { AggregatedData as AggregatedPostData } from '^/domain/post/aggregate';
import getReactionsByPost from '^/domain/post/getByParentAggregated';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function useReactions(post: AggregatedPostData)
{
diff --git a/src/apps/social/app/post/hooks/useRemovePost.ts b/development/social/app/components/post/hooks/useRemovePost.ts
similarity index 82%
rename from src/apps/social/app/post/hooks/useRemovePost.ts
rename to development/social/app/components/post/hooks/useRemovePost.ts
index 3eb4c500..f2ee6314 100644
--- a/src/apps/social/app/post/hooks/useRemovePost.ts
+++ b/development/social/app/components/post/hooks/useRemovePost.ts
@@ -2,11 +2,11 @@
import { useCallback } from 'react';
import { useNavigate } from 'react-router-dom';
-import { useAppContext } from '~/app/application';
+import { useAppContext } from '~/components/application';
import { requester } from '^/domain/authentication';
import remove from '^/domain/post/remove';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function useRemovePost(id?: string)
{
diff --git a/src/apps/social/app/post/hooks/useReorderList.ts b/development/social/app/components/post/hooks/useReorderList.ts
similarity index 100%
rename from src/apps/social/app/post/hooks/useReorderList.ts
rename to development/social/app/components/post/hooks/useReorderList.ts
diff --git a/src/apps/social/app/post/hooks/useShowCreateReaction.ts b/development/social/app/components/post/hooks/useShowCreateReaction.ts
similarity index 100%
rename from src/apps/social/app/post/hooks/useShowCreateReaction.ts
rename to development/social/app/components/post/hooks/useShowCreateReaction.ts
diff --git a/src/apps/social/app/post/hooks/useViewPostDetails.ts b/development/social/app/components/post/hooks/useViewPostDetails.ts
similarity index 100%
rename from src/apps/social/app/post/hooks/useViewPostDetails.ts
rename to development/social/app/components/post/hooks/useViewPostDetails.ts
diff --git a/src/apps/social/app/post/hooks/useViewPostHighlightDetails.ts b/development/social/app/components/post/hooks/useViewPostHighlightDetails.ts
similarity index 100%
rename from src/apps/social/app/post/hooks/useViewPostHighlightDetails.ts
rename to development/social/app/components/post/hooks/useViewPostHighlightDetails.ts
diff --git a/src/apps/social/app/post/index.ts b/development/social/app/components/post/index.ts
similarity index 100%
rename from src/apps/social/app/post/index.ts
rename to development/social/app/components/post/index.ts
diff --git a/src/apps/social/app/profile/Comics.tsx b/development/social/app/components/profile/Comics.tsx
similarity index 84%
rename from src/apps/social/app/profile/Comics.tsx
rename to development/social/app/components/profile/Comics.tsx
index 8cbaee07..4bbcb131 100644
--- a/src/apps/social/app/profile/Comics.tsx
+++ b/development/social/app/components/profile/Comics.tsx
@@ -1,7 +1,7 @@
import { useOutletContext } from 'react-router-dom';
-import { Creator } from '~/app/post';
+import { Creator } from '~/components/post';
type Props = {
readonly creatorId: string;
diff --git a/src/apps/social/app/profile/Followers.tsx b/development/social/app/components/profile/Followers.tsx
similarity index 82%
rename from src/apps/social/app/profile/Followers.tsx
rename to development/social/app/components/profile/Followers.tsx
index e4fff87d..edac690e 100644
--- a/src/apps/social/app/profile/Followers.tsx
+++ b/development/social/app/components/profile/Followers.tsx
@@ -1,7 +1,7 @@
import { useOutletContext } from 'react-router-dom';
-import { Followers } from '~/app/relation';
+import { Followers } from '~/components/relation';
type Props = {
readonly creatorId?: string;
diff --git a/src/apps/social/app/profile/Following.tsx b/development/social/app/components/profile/Following.tsx
similarity index 82%
rename from src/apps/social/app/profile/Following.tsx
rename to development/social/app/components/profile/Following.tsx
index 73faf4a6..633e90c2 100644
--- a/src/apps/social/app/profile/Following.tsx
+++ b/development/social/app/components/profile/Following.tsx
@@ -1,7 +1,7 @@
import { useOutletContext } from 'react-router-dom';
-import { Following } from '~/app/relation';
+import { Following } from '~/components/relation';
type Props = {
readonly creatorId?: string;
diff --git a/src/apps/social/app/profile/Main.tsx b/development/social/app/components/profile/Main.tsx
similarity index 89%
rename from src/apps/social/app/profile/Main.tsx
rename to development/social/app/components/profile/Main.tsx
index 13b8a829..00c977f4 100644
--- a/src/apps/social/app/profile/Main.tsx
+++ b/development/social/app/components/profile/Main.tsx
@@ -4,8 +4,8 @@ import { useParams, Outlet } from 'react-router-dom';
import { Column } from '@maskingtech/designsystem';
-import { Tabs, LoadingAndResultContainer } from '~/app/common';
-import { Profile } from '~/app/relation';
+import { Tabs, LoadingAndResultContainer } from '~/components/common';
+import { Profile } from '~/components/relation';
import useProfile from './hooks/useProfile';
import useEditProfile from './hooks/useEditProfile';
diff --git a/src/apps/social/app/profile/Routes.tsx b/development/social/app/components/profile/Routes.tsx
similarity index 91%
rename from src/apps/social/app/profile/Routes.tsx
rename to development/social/app/components/profile/Routes.tsx
index fcd363bc..5ed6a4d1 100644
--- a/src/apps/social/app/profile/Routes.tsx
+++ b/development/social/app/components/profile/Routes.tsx
@@ -1,7 +1,7 @@
import { Route, Navigate } from 'react-router-dom';
-import { NotFound } from '~/app/common';
+import { NotFound } from '~/components/common';
import Main from './Main';
import Comics from './Comics';
diff --git a/src/apps/social/app/profile/hooks/useEditProfile.ts b/development/social/app/components/profile/hooks/useEditProfile.ts
similarity index 100%
rename from src/apps/social/app/profile/hooks/useEditProfile.ts
rename to development/social/app/components/profile/hooks/useEditProfile.ts
diff --git a/src/apps/social/app/profile/hooks/useProfile.ts b/development/social/app/components/profile/hooks/useProfile.ts
similarity index 90%
rename from src/apps/social/app/profile/hooks/useProfile.ts
rename to development/social/app/components/profile/hooks/useProfile.ts
index ec424cf5..a7372330 100644
--- a/src/apps/social/app/profile/hooks/useProfile.ts
+++ b/development/social/app/components/profile/hooks/useProfile.ts
@@ -5,7 +5,7 @@ import { useLoadData } from '@maskingtech/react-toolkit';
import { requester } from '^/domain/authentication';
import getCreatorByNickname from '^/domain/creator/getByNicknameAggregated';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function useProfile(nickname?: string)
{
diff --git a/src/apps/social/app/profile/hooks/useViewProfile.ts b/development/social/app/components/profile/hooks/useViewProfile.ts
similarity index 100%
rename from src/apps/social/app/profile/hooks/useViewProfile.ts
rename to development/social/app/components/profile/hooks/useViewProfile.ts
diff --git a/src/apps/social/app/profile/index.ts b/development/social/app/components/profile/index.ts
similarity index 100%
rename from src/apps/social/app/profile/index.ts
rename to development/social/app/components/profile/index.ts
diff --git a/src/apps/social/app/rating/components/Engagement.tsx b/development/social/app/components/rating/components/Engagement.tsx
similarity index 93%
rename from src/apps/social/app/rating/components/Engagement.tsx
rename to development/social/app/components/rating/components/Engagement.tsx
index 197232b1..b8316591 100644
--- a/src/apps/social/app/rating/components/Engagement.tsx
+++ b/development/social/app/components/rating/components/Engagement.tsx
@@ -1,7 +1,7 @@
import { ClickArea, Row } from '@maskingtech/designsystem';
-import { CompactNumber } from '~/app/common';
+import { CompactNumber } from '~/components/common';
import Icon from './elements/Icon';
import type { EngageHandler } from './hooks/useEngagement';
diff --git a/src/apps/social/app/rating/components/elements/Icon.tsx b/development/social/app/components/rating/components/elements/Icon.tsx
similarity index 100%
rename from src/apps/social/app/rating/components/elements/Icon.tsx
rename to development/social/app/components/rating/components/elements/Icon.tsx
diff --git a/src/apps/social/app/rating/components/hooks/useEngagement.ts b/development/social/app/components/rating/components/hooks/useEngagement.ts
similarity index 100%
rename from src/apps/social/app/rating/components/hooks/useEngagement.ts
rename to development/social/app/components/rating/components/hooks/useEngagement.ts
diff --git a/src/apps/social/app/rating/hooks/useTogglePostRating.ts b/development/social/app/components/rating/hooks/useTogglePostRating.ts
similarity index 88%
rename from src/apps/social/app/rating/hooks/useTogglePostRating.ts
rename to development/social/app/components/rating/hooks/useTogglePostRating.ts
index 13ba8ed1..07f0f066 100644
--- a/src/apps/social/app/rating/hooks/useTogglePostRating.ts
+++ b/development/social/app/components/rating/hooks/useTogglePostRating.ts
@@ -4,7 +4,7 @@ import { useCallback } from 'react';
import { requester } from '^/domain/authentication';
import type { AggregatedData as AggregatedPostData } from '^/domain/post/aggregate';
import toggleRating from '^/domain/rating/toggle';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function useTogglePostRating()
{
diff --git a/src/apps/social/app/rating/index.ts b/development/social/app/components/rating/index.ts
similarity index 100%
rename from src/apps/social/app/rating/index.ts
rename to development/social/app/components/rating/index.ts
diff --git a/src/apps/social/app/reaction/Create.tsx b/development/social/app/components/reaction/Create.tsx
similarity index 92%
rename from src/apps/social/app/reaction/Create.tsx
rename to development/social/app/components/reaction/Create.tsx
index 2985d55e..6b10c48e 100644
--- a/src/apps/social/app/reaction/Create.tsx
+++ b/development/social/app/components/reaction/Create.tsx
@@ -1,7 +1,7 @@
import { useParams, Outlet } from 'react-router-dom';
-import { Modal, Tabs } from '~/app/common';
+import { Modal, Tabs } from '~/components/common';
import useViewPost from './hooks/useViewPost';
import useViewReaction from './hooks/useViewReaction';
diff --git a/src/apps/social/app/reaction/CreateComic.tsx b/development/social/app/components/reaction/CreateComic.tsx
similarity index 91%
rename from src/apps/social/app/reaction/CreateComic.tsx
rename to development/social/app/components/reaction/CreateComic.tsx
index 01951503..f75aab5b 100644
--- a/src/apps/social/app/reaction/CreateComic.tsx
+++ b/development/social/app/components/reaction/CreateComic.tsx
@@ -1,7 +1,7 @@
import { useOutletContext } from 'react-router-dom';
-import { Editor } from '~/app/comic';
+import { Editor } from '~/components/comic';
import useCreateComic from './hooks/useCreateComic';
diff --git a/src/apps/social/app/reaction/CreateComment.tsx b/development/social/app/components/reaction/CreateComment.tsx
similarity index 92%
rename from src/apps/social/app/reaction/CreateComment.tsx
rename to development/social/app/components/reaction/CreateComment.tsx
index b0998d14..1d839580 100644
--- a/src/apps/social/app/reaction/CreateComment.tsx
+++ b/development/social/app/components/reaction/CreateComment.tsx
@@ -1,7 +1,7 @@
import { useOutletContext } from 'react-router-dom';
-import { Form } from '~/app/comment';
+import { Form } from '~/components/comment';
import useCreateComment from './hooks/useCreateComment';
diff --git a/src/apps/social/app/reaction/Routes.tsx b/development/social/app/components/reaction/Routes.tsx
similarity index 100%
rename from src/apps/social/app/reaction/Routes.tsx
rename to development/social/app/components/reaction/Routes.tsx
diff --git a/src/apps/social/app/reaction/components/Engagement.tsx b/development/social/app/components/reaction/components/Engagement.tsx
similarity index 89%
rename from src/apps/social/app/reaction/components/Engagement.tsx
rename to development/social/app/components/reaction/components/Engagement.tsx
index 3a15b60f..f03ffba1 100644
--- a/src/apps/social/app/reaction/components/Engagement.tsx
+++ b/development/social/app/components/reaction/components/Engagement.tsx
@@ -1,7 +1,7 @@
import { ClickArea, Row } from '@maskingtech/designsystem';
-import { CompactNumber } from '~/app/common';
+import { CompactNumber } from '~/components/common';
import Icon from './elements/Icon';
diff --git a/src/apps/social/app/reaction/components/SingleReactionRow.tsx b/development/social/app/components/reaction/components/SingleReactionRow.tsx
similarity index 100%
rename from src/apps/social/app/reaction/components/SingleReactionRow.tsx
rename to development/social/app/components/reaction/components/SingleReactionRow.tsx
diff --git a/src/apps/social/app/reaction/components/elements/Icon.tsx b/development/social/app/components/reaction/components/elements/Icon.tsx
similarity index 100%
rename from src/apps/social/app/reaction/components/elements/Icon.tsx
rename to development/social/app/components/reaction/components/elements/Icon.tsx
diff --git a/src/apps/social/app/reaction/hooks/useCreateComic.ts b/development/social/app/components/reaction/hooks/useCreateComic.ts
similarity index 89%
rename from src/apps/social/app/reaction/hooks/useCreateComic.ts
rename to development/social/app/components/reaction/hooks/useCreateComic.ts
index bb8e72c0..e8ad3eb6 100644
--- a/src/apps/social/app/reaction/hooks/useCreateComic.ts
+++ b/development/social/app/components/reaction/hooks/useCreateComic.ts
@@ -3,7 +3,7 @@ import { useCallback } from 'react';
import { requester } from '^/domain/authentication';
import createComicReaction from '^/domain/post/createWithComic';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function useCreateComic(postId: string, onCreated: (reactionId: string) => void)
{
diff --git a/src/apps/social/app/reaction/hooks/useCreateComment.ts b/development/social/app/components/reaction/hooks/useCreateComment.ts
similarity index 89%
rename from src/apps/social/app/reaction/hooks/useCreateComment.ts
rename to development/social/app/components/reaction/hooks/useCreateComment.ts
index 6962f55e..23bdc4eb 100644
--- a/src/apps/social/app/reaction/hooks/useCreateComment.ts
+++ b/development/social/app/components/reaction/hooks/useCreateComment.ts
@@ -3,7 +3,7 @@ import { useCallback } from 'react';
import { requester } from '^/domain/authentication';
import createCommentReaction from '^/domain/post/createWithComment';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function useCreateComment(postId: string, onCreated: (reactionId: string) => void)
{
diff --git a/src/apps/social/app/reaction/hooks/useViewPost.tsx b/development/social/app/components/reaction/hooks/useViewPost.tsx
similarity index 100%
rename from src/apps/social/app/reaction/hooks/useViewPost.tsx
rename to development/social/app/components/reaction/hooks/useViewPost.tsx
diff --git a/src/apps/social/app/reaction/hooks/useViewReaction.tsx b/development/social/app/components/reaction/hooks/useViewReaction.tsx
similarity index 100%
rename from src/apps/social/app/reaction/hooks/useViewReaction.tsx
rename to development/social/app/components/reaction/hooks/useViewReaction.tsx
diff --git a/src/apps/social/app/reaction/index.ts b/development/social/app/components/reaction/index.ts
similarity index 100%
rename from src/apps/social/app/reaction/index.ts
rename to development/social/app/components/reaction/index.ts
diff --git a/src/apps/social/app/relation/Explore.tsx b/development/social/app/components/relation/Explore.tsx
similarity index 94%
rename from src/apps/social/app/relation/Explore.tsx
rename to development/social/app/components/relation/Explore.tsx
index b8f364da..b5027fd6 100644
--- a/src/apps/social/app/relation/Explore.tsx
+++ b/development/social/app/components/relation/Explore.tsx
@@ -3,8 +3,8 @@ import { Column } from '@maskingtech/designsystem';
import type { AggregatedData as AggregatedRelationData } from '^/domain/relation/aggregate';
-import { OrderAndSearchRow, PullToRefresh, ResultContainer, ScrollLoader } from '~/app/common';
-import { useViewProfile } from '~/app/profile';
+import { OrderAndSearchRow, PullToRefresh, ResultContainer, ScrollLoader } from '~/components/common';
+import { useViewProfile } from '~/components/profile';
import PanelList from './components/PanelList';
diff --git a/src/apps/social/app/relation/Followers.tsx b/development/social/app/components/relation/Followers.tsx
similarity index 94%
rename from src/apps/social/app/relation/Followers.tsx
rename to development/social/app/components/relation/Followers.tsx
index 89849a13..55f9af4e 100644
--- a/src/apps/social/app/relation/Followers.tsx
+++ b/development/social/app/components/relation/Followers.tsx
@@ -1,8 +1,8 @@
import { Column } from '@maskingtech/designsystem';
-import { OrderAndSearchRow, PullToRefresh, ResultContainer, ScrollLoader } from '~/app/common';
-import { useViewProfile } from '~/app/profile';
+import { OrderAndSearchRow, PullToRefresh, ResultContainer, ScrollLoader } from '~/components/common';
+import { useViewProfile } from '~/components/profile';
import PanelList from './components/PanelList';
diff --git a/src/apps/social/app/relation/Following.tsx b/development/social/app/components/relation/Following.tsx
similarity index 94%
rename from src/apps/social/app/relation/Following.tsx
rename to development/social/app/components/relation/Following.tsx
index 86dcd366..6588c261 100644
--- a/src/apps/social/app/relation/Following.tsx
+++ b/development/social/app/components/relation/Following.tsx
@@ -1,8 +1,8 @@
import { Column } from '@maskingtech/designsystem';
-import { OrderAndSearchRow, PullToRefresh, ResultContainer, ScrollLoader } from '~/app/common';
-import { useViewProfile } from '~/app/profile';
+import { OrderAndSearchRow, PullToRefresh, ResultContainer, ScrollLoader } from '~/components/common';
+import { useViewProfile } from '~/components/profile';
import PanelList from './components/PanelList';
diff --git a/src/apps/social/app/relation/Profile.tsx b/development/social/app/components/relation/Profile.tsx
similarity index 92%
rename from src/apps/social/app/relation/Profile.tsx
rename to development/social/app/components/relation/Profile.tsx
index c5abfe56..72ccf580 100644
--- a/src/apps/social/app/relation/Profile.tsx
+++ b/development/social/app/components/relation/Profile.tsx
@@ -1,7 +1,7 @@
import type { AggregatedData as AggregatedRelationData } from '^/domain/relation/aggregate';
-import { LoadingAndResultContainer } from '~/app/common';
+import { LoadingAndResultContainer } from '~/components/common';
import Profile from './components/Profile';
diff --git a/src/apps/social/app/relation/components/Counters.tsx b/development/social/app/components/relation/components/Counters.tsx
similarity index 93%
rename from src/apps/social/app/relation/components/Counters.tsx
rename to development/social/app/components/relation/components/Counters.tsx
index e3a2c471..ba8c2313 100644
--- a/src/apps/social/app/relation/components/Counters.tsx
+++ b/development/social/app/components/relation/components/Counters.tsx
@@ -1,7 +1,7 @@
import type { AggregatedData as AggregatedRelationData } from '^/domain/relation/aggregate';
-import { Counters } from '~/app/creator';
+import { Counters } from '~/components/creator';
import FollowRow from './elements/FollowRow';
diff --git a/src/apps/social/app/relation/components/Panel.tsx b/development/social/app/components/relation/components/Panel.tsx
similarity index 100%
rename from src/apps/social/app/relation/components/Panel.tsx
rename to development/social/app/components/relation/components/Panel.tsx
diff --git a/src/apps/social/app/relation/components/PanelList.tsx b/development/social/app/components/relation/components/PanelList.tsx
similarity index 100%
rename from src/apps/social/app/relation/components/PanelList.tsx
rename to development/social/app/components/relation/components/PanelList.tsx
diff --git a/src/apps/social/app/relation/components/Profile.tsx b/development/social/app/components/relation/components/Profile.tsx
similarity index 93%
rename from src/apps/social/app/relation/components/Profile.tsx
rename to development/social/app/components/relation/components/Profile.tsx
index 18e1bbbb..34448930 100644
--- a/src/apps/social/app/relation/components/Profile.tsx
+++ b/development/social/app/components/relation/components/Profile.tsx
@@ -1,7 +1,7 @@
import type { AggregatedData as AggregatedRelationData } from '^/domain/relation/aggregate';
-import { Profile } from '~/app/creator';
+import { Profile } from '~/components/creator';
import FollowRow from './elements/FollowRow';
diff --git a/src/apps/social/app/relation/components/TimeElapsed.tsx b/development/social/app/components/relation/components/TimeElapsed.tsx
similarity index 95%
rename from src/apps/social/app/relation/components/TimeElapsed.tsx
rename to development/social/app/components/relation/components/TimeElapsed.tsx
index 2d897fc1..d2896da5 100644
--- a/src/apps/social/app/relation/components/TimeElapsed.tsx
+++ b/development/social/app/components/relation/components/TimeElapsed.tsx
@@ -1,7 +1,7 @@
import type { AggregatedData as AggregatedRelationData } from '^/domain/relation/aggregate';
-import { TimeElapsed } from '~/app/creator';
+import { TimeElapsed } from '~/components/creator';
import FollowRow from './elements/FollowRow';
diff --git a/src/apps/social/app/relation/components/elements/FollowButton.tsx b/development/social/app/components/relation/components/elements/FollowButton.tsx
similarity index 100%
rename from src/apps/social/app/relation/components/elements/FollowButton.tsx
rename to development/social/app/components/relation/components/elements/FollowButton.tsx
diff --git a/src/apps/social/app/relation/components/elements/FollowRow.tsx b/development/social/app/components/relation/components/elements/FollowRow.tsx
similarity index 93%
rename from src/apps/social/app/relation/components/elements/FollowRow.tsx
rename to development/social/app/components/relation/components/elements/FollowRow.tsx
index 7e8d44ac..fb3c8d9a 100644
--- a/src/apps/social/app/relation/components/elements/FollowRow.tsx
+++ b/development/social/app/components/relation/components/elements/FollowRow.tsx
@@ -3,7 +3,7 @@ import type { ReactNode } from 'react';
import { Row } from '@maskingtech/designsystem';
-import { EditButton } from '~/app/common';
+import { EditButton } from '~/components/common';
import FollowButton from './FollowButton';
diff --git a/src/apps/social/app/relation/components/hooks/useEstablish.ts b/development/social/app/components/relation/components/hooks/useEstablish.ts
similarity index 100%
rename from src/apps/social/app/relation/components/hooks/useEstablish.ts
rename to development/social/app/components/relation/components/hooks/useEstablish.ts
diff --git a/src/apps/social/app/relation/hooks/useCreatorFollowers.ts b/development/social/app/components/relation/hooks/useCreatorFollowers.ts
similarity index 92%
rename from src/apps/social/app/relation/hooks/useCreatorFollowers.ts
rename to development/social/app/components/relation/hooks/useCreatorFollowers.ts
index 21e78745..77f2eaa1 100644
--- a/src/apps/social/app/relation/hooks/useCreatorFollowers.ts
+++ b/development/social/app/components/relation/hooks/useCreatorFollowers.ts
@@ -5,7 +5,7 @@ import { usePagination } from '@maskingtech/react-toolkit';
import { requester } from '^/domain/authentication';
import getFollowers from '^/domain/relation/getFollowersAggregated';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function useCreatorFollowers(creatorId?: string)
{
diff --git a/src/apps/social/app/relation/hooks/useCreatorFollowing.ts b/development/social/app/components/relation/hooks/useCreatorFollowing.ts
similarity index 91%
rename from src/apps/social/app/relation/hooks/useCreatorFollowing.ts
rename to development/social/app/components/relation/hooks/useCreatorFollowing.ts
index 96c80638..f64ba8fb 100644
--- a/src/apps/social/app/relation/hooks/useCreatorFollowing.ts
+++ b/development/social/app/components/relation/hooks/useCreatorFollowing.ts
@@ -5,7 +5,7 @@ import { usePagination } from '@maskingtech/react-toolkit';
import { requester } from '^/domain/authentication';
import getFollowing from '^/domain/relation/getFollowingAggregated';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function useCreatorFollowing(creatorId?: string)
{
diff --git a/src/apps/social/app/relation/hooks/useEstablish.ts b/development/social/app/components/relation/hooks/useEstablish.ts
similarity index 89%
rename from src/apps/social/app/relation/hooks/useEstablish.ts
rename to development/social/app/components/relation/hooks/useEstablish.ts
index c4f81320..88fae99c 100644
--- a/src/apps/social/app/relation/hooks/useEstablish.ts
+++ b/development/social/app/components/relation/hooks/useEstablish.ts
@@ -4,7 +4,7 @@ import { useCallback } from 'react';
import { requester } from '^/domain/authentication';
import type { AggregatedData as AggregatedRelationData } from '^/domain/relation/aggregate';
import establishRelation from '^/domain/relation/establish';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function useEstablish()
{
diff --git a/src/apps/social/app/relation/hooks/useExploreCreators.ts b/development/social/app/components/relation/hooks/useExploreCreators.ts
similarity index 90%
rename from src/apps/social/app/relation/hooks/useExploreCreators.ts
rename to development/social/app/components/relation/hooks/useExploreCreators.ts
index 8b65726f..7cf072be 100644
--- a/src/apps/social/app/relation/hooks/useExploreCreators.ts
+++ b/development/social/app/components/relation/hooks/useExploreCreators.ts
@@ -5,7 +5,7 @@ import { usePagination } from '@maskingtech/react-toolkit';
import { requester } from '^/domain/authentication';
import exploreRelations from '^/domain/relation/exploreAggregated';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
export default function useExploreCreators()
{
diff --git a/src/apps/social/app/relation/hooks/useRelation.ts b/development/social/app/components/relation/hooks/useRelation.ts
similarity index 85%
rename from src/apps/social/app/relation/hooks/useRelation.ts
rename to development/social/app/components/relation/hooks/useRelation.ts
index 91e9d3b3..da36fa4e 100644
--- a/src/apps/social/app/relation/hooks/useRelation.ts
+++ b/development/social/app/components/relation/hooks/useRelation.ts
@@ -5,9 +5,9 @@ import { useLoadData } from '@maskingtech/react-toolkit';
import { requester } from '^/domain/authentication';
import getRelation from '^/domain/relation/getAggregated';
-import { tenant } from '^/domain/tenant';
+import { tenant } from '@comify/common/domain/tenant';
-import { useAppContext } from '~/app/application';
+import { useAppContext } from '~/components/application';
export default function useRelation(creatorId?: string)
{
diff --git a/src/apps/social/app/relation/hooks/useReorderList.ts b/development/social/app/components/relation/hooks/useReorderList.ts
similarity index 100%
rename from src/apps/social/app/relation/hooks/useReorderList.ts
rename to development/social/app/components/relation/hooks/useReorderList.ts
diff --git a/src/apps/social/app/relation/index.ts b/development/social/app/components/relation/index.ts
similarity index 100%
rename from src/apps/social/app/relation/index.ts
rename to development/social/app/components/relation/index.ts
diff --git a/src/apps/social/app/theme.css b/development/social/app/components/theme.css
similarity index 100%
rename from src/apps/social/app/theme.css
rename to development/social/app/components/theme.css
diff --git a/src/apps/social/app/timeline/Following.tsx b/development/social/app/components/timeline/Following.tsx
similarity index 58%
rename from src/apps/social/app/timeline/Following.tsx
rename to development/social/app/components/timeline/Following.tsx
index f17f851a..c09d5225 100644
--- a/src/apps/social/app/timeline/Following.tsx
+++ b/development/social/app/components/timeline/Following.tsx
@@ -1,5 +1,5 @@
-import { Following } from '~/app/post';
+import { Following } from '~/components/post';
export default function Feature()
{
diff --git a/src/apps/social/app/timeline/ForYou.tsx b/development/social/app/components/timeline/ForYou.tsx
similarity index 58%
rename from src/apps/social/app/timeline/ForYou.tsx
rename to development/social/app/components/timeline/ForYou.tsx
index e7b849ad..6564b52f 100644
--- a/src/apps/social/app/timeline/ForYou.tsx
+++ b/development/social/app/components/timeline/ForYou.tsx
@@ -1,5 +1,5 @@
-import { Recommended } from '~/app/post';
+import { Recommended } from '~/components/post';
export default function Feature()
{
diff --git a/src/apps/social/app/timeline/Main.tsx b/development/social/app/components/timeline/Main.tsx
similarity index 85%
rename from src/apps/social/app/timeline/Main.tsx
rename to development/social/app/components/timeline/Main.tsx
index d122bd5f..03098b12 100644
--- a/src/apps/social/app/timeline/Main.tsx
+++ b/development/social/app/components/timeline/Main.tsx
@@ -1,7 +1,7 @@
import { Outlet } from 'react-router-dom';
-import { Tabs } from '~/app/common';
+import { Tabs } from '~/components/common';
const tabItems = [
{ title: 'For you', route: 'foryou' },
diff --git a/src/apps/social/app/timeline/Routes.tsx b/development/social/app/components/timeline/Routes.tsx
similarity index 89%
rename from src/apps/social/app/timeline/Routes.tsx
rename to development/social/app/components/timeline/Routes.tsx
index d980689d..bca64cb6 100644
--- a/src/apps/social/app/timeline/Routes.tsx
+++ b/development/social/app/components/timeline/Routes.tsx
@@ -1,7 +1,7 @@
import { Route, Navigate } from 'react-router-dom';
-import { NotFound } from '~/app/common';
+import { NotFound } from '~/components/common';
import Main from './Main';
import ForYou from './ForYou';
diff --git a/src/apps/social/app/timeline/index.ts b/development/social/app/components/timeline/index.ts
similarity index 100%
rename from src/apps/social/app/timeline/index.ts
rename to development/social/app/components/timeline/index.ts
diff --git a/development/social/app/components/vite-env.d.ts b/development/social/app/components/vite-env.d.ts
new file mode 100644
index 00000000..11f02fe2
--- /dev/null
+++ b/development/social/app/components/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/src/apps/social/index.html b/development/social/app/index.html
similarity index 90%
rename from src/apps/social/index.html
rename to development/social/app/index.html
index ede92781..3a40dc8e 100644
--- a/src/apps/social/index.html
+++ b/development/social/app/index.html
@@ -15,7 +15,7 @@
-
+