For L&D, Eng leaders & People Ops

Make every team
good at AI - in your own stack.

Role-mapped curricula embedded directly in the tools your team already uses. Self-hosted, Apache-2.0, no per-seat contract - ever.

Star on GitHubTry the demo
internal-portal/src/app/onboarding.tsx
// one component, every role
import { LearningPath } from '@learnkit-ai/react';

export default function OnboardingPage() {
  const user = useCurrentUser();

  return (
    <LearningPath
      input={{
        role: user.role,
        tools: user.tools,
        goal: 'ship AI features',
        level: user.level,
      }}
      theme="warm"
    />  // fully personalized
  );
}
Apache-2.0 · no API key · self-hostedAPI docs →
What you get

Everything your team needs. Nothing you have to negotiate.

Role-mapped curricula
PMs learn one path, engineers another, designers a third. generateLearningPath() tunes every lesson to the role and the tools your team actually uses.
Embed in any internal tool
Drop <LearningPath /> into your internal portal, onboarding app, or Notion embed. Ships with three themes and CSS custom properties for full white-labeling.
Headless hook for custom UIs
useLearnKit(input) returns { path, error }. If our default components do not fit your design system, build your own UI on top.
Pure TypeScript, no lock-in
generateLearningPath() is a pure function - no network, no LLM, no API keys. Clone it, fork it, change the lesson templates. Apache-2.0.
Every role covered out of the box
Software Engineer, Product Manager, Designer, Data Scientist, DevOps, and more. getSupportedRoles() returns the full list; add your own in the fork.
Works where your team works
Next.js, Vite, Remix, plain React. The packages ship as source TypeScript - no pre-build step required, bundle it with whatever you use.
What changes when you embed LearnKit AI

From “they watched it” to “they shipped it”.

Personalization
BEFOREOne generic "AI for everyone" course. Same content for the backend engineer and the content writer.
AFTERgenerateLearningPath({ role, tools, goal, level }) produces a 4-week path tuned to what each person actually ships.
Placement
BEFORETraining lives in a third-party LMS no one opens after week one.
AFTEREmbed <LearningPath /> directly in the product your team already uses every day. Learning happens in context.
Maintenance
BEFOREContent goes stale the day a tool ships a new feature. Update cycles are quarters.
AFTERFork the lesson templates in packages/core/src. A one-line change updates every generated path instantly.
Ownership
BEFOREVendor contract to negotiate, renewal to manage, price to justify every fiscal year.
AFTERApache-2.0. Self-host it. No per-seat fee, no contract, no support tier, no renewal. Fork and own it.
Get started in minutes

Three steps from zero to a personalized path.

1
Install the packages
pnpm add @learnkit-ai/core @learnkit-ai/react
2
Generate a path for each role
generateLearningPath({ role: 'Software Engineer', tools: ['Claude', 'Cursor'], goal: 'ship a prod agent', level: 'intermediate' })
3
Drop in the component
<LearningPath input={input} theme="warm" />
Full API reference →View example app