A modern monorepo built with React and Hono.js, designed for deployment on Cloudflare Workers.
This project uses a monorepo structure with separate frontend and API applications:
- Frontend (
apps/web): React application with React Router 7 - API (
apps/api): Hono.js server - Packages: Shared ESLint and TypeScript configurations
- Runtime: Bun.js
- Frontend: React + React Router 7
- Backend: Hono.js
- Deployment: Cloudflare Workers
- Styling: Tailwind CSS
- Type Safety: TypeScript
- Code Quality: ESLint + Prettier
lyriko/
├── apps/
│ ├── web/ # React frontend
│ └── api/ # Hono.js API
├── packages/
│ ├── eslint-config/ # Shared ESLint config
│ └── typescript-config/ # Shared TypeScript config
└── ...
- Bun - Fast JavaScript runtime and package manager
pnpm install# Development
pnpm run dev # Start all apps in development mode
# Code Quality
pnpm run lint # Lint all workspaces
pnpm run format # Format all workspaces
# Individual Apps
cd apps/web && pnpm run dev # Start web app only
cd apps/api && pnpm run dev # Start API onlyBoth applications are configured for Cloudflare Workers deployment. Make sure you have:
- Wrangler CLI configured
- Cloudflare account set up
- Required environment variables in
.envfiles
pnpm dlx wrangler d1 migrations create lyriko create_user_table pnpm dlx prisma migrate diff --from-empty --to-schema-datamodel ./prisma/schema.prisma --script --output migrations/0001_create_user_table.sql
pnpm dlx wrangler d1 migrations apply lyriko --local pnpm dlx wrangler d1 migrations apply lyriko --remote pnpm dlx prisma generate
cd packages/ui pnpm dlx shadcn@latest add button
Both apps are optimized for Cloudflare Workers:
# Deploy web app
cd apps/web && pnpm run deploy
# Deploy API
cd apps/api && pnpm run deployThe project was bootstrapped using:
# API setup
pnpm create hono@latest
# Web app setup
pnpm create cloudflare@latest -- my-react-router-app --framework=react-routerTo set up symbolic links for AI agent configuration files:
ln -s AGENTS.md CLAUDE.md
ln -s AGENTS.md GEMINI.mdThis creates symbolic links so that both Claude and Gemini agents reference the same configuration file. When making updates to coding standards and project rules, only edit the AGENTS.md file - changes will automatically apply to both agents.