Skip to main content

Build the Bunway Showcase

Build the same publishing and operations application exercised by Bunway's real bunway-test-app. You will compose CRUD, relationships, attachments, SSE and WebSockets, Better Auth, Audit, Mail, and SMS on PostgreSQL, MySQL, or SQLite. PostgreSQL additionally demonstrates durable Jobs and workers.

This is a reproducible build guide, not a tour of unrelated examples. The final application uses the same named surfaces as the maintained test app: Products, Categories, the Blog, Realtime, Auth, Audit, and Messaging. Generated files and hand-composed demo pages are identified explicitly; nothing appears through hidden route discovery.

StepYou will build
1project, database, and mental model
2Category and validated Product CRUD, relationship, attachment, and SvelteKit UI
3the Users, Posts, Comments, and Tags publishing model
4/realtime SSE/WebSocket demo and sidebar link; PostgreSQL durable processing
5password Auth, OAuth setup, TOTP, backup codes, protected routes
6/examples/audit and /examples/messaging, with sidebar links
7tests, production build, and deployment plan

The tutorial requires Bun and one supported database: PostgreSQL (default), MySQL, or SQLite. Jobs and queued Mail/SMS require PostgreSQL; every other Showcase surface runs on all three. Third-party OAuth, Mail, and SMS accounts are optional: development guidance and console delivery let you complete the local path without them.

Restart bunway dev after adding routes or changing environment variables. Resource scaffolds add themselves to web/src/lib/resources.ts; Jobs and Realtime do not imply a UI, so their showcase pages are registered explicitly in this guide.

Start with 1. Create and understand the app.