Single stack TypeScript template to build local-first SaaS.
Website
·
prerelease version
·
MIT license
❗ Please be aware this is a prerelease. It does not meet production requirements yet and large breaking changes still occur regularly. Want to contribute? Let's connect! ✉️ info@cellajs.com
- Node: Check node with
node -v
. Install Node 20.x or 22.x with (recommended) Volta. - Docker: Install Orbstack or Docker
git clone git@github.com:cellajs/cella.git && cd cella
Create a .env
in /env
folder. Recommended defaults are in .env.example
. Then install:
pnpm install
Make sure docker runs in the background with a postgres db in it.
pnpm run docker
Cella adopted a local-first strategy, whereby page-related resources are handled normally by an API, whereas content-related resources are fully handled local-first using ElectricSQL.
Therefore, generate
and migrate
commands will execute both for normal schemas and for electric schemas in /backend
.
pnpm run generate
pnpm run migrate
Generate local-first sync layer in /frontend
with ElectricSQL
pnpm run electrify
Check it out at localhost:3000
pnpm run dev
The user seed is required to add an ADMIN user. Check /backend/seed
for more info
pnpm run seed
Use Drizzle Studio to manage your local db on local.drizzle.studio
pnpm run studio
Cella uses Scalar for autogenerated OpenAPI docs. Docs refresh on changes at localhost:4000/docs
- Please install Biome for code style. Fix with
pnpm run check:fix
and type check withpnpm run check:types
- EADDRINUSE errors? Try
sudo lsof -i :1080 -i :3000 -i :4000
and thenkill -9 *PID*
with a space-separated list ofPID
- pnpm cache issues? Try
pnpm store prune
- turbo cache issues? Try adding
--force
to the command - docker cache issues? Try
docker builder prune --force
💙💛 Big thank you too drizzle-orm, hono, tanstack-router, electric-sql & shadcn.