Skip to main content

Build the Bunway Showcase

Build the complete Bunway Showcase, the publishing and operations application used throughout these docs. 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 finished Showcase: 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/examples/messaging Mail/SMS demo and sidebar link
5/realtime SSE/WebSocket demo and sidebar link; PostgreSQL durable processing
6password Auth, OAuth setup, TOTP, backup codes, protected routes
7/examples/audit durable history demo and sidebar link
8tests, 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.