Buching is a self-hostable event booking and registration platform for small teams, schools, studios, nonprofits, and service businesses.
Use it to publish events, manage attendees, accept registrations, organize resources, and run booking operations from your own infrastructure.
Buching is early-stage software. A public demo and production deployment guide are planned.
Buching is designed for organizations that run scheduled events or services, such as:
- classes and workshops
- school or community programs
- fitness, wellness, and studio sessions
- nonprofit events
- internal company events
- paid or free registrations
You can self-host Buching for your own organization and use it to support real commercial operations.
- Event creation and management
- Public event pages
- Attendee tracking
- Registration management
- Capacity and status tracking
- Organization settings
- Resource planning for instructors, rooms, materials, or equipment
- Email invitation foundation
- Webhook and payment foundations for future integrations
A public demo is planned.
For now, you can run Buching locally by following the development setup below.
Buching is licensed under the GNU Affero General Public License v3.0.
You may use, study, modify, distribute, and run the software commercially, including for your own business operations.
If you modify Buching and provide it to users over a network, the AGPL requires you to make the corresponding source code for your modified version available to those users.
See LICENSE for the full license text.
You may use Buching to run your own business, including paid events, classes, workshops, or services.
The AGPL does not prohibit commercial use. It requires that modified network-deployed versions remain open under the same license.
The Buching name and logo are not covered by the AGPL license. Forks and modified versions should use their own branding unless they have permission to use the Buching name.
Buching supports two intended deployment models:
- Self-hosted/community deployments for one organization.
- Hosted/cloud deployments where multiple organizations may be supported.
The self-hosted version is intended to be simple to operate: one deployment, one primary organization, controlled by the administrator of that deployment.
Buching is built with:
- React and Vite for the web app
- Hono and Bun for the API server
- PostgreSQL for data storage
- Drizzle ORM for database schema and migrations
- Turborepo for the monorepo workspace
- Bun
- Docker
- Docker Compose
Clone the repository:
git clone https://github.com/peteqian/booking-mate.git
cd booking-mateCopy the environment file:
cp .env.example .envRun setup:
bun run setupStart the app:
bun run devThe app will run at:
- Web: http://localhost:5678
- Server: http://localhost:3456
- Database: localhost:5433
The default development environment uses PostgreSQL through Docker.
Important variables:
DATABASE_URL=postgresql://buching:buching_password@localhost:5433/buching
SERVER_PORT=3456
WEB_PORT=5678
WEB_URL=http://localhost:5678
VITE_SERVER_URL=http://localhost:3456
BETTER_AUTH_SECRET=your-secret-key-here
BETTER_AUTH_URL=http://localhost:3456For production, use strong secrets, HTTPS URLs, managed backups, and a properly secured PostgreSQL database.
Buching is not yet recommended for unattended production use.
Before using it in production, review:
- authentication configuration
- database backups
- email delivery
- HTTPS and reverse proxy setup
- environment secrets
- upgrade and migration process
- monitoring and logs
A production deployment guide is planned.
booking-mate/
├── apps/
│ ├── web/ # React + Vite frontend
│ └── server/ # Hono + Bun API server
├── packages/
│ └── contracts/ # Shared TypeScript types
├── scripts/
│ └── setup.ts # Local setup script
├── docker-compose.yml
└── turbo.jsonbun run dev
bun run build
bun run lint
bun run format:check
bun run typecheckDatabase commands:
bun run db:up
bun run db:down
bun run db:logsServer migration commands:
cd apps/server
bun run db:generate
bun run db:migrateContributions are welcome.
Before opening a pull request, run:
bun run lint
bun run format:check
bun run typecheckA contribution guide and code of conduct may be added as the project matures.
Please do not report security issues through public GitHub issues.
A security policy and disclosure contact will be added before a public production release.
Planned areas of work include:
- production Docker images
- hosted demo
- improved onboarding
- payment integrations
- email templates
- production deployment guide
- stronger admin controls
- observability and audit logs