Create an event, share a link, and instantly find the best time for everyone to meet.
Features • Tech Stack • Getting Started • Deployment • Contributing
Timblo is a modern scheduling application that helps groups coordinate meetings by allowing participants to indicate their availability across multiple time slots. Built with a full-stack TypeScript architecture using React, Hono, and Cloudflare Workers.
- Easy Event Creation: Create events with custom titles, dates, and time ranges
- Timezone Support: Automatic timezone handling for global coordination
- Availability Tracking: Participants can mark themselves as "available" or "if needed"
- Real-time Updates: Live availability visualization as responses come in
- No Account Required: Simple link sharing without user registration
- React 19 with TypeScript
- TanStack Router for client-side routing
- TanStack Query for server state management
- Tailwind CSS + Shadcn/ui for styling and components
- Vite for build tooling
- Vitest for testing
- Hono web framework
- Cloudflare Workers for serverless deployment
- Drizzle ORM with SQLite (Cloudflare D1)
- Zod for schema validation
- OpenAPI documentation
- Clone the repository:
git clone git@github.com:chenxin-yan/timblo.git
cd timblo
- Install dependencies:
bun install
- Configure environment variables:
cd apps/api
cp .env.example .env
# Edit .env file with your own Cloudflare account details
- Set up the database:
# Generate database schema
cd apps/api
bun run dev
bun run db:push:local
Run the entire development stack:
bun run dev
This starts:
- Frontend dev server at http://localhost:3000
- API dev server at http://localhost:8787
bun run dev
- Start all apps in development modebun run build
- Build all apps for production and copy frontend assets to API directorybun run deploy
- Deploy the API to Cloudflare Workers (includes built frontend assets)bun run test
- Run all testsbun run check
- Run linting and formatting checksbun run check:types
- Run TypeScript type checking
- migrate database
cd apps/api
bun run db:push:remote
- deploy to Cloudflare Workers
bun run build
bun run deploy
When you run bun run build
from the root directory, it builds the frontend and copies the assets into the API directory, where they're served by Cloudflare Workers.
timblo/
├── apps/
│ ├── api/ # Hono API on Cloudflare Workers
│ └── web/ # React frontend application
└── packages/ # Shared packages and utilities
Visit the auto-generated OpenAPI documentation at:
- Production:
https://timblo.co/api/docs
- Local:
http://localhost:8787/api/docs
- Fork the repository
- Create a feature branch:
git checkout -b feat/amazing-feature
- Make your changes and ensure tests pass:
bun run test
- Run linting:
bun run check
- Commit your changes:
git commit -m 'add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request