Case studyConnected Hair

A hairdressing academy that runs like Netflix.

We moved 100+ video courses for hairdressers off WordPress onto a platform built from scratch: a streaming-style catalog, accounts and plans, protected video, search across course content, and an AI assistant that answers straight from the material.

connectedhair.com
Connected Hair Academy: a Netflix-style course catalog

The Challenge

Connected Hair Academy, Poland's largest online education platform for hairdressers, ran on WordPress: a sprawling stack of plugins for memberships, payments and video, a site getting slower by the month, and an interface that couldn't keep pace with how fast the product was growing. The goal: a streaming-service feel, full control over payments and data, and zero downtime for existing members.

A catalog that feels like Netflix

Members browse courses the way they browse a streaming service: themed rows, hover-to-preview on every tile, a hero banner for new releases. Every course and every educator gets its own public page that works for SEO and sells access. One row, Fundamentals, does not sort itself: courses carry an editorial score for how foundational they are, so what a newcomer starts with is a decision, not a play counter.

  • Rows for new releases, featured picks, most watched, and technique categories
  • Course pages with a results gallery, chapters and a video preview
  • Educator pages with a bio and their full course list
  • Continue Watching, My List and ratings, Netflix-style
Academy catalog: rows of course tiles with hover preview

Course pages built to sell access

Every course gets a rich public page: a hero with a video preview, a results gallery, chapters with thumbnails and running times, and a ‘what you’ll learn’ section. All of it is visible to logged-out visitors, because that's what drives sales. Only members with active access can actually play the videos: every clip sits behind signed, expiring tokens.

Course page: chapters with video thumbnails and running times

Accounts, plans and payments

No passwords: sign in with a link or a code sent by email. Subscription plans, single-course access and a 48-hour course rental all run through one system, and an account is capped at two active devices so a login cannot quietly turn into a shared one. Payments run on Stripe: checkout, invoices and a client portal, and buyers do not have to register first, the account is waiting for them after the purchase. We moved the existing subscriptions across without asking a single customer to re-enter their card.

What a member sees after signing in

One place for everything: active access and what they started watching, the invoice list pulled straight from the accounting system with files to download, payment receipts for the people who do not need an invoice, their own devices, and payment management. The invoice file is served by an endpoint that checks the document belongs to the signed-in person before it sends anything, so swapping a number in the URL gets you nowhere.

Quizzes and certificates

Courses can end with a quiz. Pass it and the certificate issues itself, no admin in the loop. The certificate is a print-ready page members save as a PDF straight from the browser, so nothing has to be generated on a server.

Search and an AI assistant

Search indexes what educators actually say in the courses, not just titles. It understands intent and jumps straight to the exact minute of the exact lesson. On top of that, the Ask the Academy assistant answers questions using course material only and cites its sources, each one a click away from the right moment in the player.

Search: querying ‘balayage’ surfaces courses and moments inside the transcripts

More than courses

Around the academy sits a full content platform: 63 articles, 19 podcast episodes and the magazine archive, every one of them with its own page working for search. There is also a community forum, moved across with its people and its discussion archive, on a single sign-on with the academy. The whole site runs in Polish and English at full parity, 469 pages in total, with structured data for courses and videos and language annotations so search engines know what is what and in which language.

Two panels for the owner

Courses, educators, blog, quizzes and certificates live in one content panel (Payload CMS). Publishing a change automatically rebuilds and redeploys the site, no developer required. Next to it runs an operational panel: find any customer, see their access, plans, payments and invoices, grant or revoke a course, extend access by a set number of days. Every change lands in an audit log, so there is always an answer to who changed what and when.

A move with no downtime

The new platform took over the main domain without a break in access. Over 500 permanent redirects carried the old URLs across, so the Google rankings stayed put, and WordPress was only switched off once everything, from sign-in through payments to invoicing, was already running on the new system. The content came across with the URLs: dozens of blog articles, their images rehosted, and the links inside the text rewritten so nobody lands on a redirect chain.

// Under the hood

How it's all wired together

Every access decision runs off one registry. Payment just updates it, and every channel (video, audio, certificates, invoicing, the forum, both panels) reads from it as the single source of truth for who can watch what. That means adding another product type never complicates the rest.

Entry: payment and sign-in
Checkout without signing up no friction
the account appears after the purchase
Stripe payments Stripe
plans, single courses, rentals
Sign in by link or code passwordless
no passwords
Core: one access registry
Access registry source of truth
plans, courses, time-limited access
Payment webhooks realtime
update the registry in real time
Access rules one logic
plan, single course, 48-hour rental
Access enforcement
Video signed
signed, expiring tokens
Audio signed
signed URLs
Device limit sessions
two active sessions
Quizzes and certificates auto
issued on a pass
Invoices and receipts auto
Transactional email pl / en
Forum single sign-on SSO
Panels
Member account self-service
access, invoices, devices, progress
Operational panel audited
customers, access, audit log
Content panel no developer
publishing rebuilds the site

Simplified diagram. Hover a block to highlight its connections. Every piece runs in production.

Technologies

  • Astro
  • Payload CMS
  • Postgres (Neon)
  • Better Auth
  • Mux
  • Bunny
  • Stripe
  • Fakturownia
  • Discourse
  • Resend
  • AI / RAG
  • Vercel

Planning something similar?

Tell us what your platform needs to do. We'll scope it and send a quote.

Back to all work