Skip to content

Latest commit

 

History

History
77 lines (67 loc) · 3.27 KB

ARCHITECTURE.md

File metadata and controls

77 lines (67 loc) · 3.27 KB

Architecture

This document describes the high-level architecture of Cella.

  1. Only build what you are going to use yourself.
  2. Stay humble and remain a template, not a framework. So prevent abstraction layers.
  3. A single, opinionated stack: ie. Cella uses Drizzle ORM and will not make it replacable with another ORM.
  4. Modularity. As CellaJS will grow, we need to make sure you can scaffold only the modules that you need.
  5. Open standards. Our long term vision is that each Cella - as in each cell - can speak fluently with other cells.

Backend

Frontend

Frontend / UI

Build tools

File structure

.
├── 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

API Design

An OpenAPI is built with zod-openapi. Please read the readme in this middleware before you get started.

Security

Link to valuable resources: