Template to build web apps with sync engine using hono, pg, drizzle, electric-sync, react, shadcn.
Overview
The content provided details the architecture, roadmap, installation steps, and deployment guide for a project called Cella. It explains the prerequisites, steps for local development setup, populating the database, and solving common issues like CORS errors and cache issues. The project is currently in a prerelease version and is licensed under MIT.
Features
- Architecture: Detailed stack details and conceptual decisions
- Roadmap: Provides insight into the current status and planned future developments
- Local Development Installation: Step-by-step guide for setting up the project on a local machine
- Deployment: Instructions on how to deploy a Cella project easily
- Seed Scripts: Includes scripts for adding ADMIN users and organizations with faker.js
- API Documentation: Automatically generated API docs accessible locally
- Common Issue Solutions: Troubleshooting tips for CORS, pnpm cache, turbo cache, and docker cache issues
- Acknowledgments: Credits various open-source projects like Drizzle, HonoJS, Tanstack Router & Shadcn for their contributions
Installation
- Clone Project & Open Directory:
git clone <project-url>
cd <project-folder>
- Set Environment Variables:
- Create a
.env
file in the env
folder based on the provided .env.example
- At minimum, add the
DATABASE_URL
variable
- Install Prerequisites:
- Node: Ensure Node version 20.x is installed using Volta
- pnpm: Install pnpm version 8.x with Volta
- Postgres: Install PostgreSQL 16.x (e.g., via Postgres.app on Mac)
- Install Dependencies:
- Populate Database:
- Execute database migration scripts
- Start Cella:
- Run using VSCode and Dev containers or Orbstack/Docker
Summary
The provided content offers a comprehensive look into the structure, setup, and deployment process of the Cella project. It covers essential aspects such as environment setup, prerequisite installations, database population, and troubleshooting guidance. Users are guided through the entire process, from cloning the project to running it locally. The inclusion of seed scripts and API documentation enhances the usability and understanding of the project.