Skip to content
all work

nat3alm

An evidence-based learning platform, built for one student

A full applied-AI curriculum — 16 phases, 120 lessons, written not generated — with spaced review, a tutor that gives hints before answers, and hand-written Arabic on every single item.

Sole engineer and sole student

nat3alm product screen
120
Lessons written
465
Exercises
463
Quiz questions
222
Resources
49,248
TypeScript
16
Phases
Next.js 16React 19TypeScriptSupabase / Postgres 17Vitest + embedded PostgresAnthropic / OpenAI / GeminiTailwind v4Vercel (fra1)

Why it exists

I can ship products with AI coding agents. That is not the same as being able to design, evaluate and operate AI systems, and the gap between the two is exactly where the interesting work is.

Every course platform I looked at marks a lesson complete when you click complete. That measures attendance.

What a lesson looks like

Open the platform on a Monday and it says Today — 46 min, target 60, then lists the plan in order: reviews first, then the current lesson, then a weak area, then project time. The lesson in progress is Objects, names and mutability — lesson 1 of 12 in Python for AI Engineers — and it is built the way every one of the 120 is:

  1. Why this matters, in agent terms: a message list, a tool registry, a config dict and a budget counter are all shared state, and two names on one list is how tools leak between requests and histories corrupt each other.
  2. A mental model with three tiers of expectation: must understand, must be able to implement, AI can implement.
  3. Watch — one hand-picked talk with the reason it was chosen written down.
  4. A short explanation and the review question to ask of any AI-written code.
  5. Code reading — a bug that only shows with more than one conversation; runnable, with an Explain button. Build — a store with safe snapshots. A failure scenarioTenant B got Tenant A's system prompt. A quiz.

Every item carries its Arabic explanation, written by hand. The sidebar keeps the honest numbers: streak, hours this week, quiz accuracy, time remaining at the current pace.

The curriculum

Sixteen phases: assessment, Python, computer science, mathematics, ML, LLM internals, APIs, agents, context, RAG, evals, production, security, inference, post-training, capstone. All 120 lessons are written: 222 verified resources, 465 exercises, 463 quiz questions, 28 assessment items, 15 project briefs, 18 interview questions.

A lesson completes only on evidence — required videos watched, the interactive question answered, exercises self-graded, the quiz passed — never on a button. From that evidence the platform derives skill mastery that decays, surfaces weak areas on its own, and schedules review on a spaced ladder that adapts. The AI tutor gives hints before explanations and explanations before answers, and that order is enforced by the platform, not requested politely.

The Arabic layer is written, not generated. Every lesson, exercise, quiz item, assessment item, project brief and interview question carries hand-written Arabic. Technical terms stay in English so the explanation still matches the documentation and the error messages a student will meet.

Technologies: Next.js 16, TypeScript, Supabase / Postgres, Vitest with an embedded Postgres so the real schema is under test, Anthropic / OpenAI / Gemini for the tutor, Vercel in Frankfurt next to the database.

Evidence-based completion · spaced review

A lesson completes only when

incomplete — a completion button would have said otherwise

Review ladder · days

Skill mastery is derived from this evidence with decay; weak areas surface on their own. The daily plan is frozen once generated, so a bad morning cannot be escaped by refreshing until it looks easier. And the tutor's hint ladder — hint, stronger hint, explanation, answer — is enforced on the server, not requested in a prompt.

Decisions I would defend

If I cannot say why the alternative is worse, I do not understand the code in my own repository — regardless of who typed it.

01Evidence, not attendance
A lesson completes on watched videos, graded exercises and a passed quiz. A completion button measures nothing and every platform I looked at ships one.
02The Arabic layer is hand-written
Generating it at read time would make it different every time, cost money forever, and be unavailable exactly when a model is down. Writing it once makes it content, like everything else.
03The tutor cannot be talked past
Hints before explanations, explanations before answers — enforced by the platform, not requested in a prompt.
04The real schema is under test
Tests run against an embedded Postgres with the real migrations, so the database itself is tested rather than a fixture that resembles it.

Honestly — what is not true yet

It is a single-user platform and that user is me — signup is restricted to an allow-list. It is not a product and I am not presenting it as one. It is the most honest thing on this site about how I actually learn, and the six test files are six, not six hundred.