This tutorial walks you through setting up your first wedding invitation with Sakeenah.
- Bun v1.3.5 or later
- PostgreSQL v14+ (local or cloud-hosted)
- Git
git clone https://github.com/mrofisr/sakeenah.git
cd sakeenah
bun install# Create database
createdb sakeenah
# Apply schema
psql -d sakeenah -f src/server/db/schema.sql.examplecp .env.example .envEdit .env with your settings:
# Frontend
VITE_API_URL=http://localhost:3000
# Backend
DATABASE_URL=postgresql://username:password@localhost:5432/sakeenah
PORT=3000# Copy the SQL template
cp src/server/db/add-wedding.sql.example my-wedding.sql
# Edit my-wedding.sql with your wedding details
# Then insert into database
psql -d sakeenah -f my-wedding.sqlThis creates your wedding invitation with a unique UID (e.g., ahmad-fatimah-2025).
bun run devThis runs both frontend (Vite on port 5173) and backend (Hono API on port 3000) concurrently.
- Frontend:
http://localhost:5173/your-wedding-uid - API endpoint:
http://localhost:3000/api/invitation/your-wedding-uid
Replace your-wedding-uid with the UID you defined in your SQL file.