Edulinks.ng — Nigeria's learning platform, on the company's own stack.
Nigeria's first educative platform: somewhere to learn, share what you know, and build toward a career - questions and answers, reputation, study groups, moderation. I founded it and lead engineering across a team of ten. It is built on our shared design system and tooling, and launches publicly in July 2026.
What's inside the platform
Built on the in-house system
Edulinks runs on @veraclins-dev/ui - the Radix + Tailwind component library and 650-icon set I had already built and hardened. The product layer moves fast because the UI layer is solved.
A schema modelled once
Postgres with Prisma, modelled the way the migration work taught me: relationships explicit, Q&A flows first-class, and trust entities present from the beginning.
Trust & safety, designed in
Validation queue, validator decisions, reputation events, reports, and appeals are in the schema from the first commit instead of being bolted on after launch.
The thesis
For two years I built the load-bearing parts of other people's products - a design system, a data migration, an editor. Edulinks.ng is the question that turned that into a company.
Edulinks is Nigeria's first educative platform - somewhere to ask the question the course outline does not answer, share what you know, and build toward a career.
The approach
I spent the novelty budget on the product, not the stack. The app is a React Router 7 server-rendered front end over a Postgres database modelled with Prisma - boring, on purpose.
The architecture choice that matters most is the shape: an Nx modular monolith with clean package boundaries kept separate enough that a ten-person team can work without stepping on each other.
The fastest way to ship a product is to have already built the boring parts, on someone else's clock, two years earlier.Note to self, founding Veraclins
The hard bits
- —Reuse versus extend. Knowing when to use a shared component as-is and when to extend it without forking the library is a weekly call.
- —Trust and safety from the schema up. A community product fails on moderation, not features, so reports, appeals, validation, and reputation are first-class entities.
- —Auth you can defend. Scrypt-hashed passwords, hash-only tokens, single-use reset challenges, and session revocation on reset.
- —Monolith discipline. A modular monolith only pays off if the boundaries hold when a shortcut would be quicker.
What I'd do differently
I would keep the launch surface narrower than instinct wants. A community needs a reason to have its first hundred good answers before it needs its hundredth feature.
Everything about leaning on the foundations, I would do again. The whole reason the company exists is that the plumbing was already there.
Read another case study
Mongo → Postgres — zero-downtime migration
A two-way sync, a phased cutover, and a healthcare platform that stayed online for the entire migration.