Friday, April 17, 2026

March 2026 Changelog: Auth, Onboarding, Rerun-from-Stage, and a New Landing Page

Michael Laser

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:

  1. Accepts a job ID and a target stage (e.g. voiceover)
  2. Invalidates all downstream artifacts and stage runs
  3. Resets job status to queued
  4. Enqueues a new message targeting the specified stage
  5. 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_id for 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_runs with 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_enabled is true, the edit stage builds ASS captions from script.json and burns them into edited.mp4 using 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 settingsscript_mode, subtitles_enabled, voice configuration, and image_assets are 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_keys table 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.