Plainspace
Shared plans without the project-management overhead.
Tasks, notes, polls, and reminders in one simple Space.
Try Plainspace → · Self-host · Contribute
!A shared Plainspace with tasks, notes, a poll, and recent activity
One shared page for a weekend trip, household, club, or small team.
Lightweight coordination for real life
- Share one link — people can participate in any browser, without an app or account.
- Keep everything together — tasks, notes, checklists, polls, and availability.
- Stay in sync — live updates and optional push reminders keep the plan moving.
- Choose how to run it — use the hosted version or self-host with Docker.
Choose your path
- Use the hosted app: create a Space on plainspace.org →
- Run it yourself: read the complete self-hosting guide →
Self-host quick start
git clone https://github.com/super-productivity/plainspace.git
cd plainspace
cp .env.production.example .env # fill in the required values
docker compose pull && docker compose up -d --no-build
Then put a reverse proxy in front for TLS. The full guide — env values, nginx/Caddy configs, email, backups, upgrades — is in docs/self-hosting.md. If you host for anyone beyond yourself, replace the legal pages with your own (see the guide's §9).
Development
Plainspace is an npm-workspaces TypeScript application with a SolidJS PWA, a Hono API, and PostgreSQL via Drizzle ORM.
- Install Node.js 22 and Docker.
- Install dependencies with
npm ci. - Copy
.env.exampleto.envand adjust the local database settings. - Start PostgreSQL and apply migrations with
npm run db:up. - Start the API and web app with
npm run dev.
Commands
| Command | Purpose |
| --------------------- | ------------------------------------------------ |
| npm run dev | Start the Hono API and Vite development server |
| npm run check | Run type checking, ESLint, and formatting checks |
| npm test | Run web and server tests |
| npm run test:e2e | Run the Playwright browser suite |
| npm run build | Build the production PWA |
| npm run db:generate | Generate migration metadata (see warning below) |
| npm run db:migrate | Apply pending database migrations |
Migration warning: do not run db:generate for a new schema change
yet. Drizzle snapshots stop at migration 0012, so post-0012 migrations
are hand-reviewed SQL plus _journal.json. Reconcile the snapshot chain
before generating new migrations from the schema.
Structure
packages/shared— shared schemas, types, and constantspackages/server— Hono routes, Postgres schema, migrations, and servicespackages/web— SolidJS application and service workerpackages/e2e— Playwright browser testsdocs— self-hosting guide, architecture decisions, and design plans
Contributing
See CONTRIBUTING.md. Security reports: SECURITY.md.