How I Built
PortLev Academy
in Three Weeks
A Portfolio Executive's walkthrough of building a free, MDX-driven learning site as the top of a five-rung value ladder. The principle: gate transformation, not information. The stack, the schemas, the prompts and the lessons.
Yuri Kruman
3x CHRO · 2,300+ coaching clients · Jun 2026
value-ladder rungs
content free, by design
to a shipped learn.portlev.com
LMS bill (built on Skool + Maven)
The 30-Second Version
PortLev Academy at learn.portlev.com is a free, open-source content site. Lessons are MDX with Zod-validated frontmatter, organized into tracks. It is the top of a five-rung value ladder: free lessons → free Skool community → paid Leverage Lab membership ($49-99/mo) → CHRO AI Cohort on Maven ($2K-5K) → corporate / fractional CHRO ($20K+). The site never tries to be the LMS. Skool and Maven already are.
The Problem
Trying to ship a "course platform" before any free audience exists is a year-long detour into LMS plumbing.
The Stack
Next.js 15 + Vercel + MDX + Zod schemas + Skool (community) + Maven (cohort) + beehiiv (newsletter).
What It Doesn't Need
No LMS. No payment processing. No auth. No video hosting. No discussion forum.
Build Time
Three weeks: one week for the engine, two for the first three tracks of content.
If you are a domain expert who has ever stared at Teachable, Kajabi or LearnWorlds and asked "do I really need an LMS to start," this build log is for you. The point is not the site. The point is the ladder.
Why an Academy Site (and Not a Course Platform)
I had been coaching 2,300+ clients across a decade of HR transformation and AI work. The natural move was to "build a course." I almost did. I came within a day of buying Kajabi. I'm grateful I didn't:
$159-399/mo
Kajabi monthly bill with no audience yet to justify it
6-12mo
typical time to course-platform productivity for a non-developer
~0
SEO juice from a closed Kajabi site
1
non-negotiable: it had to compound. Forever. CC-licensed.
The instinct that saved me came from a one-line principle: information is no longer scarce; transformation is. People can get information from ChatGPT. They cannot get guided transformation from a model. Guided transformation requires a teacher, a peer cohort and accountability. Those are what get gated.
- 1Free content is not generosity. It is distribution. Open MDX in a public repo with CC-BY is a moat. Google indexes it. AI engines cite it.
- 2The LMS is not a problem worth solving. Skool and Maven exist. Use them. Send buyers there.
- 3The site's only job is the ladder. Free lesson → email capture → community invite → paid offer.
Gate transformation, not information.
Every piece of content defaults to free. A piece is gated only if it requires Yuri's live time, ships a done-for-you implementation asset, provides accountability or earns a 30-day early-access window. Anything that doesn't pass that test is free. That rule is enforced at the schema level, not in someone's head.
The Stack (and Why Each Piece)
Click each layer for the reasoning.
Framework
Next.js 15 (App Router)
Static site generation per lesson. Edge-cacheable. Built-in image optimization. Read the in-repo docs — this is not the Next.js you remember from your training cutoff. Heed deprecation notices on every release.
Content Format
MDX with Zod-validated frontmatter
Lessons live at content/tracks/<track>/NN-<slug>.mdx. Every frontmatter field is validated at build time by a Zod schema. A typo fails the build. There is no "draft published by accident" state.
Hosting
Vercel
Preview deploys on every PR. CC-BY license file at repo root signals to the world (and to AI engines) that the content is open. Domain: learn.portlev.com.
Community
Skool (free + paid tier)
Free tier becomes the warm pool. Paid Leverage Lab is the first monetization rung. Skool ships gamification, member directory, payments and discovery I would not build. The site links out; it does not embed.
Cohort
Maven
CHRO AI Cohort is hosted on Maven. Maven is the credibility play (they vet instructors) and the operations play (they handle Zoom, payments, certificates). The site links out to the cohort page; it does not run the cohort.
Newsletter
beehiiv (Leverage Brief)
Every free lesson ends with a CTA to subscribe. beehiiv handles list, segmentation, analytics, paid recommendations. The archive lives on-site under content/briefs/ so it's indexed and AI-citable; the subscribe form posts to beehiiv.
The Six-Phase Build Sequence
Each phase is ~2-4 days. Sequence in order. Do NOT start Phase 5 (community wiring) until at least one full track exists; the community needs something to link to.
The Value Ladder (Before Any Code)
Five rungs, each on a separate platform, each with one job. Free YouTube + SEO articles for reach. Free lessons + newsletter for owned audience. Free Skool for warm pool. Paid Leverage Lab for low-risk first yes. Maven cohort for the high-ticket transformation. Direct services for the highest ticket. Each lower rung is the qualifier for the next.
The five rungs:
Iron rule: if you can't draw the ladder on one page, the site will become a junk drawer. The ladder is the architecture. Every page, every lesson, every CTA is a step from one rung to the next.
What I'd Do Differently Today
Write the ladder before writing the schema
The schema was first draft 4. Each draft was a reaction to a ladder decision I hadn't yet made. The schema is the strategy in code; you can't write it before you've made the strategy.
Treat llms.txt as a first-class deliverable, not an SEO afterthought
AI engines cite sites that make themselves easy to cite. A clean /llms.txt + /llms-full.txt raised my AEO baseline more than any traditional SEO work.
Lesson estimated-minutes from word count, automatically
I let writers set estMin themselves. They lied. Compute it from word count at build time and you get accurate "20 minutes" labels people trust.
CC-BY license on commit #1
The license is the moat. Open content compounds. I added it on commit #57. Add it on commit #1.
Adapt This for YOUR Academy
The architecture (ladder → schema → engine → first track → ladder UI → SEO) is the template for any expert-led content business. Five adaptations off the same skeleton:
| Domain | Free Anchor | Paid Yes Rung | High-Ticket Rung |
|---|---|---|---|
| Software architecture | Pattern walkthroughs | Skool review forum | Maven 6-week cohort |
| Nonprofit fundraising | Donor-letter teardowns | Skool member library | Maven CDO accelerator |
| Sales leadership | Pipeline math articles | Skool deal reviews | Maven VP-Sales cohort |
| PE / VC ops | Playbook briefs | Skool LP letters | Maven IC chair cohort |
| AI for HR | PortLev Academy tracks | Leverage Lab on Skool | CHRO AI Cohort on Maven |
Starter Prompts for Claude / Cursor
If you want your academy live next month, these four prompts get you there.
"Help me design a 5-rung value ladder for [MY EXPERTISE] aimed at [MY ICP]. For each rung produce: (a) platform recommendation (avoid building anything Skool/Maven/beehiiv/Substack already do), (b) price band, (c) the qualifier from the rung below, (d) one sentence on what the buyer experiences. Apply the principle: gate transformation, not information. Return as a markdown table."
"Write lib/schemas.js for a Next.js 15 + MDX learning site. Required fields per lesson: title (max 70), summary (max 160), track, order (int positive), level (beginner/intermediate/advanced), status (draft/published), estMin (int positive), youtube (optional URL), gated (bool default false), gateReason (enum: live-time/asset/accountability/early-access; required if gated=true). Add a track-level schema in track.json with title, summary, level, order, prerequisites array of track slugs. Validate at build time; failed validation must fail the build."
"Build a custom MDX component <NextStep rung={n}> that renders a CTA card. Rung 1 = subscribe to newsletter (beehiiv embed). Rung 2 = join free Skool community (deep link). Rung 3 = join paid Leverage Lab (Skool paid tier). Rung 4 = apply to Maven cohort (Maven course URL). Rung 5 = book consult (Cal.com URL). Auto-pick rung from lesson.level if not provided. Track click events via Plausible with rung as a prop."
"Generate /llms.txt and /llms-full.txt for a Next.js MDX content site. llms.txt: a curated markdown summary of the site's tracks, lessons and briefs, with absolute URLs, in the format recommended at llmstxt.org. llms-full.txt: every published lesson's full markdown concatenated with H1 separators. Add JSON-LD per lesson: Course + LearningResource + BreadcrumbList. Emit sitemap.xml from the same content index."
What PortLev Academy Is Not
It is not an LMS. It does not host video. It does not run a forum. It does not gate content behind login. It does not replace Skool, Maven or beehiiv — it is the indexable, citable, free top-of-funnel that feeds them.
What it is: a ladder mouth. Free content in, qualified buyers out. Open-source under CC-BY so the corpus compounds and so AI engines cite it. The narrowness is the point. Sites that try to be both content engine and LMS become Notion-with-a-paywall and stop growing.
The question is not
"do I need a course platform?"
The question is:
"What can I give away that my buyers would already pay for, knowing the next rung is what they really need?"
If you can answer that in one sentence, your academy already has a track outline. The next three weeks are getting it indexed.
This walkthrough is part of the Portfolio Leverage Co. Build Bench series. For the cohort where we build these together, apply here.
