WordPress taught me: every feature was another plugin, another table in phpMyAdmin, another way billing desyncs from reality.
I'm Rasif Ali Khan, GFX Bracket, Pakistan. File Transcribe v1 used custom post types, ACF, membership plugins, MyCred minute credits. It made $87.57 on Paddle. Real users. Real money. A data model I could not trust with private audio, and definitely not with 100 paying customers.
Supabase, Auth, Postgres, RLS, Storage, is how I rebuilt the backbone and grew to 100 paid subscribers on v2.
The headline: 100 paid subscribers on Supabase
This series is titled around one outcome: how each app helped me reach 100 paid subscribers after WordPress.
Today File Transcribe has 100 paid subscribers. Their transcripts, media, usage, and plan tiers live in one Supabase project, same Postgres that powers my internal Marketing Center (`mkt_` tables), $0 extra database bill*.
You don't get to 100 paid users on transcription without trust. RLS is that trust, enforced in Postgres, not plugin settings I hope are correct.
Timeline: database pain → Supabase → 100 subs
| Phase | Reality |
|---|---|
| v1 early | WP users + post meta + ACF, works until you query |
| v1 growth | AppSumo prep, more plugins, phpMyAdmin surgery |
| Security wake-up | Old `D:\File-transcribe` archive, hardcoded keys, treat as burned |
| GFX dashboard | First Postgres + RLS, I learned proper modeling |
| v2 rebuild | Supabase Auth (Google), Storage, migrations in GitHub |
| Billing | Paddle webhooks → `profiles.plan`, server truth |
| Scale | Folders, library, jobs, usage events |
| Today | 100 paid subscribers, sensitive data in RLS-protected tables |
WordPress vs Supabase (full comparison)
Accounts
- WordPress v1
- WP users + plugin meta
- Supabase v2
- Supabase Auth + `profiles`
Transcripts
- WordPress v1
- CPT + ACF fields
- Supabase v2
- `transcripts` + `transcript_segments`
Media
- WordPress v1
- WP media + S3 experiments
- Supabase v2
- Storage + signed URLs
Isolation
- WordPress v1
- Custom PHP hope
- Supabase v2
- Row Level Security
Schema evolution
- WordPress v1
- Admin clicks / raw SQL
- Supabase v2
- Migrations in git
Marketing ops DB
- WordPress v1
- Would be another plugin
- Supabase v2
- Same project, `mkt_` prefix
Webhook idempotency
- WordPress v1
- Didn't exist
- Supabase v2
- `webhook_events` pattern
100 paid subs confidence
- WordPress v1
- Wouldn't attempt
- Supabase v2
- Shipped
RLS, why transcription needs it at scale
At subscriber #1, a data leak is catastrophic. At #100, it's a company-ending event.
Transcripts include:
- Therapy and medical calls
- Legal recordings
- Unreleased podcast episodes
- Journalist sources
WordPress isolation = custom code nobody audited. Supabase RLS = Postgres refuses cross-tenant reads even if I ship a bad client query.
That's not enterprise luxury. That's why people pay monthly instead of using a sketchy free tool.
What moved off WordPress (field by field)
v1 ACF nightmare:
- File name, file URL, transcript body, timestamps, summary, translation, captions, job ID, scattered across fields and post types
v2 normalized model:
- Upload → Storage path linked to transcript
- `transcription_jobs` state machine (queued → processing → done/failed)
- Segments for editor, SRT, VTT export
- `usage_events`, billing limits from server, not DevTools
- Paddle customer/subscription IDs on `profiles`
Adding subscriber #100 doesn't add a new plugin. It adds rows, the way SaaS should work.
How Supabase unlocked growth to 100 paid subscribers
| Growth need | Supabase role |
|---|---|
| Google sign-in frictionless | Auth, one click from try → account |
| Saved library | Postgres + RLS, my files, my folders |
| Plan enforcement | `profiles.plan` + server quota checks |
| Media retention | Storage policies per tier |
| Admin visibility | Service role for jobs/failures, users still isolated |
| Marketing Center | Same DB, scrape leads without second Supabase bill |
The human story (AppSumo, David, $87.57)
- AppSumo rejected, I couldn't buy growth; I had to build retention
- Product Hunt v1, traffic on fragile data layer
- David Mbugua (YouTube), 3 videos on v1 (channel · 1 · 2 · 3), public proof the WordPress build existed; v2 is what I want him to see
- $87.57, first proof; 100 paid subscribers, proof the rebuild worked
Supabase let me compete on product quality instead of plugin archaeology.
Results
Time to ship "users see only their data"
- WordPress
- Weeks PHP
- Supabase v2
- One migration
Confidence at 100 paid users
- WordPress
- Zero
- Supabase v2
- High
Auth provider change
- WordPress
- Plugin hell
- Supabase v2
- Config + migration
Ops DB for marketing
- WordPress
- N/A
- Supabase v2
- Same project
For Supabase DevRel / marketing
- WordPress escape · RLS · Storage · Auth
- 100 paid subscribers, outcome metric
- Solo founder · Pakistan · Paddle
- Republish this post, written for your customer gallery
Try File Transcribe · Vercel story · Hub
Rasif Ali Khan
