Roster+ · redesign brief & full status · for external review

The Setline مسار السهرة

Prepared 2026-07-17 · scope = the Roster+ mobile/web redesign + the functional fixes that preceded it · reviewer: please read top-to-bottom, this is the complete context.

Roster+ is a premium mobile + web app for booking DJs and live artists in the GCC / Dubai nightlife scene. Two sides: promoters book artists; artists get booked. It is dark-only, bilingual (Arabic / Latin), with a restrained sodium-amber accent. This document is the full picture of what has been done, the design direction chosen, the UI system, and what remains — so an external reviewer has everything needed to critique it.

Read this before judging the screens. The interactive page at the site root (roster-native-preview.pages.dev) is an art-direction mock — 3 concept screens, 2 stock portraits reused, an invented 5-tab bottom nav. It is not the product. The product is a shipping, data-driven app (web/src) onto which this design is being layered selectively. So the following already exist and should not be counted as gaps:

1 · Tech & constraints (important)

2 · The direction — "The Setline"

After two rejected passes (flat glass cards; then a "Roster Rail" motif), the chosen concept is the Setline / مسار السهرة: a live vertical time-spine (22:00 → 04:00) where the booking night itself becomes the interface. It behaves differently per screen but is one idea, so it's a screenshot signature rather than decoration:

ScreenThe Setline becomes…
Homethe colon of a giant set-time (00 | 30) over a full-bleed graded hero; artist masthead poster-scale; data chips ride the line.
Discovera drag availability scrubber — move it to a time and the roster re-sorts live; the selected hour looms behind as type.
Artistthe actual booking timeline (available / hold / unavailable slots); tapping a slot opens a solid "hold contract" — a ledger you press-and-hold to lock.

References borrowed (direction from GPT-5.5): Flighty — the confidence of a live status timeline; Berghain / Ostgut Ton poster language — timetable-as-culture, severe type, black + one accent; Qasimi — bilingual Arabic/Latin restraint (Arabic as information, never ornament).

3 · The UI system we will use

Material & discipline

Type

4 · Arabic (reviewed with GPT-5.5)

The app is genuinely bilingual, so copy goes through i18n. GPT-5.5 reviewed the Arabic; corrected glossary in use:

EnglishArabicNote
The Setline (brand)مسار السهرةreplaces خط السهرة (which read as "party line")
Tonightالليلة
Available (status)الحجز متاحgender-safe; avoids متاح/متاحة
Bookedتم الحجز
Provisional holdحجز مبدئيreplaces حجز مؤقت (felt disposable)
Book (CTA)احجز
Bookings (tab)الحجوزات
Discover artistsاستكشف الفنانين
Fee / Venue / Set timeالأتعاب · المكان · وقت الفقرة
Press & hold to lock the nightاضغط مطوّلًا لتثبيت حجز الليلة

RTL rules applied: CSS logical properties (the amber spine flips side automatically); times / numbers / currency / artist names isolated with dir="ltr"/<bdi>; no letter-spacing on Arabic; Arabic keeps IBM Plex Sans Arabic via per-glyph font fallback.

5 · What's DONE

Functional fixes (shipped to the branch, verified)

Design

LIVE The redesign + the auth client half are now deployed to rosterplus.io (main 4d1f8aa, cherry-picked web-only onto main — no phase9 app, no backend change; prod rev tagged for rollback). Verified live: site healthy, setline CSS served, auth revoke-recovery now fixed end-to-end (backend + web). Dev continues on feat/setline-redesign.

branch feat/setline-redesign (off feat/phase9-capacitor). Both phases: tsc clean, next build 24/24 pages, EN + Arabic render verified.

6 · What's LEFT

The agreed model is NOT a wholesale replacement of the working, data-driven app. The Setline is a design-language layer + Level-1 hero moments; the functional dashboards, bookings, wallet, messaging and auth keep working. Rollout is lowest-risk first.

PhaseWorkStatus
3Artist profile — booking moment as a Setline "book bar" (semantic availability + fee + existing CTA). Shipped as the restrained version the review asked for.done d5b8ca3
4Dashboard hero across the other roles (artist, organisation) — one shared component + one contract, no per-role CSSdone c25519e
5The transactional hold flow (press-and-hold to lock, expiry, timezone, cross-midnight) — last, because it's transactional. Full interaction + data spec written (docs/PHASE5-HOLD-SPEC.md): meaning, model, server-authoritative expiry, tz/cross-midnight, conflicts/concurrency, commercial review, a11y + non-gesture path, reduced motion, all failure states, idempotency.spec ready · gated
Wallet / auth / settings / messaging / legal: shared skin + tokens only (never the full Setline)left

Cross-cutting gaps to close before wide rollout (GPT-5.5's checklist)

Gated / external dependencies

7 · Questions for the external reviewer

  1. Is "the Setline" the right central concept for a booking product, or does it over-index on nightlife aesthetics at the cost of the promoter's operational speed?
  2. Design-language-layer vs deeper: is applying the Setline as hero moments (keeping functional dashboards) the right restraint, or should more of the IA change?
  3. The press-and-hold "lock the night" interaction — premium, or friction on the most important action? What's the right confirm pattern?
  4. Arabic register + the bilingual treatment — is مسار السهرة the right brand term; is the Arabic authoritative rather than decorative?
  5. Anything missed in the gap list before this touches a live, transactional, dual-target (app + web) product?

8 · Adopted from the first external review

An external reviewer audited the concept (it saw the mock, not this brief — now corrected). Its design spine was right; these points are accepted and folded into the plan above:

Not adopted (aimed at the mock, already handled in web/src): "rename Book→Bookings / You→Workspace" (no such tabs — real nav already says Bookings); "no search/filters" (directory has search + favourites; richer facets are an enhancement, not a gap); "Arabic is decorative" (real dictionaries + RTL exist); "no booking flow / press-hold is the only confirmation" (real inquiry→contract→payout flow exists; press-hold isn't built); "placeholder imagery" (mock's 2 stock images; app uses artist avatar_url).