- Role
- Founder, product strategist and lead builder
- Platform
- podhub.club, PodOps and the listen and watch sites
- Timeline
- Network since 2020, site rebuilt Oct 2026
- Status
- Live at www.podhub.club
The problem
A great network, hard to find and hard to run.
21 shows, no home
Listeners met each show alone on Apple or Spotify. Nothing connected a guest, an episode and a feeling across the network.
Hard to find the right episode
With 8,000+ episodes, search by title fails people who arrive with a feeling, not a topic.
A slow, locked site
The old Framer site could not show live numbers, play audio across pages, publish daily or scale to thousands of pages.
Sensitive subject, high trust
Mental health is a high-trust topic. Privacy, safety and clinical care had to be designed in, not added later.
Revenue lived in spreadsheets
Sponsors, guests, services and partner commissions were run by hand across email, chat and sheets.
Thought process
Six decisions that shaped everything.
Start from how people feel
People rarely search for a show name. They arrive tired, curious or low. So the home page, the Moods room and every episode lead with feeling, then topic, then show.
Static first, live where it counts
Every page is plain HTML built from PodOps. That makes it fast, cheap and safe. Only search, play counts and engagement call the API from the browser.
One source of truth
PodOps owns shows, episodes, hosts, prices and sponsors. The website only displays them, so Avik edits once and every page follows.
Privacy as a feature
Healthy Mind keeps check-ins on the visitor's own device. No account, no tracking, a plain page that shows what is stored and lets people delete it.
Automate the boring, approve the money
Rebuilds, blogs, invoices and commissions run on their own. Payouts wait for one approval from Avik. Nothing moves money without a human yes.
Prove it with checks
SEO, security and performance checklists run on every build and every pull request, so quality cannot quietly slip.
What I built
Fourteen parts of one platform, shown live.
Every screenshot below is taken from the live sites: www.podhub.club, watch.podhub.club and the listen app. Each part names the problem, the solution, the tech and the value.

One front door for the network
Problem21 shows had no shared home and no clear first step for a new listener.
- A calm hero, one primary action (Start listening) and a row of every show.
- A live stats band: 21 shows, 8,085 episodes, 11 hosts, 268.7K downloads, 5.0 stars from 1,589 ratings, each with its source and date.
- 'For you' episodes, mood entry, hosts, journal and a sponsor wall in one scroll.
- Next.js 16
- React 19
- Static export
- PodOps public API
- CSS-only hero motion
ValueA single destination that turns scattered listens into one network audience, with numbers that stay true because they are read, never typed.

A library you can actually browse
ProblemFinding one conversation among 8,000+ episodes was guesswork.
- One page per show, then every 24 episodes, plus a page per episode and per mood: about 9,400 pages.
- Search across all shows, calling the live PodOps index so new episodes appear at once, capped at 50 results to stop bulk copying.
- Categories, episode counts and covers shrunk to the size shown (197 pictures, 54.2 MB down to 3.7 MB).
- Static generation
- Podbean + Captivate sync
- sharp image pipeline
- Input validation
ValueFast pages that rank, with a catalogue that grows without any manual page building.

Show pages built to be found
ProblemShow pages had to rank, convert listeners and answer AI search, not just list episodes.
- PodcastSeries schema, an FAQ written from the show's own words, hosts, ratings and every episode in pages of 24.
- Where to listen: PodHub first, then Apple, Spotify and YouTube.
- Canonical rules so a recording published twice points to its earliest copy.
- schema.org PodcastSeries
- FAQPage
- Canonical logic
- hreflang in 8 languages
ValueEach show is a search and answer-engine landing page, not a link list.

An episode page that keeps you listening
ProblemAudio stopped the moment someone moved to another page.
- A persistent mini player that keeps playing while people browse.
- Key takeaways and an 'About this episode' FAQ taken word for word from the notes, plus a care note with helplines.
- A 'Sponsored' rail with rel=sponsored links, reviews and share tools.
- React context player
- PodcastEpisode schema
- Share bar
- Sponsor rail
ValueLonger listening sessions, safer sensitive content and a clean place for sponsors.

Moods: start from how you feel
ProblemMost people do not search for a topic. They arrive with a feeling.
- A ten-second check-in, a wall of how other listeners feel this week, and episodes picked for that feeling.
- Nine mood pages, each with its own crisis block and helplines.
- Gentle glide animations that stay still for people who ask for less motion.
- PodOps mood API
- Client-side wall
- Reduced-motion support
ValueA human way into 8,000+ episodes that also builds a repeat-visit habit.

Healthy Mind: a private space that stays on your phone
ProblemListeners wanted help in the moment, but a sensitive topic needs privacy and clinical care.
- Check-in with a private week and garden, box and 4-7-8 breathing with vibration, 5-4-3-2-1 grounding and a 10-minute urge timer.
- A seven-section safety plan that saves as you type, plus helplines for India, US, UK, Australia and Canada picked from the device's time zone.
- A privacy page that shows exactly what the browser holds and lets people download or delete it.
- Built further: 21-day Healing Paths, Learn, Myth or fact, Sleep, verified professionals, Ask a professional. Modules that need clinical sign-off stay switched off until it is given.
- localStorage store with blocked-storage fallback
- No account, no server writes
- 8 languages
- Clinical review flag (noindex until signed off)
ValueReal support with zero data collected. Lighthouse measured 98 performance, 100 accessibility and 0 layout shift on the key pages.

A journal that publishes itself
ProblemContent ideas died in show notes, and the old blog could not scale.
- A magazine front page, topic hubs, reading progress, likes, comments and share tools.
- Episode to article to publish, automatically, about one a day.
- 20 old Framer posts moved word for word, with 107 old addresses redirected so no search ranking was lost.
- Markdown reader (never raw HTML)
- BlogPosting schema
- Framer service
- 301-style redirects
ValueA steady stream of fresh, indexable pages without a writing team.

The voices behind the network
ProblemPeople trust voices, but 11 hosts had no public profile.
- A page for every host with bio, shows and episodes.
- Testimonial videos on a privacy-friendly YouTube player that loads only after a tap.
- youtube-nocookie
- Person schema
- Lazy loading
ValueBuilds trust and gives each host a searchable profile.

Be a guest, three ways in
ProblemGuest booking ran through scattered emails and links.
- Pick the show that fits, then enter by PodMatch (free), Qwoted (by invitation) or a paid guest spot.
- Each route is set per show in one file; a show can be taken off PodMatch with one line.
- Connected to PodOps booking, scripts and host assignment: 8,000+ guests booked.
- PodOps bookings (Zoho, Calendoom)
- Per-show config
- UTM and referral capture
ValueA clear funnel that keeps the guest pipeline full.

Sponsorship with real numbers
ProblemSponsors asked for audience proof that was always out of date.
- A live media kit built from the same PodOps numbers, so it is never stale.
- 39 sponsors shown, with packages from one show to the whole network.
- Sponsor links carry rel=sponsored and appear on every episode in a fresh order.
- PodOps sponsor config
- Sponsor JSON feed
- Google AdSense (ads.txt)
ValueEasier sponsor sales and a transparent, honest ad experience.

Services that sell themselves
ProblemSelling podcast, editing, web and PR services meant manual quotes and invoices.
- Seven service pages with prices in rupees and dollars, set by Avik in PodOps and read at build time.
- Buy now opens checkout: Razorpay for rupees, PayPal for dollars, 18% GST added on rupee charges.
- Every confirmed payment gets a numbered GST or export invoice by PDF; refunds get credit notes.
- Razorpay + signed webhooks
- PayPal Orders and Subscriptions
- PDF invoices on demand
- Price API with safe fallback
ValueFrom interest to paid order with no manual steps, while Avik keeps final control of prices.

A partner programme that pays itself
ProblemReferrals happened by word of mouth, with no tracking or fair payout.
- Partners apply, get a link and a dashboard, and earn 20% of every payment a client makes, credited automatically.
- Commission is held 30 days, then batched. TDS is applied by yearly limit, statements are PDF, and one 'Approve and send' pays rupees by RazorpayX and dollars by PayPal.
- Known contacts never count, enforced on the server. Refunds reverse the commission.
- Attribution via ?ref
- FERNET-encrypted payout details
- RazorpayX + PayPal Payouts
- Server-side lapse and clawback rules
ValueA growth channel with no manual accounting and a human approval on every payout.

Podhub Watch: the video library
ProblemRecorded video conversations sat in Google Drive where nobody could watch them.
- A new module added alongside PodOps, never inside it: no existing module, flow or formula changed, and the whole thing sits behind one on/off switch.
- Import from Drive to Mux, an admin screen to edit captions, shows, guests and sponsors, then one publish hook to the public site.
- A public site to watch, search by show, host or guest, and a free member area with a Podhub Circle for transcripts and bonus episodes.
- A guest claim flow: guests get a single-use link that expires in 7 days, and they can only suggest edits to their own profile. A person approves before anything goes public. The word 'verified' never appears.
- Privacy by design: guest emails and phones have no field to appear in, and spoken emails or handles are flagged and removed from public transcripts one line at a time.
- Next.js on Render
- FastAPI public router (allow-listed)
- Mux video
- Google Drive API
- MongoDB watch_ collections
- HMAC-verified webhooks
- Worker with leases and resume
ValueTurns an archive into a public video channel and a second sponsor surface, with strict guard-rails. The site is live; automatic import stays off until a clean full test, by design.

The listen app
ProblemListeners wanted a simple player with the network's own copy of every show, not a link out to third-party apps.
- A public listening app served from PodOps, with the full library of shows and episodes as PodHub's own copy.
- Daily news and playlists, and a persistent player.
- The same data feeds the website, so the app and the site never disagree.
- React
- FastAPI public routes
- MongoDB library collections
- Rate-limited public API
ValueA first-party listening home that owns the audience relationship, not a rented one.
The engine room
PodOps runs the whole network.
PodOps is the internal operations platform that runs the whole network. It is the single source of truth behind the website, Watch and the listen app. Its admin screens hold private guest and team data, so this is a module map. Screens that are safe to show, with guest names blurred, are in the separate PodOps case study.
Bookings, scripts and hosts
Pulls bookings from Zoho Bookings and Calendoom, writes one interview script per booking and assigns a host from the show's roster.
Guests and CRM
Guest invite pages, feature pricing, digital store, sponsor page, broadcast and guest emailer, CRM and jobs.
Premium guests
Application, consent, signed agreement, booking and a share kit.
Social automation
Graphics, audiograms and reels published through Postiz.
Blog automation
Episode to article to www.podhub.club/journal, automatic, one a day.
Production Engine
Automatic audio and video editing on the studio Mac. Partly built.
People operations
Employees, leaves, onboarding, training, policies and appreciation for a team of hosts and staff.
Library, listen site and news
Own copy of every show and episode, public listen pages and daily news.
Platform core
Login, settings, storage, audit log, integrations, a landing page builder and an HR assistant.
- React
- FastAPI
- Built-in scheduler (32 jobs)
- MongoDB Atlas
- Render
- Cloudflare R2
- Resend
- GitHub Actions
- Two roles only: admin and employee. Hosts are employees.
- A push to main deploys production. A separate memory branch holds notes and never deploys.
- Anything a guest or listener reads stays warm, calm and human. No medical advice, ever.
ValueOne system replaces spreadsheets, email threads and manual publishing. 21 shows and 8,000+ recordings run with a small team because the repetitive work is automated and the risky work, such as money and publishing, waits for a human yes.
Architecture
Built once, served everywhere.
- 1
Sources
Podbean and Captivate feeds, PodOps (MongoDB Atlas) public API
- 2
Snapshot
Reads PodOps once, validates every slug and id, waits out restarts
- 3
Build
Next.js turns the snapshot into about 9,400 static HTML pages
- 4
Deliver
Render static site behind Cloudflare, strict security headers
- 5
Visitor
Fast HTML; only search, plays and engagement call the API
Self-healing builds
If PodOps is restarting, the build checks its health every 10 seconds for up to 4 minutes, then retries with backoff. If it still fails, Render keeps the last good site live.
Automatic freshness
A daily rebuild plus scheduled jobs refresh Podbean counts, ratings and reviews. Each job commits only its own data file.
Safe migration
Moved from Framer with 107 redirects, 20 posts and 15 policy pages carried over, then a planned DNS switch.
Narrow public API
The site never calls an admin route or holds a secret. CORS names routes, not credentials.
Technology
What it is made of.
Front end
- Next.js 16
- React 19
- TypeScript
- Node 22
- ssharp
Back end and data
- FastAPI
- Python
- MongoDB Atlas
- Resend
Infra and delivery
- Render
- Cloudflare
- GitHub Actions
- GitHub
Payments and revenue
- Razorpay
- PayPal
- Google AdSense
- Zoho Bookings
Content and growth
Podbean
CaptivatePostiz
- Search Console
- IIndexNow
Quality
- Vitest
- LLighthouse
- Claude
Built with an AI pair (Claude Code), reviewed and decided by me. Every merge is checked against the SEO, security and performance lists.
Engineering quality
Fast, findable, safe and open to all.
Performance
Lighthouse mobile performance on Healthy Mind pages, with 0 layout shift. Home 94 to 96, other pages 100 (measured live, 27 Oct 2026). Images shrunk 93% and cached for a year.
SEO, AEO and GEO
Lighthouse SEO on home, show and About (26 Oct 2026). Unique titles and descriptions, one H1, canonical tags, sitemap of 9,000+ URLs, schema for every page type, hreflang, IndexNow, and robots rules that welcome search and AI engines but block data scrapers.
Security
Strict content security policy, HSTS, no third-party scripts beyond ads, validated slugs and ids, rate-limited public writes, encrypted payout details, signed webhooks. No secret in the repo or its history.
Accessibility and reach
Eight languages (English, Hindi, Bangla, Dutch, Spanish, Italian, French, German) with hreflang and per-language titles. Reduced-motion support, labelled controls and tap-friendly targets.
Reliability
Rebuilds and data jobs keep the site fresh. A failing build never takes the site down: the last good version stays live. A weekly security and performance check runs on top.
Testing
Web tests at last count (28 Oct 2026), including wrong-input tests: crafted slugs, ids and search text, plus source checks for raw HTML, third-party scripts and leaked build data.
Recent work
What shipped this week.
SOS moves into Breathe
One shared rule shows SOS inside Healthy Mind and a Breathe button everywhere else. Checked across 9,489 built pages and three screen sizes.
Partner payouts, TDS and GST invoices
Payouts approved once, TDS by yearly limit, numbered GST invoices, credit notes and PDF statements.
Client payments and Services
Buy now checkout, Razorpay and PayPal, automatic 20% partner credit, prices editable in PodOps.
Healthy Mind in 7 more languages
Home, check-in, safety plan, Healing Paths, Learn, Myth or fact, Sleep and Spaces translated with automatic key checks.
Verified professionals and publishing workflow
Professional sign-up, second-professional review, Healthy Mind Voices and Ask a professional.
Healthy Mind goes live
Redesigned in the Apple wellness style, then Lighthouse-tested live: 98 / 100 / 0 shift.
The site in eight languages
182 translated pages, hreflang, per-language titles and a language switcher.
Site bible audit and search engines
SEO, security and performance audit; privacy and abuse fixes; Google, Bing, Yandex and IndexNow submissions; Cloudflare in front.
Sponsors, reviews, compact pages and automatic rebuilds
Sponsor publishing, episode reviews, guest cards, premium compact show and episode pages.
Impact
The result, in numbers.
shows in one network
episodes, all browsable
downloads (PodOps, 31 Oct 2026)
countries listening
static pages built
languages
sponsor brands
stars from 1,589 ratings
Sources: PodOps and podhub.club, 31 Oct 2026; ratings from Apple Podcasts, Spotify and Podchaser; Lighthouse and test counts from the build log.