emdash-cms/emdashPublic

EmDash is a full-stack TypeScript CMS based on Astro; the spiritual successor to WordPress

AI summary: A lightweight, git-based Markdown CMS designed specifically for developer-focused static sites.

Stars
13.3K
+248 today
Forks
1.3K
Watchers
74
Open issues
162
Open PRs
148
Contributors
~189
Commits
2K
Branches
181

TypeScriptMITCreated Apr 1, 2026Last push 2d agoLatest release @emdash-cms/plugin-test@0.2.6+820 stars this week+1.1K this month

Quick answers

What is emdash?
A lightweight, git-based Markdown CMS designed specifically for developer-focused static sites.
What does emdash do?
Emdash is a minimalist, git-based Content Management System engineered for static sites that rely heavily on Markdown. By storing content natively within the repository as standard text files, it eliminates the need for complex databases or external API dependencies. The tool provides a clean, web-based interface for non-technical users to edit content comfortably while preserving a Git-centric workflow for developers. Emdash automatically parses Markdown frontmatter, tracks version history via Git commits, and integrates seamlessly into modern static site generation pipelines, bridging the gap between developer tooling and content creation.
Who is emdash for?
Developers maintaining static sites who need a simple, database-free CMS to empower non-technical content creators.
How do I get started with emdash?
npm install emdash && npx emdash init
How popular is emdash on GitHub?
emdash-cms/emdash has 13,280 stars and 1,250 forks on GitHub, and gained 820 stars in the last 7 days.
What license does emdash use?
emdash-cms/emdash is released under the MIT license.

Star history

since Jul 29, 2026
05K10KJul 2026Aug 2026Sep 2026Oct 2026
13.3K stars as of Oct 2, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 44 commits2026-04-02: 10 commits2026-04-03: 7 commits2026-04-04: 12 commits2026-04-05: 3 commits2026-04-06: 11 commits2026-04-07: 11 commits2026-04-08: 15 commits2026-04-09: 10 commits2026-04-10: 2 commits2026-04-11: 45 commits2026-04-12: 27 commits2026-04-13: 37 commits2026-04-14: 23 commits2026-04-15: 17 commits2026-04-16: 18 commits2026-04-17: 15 commits2026-04-18: 6 commits2026-04-19: 13 commits2026-04-20: 4 commits2026-04-21: 12 commits2026-04-22: 1 commit2026-04-23: 14 commits2026-04-24: 7 commits2026-04-25: 5 commits2026-04-26: 5 commits2026-04-27: 34 commits2026-04-28: 16 commits2026-04-29: 12 commits2026-04-30: 33 commits2026-05-01: 17 commits2026-05-02: 2 commits2026-05-03: 4 commits2026-05-04: 3 commits2026-05-05: 3 commits2026-05-06: 7 commits2026-05-07: 14 commits2026-05-08: 18 commits2026-05-09: 7 commits2026-05-10: 4 commits2026-05-11: 12 commits2026-05-12: 9 commits2026-05-13: 6 commits2026-05-14: 10 commits2026-05-15: 0 commits2026-05-16: 7 commits2026-05-17: 4 commits2026-05-18: 13 commits2026-05-19: 10 commits2026-05-20: 8 commits2026-05-21: 0 commits2026-05-22: 10 commits2026-05-23: 11 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 4 commits2026-05-27: 0 commits2026-05-28: 2 commits2026-05-29: 12 commits2026-05-30: 4 commits2026-05-31: 12 commits2026-06-01: 23 commits2026-06-02: 23 commits2026-06-03: 13 commits2026-06-04: 16 commits2026-06-05: 10 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 9 commits2026-06-12: 27 commits2026-06-13: 3 commits2026-06-14: 2 commits2026-06-15: 21 commits2026-06-16: 21 commits2026-06-17: 13 commits2026-06-18: 2 commits2026-06-19: 3 commits2026-06-20: 0 commits2026-06-21: 1 commit2026-06-22: 9 commits2026-06-23: 4 commits2026-06-24: 10 commits2026-06-25: 12 commits2026-06-26: 3 commits2026-06-27: 5 commits2026-06-28: 0 commits2026-06-29: 9 commits2026-06-30: 17 commits2026-07-01: 28 commits2026-07-02: 13 commits2026-07-03: 0 commits2026-07-04: 2 commits2026-07-05: 0 commits2026-07-06: 22 commits2026-07-07: 5 commits2026-07-08: 8 commits2026-07-09: 10 commits2026-07-10: 20 commits2026-07-11: 5 commits2026-07-12: 1 commit2026-07-13: 2 commits2026-07-14: 2 commits2026-07-15: 1 commit2026-07-16: 4 commits2026-07-17: 18 commits2026-07-18: 2 commits2026-07-19: 0 commits2026-07-20: 44 commits2026-07-21: 24 commits2026-07-22: 11 commits2026-07-23: 0 commits2026-07-24: 2 commits2026-07-25: 0 commits2026-07-26: 4 commits2026-07-27: 2 commits2026-07-28: 5 commits2026-07-29: 4 commits2026-07-30: 4 commits2026-07-31: 4 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 2 commits2026-08-04: 2 commits2026-08-05: 6 commits2026-08-06: 4 commits2026-08-07: 0 commits2026-08-08: 23 commits2026-08-09: 12 commits2026-08-10: 12 commits2026-08-11: 11 commits2026-08-12: 19 commits2026-08-13: 23 commits2026-08-14: 1 commit2026-08-15: 0 commits2026-08-16: 25 commits2026-08-17: 11 commits2026-08-18: 15 commits2026-08-19: 15 commits2026-08-20: 4 commits2026-08-21: 4 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 6 commits2026-08-25: 14 commits2026-08-26: 8 commits2026-08-27: 28 commits2026-08-28: 5 commits2026-08-29: 0 commits2026-08-30: 0 commits2026-08-31: 0 commits2026-09-01: 21 commits2026-09-02: 28 commits2026-09-03: 13 commits2026-09-04: 4 commits2026-09-05: 0 commits2026-09-06: 4 commits2026-09-07: 28 commits2026-09-08: 19 commits2026-09-09: 21 commits2026-09-10: 21 commits2026-09-11: 17 commits2026-09-12: 9 commits2026-09-13: 6 commits2026-09-14: 13 commits2026-09-15: 8 commits2026-09-16: 19 commits2026-09-17: 0 commits2026-09-18: 1 commit2026-09-19: 21 commits2026-09-20: 16 commits2026-09-21: 31 commits2026-09-22: 31 commits2026-09-23: 12 commits2026-09-24: 68 commits2026-09-25: 36 commits2026-09-26: 48 commits2026-09-27: 47 commits2026-09-28: 24 commits2026-09-29: 7 commits2026-09-30: 0 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
2,008 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    13,280 stars

  • Rising fast

    +820 stars this week

  • Very active

    2,008 commits in 52 weeks

  • Community-driven

    ~189 contributors

  • Well documented

    High community health score

  • Permissive license

    MIT

  • Repeat trending

    4 trending appearances

What emdash does

Emdash is a minimalist, git-based Content Management System engineered for static sites that rely heavily on Markdown. By storing content natively within the repository as standard text files, it eliminates the need for complex databases or external API dependencies. The tool provides a clean, web-based interface for non-technical users to edit content comfortably while preserving a Git-centric workflow for developers. Emdash automatically parses Markdown frontmatter, tracks version history via Git commits, and integrates seamlessly into modern static site generation pipelines, bridging the gap between developer tooling and content creation.

Developers maintaining static sites who need a simple, database-free CMS to empower non-technical content creators.

  • Git-centric storage: Eliminates database dependencies by storing all articles and metadata strictly as Markdown files in the repository.
  • Intuitive web interface: Provides a clean, WYSIWYG-like editing experience for non-technical content creators and marketing teams.
  • Frontmatter parsing: Natively reads and manages YAML metadata headers, ensuring compatibility with standard static site generators.
  • Version history tracking: Automatically utilizes Git commits to document content changes, providing a complete audit trail.
  • Pipeline integration: Plugs directly into standard CI/CD deployment workflows alongside tools like Next.js and Hugo.

Where teams use it

Developer Blog Management

Engineering teams publish technical articles via Markdown while allowing editors to review and format them through the UI.

Static Site Collaboration

Marketing personnel update website copy on a Next.js marketing page without needing to interact with the command line.

Documentation Portals

Technical writers maintain massive libraries of product documentation natively within the source code repository.

Version-Controlled Content

Agencies easily roll back accidental content deletions by simply reverting the associated Git commits.

Getting started: npm install emdash && npx emdash init

README

main branch

EmDash

A full-stack TypeScript CMS built on Astro and Cloudflare. EmDash takes the ideas that made WordPress dominant -- extensibility, admin UX, a plugin ecosystem -- and rebuilds them on serverless, type-safe foundations. Plugins run in sandboxed Worker isolates, solving the fundamental security problem with WordPress's plugin architecture.

Get Started

npm create emdash@latest

Or deploy directly to your Cloudflare account:

Deploy to Cloudflare

EmDash runs on Cloudflare (D1 + R2 + Workers) or any Node.js server with SQLite. No PHP, no separate hosting tier -- just deploy your Astro site.

Templates

EmDash ships with three starter templates:

Blog

Blog template

A classic blog with sidebar widgets, search, and RSS.

  • Categories & tags
  • Full-text search
  • Comment-ready
  • RSS feed
  • Dark / light mode

Marketing

Marketing template

A conversion-focused landing page with pricing and contact form.

  • Hero with CTAs
  • Feature grid
  • Pricing cards
  • FAQ and contact form
  • Dark / light mode

Portfolio

Portfolio template

A visual portfolio for showcasing creative work.

  • Project grid
  • Tag filtering
  • Case study pages
  • RSS feed
  • Dark / light mode

Why EmDash?

WordPress was built for a different era. Running WordPress today means managing PHP alongside JavaScript, layering caches to get acceptable performance, and knowing that 96% of WordPress security vulnerabilities come from plugins. EmDash is what WordPress would look like if you started from scratch with today's tools.

Sandboxed plugins. WordPress plugins have full access to the database, filesystem, and user data. A single vulnerable plugin can compromise the entire site. EmDash plugins run in isolated Worker sandboxes via Dynamic Worker Loaders, each with a declared capability manifest. A plugin that requests content:read and email:send can do exactly that and nothing else.

export default () =>
	definePlugin({
		id: "notify-on-publish",
		capabilities: ["content:read", "email:send"],
		hooks: {
			"content:afterSave": async (event, ctx) => {
				if (event.content.status !== "published") return;
				await ctx.email.send({
					to: "editors@example.com",
					subject: `New post: ${event.content.title}`,
				});
			},
		},
	});

Structured content, not serialized HTML. WordPress stores rich text as HTML with metadata embedded in comments -- tying your content to its DOM representation. EmDash uses Portable Text, a structured JSON format that decouples content from presentation. Your content can render as a web page, a mobile app, an email, or an API response without parsing HTML.

Built for agents. EmDash publishes agent skills that teach coding assistants its APIs, a CLI that lets agents manage content and schema programmatically, and a built-in MCP server so AI tools like Claude and ChatGPT can interact with your site directly.

Runs anywhere. EmDash uses portable abstractions at every layer -- Kysely for SQL, S3 API for storage -- that work with SQLite, D1, Turso, PostgreSQL, R2, AWS S3, or local files. It runs best on Cloudflare, but it's not locked to it.

How It Works

EmDash is an Astro integration. Add it to your config and you get a complete CMS: admin panel, REST API, authentication, media library, and plugin system.

// astro.config.mjs
import emdash from "emdash/astro";
import { d1 } from "emdash/db";

export default defineConfig({
	integrations: [emdash({ database: d1() })],
});

Content types are defined in the database, not in code. Non-developers create and modify collections through the admin UI. Each collection gets a real SQL table with typed columns. Developers generate TypeScript types from the live schema:

npx emdash types

Query content using Astro's Live Collections -- no rebuilds, no separate API:

---
import { getEmDashCollection } from "emdash";
const { entries: posts } = await getEmDashCollection("posts");
---

{posts.map((post) => <article>{post.data.title}</article>)}

Features

Content -- Blog posts, pages, custom content types. Rich text editing via TipTap with Portable Text storage. Revisions, drafts, scheduled publishing, full-text search (FTS5), inline visual editing.

Admin -- Full admin panel with visual schema builder, media library (drag-drop uploads via signed URLs), navigation menus, taxonomies, widgets, and a WordPress import wizard.

Auth -- Passkey-first (WebAuthn) with OAuth and magic link fallbacks. Role-based access control: Administrator, Editor, Author, Contributor.

Plugins -- definePlugin() API with lifecycle hooks, KV storage, settings, admin pages, dashboard widgets, custom block types, and API routes. Sandboxed execution on Cloudflare via Dynamic Worker Loaders.

Agents -- Agent skills for AI-assisted site, plugin, and theme development. CLI for programmatic site management. Built-in MCP server for direct AI tool integration.

WordPress migration -- Import posts, pages, media, and taxonomies from WXR exports, the WordPress REST API, or WordPress.com. Agent skills help port plugins and themes.

Portable Platforms

Layer Cloudflare Also works with
Database D1 SQLite, Turso/libSQL, PostgreSQL
Storage R2 AWS S3, any S3-compatible service, local filesystem
Sessions KV Redis, file-based
Plugins Worker isolates (sandboxed) In-process (safe mode)

Status

EmDash is in beta preview. We welcome contributions, feedback, plugins, themes, and ideas.

npm create emdash@latest

See the documentation for guides, API reference, and plugin development.

Development

This is a pnpm monorepo. To contribute:

git clone https://github.com/emdash-cms/emdash.git && cd emdash
pnpm install
pnpm build

Run the demo (Node.js + SQLite, no Cloudflare account needed):

pnpm --filter emdash-demo seed
pnpm --filter emdash-demo dev

Open the admin at http://localhost:4321/_emdash/admin.

pnpm test          # run all tests
pnpm typecheck     # type check
pnpm lint:quick    # fast lint (< 1s)
pnpm format        # format with oxfmt

See CONTRIBUTING.md for the full contributor guide.

Repository Structure

packages/
  core/           Astro integration, APIs, admin UI, CLI
  auth/           Authentication library
  blocks/         Portable Text block definitions
  cloudflare/     Cloudflare adapter (D1, R2, Worker Loader)
  plugins/        First-party plugins (forms, embeds, SEO, audit-log, etc.)
  create-emdash/  npm create emdash scaffolding
  gutenberg-to-portable-text/  WordPress block converter

templates/        Starter templates (blog, marketing, portfolio, starter, blank)
demos/            Development and example sites
docs/             Documentation site (Starlight)
View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 489

Releases and announcements

702 total
  1. emdash@1.0.1emdash@1.0.1Sep 28, 2026

    ### Patch Changes - [#3515](https://github.com/emdash-cms/emdash/pull/3515) [`d274172`](https://github.com/emdash-cms/emdash/commit/d27417232e61bf85c1c613fecbe6875e1172af0d) Thanks [@ascorbic](https://github.com/ascorbic)! - Releases EmDash 1.0. This release includes breaking changes, such as removing APIs deprecated during 0.x. Before upgrading from 0.42, read the [upgrade guide](https://docs.emdashcms.com/upgrade-to-v1/), which lists each change and how to migrate. From this release, breaking changes ship only in a new major version. - [#3531](https://github.com/emdash-cms/emdash/pull/3531) [`f6674fa`](https://github.com/emdash-cms/emdash/commit/f6674fa346964f78ab329fbce1bc4f3b9f0d05ef) Thanks [@danielmlr](https://github.com/danielmlr)! - Fixes recreating a deleted collection failing with `Collection "…" already exists` (`COLLECTION_EXISTS`) on sites with media usage tracking turned on, which new sites turn on automatically. Creating a collection through the admin, the API, MCP or a seed now finishes the deleted collection's media usage cleanup first, so sites already stuck in this state can recreate the collection after upgrading. Each create attempt does a bounded a

  2. create-emdash@1.0.1create-emdash@1.0.1Sep 28, 2026

    ### Patch Changes - [#3515](https://github.com/emdash-cms/emdash/pull/3515) [`d274172`](https://github.com/emdash-cms/emdash/commit/d27417232e61bf85c1c613fecbe6875e1172af0d) Thanks [@ascorbic](https://github.com/ascorbic)! - Releases EmDash 1.0. This release includes breaking changes, such as removing APIs deprecated during 0.x. Before upgrading from 0.42, read the [upgrade guide](https://docs.emdashcms.com/upgrade-to-v1/), which lists each change and how to migrate. From this release, breaking changes ship only in a new major version.

  3. @emdash-cms/x402@1.0.1@emdash-cms/x402@1.0.1Sep 28, 2026

    ### Patch Changes - [#3515](https://github.com/emdash-cms/emdash/pull/3515) [`d274172`](https://github.com/emdash-cms/emdash/commit/d27417232e61bf85c1c613fecbe6875e1172af0d) Thanks [@ascorbic](https://github.com/ascorbic)! - Releases EmDash 1.0. This release includes breaking changes, such as removing APIs deprecated during 0.x. Before upgrading from 0.42, read the [upgrade guide](https://docs.emdashcms.com/upgrade-to-v1/), which lists each change and how to migrate. From this release, breaking changes ship only in a new major version.

  4. @emdash-cms/sandbox-workerd@0.9.1@emdash-cms/sandbox-workerd@0.9.1Sep 28, 2026

    ### Patch Changes - [#3518](https://github.com/emdash-cms/emdash/pull/3518) [`bc54886`](https://github.com/emdash-cms/emdash/commit/bc5488685c8a886e2375d066d7424ddf4aac9a78) Thanks [@ascorbic](https://github.com/ascorbic)! - Moves the subpaths that only EmDash itself loads under `emdash/internal/`, and the D1 and Hyperdrive migration executors under `@emdash-cms/cloudflare/internal/`. These paths are not public API: their exports can change or be removed in any release. Sites that use `emdash()` in `astro.config.mjs` need no changes. The integration, the database, cache and media adapter helpers, and the first-party Cloudflare, workerd sandbox and plugin-test packages all load the new paths automatically. The following subpaths are removed: | Removed subpath | Now loaded from | | ------------------------------------------------- | ---------------------------------------------------------- | | `emdash/routes/*` | `emdash/internal/routes/*` | | `emdash/middleware/auth` | `emdash/internal/middleware/

  5. @emdash-cms/plugin-webhook-notifier@0.2.2@emdash-cms/plugin-webhook-notifier@0.2.2Sep 28, 2026

    No changes in this release.

Code frequency

additions and deletions
+400.6K-400.6KWeek of 2026-03-29: +400,585 linesWeek of 2026-03-29: -3,653 linesWeek of 2026-04-05: +12,405 linesWeek of 2026-04-05: -2,128 linesWeek of 2026-04-12: +152,194 linesWeek of 2026-04-12: -18,575 linesWeek of 2026-04-19: +36,718 linesWeek of 2026-04-19: -6,263 linesWeek of 2026-04-26: +79,788 linesWeek of 2026-04-26: -25,205 linesWeek of 2026-05-03: +105,396 linesWeek of 2026-05-03: -44,143 linesWeek of 2026-05-10: +55,639 linesWeek of 2026-05-10: -12,224 linesWeek of 2026-05-17: +52,946 linesWeek of 2026-05-17: -25,934 linesWeek of 2026-05-24: +16,411 linesWeek of 2026-05-24: -2,766 linesWeek of 2026-05-31: +64,233 linesWeek of 2026-05-31: -21,934 linesWeek of 2026-06-07: +19,360 linesWeek of 2026-06-07: -10,414 linesWeek of 2026-06-14: +50,538 linesWeek of 2026-06-14: -22,187 linesWeek of 2026-06-21: +20,004 linesWeek of 2026-06-21: -7,934 linesWeek of 2026-06-28: +46,309 linesWeek of 2026-06-28: -21,736 linesWeek of 2026-07-05: +87,812 linesWeek of 2026-07-05: -40,949 linesWeek of 2026-07-12: +37,875 linesWeek of 2026-07-12: -5,411 linesWeek of 2026-07-19: +94,971 linesWeek of 2026-07-19: -47,699 linesWeek of 2026-07-26: +26,415 linesWeek of 2026-07-26: -21,597 linesWeek of 2026-08-02: +63,062 linesWeek of 2026-08-02: -29,324 linesWeek of 2026-08-09: +120,251 linesWeek of 2026-08-09: -36,078 linesWeek of 2026-08-16: +71,432 linesWeek of 2026-08-16: -37,110 linesWeek of 2026-08-23: +180,128 linesWeek of 2026-08-23: -80,835 linesWeek of 2026-08-30: +190,092 linesWeek of 2026-08-30: -55,231 linesWeek of 2026-09-06: +142,639 linesWeek of 2026-09-06: -81,922 linesWeek of 2026-09-13: +79,895 linesWeek of 2026-09-13: -46,977 linesWeek of 2026-09-20: +42,073 linesWeek of 2026-09-20: -19,576 linesMar 29, 2026Sep 20, 2026
+2.2M lines added, -727.8K removed over the last year.

Commits per week

last 52 weeks
2420Week of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 73 commitsWeek of 2026-04-05: 97 commitsWeek of 2026-04-12: 143 commitsWeek of 2026-04-19: 56 commitsWeek of 2026-04-26: 119 commitsWeek of 2026-05-03: 56 commitsWeek of 2026-05-10: 48 commitsWeek of 2026-05-17: 56 commitsWeek of 2026-05-24: 22 commitsWeek of 2026-05-31: 97 commitsWeek of 2026-06-07: 39 commitsWeek of 2026-06-14: 62 commitsWeek of 2026-06-21: 44 commitsWeek of 2026-06-28: 69 commitsWeek of 2026-07-05: 70 commitsWeek of 2026-07-12: 30 commitsWeek of 2026-07-19: 81 commitsWeek of 2026-07-26: 23 commitsWeek of 2026-08-02: 37 commitsWeek of 2026-08-09: 78 commitsWeek of 2026-08-16: 74 commitsWeek of 2026-08-23: 61 commitsWeek of 2026-08-30: 66 commitsWeek of 2026-09-06: 119 commitsWeek of 2026-09-13: 68 commitsWeek of 2026-09-20: 242 commitsWeek of 2026-09-27: 78 commitsOct 5, 2025Sep 27, 2026
2K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 1 commitsSun 1:00 — 2 commitsSun 2:00 — 5 commitsSun 3:00 — 2 commitsSun 4:00 — 4 commitsSun 5:00 — 3 commitsSun 6:00 — 2 commitsSun 7:00 — 3 commitsSun 8:00 — 13 commitsSun 9:00 — 10 commitsSun 10:00 — 12 commitsSun 11:00 — 9 commitsSun 12:00 — 12 commitsSun 13:00 — 14 commitsSun 14:00 — 10 commitsSun 15:00 — 13 commitsSun 16:00 — 14 commitsSun 17:00 — 6 commitsSun 18:00 — 8 commitsSun 19:00 — 15 commitsSun 20:00 — 7 commitsSun 21:00 — 6 commitsSun 22:00 — 13 commitsSun 23:00 — 6 commitsMon 0:00 — 3 commitsMon 1:00 — 3 commitsMon 2:00 — 3 commitsMon 3:00 — 1 commitsMon 4:00 — 4 commitsMon 5:00 — 7 commitsMon 6:00 — 11 commitsMon 7:00 — 15 commitsMon 8:00 — 15 commitsMon 9:00 — 20 commitsMon 10:00 — 29 commitsMon 11:00 — 36 commitsMon 12:00 — 18 commitsMon 13:00 — 28 commitsMon 14:00 — 20 commitsMon 15:00 — 29 commitsMon 16:00 — 23 commitsMon 17:00 — 19 commitsMon 18:00 — 12 commitsMon 19:00 — 17 commitsMon 20:00 — 14 commitsMon 21:00 — 21 commitsMon 22:00 — 19 commitsMon 23:00 — 6 commitsTue 0:00 — 8 commitsTue 1:00 — 4 commitsTue 2:00 — 9 commitsTue 3:00 — 2 commitsTue 4:00 — 10 commitsTue 5:00 — 7 commitsTue 6:00 — 11 commitsTue 7:00 — 9 commitsTue 8:00 — 18 commitsTue 9:00 — 16 commitsTue 10:00 — 17 commitsTue 11:00 — 25 commitsTue 12:00 — 16 commitsTue 13:00 — 14 commitsTue 14:00 — 18 commitsTue 15:00 — 23 commitsTue 16:00 — 25 commitsTue 17:00 — 20 commitsTue 18:00 — 14 commitsTue 19:00 — 13 commitsTue 20:00 — 15 commitsTue 21:00 — 13 commitsTue 22:00 — 4 commitsTue 23:00 — 6 commitsWed 0:00 — 1 commitsWed 1:00 — 2 commitsWed 2:00 — 8 commitsWed 3:00 — 1 commitsWed 4:00 — 2 commitsWed 5:00 — 1 commitsWed 6:00 — 11 commitsWed 7:00 — 20 commitsWed 8:00 — 20 commitsWed 9:00 — 12 commitsWed 10:00 — 24 commitsWed 11:00 — 22 commitsWed 12:00 — 29 commitsWed 13:00 — 21 commitsWed 14:00 — 20 commitsWed 15:00 — 31 commitsWed 16:00 — 17 commitsWed 17:00 — 20 commitsWed 18:00 — 11 commitsWed 19:00 — 8 commitsWed 20:00 — 9 commitsWed 21:00 — 13 commitsWed 22:00 — 11 commitsWed 23:00 — 12 commitsThu 0:00 — 1 commitsThu 1:00 — 1 commitsThu 2:00 — 0 commitsThu 3:00 — 4 commitsThu 4:00 — 1 commitsThu 5:00 — 4 commitsThu 6:00 — 11 commitsThu 7:00 — 13 commitsThu 8:00 — 14 commitsThu 9:00 — 18 commitsThu 10:00 — 20 commitsThu 11:00 — 16 commitsThu 12:00 — 28 commitsThu 13:00 — 20 commitsThu 14:00 — 26 commitsThu 15:00 — 24 commitsThu 16:00 — 32 commitsThu 17:00 — 25 commitsThu 18:00 — 14 commitsThu 19:00 — 9 commitsThu 20:00 — 12 commitsThu 21:00 — 24 commitsThu 22:00 — 17 commitsThu 23:00 — 8 commitsFri 0:00 — 1 commitsFri 1:00 — 2 commitsFri 2:00 — 0 commitsFri 3:00 — 2 commitsFri 4:00 — 0 commitsFri 5:00 — 1 commitsFri 6:00 — 9 commitsFri 7:00 — 6 commitsFri 8:00 — 15 commitsFri 9:00 — 8 commitsFri 10:00 — 14 commitsFri 11:00 — 21 commitsFri 12:00 — 14 commitsFri 13:00 — 18 commitsFri 14:00 — 23 commitsFri 15:00 — 23 commitsFri 16:00 — 22 commitsFri 17:00 — 15 commitsFri 18:00 — 4 commitsFri 19:00 — 10 commitsFri 20:00 — 11 commitsFri 21:00 — 11 commitsFri 22:00 — 7 commitsFri 23:00 — 6 commitsSat 0:00 — 2 commitsSat 1:00 — 0 commitsSat 2:00 — 7 commitsSat 3:00 — 7 commitsSat 4:00 — 5 commitsSat 5:00 — 10 commitsSat 6:00 — 9 commitsSat 7:00 — 4 commitsSat 8:00 — 9 commitsSat 9:00 — 5 commitsSat 10:00 — 6 commitsSat 11:00 — 13 commitsSat 12:00 — 23 commitsSat 13:00 — 12 commitsSat 14:00 — 19 commitsSat 15:00 — 9 commitsSat 16:00 — 12 commitsSat 17:00 — 11 commitsSat 18:00 — 8 commitsSat 19:00 — 5 commitsSat 20:00 — 13 commitsSat 21:00 — 15 commitsSat 22:00 — 9 commitsSat 23:00 — 4 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Apr 4, 2026daily#19+243
Apr 3, 2026daily#9+392
Apr 2, 2026daily#9+442
Apr 1, 2026daily#22+194
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    456.7K stars · TypeScript

  • openclaw/openclaw

    The AI that really does things. Any OS. Any Platform. The lobster way. 🦞

    391.3K stars · TypeScript

  • anomalyco/opencode

    The open source coding agent.

    211.7K stars · TypeScript

  • n8n-io/n8n

    Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

    206.7K stars · TypeScript

  • microsoft/vscode

    Visual Studio Code

    193.5K stars · TypeScript

  • firecrawl/firecrawl

    Supercharge your AI agents with data from the web and beyond. Building the library for superintelligence. 🔥

    188.6K stars · TypeScript