Friday, April 17, 2026
March 2026 Changelog: Auth, Onboarding, Rerun-from-Stage, and a New Landing Page
March was the month Obclip went from "proof of concept with a queue" to a product you can actually sign up for, use, and recover from when things go wrong. Here's everything that shipped.
Auth, Onboarding, and Multi-Tenant Workspaces
The biggest user-facing change: Obclip now has a real authentication and onboarding flow.
- Email/password sign-up with email verification, powered by Supabase Auth
- Guided onboarding — new users create their first workspace through an RPC that provisions a tenant, membership, and default settings in a single transaction
- Tenant-scoped routing — the entire studio now lives under
/<tenantId>, so every job, artifact, and setting is scoped to the workspace you're in - Waitlist integration with MailerLite for users who sign up before we open registration
Under the hood, the create_initial_workspace RPC uses advisory locks to prevent race conditions during onboarding and idempotently returns the existing workspace if one already exists.
Rerun-from-Stage
If a job fails at the voiceover stage because ElevenLabs had a blip, you shouldn't have to re-upload and re-analyze the entire video. Now you don't.
The new rerun_job_from_stage RPC:
- Accepts a job ID and a target stage (e.g.
voiceover) - Invalidates all downstream artifacts and stage runs
- Resets job status to
queued - Enqueues a new message targeting the specified stage
- Returns the deleted storage keys so the worker can clean up
This is backed by a Postgres function that ranks stages (analyze → script → voiceover → edit → render → metadata → publish) and only removes artifacts from the target stage onward — upstream work is preserved.
The API endpoint and UI "Continue from [stage]" button are coming next.
Job Stage Outputs
A new job_stage_outputs table lets each pipeline stage persist structured JSON output alongside its artifacts. This is different from artifacts (binary files in storage) — stage outputs capture metadata like script JSON, analysis results, or caption timing data.
- One output per stage per job, enforced by a unique constraint on
(job_id, stage) - Protected by RLS — only tenant members can read outputs for their own jobs
- Indexed on
job_idfor fast lookups on the job detail page
This unlocks script review, caption editing, and downstream stage configuration directly from the studio UI.
Worker Architecture
The queue-driven pipeline worker launched on Modal. Each job flows through an ordered stage sequence:
upload → analyze → script → voiceover → edit → render → metadata → publish
Key implementation details:
- Stage locking prevents duplicate execution via
stage_runswith stale-running recovery - Idempotency keys are persisted for upload and finalize operations, so retries are safe
- Artifact management — each successful stage uploads a single artifact and emits job events
- Caption support — when
subtitles_enabledis true, the edit stage builds ASS captions fromscript.jsonand burns them intoedited.mp4using FFmpeg
Web App Rebuild
The entire web frontend was rebuilt from scratch on Next.js with Supabase integration:
- Dashboard with live job list, wired to real data through Supabase queries
- Job detail view with stage runs, artifact downloads, and event history
- Job settings —
script_mode,subtitles_enabled, voice configuration, andimage_assetsare all editable before finalizing upload - Audio waveform display with synced playback for voiceover review
- Unified theme system across all studio routes
- DashboardSidebar with loading states and improved context handling
PostHog Analytics
Product analytics are now live across the entire stack:
- Integrated into the Next.js frontend and key API endpoints
- Tracks page views, feature usage, and onboarding funnel progression
- Server-side initialization with no request rewrites — clean integration with the Next.js config
Landing Page and SEO
The public-facing site got a complete overhaul:
- Revamped landing page with updated messaging and SEO structure
- Scroll-triggered Navbar with morphing effect for a polished feel
- Enhanced WaitlistCTA with background glow effects
- Imprint and Privacy pages for compliance
- Sitemap updates and OG/Twitter image meta tags across all pages
Infrastructure and Deploy
- Idempotency keys — the
api_idempotency_keystable and stage-running locks prevent duplicate processing across the entire pipeline - Storage is private by default with tenant-aware object access rules and RLS on every tenant-owned table
- Railway deploy docs with detailed step-by-step runbook
- CORS fixes and production documentation cleanup
What's Next
The highest-leverage work from here:
- Continue-from-stage UI — the RPC is ready, now the API endpoint and studio button need to ship
- Script revision API — the table exists, read/write endpoints and UI are next
- YouTube publish integration — turning the publish stub into a real provider
- Realtime dashboard — replace request/refresh with Supabase Realtime subscriptions
Follow along on Twitter/X or check back here for the next update.