This document describes the high-level architecture of Cella.
- Only build what you are going to use yourself.
- Stay humble and remain a template, not a framework. So prevent abstraction layers.
- A single, opinionated stack: ie. Cella uses Drizzle ORM and will not make it replacable with another ORM.
- Modularity. As CellaJS will grow, we need to make sure you can scaffold only the modules that you need.
- Open standards. Our long term vision is that each Cella - as in each cell - can speak fluently with other cells.
.
├── backend
│ ├── drizzle DB migrations
│ ├── seed Seed scripts
│ ├── src
│ │ ├── cron
│ │ ├── db
│ │ ├── lib Library code and helper functions
│ │ ├── middlewares Hono middlewares
│ │ ├── modules Modular distribution of routes, schemas etc
│ │ └── types
├── config Shared config: default, development, production etc
├── email React-email
├── env .env file for secure development
├── frontend Frontend SPA
│ ├── public
│ ├── src
│ │ ├── api API functions with RPC
│ │ ├── hooks
│ │ ├── json
│ │ ├── lib Library code and helper functions
│ │ ├── modules Modular distribution of components
│ │ ├── routes Code-based routes
│ │ ├── store Zustand data stores
│ │ ├── types
├── info General info
├── locales Translations
├── proxy Cloudflare proxy server
└── tus TUS server
An OpenAPI is built with zod-openapi. Please read the readme in this middleware before you get started.
Link to valuable resources: