diff --git a/apps/space/.env.example b/apps/space/.env.example
new file mode 100644
index 00000000000..7cecf3739c1
--- /dev/null
+++ b/apps/space/.env.example
@@ -0,0 +1 @@
+NEXT_PUBLIC_VERCEL_ENV=local
\ No newline at end of file
diff --git a/apps/space/.gitignore b/apps/space/.gitignore
new file mode 100644
index 00000000000..a2a963ee7e0
--- /dev/null
+++ b/apps/space/.gitignore
@@ -0,0 +1,39 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+.pnpm-debug.log*
+
+# local env files
+.env*.local
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
+
+# env
+.env
diff --git a/apps/space/.prettierignore b/apps/space/.prettierignore
new file mode 100644
index 00000000000..b9dc034527d
--- /dev/null
+++ b/apps/space/.prettierignore
@@ -0,0 +1,2 @@
+.next
+.vercel
\ No newline at end of file
diff --git a/apps/space/.prettierrc.json b/apps/space/.prettierrc.json
new file mode 100644
index 00000000000..4291d9f8484
--- /dev/null
+++ b/apps/space/.prettierrc.json
@@ -0,0 +1,7 @@
+{
+ "printWidth": 120,
+ "tabWidth": 2,
+ "semi": true,
+ "singleQuote": false,
+ "trailingComma": "es5"
+}
diff --git a/apps/space/README.md b/apps/space/README.md
new file mode 100644
index 00000000000..fc22981018c
--- /dev/null
+++ b/apps/space/README.md
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+Plane Space
+Open-source, self-hosted project planning tool
diff --git a/apps/space/app/[workspace_project_slug]/page.tsx b/apps/space/app/[workspace_project_slug]/page.tsx
new file mode 100644
index 00000000000..638d36e7726
--- /dev/null
+++ b/apps/space/app/[workspace_project_slug]/page.tsx
@@ -0,0 +1,9 @@
+import React from "react";
+
+const WorkspaceProjectPage = () => (
+
+ Plane Workspace project Space
+
+);
+
+export default WorkspaceProjectPage;
diff --git a/apps/space/app/layout.tsx b/apps/space/app/layout.tsx
new file mode 100644
index 00000000000..5c7de32ff2d
--- /dev/null
+++ b/apps/space/app/layout.tsx
@@ -0,0 +1,12 @@
+// root styles
+import "styles/globals.css";
+
+const RootLayout = ({ children }: { children: React.ReactNode }) => (
+
+
+ {children}
+
+
+);
+
+export default RootLayout;
diff --git a/apps/space/app/page.tsx b/apps/space/app/page.tsx
new file mode 100644
index 00000000000..bbfe9c3ea5c
--- /dev/null
+++ b/apps/space/app/page.tsx
@@ -0,0 +1,7 @@
+import React from "react";
+
+const HomePage = () => (
+ Plane Space
+);
+
+export default HomePage;
diff --git a/apps/space/lib/mobx-store/root.ts b/apps/space/lib/mobx-store/root.ts
new file mode 100644
index 00000000000..a1035682118
--- /dev/null
+++ b/apps/space/lib/mobx-store/root.ts
@@ -0,0 +1 @@
+export const init = {};
diff --git a/apps/space/next.config.js b/apps/space/next.config.js
new file mode 100644
index 00000000000..398eb04004b
--- /dev/null
+++ b/apps/space/next.config.js
@@ -0,0 +1,9 @@
+/** @type {import('next').NextConfig} */
+
+const nextConfig = {
+ experimental: {
+ appDir: true,
+ },
+};
+
+module.exports = nextConfig;
diff --git a/apps/space/package.json b/apps/space/package.json
new file mode 100644
index 00000000000..7ace168aaa3
--- /dev/null
+++ b/apps/space/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "plane-space",
+ "version": "0.0.1",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start",
+ "lint": "next lint"
+ },
+ "dependencies": {
+ "@headlessui/react": "^1.7.13",
+ "@types/node": "18.14.1",
+ "@types/nprogress": "^0.2.0",
+ "@types/react": "18.0.28",
+ "@types/react-dom": "18.0.11",
+ "axios": "^1.3.4",
+ "eslint": "8.34.0",
+ "eslint-config-next": "13.2.1",
+ "js-cookie": "^3.0.1",
+ "next": "^13.4.13",
+ "nprogress": "^0.2.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "typescript": "4.9.5",
+ "uuid": "^9.0.0"
+ },
+ "devDependencies": {
+ "@types/js-cookie": "^3.0.3",
+ "@types/uuid": "^9.0.1",
+ "autoprefixer": "^10.4.13",
+ "postcss": "^8.4.21",
+ "tailwindcss": "^3.2.7"
+ }
+}
diff --git a/apps/space/postcss.config.js b/apps/space/postcss.config.js
new file mode 100644
index 00000000000..12a703d900d
--- /dev/null
+++ b/apps/space/postcss.config.js
@@ -0,0 +1,6 @@
+module.exports = {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+};
diff --git a/apps/space/store/root.ts b/apps/space/store/root.ts
new file mode 100644
index 00000000000..a1035682118
--- /dev/null
+++ b/apps/space/store/root.ts
@@ -0,0 +1 @@
+export const init = {};
diff --git a/apps/space/styles/globals.css b/apps/space/styles/globals.css
new file mode 100644
index 00000000000..e493f0abc1c
--- /dev/null
+++ b/apps/space/styles/globals.css
@@ -0,0 +1,6 @@
+@import url("https://fonts.googleapis.com/css2?family=Inter:wght@200;300;400;500;600;700;800&display=swap");
+@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@48,400,0,0&display=swap");
+
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
diff --git a/apps/space/tailwind.config.js b/apps/space/tailwind.config.js
new file mode 100644
index 00000000000..145c65b5ac7
--- /dev/null
+++ b/apps/space/tailwind.config.js
@@ -0,0 +1,16 @@
+/** @type {import('tailwindcss').Config} */
+
+module.exports = {
+ content: [
+ "./app/**/*.{js,ts,jsx,tsx}",
+ "./pages/**/*.{js,ts,jsx,tsx}",
+ "./layouts/**/*.tsx",
+ "./components/**/*.{js,ts,jsx,tsx}",
+ ],
+ theme: {
+ extend: {
+ colors: {},
+ },
+ },
+ plugins: [],
+};
diff --git a/apps/space/tsconfig.json b/apps/space/tsconfig.json
new file mode 100644
index 00000000000..5404bd9fbf9
--- /dev/null
+++ b/apps/space/tsconfig.json
@@ -0,0 +1,23 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "baseUrl": ".",
+ "paths": {},
+ "plugins": [{ "name": "next" }]
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "server.js", ".next/types/**/*.ts"],
+ "exclude": ["node_modules"]
+}