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)
| Capability | WordPress v1 | Supabase v2 |
|---|---|---|
| Accounts | WP users + plugin meta | Supabase Auth + `profiles` |
| Transcripts | CPT + ACF fields | `transcripts` + `transcript_segments` |
| Media | WP media + S3 experiments | Storage + signed URLs |
| Isolation | Custom PHP hope | Row Level Security |
| Schema evolution | Admin clicks / raw SQL | Migrations in git |
| Marketing ops DB | Would be another plugin | Same project, `mkt_` prefix |
| Webhook idempotency | Didn't exist | `webhook_events` pattern |
| 100 paid subs confidence | Wouldn't attempt | 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 (YouTube) — reviewed v1; 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
| WordPress | Supabase v2 | |
|---|---|---|
| Time to ship "users see only their data" | Weeks PHP | One migration |
| Confidence at 100 paid users | Zero | High |
| Auth provider change | Plugin hell | Config + migration |
| Ops DB for marketing | N/A | 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](https://filetranscribe.com) · Vercel story · Hub
— Rasif Ali Khan