An educational word search puzzle adventure game. Play career mode or invite friends to play together.
- TypeScript - For type safety and improved developer experience
- TanStack Router - File-based routing with full type safety
- TailwindCSS - Utility-first CSS for rapid UI development
- shadcn/ui - Reusable UI components
- Hono - Lightweight, performant server framework
- tRPC - End-to-end type-safe APIs
- Bun - Runtime environment
- Drizzle - TypeScript-first ORM
- SQLite - Database engine
- Oxlint - Oxlint + Oxfmt (linting & formatting)
First, install the dependencies:
pnpm installThis project uses SQLite with Drizzle ORM.
- Make sure you have a SQLite database set up.
- Apply the schema to your database:
pnpm run db:pushThen, run the development server:
pnpm run devOpen http://localhost:3001 in your browser to see the web application. The API is running at http://localhost:3000. The web socket API is running at http://localhost:3003.
For better observability, I recommend you run each service seperately. Check the Available Scripts section below for the necessary scripts.
bundy/
├── apps/
│ ├── web/ # Frontend application (React + TanStack Router)
│ └── server/ # Backend API (Hono, TRPC, Bun)
├── packages/
│ ├── api/ # API layer / business logic
│ └── db/ # Database schema & queries
│ └── auth # Authentication
│ └── env # Environment variables
pnpm run dev: Start all applications in development modepnpm run build: Build all applicationspnpm run dev:web: Start only the web applicationpnpm run dev:ws: Start only the websocket application.pnpm run dev:server: Start only the serverpnpm run check-types: Check TypeScript types across all appspnpm run db:push: Push schema changes to databasepnpm run db:studio: Open database studio UIpnpm run check: Run Oxlint and Oxfmt
For detailed deployment instructions—including Docker, Dokploy, and VPS setup—see the DEPLOYMENT.md file.
More deployment platforms will be supported soon.
All contributions are welcomed. Kindly open an issue or submit a PR request