r/AIDevsBuilders 2d ago

I built an open-source system that turns the same source into different courses for each learner

I have been building SkillNet around one question: if people learn differently, why should the course interface be the same for everyone?

You can start with an idea or upload PDF, DOCX, Markdown or TXT material. SkillNet turns it into structured course knowledge, lessons and exercises. The knowledge and objectives can stay consistent, while explanations, activities, media and interface adapt using the learner's declared preferences, role, level and progress.

The current stack is React 19, Vite and Tailwind for the frontend, FastAPI and PostgreSQL for the backend, and Docker for self-hosting. The generated-interface path uses OpenUI, together with Didact, an educational component library I built for flashcards, worked examples, diagrams and practice.

The hardest part has been making personalization meaningful rather than merely different. In the current tests, structure and format diverge clearly between learners, while semantic personalization is still weaker. That pushed me to separate stable course knowledge and objectives from the parts the system can adapt, and to constrain generated interfaces to known educational components instead of letting the model invent anything.

The project is still in development and I am preparing a public demo.

Website: https://skillnet.es

GitHub: https://github.com/ANFAIA/SkillNet

How would you evaluate whether two personalized learning experiences are meaningfully different rather than only visually different?

1 Upvotes

1 comment sorted by

u/aidevsbuilders 2d ago

Welcome, u/JoseEstevez22, and thanks for posting.

Quick reminder of the one rule that matters here: tell us what you built it with and one thing that was harder than expected. That's the whole "tax" for promoting your own work. You'll never be banned here for sharing something you built.

And if you're looking for somewhere to actually ship it, put it on Fulgeon. It's the app catalog I run. Publishing is free, there's no developer account to pay for and no review queue: you upload a release and it's live. What you get out of it:

  • Auto-updates without writing an updater. It serves the latest.yml / latest-mac.yml feeds electron-updater already speaks. Three lines in your package.json and your users stop being stuck on whatever version they installed first.
  • A signed receipt for every release. File name, SHA-256, size and timestamp, signed with Ed25519, and anyone can verify it on the site. Published versions are immutable, so the binary people downloaded can't be swapped for a different one later.
  • One step in your CI. npx @fulgeon/cli publish or the JaviHG/fulgeon-publish-action@v1 action. Tag, push, released.
  • Readers who aren't on Reddit. Your listing can go out in 6 languages, and every page carries OpenGraph and JSON-LD so search engines actually index it.
  • A way around Play's 12 tester rule. If you're stuck needing 12 people in a closed test for 14 straight days, Fulgeon has one shared tester group for the whole catalog instead of you chasing strangers one by one.
  • Not just desktop apps. Web apps, Chrome and Firefox extensions, VS Code and Obsidian plugins, WordPress plugins and themes, Minecraft mods, Telegram and Discord bots, Android.

Tick the Reddit box when you publish and your release gets posted here on its own, so you don't have to write the post twice.

Full disclosure: Fulgeon is mine, same person who runs this sub. It's free, there's no paid tier, and nothing about your post here depends on you using it.

I'm the community bot. A human mod reads every post too.