Skip to content

Repository files navigation

EmDash Learn website

Website npm License: MIT

The source for emdashlearn.com, the official website of the community-maintained EmDash Learn plugin.

EmDash Learn — make your content teach

EmDash Learn adds open-source learning infrastructure to EmDash CMS. The released plugin supports self-guided Courses, ordered Lessons, Knowledge Checks, browser-local progress, and privacy-conscious aggregate reporting.

Product vision

Anonymous learning is the starting point, not the ceiling.

The long-term goal is a capable, open LMS for the EmDash ecosystem, including learner identity, enrollments, roles, cross-device progress, completion records, instructor tools, richer assessments, and integrations.

The website deliberately separates three stages:

  1. Available today: dependable self-guided learning without learner accounts.
  2. As EmDash enables it: identified learning built on stable core extension points for identity, roles, durable records, and background workflows.
  3. The full vision: a complete, portable, community-owned LMS.

Roadmap features are not presented as released capabilities or assigned timelines before the underlying platform guarantees exist.

Project links

Technology

Local development

Requirements

  • Node.js 22 or newer
  • npm
git clone https://github.com/emdash-learn/emdashlearn.git
cd emdashlearn
npm install
npm run dev

The development server is available at http://localhost:4321.

No local environment variables are required for the public landing page.

Commands

Command Purpose
npm run dev Start the local Astro development server
npm run typecheck Validate Astro and TypeScript source
npm run build Create the production Cloudflare Worker build
npm run preview Preview the production build locally
npm run deploy Build and deploy with Wrangler

Before opening a pull request, run:

npm run typecheck
npm run build

Project structure

public/
├── favicon.svg
├── og-image.png
├── robots.txt
└── sitemap.xml
src/
├── layouts/
│   └── Base.astro
├── pages/
│   └── index.astro
└── styles/
    └── global.css
astro.config.mjs
wrangler.toml

The site is intentionally small: the landing page owns product content and structured FAQ data, the base layout owns document and social metadata, and the global stylesheet owns the visual system.

SEO and social previews

The production site includes:

  • A canonical URL and search-focused title and description
  • WebSite, SoftwareApplication, and FAQPage structured data
  • Open Graph and X Card metadata
  • A 1200 × 630 social preview image
  • robots.txt
  • sitemap.xml

Keep visible product claims and structured data synchronized when changing features, FAQs, the package version, or the project roadmap.

Deployment

Production runs on Cloudflare Workers at emdashlearn.com.

The repository is connected to Cloudflare for production builds. Maintainers can also deploy the current checkout directly after authenticating Wrangler:

npm run deploy

Do not commit Cloudflare credentials or local environment files.

Contributing

Issues and pull requests are welcome. Use a short-lived feature or fix branch, write Conventional Commit messages, and keep changes focused.

When changing product copy:

  • Describe only functionality available in the released plugin.
  • Label future capabilities as vision or roadmap work.
  • Preserve the distinction between anonymous aggregate activity and learner-level analytics.
  • Keep the project’s independent, community-maintained status visible.

License

MIT.

EmDash Learn is an independent, community-maintained project. It is not published by or affiliated with the EmDash CMS organization.

About

Open source LMS plugin for emdash CMS — courses, progress, and learning on the edge

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages