Handoff package · CoWork dev

SET — design tokens, surface list, build sequence.

Tutto il design system di SET, l'inventory delle surface costruite finora, gli endpoint, e l'ordine consigliato di build per il team CoWork.

01 — Design tokens

Tutti i token in :root dei file HTML. Cambiare 6 variabili ri-brandizza tutto il sistema.

Color

--bg#0B0B0A
--surface#131311
--border#24221E
--muted#5E5B54
--fg#A8A59E
--accent#9CFF00

Type

TokenFamilyUse
--font-displayGeist 300–900Hero, titles, body, UI labels
--font-monoGeist Mono 400–600Indices, codes, metadata, pills

Geist self-host con woff2. Display weight (700) preloaded. Feature settings: "ss01", "cv11" per stilistiche.

Spacing & geometry

02 — Surface inventory · multi-segment

v3.2: prodotto riposizionato da "agency tool" a "sistema per electronic music industry". 4 segmenti ICP. Surface aggiunte: festival-dashboard + club-dashboard.

Public

SurfaceSegmentoStatusFile
Landing v3All — 4 segmentsP0 · Liveset-landing-v3.html
Artist EPK (Peggy Gou)Agency / LabelP1 · Liveartist-sample.html
Festival lineup pageFestivalP1 · Coming v3.3festival-sample.html (TBD)
Club residents pageClubP1 · Coming v3.3club-sample.html (TBD)

Platform · operator surfaces

SurfaceSegmentoStatusFile
Agency dashboardAgency / LabelP1 · Mockupplatform/agency-dashboard.html
Festival dashboardFestivalP2 · Mockupplatform/festival-dashboard.html
Club dashboardClubP2 · Mockupplatform/club-dashboard.html
Artist editor (desktop)AllP2 · Mockupplatform/artist-editor.html

Mobile + Index

SurfaceSegmentoStatusFile
Artist appAgency / LabelP2 · Mockupapp/artist-app.html
Hub navigabileInternalindex.html · set-prototype-hub.html
Data model expansion (M3–M6 · v3.2)

Festival/Club tier richiedono event, venue, lineup_slot come entità pluggable parallele all'artist. Migration plan in 17-set-product-spec.md. Tech spike 60h budget (assumption A6).

03 — Stack architecture

frontend            Next.js 14 (App Router) + RSC + Server Actions
                    TypeScript · Tailwind disabled — use raw CSS w/ tokens
                    Geist + Geist Mono self-hosted

backend             Next.js API routes (Edge runtime where possible)
db                  Postgres (Neon) · Drizzle ORM
cache               Vercel ISR (60s) for public EPK · KV for sessions
media               Cloudinary fetch → WebP/AVIF
auth                Clerk · roles: agency-owner, booking-manager, artist
ai                  Claude Haiku 4.5 via window.claude.complete on artifacts;
                    server-side proxy with API key for editor AI rewrite

mobile              Capacitor wrap of editor PWA → iOS + Android
Important

Design tokens MUST stay as CSS variables in :root. White-label clients change 6 values per agency. No hardcoded colors anywhere else.

04 — Build sequence (12 weeks)

WkMilestoneOutput
01-02BootstrapNext.js + Postgres + Clerk auth + design system tokens + Cloudinary config
03-04Editor MVPSection block editor + autosave + version snapshots + publish flow
05-06Public EPKSSG + ISR render at set.fm/[agency]/[artist] · OG image gen · QR
07-08Analytics + inquiriesEvent tracking + inquiry routing + agency-view fee gate
09-10IntegrationsSpotify · SoundCloud · Bandcamp · Google Calendar OAuth
11Dashboard + permsMulti-roster overview + permission control + Gigwell webhook
12Mobile + polishCapacitor wrap + bug bash + onboarding flow + first client launch

05 — Hand-off contents (this folder)

06 — Open questions for CoWork

  1. Capacitor wrap (web → iOS+Android) vs nativo: ok 1 codebase per ridurre ongoing cost?
  2. Hosting: Vercel Pro o Hetzner+self-host per ridurre costi a maturity?
  3. Mailing: Resend o Postmark per booking notifications?
  4. Stripe per setup fee + recurring mensile, ok partire da Stripe Billing direttamente?
  5. Sub-dominio strategy: set.fm/agency/artist vs agency.set.fm/artist?

07 — Contact

Per chiarimenti design / brand: Studio Natale — hello@studionatale.it