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.
See our docs for more details.
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.