Truthful Acting · Case Study
A multi-sided casting, learning, and studio operations platform.
Product definition, design, and production code across casting, payments, the talent directory, and a teacher-facing LMS.
Invite-only onboarding, secure media uploads, transactional email, and row-level access control were all designed to make a complex system feel simple to each role.
- 01The problem
- 02The solution
- 03The product
- 04Why it held up
The problem
Two hard things at once, run on spreadsheets and email.
Truthful Acting had two complex operations running in parallel: helping students grow through classes and helping vetted industry professionals discover, review, and cast talent.
Before the platform, those workflows lived across spreadsheets, shared drives, Discord threads, and long email chains. Headshots were hard to track, casting calls were forwarded by hand, enrollment and payments sat in separate documents, and the learning experience had no integrated home of its own.
The real challenge was not just digitizing tasks. It was turning casting, studio operations, and a growing LMS into one system that stayed legible to students, teachers, admins, and industry users.
The solution
One system. Four roles. One clear next step for each.
I designed and engineered one invite-only platform where each role sees the part of the system that matters to them, without carrying the complexity of the whole thing.
Students build a standardized profile once, apply to casting calls, track status, manage payments, and access course materials in the same place. Teachers run the learning experience through a structured course library and class content system. Admins manage approvals, enrollment, payments, and visibility. Industry users can discover vetted talent and review applications without touching private student data.
That clarity depended on the foundation: row-level security scoped to every role, invitation-only signup, secure media uploads, and transactional email woven through onboarding, applications, and studio operations.
The product
A single product for casting, learning, and studio operations.
- Role-scoped architectureStudents, teachers, admins, and industry professionals each get a tailored experience, with permissions enforced by Postgres row-level security rather than hidden UI states.
- Invite-only onboardingAdmin-issued invites, role-specific signup flows, and guardian steps for minors made account creation deliberate and studio-safe.
- Standardized talent profilesHeadshots, galleries, resumes, skills, location, and bios live in one structured profile that is searchable and consistent for casting review.
- End-to-end casting workflowsCalls move from draft to archive in one system while students apply, industry shortlists, and admins maintain visibility over the process.
- Teacher-facing LMSCourses, scenes, templates, folders, published lessons, and class materials replaced a separate learning workflow with one integrated home.
- Studio operations and paymentsEnrollment records, per-student notes, payment tracking, and admin dashboards turned the business side into part of the same product.
Why it held up
The invisible foundation made the product feel simple.
The hardest part of the product was not the interface. It was making sure each person could trust what they were seeing, what they could do, and what would happen next.
That meant engineering the permission model as part of the product itself: access scoped by role at the database layer, approval-gated visibility, secure file handling for media and documents, and invitation flows that kept signups controlled and auditable.
When casting, course delivery, payments, and studio operations all run through one system, the real design win is not showing more. It is making a complex operation feel calm, obvious, and reliable from every angle.
- 91 row-level security policies
- 24 tables with RLS enabled
- 32 migrations
- 41 routes
- 4 roles