This monorepo contains the following projects:
website/: The main websiteeditor/: The 3D editor applicationpackages/: Shared packagesprisma/: Database schema and client
- Node.js >= 18
- pnpm >= 8
-
Install dependencies:
pnpm install
-
Create a
.envfile at the root of the monorepo with your environment variables:# Required environment variables (see apps/editor/lib/env/server.ts for full list) DATABASE_URL=postgresql://... SHADOW_DATABASE_URL=postgresql://... NEXTAUTH_URL=http://localhost:3000 NEXTAUTH_SECRET=... GOOGLE_CLIENT_ID=... GOOGLE_CLIENT_SECRET=... # ... etc
Note: The
.envfile should be at the root of the monorepo. Symlinks have been created inapps/editor/.envandapps/website/.envthat point to the root.envfile. This allows:- Prisma to find
DATABASE_URLwhen running migrations frompackages/prisma/ - Next.js apps to access environment variables from their own directories
- All packages to share the same environment configuration
If you need to recreate the symlinks:
ln -sf ../../.env apps/editor/.env ln -sf ../../.env apps/website/.env
- Prisma to find
-
Generate Prisma client:
pnpm prisma:generate
-
Start the website:
pnpm dev:website
-
Start the editor:
pnpm dev:editor
-
Build the website:
pnpm build:website
-
Build the editor:
pnpm build:editor
Both the website and editor are deployed on Vercel. Each project has its own deployment configuration and environment variables.
envisioxr/
├── website/ # Main website
├── editor/ # 3D editor application
├── packages/ # Shared packages
│ └── prisma/ # Database schema and client
├── package.json # Root package.json with workspace config
└── pnpm-workspace.yaml # Workspace configuration