Prerequisites
Before starting, ensure you have the following installed:- Node.js 18 or higher
- npm 8 or higher (comes with Node.js)
- Supabase CLI (installation guide)
- Git for cloning the repository
Quick setup
Follow these four steps to get 8Space running on your local machine.Clone and install dependencies
Clone the repository and install all workspace dependencies from the project root:This installs dependencies for both the landing page and the main app using npm workspaces.
The monorepo uses npm workspaces to manage dependencies across multiple packages efficiently.
Start Supabase and initialize database
Navigate to the app package and start the local Supabase instance:The
supabase start command:- Downloads Docker containers for PostgreSQL, Auth, Storage, and more
- Starts services on predefined ports (API: 54321, DB: 54322, Studio: 54323)
- Outputs connection details including the
anon key
supabase db reset command:- Applies all migrations from
packages/app/supabase/migrations/ - Seeds the database with test data from
packages/app/supabase/seed.sql - Creates three test accounts with sample project data
Configure environment variables
Create environment files for both packages:For the main app (For the landing page (You can copy from the example files:Then edit the files to add your actual anon key.
packages/app/.env):packages/landing/.env.local) - optional:The landing page environment variables are optional for basic usage. Add Stripe and Resend keys only if you’re testing billing or email features.
Start the development environment
From the project root, start all services with a single command:This orchestrator script (
scripts/dev-all.mjs) starts:- Landing page at
http://localhost:3000(Next.js dev server) - Main app at
http://localhost:5173/app/(Vite dev server) - Swagger UI at a dynamically-assigned port (printed in console)
Individual service commands
Individual service commands
You can also run services separately:
Test your installation
Once all services are running, verify your setup:Access the application
- Open
http://localhost:5173/app/in your browser - You should see the 8Space login page
Log in with test accounts
The seed data creates three test accounts. All use the password:password123
Explore the demo project
After logging in, you’ll see the “Product Launch Q2” demo project with:- 5 sample tasks across different workflow columns
- Task dependencies demonstrating the timeline view
- Labels and priorities for task organization
- Multiple assignees showing collaboration features
Verify database connection
You can also access Supabase Studio to inspect the database:- Open
http://localhost:54323in your browser - Navigate to the Table Editor to see your data
- Check the Authentication section for user accounts
- View Database > Migrations to see applied schema changes
Common issues
Port already in use
Port already in use
If you see “port already in use” errors:For Supabase:For dev servers: Kill the process using the port or change ports in the respective config files.For Swagger UI: Set a custom port:
Supabase connection failed
Supabase connection failed
If the app can’t connect to Supabase:
-
Verify Supabase is running:
-
Check your
.envfile has the correct URL and anon key -
Restart Supabase:
Login fails with test accounts
Login fails with test accounts
If you can’t log in with the test accounts:
-
Reset the database to re-seed data:
-
Verify the email confirmations are disabled in
packages/app/supabase/config.toml:
npm install errors
npm install errors
If you encounter errors during
npm install:-
Clear npm cache:
-
Delete lock files and node_modules:
-
Reinstall:
Next steps
Now that you have 8Space running locally:Installation guide
Learn about advanced setup options, production deployment, and troubleshooting.
Configuration
Configure authentication providers, enable billing, and customize settings.
Database schema
Understand the database structure and relationships.
API reference
Explore the API endpoints and integrate with external tools.
Development workflow tips
Hot reload: Both Vite and Next.js support hot module replacement (HMR). Changes to source files will automatically reload in your browser.