Practitionist / Practitionist/elluminar_web
πΊοΈ Phase roadmap: tech + business, with what's already done (companion to #83)
@teetangh is already working on this.
Since Aug 28, 2026.
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 0
- Avg merge
- 17h 2m
- Merged PRs (30d)
- 18
Description
Companion to #83 (business model decision of record). #83 says what we are building and for whom. This issue says in what order, and β just as important β what is already done.
Date: 2026-08-27 Β· Horizon: 12 months Β· Operating mode: solo founder, side project alongside a full-time job
How to read this
Two umbrellas, five phases each. Every phase has a Definition of Done β a single condition that must be true before the next phase starts.
[x]= done and verified in the repo today[ ]= not done- π΄ = blocks the next phase Β· π = needed within the phase Β· βͺ = nice to have
- π ΏοΈ = deliberately parked (see #83 Part 8)
Deliberately kept at capability level. Which library implements SSO or rate limiting is not a roadmap decision.
Where we actually stand today
| Age | ~8 weeks (first commit 2026-07-03) |
| Hand-written app code | 33,403 LOC |
| Pages | 77 across 8 route groups |
| Data models | 111 (~34 have zero app code touching them) |
| Server-action modules | 23 |
| Unit tests | 102 cases / 13 files β passing in CI |
| End-to-end tests | 14 cases / 2 specs β οΈ written, not wired into CI |
| Migrations | 4 (schema frozen behind a CI gate) |
| Open issues | 55 |
| Paying customers | 0 |
| Revenue collected | βΉ0 |
| Live payments | No |
| Legal entity | Not registered |
The honest read: the product is roughly 70% of the way to a first B2B sale. The company is roughly 10% of the way there. Almost every remaining blocker is on the business side, not the engineering side β which is the inverse of where the last 8 weeks went.
π οΈ UMBRELLA A β TECH
Phase T0 β Foundation β COMPLETE
This is the part that's genuinely done. It is a lot, and it is good.
Identity & tenancy
- Multi-tenant model with distinct tenant types (creator / enterprise / university / hiring partner)
- Email + password and social sign-in, email verification, password reset
- Two-factor authentication
- Organizations, teams, dynamic roles, seat invitations
- Enterprise single sign-on paths (OIDC + SAML) with domain verification β built, never tested against a real identity provider (#63)
- Tenant application β admin approval workflow
- Session storage with a secondary cache layer
Catalog & authoring
- Courses, sections, lessons, categories, resources
- Cohorts with capacity, enrolment windows and lifecycle states
- Creator studio: drag-and-drop curriculum builder
- Quiz authoring with automatic grading
- Assignment authoring with a grading queue
- Per-course and per-cohort pricing set by the seller
- Coupons, member management, earnings view
- Public creator storefronts
Learning experience
- Learner dashboard, lesson player, progress tracking
- Discussion threads per course
- Orders, billing and refund-request surfaces
- In-app notifications
- Community surface with leaderboard
The differentiated loop β mentor-reviewed projects
- Projects as a standalone sellable product across three tiers
- Milestones with review checkpoints
- Submissions with file upload to private storage (type + size validated)
- Mentor application β vetting β assignment workflow
- Versioned, immutable rubrics with per-criterion scoring
- Mentor review queue with SLA flags
- Milestone approve / request-changes and final review
- Completion gates actually enforced β every checkpoint approved, plus a passing defence review where required
- Credential issued on pass, with public verification page, printable certificate and public portfolio page
Money
- Cart and checkout with seat-capacity checks before payment
- Payment provider behind an abstraction, with signed webhooks
- Orders, payments, refunds, subscriptions, subscription plans
- Double-entry ledger β signed, append-only, idempotency-keyed, with cached balances
- Gapless sequential invoice numbering (GST requirement) via row-locked counter
- Commission snapshotted onto the order line at purchase time
- Mentor fee computed and posted to the ledger on pass
- Manual payout recording with reference capture
Enterprise / institutional
- Programs and program cohorts
- Organization licenses, seats, and credit pools with concurrency-safe drawdown
- Roster CSV import
- Report export
- Organization portal for the buyer
Platform & operations
- Admin console β tenants, mentors, projects, orders, refunds, payouts, coupons, licenses, moderation, feature flags, SSO
- Feature-flag infrastructure
- Audit logging
- Error monitoring
- Transactional email with a safe local fallback
- Terms, privacy and refund policy pages (text is solid; the entity behind them is a placeholder)
- Design system and marketing site
- CI: schema-freeze gate, schema-coverage audit, typecheck, lint, unit tests, build β with pinned actions and least-privilege permissions
- Deploy pipeline: PR previews, dev branch deploys, production branch
Definition of Done: β met. A learner can be enrolled, learn, submit work, be reviewed against a rubric, and receive a verifiable credential β and the money movement is correctly recorded.
Phase T1 β Make it possible to take money π΄ CURRENT PHASE
Nothing here is optional. Each item independently prevents a first rupee.
- π΄ Go live on payments β currently test mode only Β· #38
- π΄ Replace fabricated marketing content β the landing page's mentors, testimonials and statistics are hardcoded arrays. This is a compliance liability the moment a real buyer reads it Β· #37
- π΄ Real legal and support surface β support and grievance addresses are
@example.com; legal entity reads "pending incorporation" Β· #36 - π΄ B2B tax invoices for contracts β a company will not pay without a compliant GST invoice Β· #46
- π΄ Product analytics β without this the 90-day gate in #83 cannot be evaluated at all Β· #12
- π Fix free-course enrolment + coupon tenant-scope leak Β· #58
- π Enforce entitlements beyond the player page; tighten the permissive catalog-scope default Β· #51
- π Enforce tenant-type gating at the route level (navigation-only today) Β· #47
- π Security and auth hardening pass Β· #35
- π Point the real domain at production β every link shared before this trains people on a URL that will change
- βͺ Wire the existing 14 e2e tests into CI; add action rate-limiting Β· #65
- βͺ Remove shipped example/scaffolding routes
Definition of Done: a real company can be invoiced, can pay, and the payment lands in a real bank account β and we can see it happen in analytics.
Phase T2 β Deliver the first engagement π
Only starts once T1 is done and a pilot is signed. Scope is driven by what the first buyer actually needs β do not pre-build.
- π΄ Buyer-facing outcome report β completion plus rubric scores per learner, exportable. This is what the customer is actually paying for.
- π Verify enterprise SSO end-to-end against a real identity provider Β· #63
- π Revoke credit-pool project instances on seat revoke / licence cancel Β· #48
- π Wire subscription-credit redemption β credits are granted today but never consumable Β· #50
- π Handle subscription resumed β restore active status Β· #49
- π Reconcile credit notes and ledger reversals when refunds fail Β· #45
- π Content authoring gaps β sales description, thumbnails, richer editor, real free preview Β· #64
- βͺ Clean up abandoned uploads Β· #68
- βͺ Roster import dry-run and validation preview
Definition of Done: one cohort of real learners from one paying organisation completes, and the buyer receives a report they find credible.
Phase T3 β Make delivery repeatable βͺ
Only justified once there are 3 paying logos. Every item here is automating something currently done by hand β do it when the hand-work hurts, not before.
- Payout automation and creator/mentor KYC β payouts are manual today Β· #14
- Notification infrastructure with WhatsApp-native reminders (review SLAs, deadlines) Β· #10
- Bulk seat provisioning and self-serve org onboarding
- Auto-generated proof-of-work portfolio pages Β· #6
- Search and recommendations upgrade Β· #16
- Rubric calibration tooling β the quality risk that scales with volume
- Disaster-recovery documentation and restore drill Β· #65
Definition of Done: a second and third customer can be delivered without the founder touching the pipeline manually.
Phase T4 β Scale surfaces βͺ
Nothing here before βΉ1L/month recurring.
- Hiring-partner talent marketplace over verified portfolios Β· #18
- SCORM/xAPI export for enterprise LMS interoperability Β· #23
- Subdomain and custom-domain storefronts Β· #13
- Mobile app evaluation Β· #29
- Verification API for employers β the one genuine venture-scale door; pursue immediately if an employer ever asks unprompted
π ΏοΈ Parked β explicitly not doing
#52 #53 #59 #60 #61 #62 #66 β video DRM, live sessions, live-join fallback, chat, sandbox/judge, vendor decision gate.
Rationale: async B2B delivery (content β assignment β rubric-scored human review β credential) needs none of it. This also retires the largest structural risk in the codebase β a stated differentiator depending entirely on a vendor that was acquired mid-transition, whose signup is paused, and for which we hold no API key.
Un-park trigger: a paying customer asks for live delivery in writing.
πΌ UMBRELLA B β BUSINESS
Phase B0 β Research and positioning β COMPLETE
- Full market research across Indian K-12/test-prep, global course marketplaces, cohort platforms, and solo-operator economics (~190 searches, 4 independent sweeps)
- Competitive teardown of direct comparables
- Audited-financial review of every named competitor β established that exactly one (Jaro Education) has positive PAT
- Unit-economics model with an explicit price floor
- Business model decision of record β B2B-first Β· #83 (pinned)
- Vendor risk register with a graded verdict
- Commission and payout economics designed and implemented
- Legal policy text drafted (terms, privacy, refunds)
- Brand name chosen, domain purchased
- Prior business viability review with kill criteria
Definition of Done: β met. We know who the buyer is, what the price floor is, and which channels are arithmetically dead.
Phase B1 β Become a company that can invoice π΄ CURRENT PHASE
This is the actual critical path. None of it is engineering. All of it is unglamorous.
Legal and financial
- π΄ Register the legal entity
- π΄ GST registration (18% applies to private training β it is not optional)
- π΄ Business bank account
- π΄ Payment gateway KYC and live keys
- π Real support and grievance contacts, published
- π Professional indemnity / basic business insurance check
Commercial paperwork
- π΄ B2B pricing sheet β day rate, per-seat rate, engagement packages. Anchor at βΉ50,000+ and validate against published market rates on the first three calls.
- π΄ Standard services agreement / MSA template
- π Data processing addendum template (enterprise buyers will ask)
- π Mentor engagement agreement + payout terms
- βͺ Purchase-order and procurement-form readiness
Positioning assets
- π΄ One-page offer β what we sell, to whom, at what price, with what outcome. One page, not a deck.
- π Short capability deck for L&D buyers
- π Case-study template, ready to fill the moment a pilot completes
Definition of Done: we can legally issue a compliant invoice to an Indian company and receive money for it.
Phase B2 β First paying customer π΄ (the 90-day gate β target 2026-11-25)
Choose the beachhead β one, not four
- π΄ Pick a single vertical and commit for 90 days. Ranked by evidence of budget, not interest:
- GCC engineering upskilling β 2,100+ centres, 2.36M professionals, stated #1 problem is "finding the right talent," explicit preference for precise skill fit over volume. Strongest evidence.
- AI/ML for working engineers β 76.6% of Indian orgs prioritising it; crowded, so verticalise by role or industry
- Semiconductor/VLSI specialisations β government-identified gap in non-generic specialisations; too small for the giants β οΈ price by phone; no public fee data exists
- Tier-2/3 college placement prep β real gap, but slow-paying and seasonal
Build the supply bench (target 5, cap 10)
- π΄ Recruit 5 practising senior engineers who can review async against a rubric
- π Calibrate them on a shared rubric β run 2 sample reviews each and compare scores
- π Agree payout terms and SLA expectations in writing
Sell
- π΄ Build a named target list of 50 companies/institutions
- π΄ 25 outreach conversations via LinkedIn + WhatsApp + warm intros
- π΄ 5 qualified discovery calls
- π΄ 1 pilot signed β free or discounted, explicitly in exchange for a public case study and a named reference
- π΄ 1 paid engagement β₯ βΉ50,000, invoiced and collected
- π Written loss reasons captured from everyone who said no
Discipline
- π΄ βΉ0 on Google/Meta/Instagram ads. At βΉ1,500β4,000 CAC against products we keep 20% of, small budgets are a pure leak. Revisit only at AOV β₯ βΉ40,000 or for warm retargeting.
- π΄ Gate review on 2026-11-25 against #83 Part 7
Definition of Done β PASS if ANY: β₯1 paid corporate/GCC engagement collected Β· β₯1 institution on a paid seat licence Β· β₯3 paying B2B logos with <8% refunds.
FAIL all three β stop feature work entirely, two-week diagnosis interviewing everyone who said no, then narrow to whichever segment showed warmth or make the deliberate call to treat this as a portfolio asset. An honest stop beats a slow fade.
Phase B3 β Make it repeatable π (months 4β6)
- Publish the first case study with real numbers β no invented statistics, ever again
- Reach 3 paying logos
- Raise the price on customer #3 and see if it still closes
- Secure 2 referenceable customers willing to take a call
- Document the sales motion: what the pitch is, what objections come up, what closes
- Grow the mentor bench to ~10 with calibrated rubric scoring
- Measure, don't estimate: contribution per engagement, effective CAC, refund rate, review SLA breach rate
- Land one second engagement from an existing logo without discounting β the real signal
- Decide whether colleges are worth the slow-payment cycle, on evidence
Definition of Done: a repeatable, written sales motion that has closed three times, with measured β not projected β economics.
Phase B4 β Scale βͺ (months 7β12)
- Reach βΉ1L/month β roughly 2 billable days, or 90 enterprise seats, or one high-ticket cohort seat every six weeks
- Open a second vertical only after the first is repeatable
- Explicit fork in the road: stay solo Β· make a first hire Β· raise capital
- β οΈ Indian edtech funding was $118Mβ$249M across 22β31 deals in 2025, an 8-year low. Assume no institutional capital. Plan to be default-alive.
- Pursue a verification/API conversation only if an employer initiates it
- Consider productising the assessment layer once ~10 logos exist
Definition of Done: revenue covers the founder's time at market rate, or a deliberate decision has been made not to pursue that.
π Where the two umbrellas block each other
| Business step | Blocked by tech | Tech step | Blocked by business |
|---|---|---|---|
| Issue any invoice | #36 entity surface, #46 B2B invoices | Go live on payments (#38) | Entity + bank account + gateway KYC |
| Send any prospect a link | #37 real content, domain cutover | Buyer outcome report (T2) | Knowing what the first buyer wants |
| Evaluate the 90-day gate | #12 analytics | Everything in T2 | A signed pilot |
| Close an enterprise deal | #63 SSO, #35 security | Payout automation (#14) | Enough mentors to make it hurt |
The single most important line in this table: going live on payments is blocked by company registration, not by code. Registering the entity is currently the highest-leverage hour available, and it cannot be done in an editor.
π Indicative sequence
| Window | Tech | Business |
|---|---|---|
| Weeks 1β4 | T1 blockers: analytics, real content, entity surface, B2B invoices | B1: register entity, GST, bank, gateway KYC, pricing sheet, one-page offer |
| Weeks 5β8 | Finish T1: live payments, entitlements, security, domain | B2: recruit 5 mentors, build target list of 50, start outreach |
| Weeks 9β13 | T2 only as the pilot demands | B2: discovery calls β pilot signed β first paid engagement |
| Gate: 2026-11-25 | β | Evaluate #83 Part 7. Pass, narrow, or stop. |
| Months 4β6 | T2 completion, selective T3 | B3: case study, 3 logos, raise price, measure |
| Months 7β12 | T3 automation | B4: βΉ1L/month, second vertical, the fork |
π¨ Standing tripwires (from #83 β repeated because they matter)
- Any rupee on paid ads before AOV β₯ βΉ40,000 β stop, revert to outreach
- Mentor review SLA breach >20% for two consecutive weeks β pause all selling, fix supply first
- Refund rate >12% β freeze acquisition, re-price
- New feature work >25% of founder hours while zero gate items are met β scope quarantine
- Two consecutive months with <5 qualified B2B conversations β the motion isn't real; re-target
The uncomfortable summary
Eight weeks produced 111 data models, 77 pages, 33,000 lines of well-tested code, and zero customer conversations. The engineering is not the constraint and never was.
Phase T0 is genuinely impressive work. Phase B1 is four government forms and a bank appointment. B1 is worth more than T2, T3 and T4 combined right now, and it is the phase most likely to be postponed β because it produces no diff.
The next artifact should be a signed pilot, not a merged PR.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up β it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.