E
Product
Vosuni

Vosuni

A platform where the learner says what they want to learn and the AI generates a tailor-made course, lesson by lesson. Here is how we built it: the problem, the stack, how AI fits in, the decisions and what we learned.

Generative AI Educational product Content creator
Visit Vosuni north_east

Technical terms show up as a dotted link — like . Click one for a plain-language explanation.

1The problem

A course is made once and served to everyone the same way. But two people who want to learn the same subject almost never start from the same place or want to go to the same depth. A single course wastes the time of whoever already knows part of it and loses whoever is just starting.

We wanted to flip the order: instead of the person adapting to a ready-made course, the course is built around the person. The learner describes what they want to learn, and the platform generates a tailor-made course from there — the artifact Vosuni creates is a real course, with its lessons, topics and quizzes.

2The stack

"Stack" is the word for the set of software pieces that hold a product up — the base it runs on, the ready-made tools it reuses, and the custom code on top. We'll walk through Vosuni's, because the choices explain a lot about the product. The guiding principle was simple: don't reinvent what already works. Explore the term for the plain-language version.

The base is WordPress working as a — it handles accounts and the structure of the site. On top of it sits LearnDash, a mature that already models the learning objects we need: courses, lessons, topics and quizzes. We chose this pair on purpose: a course platform like LearnDash already knows how to store and track those objects, so we didn't have to rebuild that foundation. A third piece, BuddyBoss, adds the social and interface layer, including a Duolingo-style focus mode.

Vosuni's layered stack A reused base — WordPress plus the LearnDash and BuddyBoss platform — with our own custom layer of five plugins built on top. OUR CUSTOM LAYER ↑ REUSED BASE ↓ on top
We didn't reinvent the base: WordPress and a mature course platform () sit at the bottom. On top we built our own custom layer — five , each with one job. Tap any block to see what it is/does.

On top of that base we built our own layer, divided into five — each with one job, shown in the diagram above. Keeping each capability as its own plugin means we can evolve one without touching the others.

The generation itself runs on in the cloud. So the stack has two halves: a well-established foundation for the courses, and a custom layer that turns an intention into a tailor-made course.

3How we used AI

The AI isn't a chatbot bolted onto a course — it is the engine that builds the course, and it works in a deliberate order. Tap each step to see what it does.

How the AI builds a course, step by step Six ordered steps: intention, extract the skill, competency rubric, map the skill graph, design the roadmap (before any content), then hydrate the course lesson by lesson. designed before any content
The order is deliberate: the roadmap (step 5, highlighted) is designed before any lesson is written (step 6). Deciding the whole path first keeps the course coherent.

All of this runs on multiple AI providers behind a single door, with (running Claude) as the default engine; whoever wants more control can plug in their own key (). When it helps, the AI can also anchor lessons in real web sources and show citations — grounding the content instead of inventing it.

4Key decisions

Generate a bespoke course instead of selling a catalog. It would have been simpler to offer a catalog of ready-made courses. We chose the harder route — have the AI generate a course per person — because that's the whole point of the product. Vosuni is a course creator, not a course store. A course built around where you are is worth more than a generic one you have to adapt yourself.

Reuse a mature course platform instead of building one. Rather than invent our own way of storing courses, lessons and progress, we stood on top of WordPress and a well-established . The learning objects were already modeled there, so we could spend our effort on the part that's actually new — the AI that generates the course — not on plumbing that already exists.

Design the whole roadmap before writing a single lesson. It's tempting to let the AI write lesson 1, then 2, then 3. We decided the opposite: the AI first designs the entire path, then fills it in. The reasoning is coherence — a course planned as a whole holds together far better than one improvised one lesson at a time.

AI available by default, with the option to bring your own key. The AI comes available by default, so anyone can use the platform without setup. For those who want more control, there's the option to . Most people never need to touch this — it's there for whoever wants it, not a barrier for whoever doesn't.

5Getting more technical…

This section is for whoever wants to look under the hood. None of it is required to understand the product — but the decisions here are the ones that made the rest actually work.

Custom tables for the skill graph. A course platform knows how to store courses and lessons, but it has no idea what a "skill", a "prerequisite" or a "reinforcement" is. So we created our own to hold that: one for the skills and their levels, one for the relationships between skills, and one for where each learner sits on each skill. Those relationships are the edges of the , shown below.

A mini skill graph A central target skill. Two prerequisite skills point into it with solid arrows (they come before). Two reinforcement skills connect with dashed lines (they strengthen it). Prereq A Prereq B Targetskill Reinf. C Reinf. D comes before reinforces
A prerequisite comes before (solid arrow); a reinforcement strengthens from the side (dashed arrow). Recording that difference is what needs the custom tables of the .

A single door for all the AI. Every AI feature — generating a course, finding a video, writing an exercise — goes through one central point, a façade. The code that handles the product logic never talks to a provider directly; it asks the façade, and the façade decides which provider, model and key to use. That's what lets us swap for someone's own key without rewriting anything. Each request to the provider goes out over an , the standardized way two systems talk.

Roadmap first, locked state, then hydrate. We generate the whole roadmap and lock it before filling in any lesson. Why do it in this order? Because generating content is the expensive part, in both time and cost. If the plan is still shifting while lessons are being written, you get an incoherent course and wasted generation. Deciding the plan once, freezing it, and only then spending effort on content keeps the course coherent and the work from being thrown away.

A tolerant JSON reader. We ask the to answer in a strict data format (JSON) so the system can read it. In practice, models often wrap or trim that answer — adding extra formatting around it or cutting it short. Instead of fighting the model, we built a tolerant reader that unwraps and repairs the response before using it. It's a small decision that quietly prevents a lot of broken courses.

6What we learned

Generating a whole course takes time, and asking the person to stare at a loading screen for minutes doesn't work. The lesson: break the heavy work into small steps and show progress as it happens, so the wait feels like something being built, not a frozen screen.

The order in which you do things changes the result. We learned the hard way that some steps only work if they happen before others — a detail that is invisible in the final product but decides whether it works at all. Building with AI is less about the prompt and more about the pipeline around it.

And a product principle we carried forward: the advanced option should never get in the way of the simple path. Powerful features for a few can't become friction for the many. We respect privacy and the law (LGPD) by keeping the default simple and the extras optional.

7What this means for your company

The core Vosuni mechanic is this: one body of content serves many different people. You keep the material and the AI adapts it per person, driven by parameters you set for the job — tone of voice, pace, prior knowledge, and how simple or deep to go for someone's capacity to absorb. And you control the scope: the public Vosuni lets anyone pick any topic from an endless list, but you can close that down to a finite set, or even a single course that each person simply receives adapted to them. Here's how that travels to other contexts.

Employee onboarding

One onboarding or training, adapted to each person's prior knowledge and the way they learn best. The employee can tune the tone, the pace and the depth to themselves, so the same material lands differently for a junior and a senior — without you writing two versions.

Customer education

Teach your product or your company's concepts with content focused on each persona. From a single base, the AI shapes the version each audience needs — a quick start for one, a deep dive for another — so you stop hand-making a separate piece of material for every public.

Teams

Build training aimed directly at the people on a team: take the material you already have and let the AI adapt it to each person's level and role. One source of truth, many versions — instead of a single course everyone sits through at the same depth.

The takeaway: when the same content has to reach people who are not the same, adapting one source per person — by tone, pace and depth, within a scope you control — beats shipping one rigid course to everyone. That's the piece worth adapting to your context.

Stack

It's the set of software pieces that hold a product up: the base it runs on, the ready-made tools it reuses, and the custom code on top. Talking about a product's stack means saying what it was built with and why.

CMS

CMS is the English acronym for content management system: the software that stores users, pages and content and lets you manage them without coding from scratch. In Vosuni, WordPress plays that role — it's where the accounts and the structure of the site live.

LMS

LMS is the English acronym for learning management system: the software that organizes courses, lessons, topics, quizzes and student progress. Vosuni uses a mature LMS (LearnDash) as its base, instead of reinventing that structure from scratch.

Plugin

It's a module that slots into an existing base to add a new capability, without rewriting the whole base. In Vosuni, each custom part — generating the course, the navigation, the practice, the access — is a plugin that connects to WordPress and the LMS.

Generative AI

This is the kind of AI that creates new content — text, explanations, exercises — instead of just classifying or looking up something ready-made. It's the type of AI behind tools that write and answer. In Vosuni, it's what writes the lessons and builds the tests.

Skill graph

It's a map of skills linked to each other by relationships. In technical terms, each link is an edge: some say what comes before (prerequisites), others what reinforces. Instead of a loose list, it's a network that shows the natural order of learning — and that's why it needs its own tables in the database to be represented.

Amazon Bedrock

It's an Amazon cloud service that gives access to AI models from several vendors through a single door. In Vosuni, it's what runs, by default, the Claude model that generates the courses — with no setup from the learner.

LLM

LLM stands for "large language model" — the AI engine trained to generate text, like the one that writes the lessons. A practical detail: sometimes it returns the answer "wrapped" (with extra markup around it), which is why the system needs a tolerant reader that unwraps that text before using it.

Use your own AI key (BYOK)

BYOK comes from the English "bring your own key". It's the option to connect your own account with an AI service in place of using the platform's. Whoever wants it keeps control over their own usage; whoever doesn't never needs to know the option exists — the AI already comes available by default.

API

An API is the standardized way two systems talk to each other: one asks for something following an agreed format and the other answers in the same format. It's how Vosuni talks to the AI service in the cloud to ask for a piece of text to be generated.

Custom table

In a relational database, data lives in tables — like the sheets of a spreadsheet workbook, with rows and columns, referencing each other by codes. A custom table is one built on purpose for data the ready-made base can't store; in Vosuni, we had to create our own tables to represent the skill graph.

Newsletter

Learn to build along.

Behind the scenes of educational products, AI applied for real and what we learn while building. Straight to your inbox, no fluff.

mail
Subscribe to the newsletter Free · via Substack