Knwdle
“One place to run a school, and one place for students to choose one.”
A multi-tenant education platform and a public college-discovery surface, built and run as one system.
- Sector
- EdTech / Directory
- Engagement
- 2025 – 2026
- Scope
- End to end
- Live
- knwdle.com

Overview
Knwdle is two products sharing one backend. The public side is a college-discovery surface — directory, NIRF rankings, JEE college predictors, and a large library of free student calculators — engineered as an SEO asset. The private side is a multi-tenant platform where schools, coaching centres and universities run people, attendance, announcements, assessments, fees and a parent/student portal.
We own the whole stack: the Express/Prisma API, the two public Next.js sites, the institution admin console, the internal platform console, the Connect web portal, and the React Native Connect app — plus the cron jobs that scrape admissions data, sync Search Console, and snapshot revenue.
The brief
One system for two very different users
Knwdle set out to serve two audiences that almost never share a product: students and parents choosing a college, and the institutions that run classrooms every day. The obvious move is to build one and buy the other. Knwdle wanted both — on one backend, run by one team, so the two halves compound instead of drifting apart.
The public side is a college-discovery surface: a directory of more than 40,000 Indian institutes, NIRF rankings, JEE Main and JEE Advanced college predictors, and a library of 275+ free calculators and generators for students and parents. It was engineered from the first commit as a search-acquisition asset, not decorated with SEO afterward.
The private side is a multi-tenant education platform. Schools, coaching centres, universities and training organisations use it to manage people, audiences (departments and classes), attendance, announcements, assessments, fees, and a Connect portal for students and parents.
Algotrax owns the whole stack: the Express and Prisma API, two public Next.js sites, the institution admin console, an internal platform console, the Connect web portal, and the React Native Connect app — plus every scheduled job that keeps the data underneath them current.
Architecture
Seven applications, one contract
Underneath everything is a single PostgreSQL database, a single Express API — 96 Prisma models, 198 REST endpoints — and an OpenAPI definition that the whole team builds against. Seven front ends consume that contract: two marketing and discovery sites, the institution admin console, the internal platform console, the Connect web app, the React Native app, and a Swagger surface for internal use.
Multi-tenancy is enforced at the data layer, not bolted on top. Every query is organisation-scoped, and the API's integration suite includes a dedicated org-isolation battery that fails the build if one tenant can read another tenant's data. Roles and permissions are first-class models, not a column of strings.
Because the public site and the platform share that one backend, a change to how attendance is modelled reaches a parent's phone the same day it ships. There is no integration layer to keep in sync, because there is no second system.
There is no integration layer to keep in sync, because there is no second system.

Programmatic SEO
The public surface, engineered as a search asset
The college directory runs on Meilisearch with roughly a dozen facets — state, city, type, ownership, regulatory basis, admission pathway, NIRF band and rank, discipline, course and specialization. Every meaningful facet combination resolves to a crawlable, canonical, structured-data-bearing URL, so the directory is a search surface measured in tens of thousands of pages rather than a single filtered app.
The data underneath it is real and kept current by scheduled jobs: a JoSAA seat-allocation scrape, an NIRF ranking ingest, and a directory quality scan that flags thin or boilerplate pages before Google ever sees them. Programmatic SEO only works when the content is genuinely useful — the scrapers and the quality gate are the actual product.
The free-tool library — CGPA and percentage converters, attendance calculators, fee and scholarship estimators, certificate generators — was built as its own acquisition channel. In committed Search Console analysis the tool pages consistently out-performed the heavier college pages on click-through, so they earned their own investment.
Every public route ships sitemaps, an llms.txt and llms-full.txt for AI crawlers, IndexNow submission, per-page canonicals and JSON-LD. A Google Search Console sync job pulls query, click and coverage data back into the platform, so the surface is tuned against real search behaviour on a weekly loop rather than a quarterly guess.
Programmatic SEO only works when the content is genuinely useful. The scrapers and the quality gate are the actual product.

The predictor
A college predictor that admits it's an estimate
The JEE predictor computes Safe, Moderate and Ambitious bands from JoSAA closing-rank windows using a piecewise-linear chance curve, a recent-year weighted projection, a trend adjustment and a confidence score. It is category-rank aware rather than CRL-only, handles home-state quota, and covers JEE Main — NITs, IIITs and GFTIs — as well as JEE Advanced and the IITs.
The code is explicit, in its comments and in the interface, that the output is an estimate and not a statistical probability. In a category full of tools that imply certainty, saying so plainly is a positioning choice, and it's the client's choice — we built the honesty in on purpose.
Around the predictor sits a layer of programmatic landing pages: cutoffs by year, branch and category, guide pages, and per-institute pages. Each one is a real answer to a real search, which is why they rank.

The platform
The console schools actually run on
Institutions model their structure as audiences — folders that group classes, and leaf classes that hold members and attendance. The effective-timetable engine reconciles the base timetable with attendance sessions, cancellations, reschedules and one-off extras into the single view a teacher sees each morning.
Assessments carry real integrity. Attempts store a form snapshot so grading and re-rendering stay stable even if the question later changes; a lockdown middleware blocks notes and content routes while an attempt is live; date-sheet scheduling handles exam groups, slots and per-audience assignment.
- Members — students, staff and parents, bulk import, guardian-request approvals
- Academics — audiences, timetable, attendance sessions, announcements, notes with a whiteboard
- Assessment — assignments with submission and grading, tests with attempt lockdown and calendar date sheets
- Fees — plans, invoices and Razorpay collection, all reconciled against the same records

Billing
Money you can trust twice
Two payment flows run side by side: subscription billing for the institution, and fee collection from parents. Both go through Razorpay, and both are built to be idempotent from the ground up.
Customer and subscription objects are reused rather than recreated, idempotency keys are deterministic, webhook signatures are verified, and every event is de-duplicated. Fee generation is preview-before-commit: plans are configuration, invoices and payments are immutable records you can audit.
The billing webhook is mounted before body parsing so signatures verify against the raw payload. It's a small detail, and it's the difference between a billing system that reconciles to the rupee and one that quietly drifts.

Connect apps
The same portal, on the web and in a pocket
Connect is the student and parent surface — dashboard, timetable, results, report cards, finance, announcements. It ships as a Next.js web app and as a React Native app built with Expo Router for Android and iOS, sharing state and API contracts through a common package so the two stay in lockstep.
A shared axios instance dedupes token refreshes and coordinates them across browser tabs with a BroadcastChannel, so a parent with the portal open in three tabs never triggers three competing refreshes — the kind of bug that only shows up in production, at the worst time.



Operations
The machinery underneath
Scheduled jobs keep the platform honest: the JoSAA predictor scrape, the Search Console sync, nightly revenue and organisation-health snapshots, the directory quality scan, and the full subscription lifecycle — trial expiry, grace periods, dunning and alert evaluation.
The internal platform console is its own product. Governance and audit logging, DPDP compliance tooling, customer-health and at-risk views, signup and lead funnels, revenue movement and cohort analysis, a 0–100 lead-intent score, and a command centre with alert rules — the operating system for the business behind the business.
The API deploys to EC2 on every push to main through GitHub Actions — Prisma migrate, PM2 reload — and carries a Vitest suite covering auth, org isolation, permissions, attendance, fees, assessments, billing and the cron jobs. The admin console adds Playwright end-to-end specs on top.
The engineering you don't see in a demo.
A predictor that admits it is an estimate
The college predictor computes Safe / Moderate / Ambitious bands from closing-rank windows using a piecewise-linear chance curve, a recent-year weighted projection, a trend adjustment and a confidence score. The code is explicit that the output is an estimate, not a statistical probability — and the UI says so too.
Search that degrades gracefully
Directory search builds Meilisearch filters across a dozen dimensions and sorts by text relevance unless there is no query. When the search service is unavailable it falls back rather than 500s, and reindex lookups are chunked so a bulk update never stalls the site.
Billing you can trust twice
Razorpay customer and subscription objects are reused, idempotency keys are deterministic, webhook signatures are verified and events are de-duplicated. Fee generation is preview-before-commit: plans are configuration, invoices and payments are immutable records.
Cross-tab auth without race conditions
A shared axios instance dedupes token refreshes and coordinates them across browser tabs via BroadcastChannel, so a parent with the portal open in three tabs never triggers three competing refreshes.
What it runs on.
Measured from the repository, not the pitch.
Against the baseline.
Reported as change against the engagement baseline. Search figures stay as percentages and multiples on purpose — absolute volume tracks Knwdle's news and category cycle, so the relative move is the honest measure.
Scope, stack, scale and the engineering above are drawn straight from Knwdle's codebase and git history.
The takeaway
What this kind of engagement buys you
One team holding the product, the search surface and the infrastructure means the SEO isn't a separate contractor guessing at someone else's CMS. It's wired into the same data model, with a measurement loop from Search Console straight back into the roadmap.
344 days of continuous development, 335 commits, one accountable partner. The traffic and revenue numbers are Knwdle's to share — what we can show you is that the machine that produces them is real, tested, and still running.