Ghostlight v0.1.2: Audition Day, Scheduler Overhaul, Cast Board
v0.1.2 is the biggest update to the casting app since the initial build. A dedicated audition-day module, a ground-up rethink of the callback scheduler, and a cast board preview tool that generates Instagram-ready posters. Also: The Guild is now simply Ghostlight, living at app.ghostlight.tech. Same product, cleaner name.
What this is
Ghostlight is a casting and audition management tool for theatre companies. Casting directors use it to post calls, collect submissions, schedule audition sessions, and run callbacks. Actors use it to submit for roles, track their calls, and receive invites. It's in preview — I'm building it in the open and working through the rough edges as real usage surfaces them.
What shipped
Audition day
- New day-of audition module with a three-panel in-room layout: call sheet on one side, actor detail in the middle, controls on the right
- Running order separated from the planned schedule — reorder the call sheet on the day without touching the original session plan
- Touch-friendly call-sheet reordering via up/down controls for tablet use in the room
- Full actor profile visible in the in-room view — credits, representation, contact — without navigating away
- Representation shown above contact in the in-room panel; copy-to-clipboard for actor email
- Call-sheet actor numbering persists across breaks so a scheduled break doesn't skip a number
- Optimistic, race-free call-sheet reorder saves — changes feel instant and don't conflict under fast edits
Callback scheduler
- Rebuilt scheduler with a desktop sidebar, side-by-side slot actors, and a unified actor surface across mobile and desktop
- Drag actors from a carousel into time slots; mobile gets a floating actor card that drags to a slot
- Conflict-warning triangle on carousel headshots when an actor has a scheduling conflict
- Cross-session actor awareness — the scheduler knows if an actor is already placed in another session
- Callback scoping: mark callbacks per role and filter the scheduler to only called-back actors for a given role
- Slot overview strip with adaptive-density slot rows and relative timestamps on assignment status pills
- Confirm prompt before resending a callback invite to avoid accidental duplicate sends
Cast board and poster tools
- Cast board preview: arrange the shortlisted pool into a visual board with headshots, role labels, and background color options
- Auto-generate an Instagram-ready cast announcement poster with actor headshots and role credits
- Canva-like text layer with board fonts, gradient backgrounds, textured overlays, and marker font options
- Card formations — auto-arrange cast cards into layout presets rather than placing them one by one
- Pool search and role filter on the cast board so large casts stay manageable
- Export the board or individual headshots directly from the preview
Submissions and invites
- Inline invite editor at send time replaces variable-based templates — edit the message directly before sending, no template management needed
- Default audition prep message configurable per production and editable from the scheduler at send time
- Producer-initiated actor submissions: casting directors can add an actor to a call directly from the auditions panel
- Casting overview panel on submissions with role chips that filter the list to shortlisted actors for that role
- Withdrawn submissions excluded from production dashboard counts and session actor pools
- Submission deadline now stays open through end-of-day rather than closing at midnight exactly
Auth, email, and reliability
- Emails normalized to lowercase for case-insensitive login — no more lockouts from capitalization mismatches
- Current password required to change account email
- Email send tracking with admin retry and Resend rate-limit handling — invite batches throttled and retried on failure
- Admin routes server-side gated; company membership required to create productions
- Headshot thumbnails routed through Supabase transforms for proper aspect-ratio resizing and reduced egress
- In-app support ticket threads with email chain — reply from email, it appears in the ticket
Total scope: 60+ features and 70+ bug fixes across the audition-day module, scheduler, cast tools, auth layer, and image pipeline. A lot of the fixes are small but the cumulative effect on usability is significant.
Why it matters
The audition-day module is the piece I've been working toward for a while. Casting software tends to be good at the prep phase — organizing submissions, building schedules — and then leaves you on your own on the actual day. This release closes that gap. The call sheet is live, reorderable, and connected to the full actor record without any context switching.
The scheduler rebuild is probably the most technically dense work in this release. Drag-and-drop across carousel, floating card, and slot targets is genuinely hard to get right on both desktop and mobile. The conflict detection and cross-session awareness make it usable for real multi-session callbacks, not just single-session scheduling.
The cast board is newer territory. Theatre companies spend real time putting together cast announcements — usually in Canva or Photoshop, manually. Having a tool that pulls from the actual casting data and generates something shareable in a few clicks is the kind of thing that's hard to explain in a feature list but immediately obvious the first time you use it.
What's next
The audition-day module has the bones in place; I want to add more in-room tooling before calling it done — notes, quick ratings, and a smoother handoff from the session to the callback list. The scheduler needs more polish on edge cases, particularly around multi-role actors and overlapping sessions. And I'm continuing to work through the reliability layer: email delivery tracking, headshot performance, and auth edge cases all had significant attention this cycle and there's more to do.
The light stays on.