Aladia Online Learning Platform
Italian EdTech platform for cohort courses, live classes, and creator monetization — running live at aladia.io with 2,000+ registered students.
- Role
- Frontend Engineer
- Client
- Aladia S.r.l. (Italy)
- Year
- 2024

Stack
- React
- EdTech
- Stripe
- OAuth
The brief
Aladia is an Italian online learning platform covering cohort courses, live classes, AI-assisted course creation, and creator monetisation. Aladia's product team led direction, design, and platform architecture. I built the frontend surfaces learners and instructors use, roughly 800 engineering hours. It runs at aladia.io with 2,000+ registered students.

One page carrying too many states
The course detail page above is the surface I spent the most time on, because it has to hold several things at once without confusing anyone.
Look at the sidebar. Chapter 2 is expanded and running, its first two lectures ended, lectures 3 through 6 scheduled for specific dates and times. Chapter 3 is locked. Each row carries its own state: watchable, ended, scheduled for a date, or locked behind enrolment. Meanwhile the footer shows rating, language, seat count, live-lecture count, price, discount, and a countdown.
Cohort courses cause this. An on-demand course is a list of videos, all available, all identical in state. A cohort course has a calendar, so the same page must serve a prospective buyer deciding whether to enrol, a current student finding tonight's class, and someone who missed lecture 2 and wants the recording. Getting the lock and schedule states legible at a glance took more iteration than the video player, the chat, or the checkout.
Checkout inside the decision
The Stripe checkout sits in the course detail experience rather than on a separate page. Someone weighing a course against its price and start date should not lose that context to a checkout route, then have to rebuild their reasoning if they come back.
Instructor-side creation
I built both creation flows: on-demand course setup with content upload and chapter configuration, and live class scheduling.
These flows decide whether the catalogue grows. A platform whose instructors find course creation painful runs out of content, and no amount of consumer-side polish fixes an empty marketplace. The live class flow is the harder of the two, because scheduling has real consequences and an instructor who misconfigures a time zone strands a cohort.
Cross-cutting surfaces
Media playback, Google OAuth, and real-time chat, plus responsiveness work across the modules I owned. OAuth and payments are the two places where a bug does not degrade the experience, it ends the session, so both got more testing time than their line count suggests.
Gallery











