TypeCell currently consists of
| development / CI | staging | prod | |
|---|---|---|---|
| React app (packages/editor) | Local | Vercel (branch-specific) | Vercel |
| HocusPocus Server (packages/server) | Local | Render (typecell-staging) | Render (typecell-prod) |
| Supabase DB infra (packages/server) | Docker | Supabase (typecell-staging) | Supabase (typecell-prod) |
A few principles:
- All Github Actions run against
local(i.e.: no external dependencies) - All components should be easy to self-host, we don't want forced dependencies on any cloud provider (note that both supabase and the server are self-hostable).
- Only www.typecell.org is considered
prod. All Vercel branch-preview environments are consideredstaging, except the main branch which isprod. - Preview environments all share the same
stagingdatabase. This means feature-branches must be compatible in terms of database schema. - Preview environments all share the same
HocusPocus backend server(packages/server). This means feature-branches must be compatible to run against the samepackages/server. - DB Migrations are deployed to
staging/prodwhen they are pushed to thestaging/mainbranch (see github workflows).
It should be fairly straightforward to host TypeCell yourself, at this moment we don't have a guide for this yet.