The official monorepo for the Chinese Vocal Synthesizer Archive (CVSA) – a unified platform that aggregates and preserves information about the Chinese vocal synthesizer community.
CVSA is a community-driven archive that consolidates scattered information about Chinese singing voice synthesis community.
This monorepo contains all core components of the CVSA platform, managed with Turborepo and Bun.
cvsa/
├── apps/
│ ├── backend/ # Core REST API service (Elysia + Prisma)
│ └── frontend/ # Astro SSR application with React islands (Not implemented yet)
├── packages/
│ ├── config/ # Shared configuration (TypeScript, etc.)
│ └── db/ # Prisma schema and database client
├── .github/ # GitHub workflows and issue templates
└── turbo.json # Turborepo configuration
| Layer | Technology | Purpose |
|---|---|---|
| Runtime | Bun | Fast JavaScript runtime, package manager, test runner |
| Monorepo | Turborepo | Build system and task orchestration |
| Frontend | Astro + React | SSR with partial hydration (islands architecture) |
| Backend | Elysia | High-performance, type-safe API framework |
| Database | PostgreSQL + TimescaleDB | Core storage with time-series optimization |
| ORM | Prisma | Type-safe database client and migrations |
- Bun >= 1.3.10
- PostgreSQL >= 18
-
Clone the repository
git clone https://github.com/project-cvsa/cvsa cd cvsa -
Install dependencies
bun i
-
Set up environment variables
Create
.envfiles in each service directory following their.env.exampletemplates:cp apps/frontend/.env.example apps/frontend/.env cp packages/db/.env.example packages/db/.env
-
Initialize the database
cd packages/db # Generate Prisma client bun db:gen # Run migrations bun db:migrate:dev
Start all services in development mode:
bun dev| Command | Description |
|---|---|
bun dev |
Start all services in development mode |
bun build |
Build all applications |
bun lint |
Run Biome linter across the codebase |
bun lint:fix |
Fix linting issues automatically |
bun format |
Format code with Biome |
bun test |
Run tests across all packages |
See each package's README.md for available scripts.
This project is licensed under the GNU Affero General Public License v3.0 – see the LICENSE file for details.