shipping next
education
Beauty academy & salon platform — public storefront, gated course player, and a full admin back office. End-to-end full-stack build.
01 · Outcomes
Numbers, not adjectives. The stats below are pulled from production. Anything still live, still measured.
shipping next
education
front + back
one set of hands
tech in stack
React · Node.js
shipped
year of build
02 · Overview
A full-stack platform for a beauty academy and salon, built front-to-back on one codebase. The public side runs the storefront — course catalog, e-books, product shop, cart with promo codes, certificate applications with public verification, appointment booking, and lead-capture forms. Authenticated students get a private dashboard with gated, Vimeo-hosted video lessons, their orders, scripts, and issued certificates. Staff get a scheduling and bookings panel, and admins run the whole operation from a single back office: educations, shop, orders, promo codes, certificates, employees, gallery, newsletter, statistics, and automated backups. Four roles, role-based auth, and a REST API on Node/Express + MySQL behind a React + Redux Toolkit frontend.
03 · Gallery
Mockups of the finished product. Click any shot to open it full-size.
04 · Decisions
Tech is downstream of decisions. These are the calls made early enough to compound the right way. The ones a code review six months later still agrees with.
Orders, courses, lessons, certificates, and promo codes are tightly related to each other. A relational schema with Sequelize gives real foreign-key integrity and clean joins that a document store would only fake.
One stateless API serves four roles — visitor, student, staff, admin. JWT with role-based access keeps the backend easy to scale and drops session storage entirely.
Course lessons play through Vimeo with domain-locked privacy instead of an in-house pipeline. That skips transcoding, storage, and bandwidth cost while keeping every lesson gated to paying students.
Let’s build
I take 4–5 freelance projects a year. Cold pitches welcome. I reply within 24 hours on weekdays.