Fundia - how we built an online learning platform
We designed and built an online learning platform for high school students: courses split into short lessons, plus a custom editor where the Fundia team creates interactive lesson content.

Facts
- Project type
- Online learning platform with a custom content admin
- What we delivered
- Product design, UX/UI design and full-stack development
- Industry
- EdTech, education
- Status
- In production
- Where to find it
- fundia.sk
About the platform
Fundia is an online learning platform aimed primarily at high school students and school leavers. Students choose from a range of courses, pick the one they need right now and work through it lesson by lesson.
There is no shortage of material online, yet students lose time in it. Videos and study notes cover everything broadly, repeat a lot and scatter the essentials across ten different places. Courses on Fundia are built on the opposite principle: no filler, and exactly the scope a student sitting their finals actually needs to know.
Along the way the platform shows how far they have come: a learning streak, a daily goal and badges for milestones reached.
The other half of the product is the admin, where the Fundia team builds courses and articles themselves. New content is written in a browser, not in a ticket for a developer.





The challenge
At first glance a learning platform looks like “a website with articles”. In practice we ran into several problems an ordinary website never has to solve:
- Content that is more than text. A lesson needs to render mathematical notation in LaTeX, alternate between content types in any order and carry interactive simulations and quizzes as well. Off the shelf CMSes handle this with third party extensions that cannot be tailored, so authors end up pasting images instead of real content.
- A student who comes back tomorrow. Content on its own does not keep anyone learning. The platform has to know exactly where a student is in a course, how much of the lesson is behind them and what comes next, reward consistency with badges and streaks, and let them genuinely work with the content rather than just read it. That meant tracking progress at the level of individual lesson parts and getting that data into the interface without turning it into another drag on page load.
- A fast site on top of living content. Public pages have to be fast and easy to index, yet the content changes daily. So we had to settle what gets pre-rendered and cached, how long a cache entry may live and, above all, when it invalidates itself, so that an edit in the admin shows up on the site within seconds and without deploying a new version.
- A product that will grow. It was clear from the start that new content types, subjects and paid courses would follow. The architecture had to absorb all of it without a rewrite.
How we built it
Content as building blocks
The key decision was the data model. A lesson is not one long text: a course splits into lessons, a lesson into sections and a section into blocks of text, image or video. Authors arrange them in any order and every block type is rendered by its own component.
As a result, a new feature is not a rebuild of the system but a new block type. Content states (draft, coming soon, published) and the access levels that pave the way for subscriptions were just as easy to add.

A custom editor instead of an off the shelf CMS
The biggest technical challenge was the editor. We built it on TipTap and added our own extensions for the technical and interactive content the lessons need. Authors assemble a lesson from ready made elements and never have to work around anything with images.
What really matters is how the content is stored. A lesson is not saved as finished HTML but as a structured document: a tree of elements where every paragraph, formula or definition carries its own type and properties. The content therefore does not depend on how the site happens to look today.
That has three practical consequences. The editor and the public site read the same document, so authors see exactly what students will get. Changing the design is a matter of components, not rewriting hundreds of stored lessons. And because the content is a data structure, it can be reused elsewhere, for example in the blog, which runs the very same editor.

The admin
In the admin the team manages courses, lessons and the blog, uploads media and follows how the platform is used on a clear dashboard. We built the interface on the accessible components of Radix UI with a design of our own.
Feedback right next to the content
Content authors need to know which lesson works and which one students drop out of. At the end of every lesson we therefore ask students how they liked it, and the rating is stored with that lesson. It takes a single click, so there are enough answers to add up to a usable signal.
The Fundia team then sees the average rating and the number of responses for every lesson in the admin, plus a leaderboard of the best rated ones. Feedback does not end up in a spreadsheet: it points straight at the lessons and sections to rewrite or expand.
The second source is the usage itself. Alongside the ratings we track how students behave in the content: how many start a lesson and how many finish it, which section progress usually stalls at and which content they keep coming back to. The team sees not only what students said, but what they actually do, and can shape the content accordingly.
Why not an off the shelf solution
| Off the shelf LMS / CMS | Fundia | |
|---|---|---|
| Content authoring | Images of equations and a limited editor | A custom editor for technical and interactive content |
| Extensibility | Waiting for a plugin or a new release | Interactive simulations and new formats ship without touching existing lessons |
| Lesson structure | One long page of text | Short sections with their own pace and completion state |
| Student motivation | A course completion percentage | Streaks, a daily goal and badges for milestones |
| Design | A template | An interface designed from scratch |
An off the shelf solution would have saved the first few months, but every further requirement would have run into its limits. Our solution rests on a block based content model and a purpose built editor, so the platform can change as its content changes.
The result
We delivered the complete platform, from the public site with the courses to the admin where the content is created. Today the Fundia team has:
- a fast public site with courses and a blog,
- an editor where they build interactive lessons themselves,
- an admin with a clear view of how the platform is used


Tech stack
The technologies the platform runs on:
Have an idea for a product with a similar scope? Get in touch

