A free, gamified course that explains what AI is and how to use it, in seven short modules with quizzes, XP, badges, and a certificate.
Live at epiphany.help. Built by Epiphany Dynamics.
Most AI education assumes the reader already understands AI, which leaves the business owner and the curious skeptic without a starting point. This course is written for people who are not engineers, so a reader can finish a module in one sitting and use something from it the same day.
Requires Node 22 and pnpm.
pnpm install
pnpm devOpen http://localhost:3000 and start module 1. Progress is stored in localStorage, so a lesson and its quiz work with no account and no sign up, and the first completed lesson lands within a minute or two.
Sign in is optional and only carries progress between devices. Firebase is initialized at import time in lib/firebase.ts, so a production build needs the six variables below in .env.local:
NEXT_PUBLIC_FIREBASE_API_KEY=
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
NEXT_PUBLIC_FIREBASE_PROJECT_ID=
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
NEXT_PUBLIC_FIREBASE_APP_ID=Other commands:
| Command | Action |
|---|---|
pnpm build |
Production build. prebuild regenerates public/llms.txt and the sitemap. |
pnpm start |
Serve the production build. |
pnpm test |
Run the Node test suites. |
pnpm gen:sitemap |
Regenerate public/sitemap.xml on its own. |
pnpm lint |
ESLint. |
The app is a Next.js App Router site. Course material is markdown, and progress lives in the browser until a reader chooses to sync it.
app/modules/[moduleId]/[lessonId]/page.tsxrenders one lesson,app/modules/page.tsxlists the modules, andapp/dashboard,app/rewards, andapp/articlescover progress, badges, and written articles.- Lessons are MDX under
content/module-N/with frontmatter forestimatedMinutesandxpReward, andcontent/module-N/index.jsonholds that module's title, description, badge, and lesson list. There are 29 lessons across the 7 modules. lib/content.tsreads those files with gray-matter, so adding a lesson file is enough for it to appear with no registry to edit.lib/progress.tskeeps lesson and module progress inlocalStorageunderepiphany_learn_progress, andlib/achievements.tspluslib/rewards.tsderive badges and XP from it.lib/firebase.tsandlib/sync.tsmove that local progress into Firestore when a reader signs in. Interactive lesson pieces such as quizzes and drag and drop exercises are MDX components undercomponents/mdx.
The 58 written articles live in content/articles, and scripts/gen-llms-txt.mjs and scripts/gen-sitemap.mjs run on every build to publish public/llms.txt and a static public/sitemap.xml.
pnpm testThis runs the Node test runner over tests/*.test.ts and tests/*.test.mjs. Four tests pass on Node 26: three cover the FAQ JSON-LD builder that the article pages emit, and one generates the sitemap and checks it is a well formed urlset containing the indexed article and lesson URLs.
The sitemap test regenerates public/sitemap.xml, so expect that file to show as modified in git status after a test run.
- Firebase is needed for sign in and cross device sync only. A reader without an account keeps progress in one browser and loses it if local storage is cleared.
- Running the test suite rewrites the tracked
public/sitemap.xmlfile. - Course content is not under the code license. See below.
Source code is MIT (see LICENSE). That covers the interface assets the app needs to run, including fonts, icons, badge and reward art, and module cover art.
Course content is copyright 2026 Epiphany Dynamics LLC, all rights reserved. That covers the lessons under content/, the lesson images under public/images/generated/, and the downloadable materials under public/downloads/. The boundary and full terms are in CONTENT_LICENSE.md.