BrewHoard Documentation
Complete guide to building, deploying, and extending the BrewHoard beer collection management application.
Welcome to the BrewHoard documentation. BrewHoard is a comprehensive beer collection management application built with modern web technologies. This documentation covers everything from initial setup to advanced customization.
What is BrewHoard?
BrewHoard is a full-featured Progressive Web Application (PWA) designed for beer enthusiasts to:
- Manage their beer collection - Track bottles, cans, and kegs with detailed metadata
- Scan and identify beers - AI-powered image recognition for instant beer identification
- Rate and review - Comprehensive tasting notes with flavor profiles
- Track consumption history - Monitor what you’ve enjoyed and when
- Export data - Generate reports in multiple formats (JSON, CSV, PDF)
Technology Stack
BrewHoard is built on a modern, performant stack:
| Technology | Purpose |
|---|---|
| SvelteKit | Full-stack framework with SSR and API routes |
| Svelte 5 | Reactive UI with runes ($state, $derived, $effect) |
| PostgreSQL | Relational database via porsager/postgres and postgres-shift migrations |
| Drizzle ORM | Type-safe query builder and schema definitions |
| Better Auth | Authentication with session management and OAuth |
| TailwindCSS | Utility-first styling |
| shadcn-svelte | Accessible component library (built on bits-ui) |
| Paraglide.js | Type-safe internationalization |
| Stripe | Payment processing |
| Socket.IO | Real-time updates |
| MinIO | S3-compatible object storage for photos |
| PWA | Offline support and installability via vite-plugin-pwa |
Quick Links
Get started quickly with these essential guides:
- Installation - Set up your development environment
- Quick Start - Get a running app in 5 minutes
- Architecture - Understand the project structure
- API Reference - REST API documentation
- Database - Schema and migration guide
- Features Overview - All features at a glance
Core Concepts
Collection Management
The heart of BrewHoard is the collection system. Each user has a personal collection where they can:
// Adding a beer to collection via API
const response = await fetch('/api/v1/collection', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${apiKey}`
},
body: JSON.stringify({
beer_id: 'uuid-of-beer',
quantity: 6,
purchase_price: 12.99,
purchase_location: 'Local Brewery',
storage_location: 'Beer Fridge',
notes: 'Anniversary edition'
})
});The Scanner System
BrewHoard includes an AI-powered scanner that can identify beers from photos:
- User captures or uploads a photo
- Image is processed client-side for optimization
- Vision AI analyzes labels, logos, and text
- Matching beers are suggested from the database
- User confirms or manually selects the correct beer
Project Philosophy
BrewHoard follows these core principles:
- Type Safety - JSDoc annotations provide TypeScript-like safety without a build step
- Progressive Enhancement - Works without JavaScript, enhanced with it
- Accessibility First - WCAG 2.1 AA compliance throughout
- Offline Capable - Service worker caches essential resources
- Mobile First - Responsive design optimized for handheld devices
Documentation Structure
This documentation is organized into logical sections:
Getting Started
- Installation - Set up your development environment
- Quick Start - Get a running app in 5 minutes
- Architecture - Project structure and data flow
Core Features
- Collection Management - Track your beer inventory
- Beer Scanner - AI-powered beer recognition
- Ratings & Reviews - Tasting notes and scores
- Analytics - Consumption trends and valuation
- User Profiles - Public profiles and visibility settings
- Settings & Preferences - Notification and feature preferences
Technical Reference
- Database Schema - Tables, relationships, migrations
- API Reference - REST API documentation
- Analytics API - Consumption trends and valuation
- Notifications API - Email preferences and templates
- Authentication - Security model and sessions
- Components - Reusable UI component library
MCP & Integrations
- MCP Server - Model Context Protocol for AI assistants
- OAuth 2.1 - Authorization server for third-party access
- Integrations - Untappd, photo storage, import/export
Deployment
- Deployment Guide - Production deployment strategies
- PWA Configuration - Progressive Web App setup
Contributing
BrewHoard is open source. Contributions are welcome! See our GitHub repository for:
- Issue tracking
- Pull request guidelines
- Development setup
- Code of conduct
Ready to get started? Head to the Installation Guide to set up your development environment.