GigLoop v0.1.0 — first production release
GigLoop is a CRM for working musicians — manage enquiries through to paid, confirmed gigs: contacts, bookings, contracts, invoices, repertoire, and a client-facing portal, designed mobile-first.
This is the initial production release. What's included:
Bookings & workflow
- Booking lifecycle — enquiry → provisional → confirmed → ready → complete, with a unified booking builder and itinerary (sets, key moments, on-the-day logistics).
- Goal-based checklist — each booking is driven by goals broken into steps, with per-goal preconditions, auto-completing rules, and "Mark as paid" shortcuts on the deposit/balance steps.
- Smart reminders — per-concern "remind me about" with configurable lead times.
- Series — recurring / residency bookings grouped together, with series-level invoicing.
Money
- Invoices — draft → issued → sent → paid lifecycle, deposit + balance handling, automatic invoice numbering, and server-generated PDFs streamed to the client.
- Contracts — draft, send, and client counter-signing through the portal, with generated PDFs.
Repertoire & music
- Repertoire library and package templates for common event shapes.
- Music request forms (draft / published) that clients complete via the portal.
Communications
- Templates authored in a rich-text editor (Tiptap), rendered with variable substitution at send time.
- Email delivery (Resend), plus a weekly digest.
Client portal
- Token-based client portal (
/booking/:token) — no client sign-in required: view booking details, sign the contract, complete the music form, and download documents, all gated by per-document visibility rules.
Discoverability & UX
- In-context hints, concept cards, and a tips widget to orient new users.
- Mobile-first throughout (built for 375px up, bottom-tab navigation).
Security & platform
- Private document access (ADR-0059) — contracts and invoices are served from a private bucket via short-lived, access-checked links, not public URLs. Musician branding assets (logos/photos) remain public by design.
- Multi-tenant — every request is scoped to the authenticated user (Clerk); no cross-tenant reads.
- Release pipeline — a preprod smoke-test environment, tag-triggered production releases with a pre-release database snapshot for rollback, and migration rehearsal for schema changes. Production database in London (eu-west-2).
Operator notes (not user-facing)
- Before relying on document downloads in prod, confirm the prod R2 token is scoped to the
gigloop-documentsbucket (a scope gap 404s downloads while everything else looks fine). - Run
docs/smoke-test-checklist.mdon preprod before cutting each release tag.