If the video doesn’t display, you can also watch it on 哔哩哔哩.
Prerequisites
Before you begin, make sure you have the following installed:- Node.js 20+ (LTS recommended)
- pnpm 9.0+
- PostgreSQL (for database)
- Git
Setup Instructions
1. Clone the repository
1. Clone the repository
Clone the Softmaple repository from GitHub:
2. Install dependencies
2. Install dependencies
Install all dependencies using pnpm:This will install dependencies for all workspaces in the monorepo.
3. Set up environment variables
3. Set up environment variables
Copy the web and database environment files and configure them:Edit Add the same database connection values to
apps/web/.env with your configuration:packages/db/.env so Prisma
commands can connect when run from the database package:4. Configure collaboration
4. Configure collaboration
Create
apps/collab-nitro/.env.local from its example, then provide
DATABASE_URL, SUPABASE_URL, SUPABASE_PUBLISHABLE_KEY, and
COLLAB_ALLOWED_ORIGINS. Local development defaults to the in-memory
realtime adapter; Vercel deployments require REDIS_URL.5. Set up the database
5. Set up the database
Generate Prisma client and run migrations:
6. Start the development servers
6. Start the development servers
Stock Open http://localhost:3000. Set
next dev does not forward /collab/* WebSocket upgrades. For a
working same-origin collaboration path locally, run the collab service,
Next.js on an internal port, and the Upgrade-capable router on port 3000:Terminal 1 — collaboration service
Terminal 2 — Next.js (internal)
Terminal 3 — same-origin /collab router
COLLAB_ALLOWED_ORIGINS="http://localhost:3000" in
apps/collab-nitro/.env.local.Alternatively, use vercel dev from the repository root so the Services
routing in vercel.json serves /collab/* from apps/collab-nitro.The local router is not a release-equivalent test of Vercel Services
WebSocket routing. Verify document and Presence handshakes on a real
Preview deployment before promoting.
Development Workflow
Running specific commands
Running specific commands
Use pnpm filters to run commands for specific packages:
Running tests
Running tests
Run tests for specific packages:
Creating branches
Creating branches
Follow the branch naming convention:
Next Steps
Explore the key features and start building with Softmaple:Monorepo Structure
Learn about the project structure and package organization.
API Reference
Explore the API endpoints for documents and workspaces.
Live Demo
Try Softmaple online without installing locally.
Community Support
Get help and connect with other developers.