emdash-cms/emdashPublic

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

AI summary: A full-stack, serverless TypeScript CMS built on Astro with a secure, isolated plugin architecture.

Stars
11.5K
+23 today
Forks
1.1K
Watchers
68
Open issues
141
Open PRs
127
Contributors
~152
Commits
1.2K
Branches
83

TypeScriptMITCreated Apr 1, 2026Last push todayLatest release emdash@0.32.0+66 stars this week+80 this month

Star history

since Mar 29, 2026
05K10KMar 2026May 2026Jun 2026Aug 2026
11.5K stars as of Aug 7, 2026, tracked back to Mar 29, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulAugMonWedFri2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-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: 0 commits
1,199 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    11,535 stars

  • Very active

    1,199 commits in 52 weeks

  • Community-driven

    ~152 contributors

  • Well documented

    High community health score

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    4 trending appearances

What emdash does

EmDash aims to be the modern, type-safe successor to WordPress, engineered specifically for edge environments like Cloudflare. It provides a comprehensive content management experience with a focus on developer experience and security. The core innovation is its plugin system: plugins run in secure, sandboxed Worker isolates, preventing the catastrophic security vulnerabilities that plague traditional PHP-based CMS ecosystems. Built on Astro, it delivers extremely fast, server-rendered content while providing a robust administrative interface and deep extensibility.

Web developers and agencies looking for a modern, secure, and highly performant alternative to WordPress. Strong TypeScript and modern web framework knowledge is necessary.

  • Sandboxed Plugins: Executes third-party plugins in isolated Cloudflare Workers to guarantee system security.
  • Edge-Native Architecture: Designed from the ground up to deploy seamlessly on Cloudflare's global edge network.
  • Astro Integration: Leverages Astro's partial hydration and static generation for maximum frontend performance.
  • Full TypeScript Support: Provides end-to-end type safety across the core platform, API, and plugin ecosystem.
  • Extensible Admin UX: Offers a modern, customizable dashboard for content editors that rivals legacy CMS platforms.
  • Serverless Database Ready: Integrates natively with modern serverless database solutions like D1 or Turso.

Where teams use it

High-Traffic Publishing

Powers a large editorial site that requires the performance of edge rendering and the workflow of a traditional CMS.

Secure Enterprise Intranets

Provides a content platform where third-party plugins can be installed without compromising server security.

Modern Jamstack Migration

Offers a familiar administrative experience for teams migrating away from WordPress to a modern TypeScript stack.

Developer-First Blogging

Enables developers to build heavily customized, type-safe blogs using their preferred modern web tools.

Getting started: npm create emdash@latest

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

Important

EmDash depends on Dynamic Workers to run secure sandboxed plugins. Dynamic Workers are currently only available on paid accounts. Upgrade your account (starting at $5/mo) or comment out the worker_loaders block of your wrangler.jsonc configuration file to disable plugins.

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 read:content and email:send can do exactly that and nothing else.

export default () =>
	definePlugin({
		id: "notify-on-publish",
		capabilities: ["read:content", "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 ships with agent skills for building plugins and themes, 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 -- Skill files for AI-assisted 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

Releases and announcements

476 total
  1. emdash@0.32.0emdash@0.32.0Aug 5, 2026

    ### Patch Changes - [#2298](https://github.com/emdash-cms/emdash/pull/2298) [`8d46fd2`](https://github.com/emdash-cms/emdash/commit/8d46fd29506f9164583853909fce8db705b020f3) Thanks [@scottbuscemi](https://github.com/scottbuscemi)! - Allows inline code and links on the same text in the content editor, including in headings. - [#2279](https://github.com/emdash-cms/emdash/pull/2279) [`c1f6768`](https://github.com/emdash-cms/emdash/commit/c1f6768adf2ffb4e09c664d684fc3d49e2b885f0) Thanks [@scottbuscemi](https://github.com/scottbuscemi)! - Stops draft-only content saves from purging public caches and removes internal revision IDs from anonymous content query results. Public caches are invalidated when live content changes, while preview and edit requests retain the revision metadata needed to load drafts. - [#2303](https://github.com/emdash-cms/emdash/pull/2303) [`ecebade`](https://github.com/emdash-cms/emdash/commit/ecebade8fb3ff4976c88787595fcb2922c3ee469) Thanks [@edrpls](https://github.com/edrpls)! - Fixes the Duplicate action creating the copy in the default locale instead of the source entry's locale. Duplicates of non-English entries now stay in their locale — so they app

  2. create-emdash@0.32.0create-emdash@0.32.0Aug 5, 2026
  3. @emdash-cms/x402@0.32.0@emdash-cms/x402@0.32.0Aug 5, 2026
  4. @emdash-cms/sandbox-workerd@0.3.3@emdash-cms/sandbox-workerd@0.3.3Aug 5, 2026

    ### Patch Changes - Updated dependencies [[`8d46fd2`](https://github.com/emdash-cms/emdash/commit/8d46fd29506f9164583853909fce8db705b020f3), [`c1f6768`](https://github.com/emdash-cms/emdash/commit/c1f6768adf2ffb4e09c664d684fc3d49e2b885f0), [`ecebade`](https://github.com/emdash-cms/emdash/commit/ecebade8fb3ff4976c88787595fcb2922c3ee469), [`e1ab8f0`](https://github.com/emdash-cms/emdash/commit/e1ab8f08ca262a0b7c981b044cbc52d86f2b7ffe), [`121b333`](https://github.com/emdash-cms/emdash/commit/121b3339b6a2aa1ac86e01bb9ccb5d642af1b620), [`3aabb7b`](https://github.com/emdash-cms/emdash/commit/3aabb7bff8173efabb56ae878a6c2578a7219a10), [`b0c7880`](https://github.com/emdash-cms/emdash/commit/b0c7880c74994e229b4cf4e9a0247452df2bc640), [`4a49262`](https://github.com/emdash-cms/emdash/commit/4a4926267ea625b31975eb22b5c03474e1487eab)]: - emdash@0.32.0

  5. @emdash-cms/plugin-embeds@0.1.40@emdash-cms/plugin-embeds@0.1.40Aug 5, 2026

    ### Patch Changes - Updated dependencies []: - @emdash-cms/blocks@0.32.0

Commits per week

last 52 weeks
1430Week of 2025-08-10: 0 commitsWeek of 2025-08-17: 0 commitsWeek of 2025-08-24: 0 commitsWeek of 2025-08-31: 0 commitsWeek of 2025-09-07: 0 commitsWeek of 2025-09-14: 0 commitsWeek of 2025-09-21: 0 commitsWeek of 2025-09-28: 0 commitsWeek 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: 14 commitsAug 10, 2025Aug 2, 2026
1.2K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 1 commitsSun 1:00 — 1 commitsSun 2:00 — 0 commitsSun 3:00 — 1 commitsSun 4:00 — 2 commitsSun 5:00 — 0 commitsSun 6:00 — 1 commitsSun 7:00 — 1 commitsSun 8:00 — 8 commitsSun 9:00 — 5 commitsSun 10:00 — 1 commitsSun 11:00 — 2 commitsSun 12:00 — 3 commitsSun 13:00 — 8 commitsSun 14:00 — 4 commitsSun 15:00 — 10 commitsSun 16:00 — 3 commitsSun 17:00 — 3 commitsSun 18:00 — 2 commitsSun 19:00 — 6 commitsSun 20:00 — 2 commitsSun 21:00 — 4 commitsSun 22:00 — 9 commitsSun 23:00 — 3 commitsMon 0:00 — 2 commitsMon 1:00 — 1 commitsMon 2:00 — 2 commitsMon 3:00 — 1 commitsMon 4:00 — 2 commitsMon 5:00 — 7 commitsMon 6:00 — 6 commitsMon 7:00 — 10 commitsMon 8:00 — 6 commitsMon 9:00 — 9 commitsMon 10:00 — 20 commitsMon 11:00 — 28 commitsMon 12:00 — 12 commitsMon 13:00 — 18 commitsMon 14:00 — 14 commitsMon 15:00 — 18 commitsMon 16:00 — 16 commitsMon 17:00 — 14 commitsMon 18:00 — 8 commitsMon 19:00 — 14 commitsMon 20:00 — 8 commitsMon 21:00 — 13 commitsMon 22:00 — 15 commitsMon 23:00 — 4 commitsTue 0:00 — 6 commitsTue 1:00 — 4 commitsTue 2:00 — 7 commitsTue 3:00 — 2 commitsTue 4:00 — 9 commitsTue 5:00 — 5 commitsTue 6:00 — 8 commitsTue 7:00 — 6 commitsTue 8:00 — 8 commitsTue 9:00 — 5 commitsTue 10:00 — 10 commitsTue 11:00 — 14 commitsTue 12:00 — 7 commitsTue 13:00 — 11 commitsTue 14:00 — 12 commitsTue 15:00 — 13 commitsTue 16:00 — 9 commitsTue 17:00 — 13 commitsTue 18:00 — 6 commitsTue 19:00 — 8 commitsTue 20:00 — 11 commitsTue 21:00 — 9 commitsTue 22:00 — 2 commitsTue 23:00 — 6 commitsWed 0:00 — 1 commitsWed 1:00 — 1 commitsWed 2:00 — 7 commitsWed 3:00 — 0 commitsWed 4:00 — 2 commitsWed 5:00 — 0 commitsWed 6:00 — 7 commitsWed 7:00 — 8 commitsWed 8:00 — 8 commitsWed 9:00 — 9 commitsWed 10:00 — 8 commitsWed 11:00 — 12 commitsWed 12:00 — 21 commitsWed 13:00 — 11 commitsWed 14:00 — 11 commitsWed 15:00 — 22 commitsWed 16:00 — 12 commitsWed 17:00 — 12 commitsWed 18:00 — 8 commitsWed 19:00 — 5 commitsWed 20:00 — 7 commitsWed 21:00 — 13 commitsWed 22:00 — 10 commitsWed 23:00 — 9 commitsThu 0:00 — 1 commitsThu 1:00 — 1 commitsThu 2:00 — 0 commitsThu 3:00 — 2 commitsThu 4:00 — 1 commitsThu 5:00 — 2 commitsThu 6:00 — 5 commitsThu 7:00 — 11 commitsThu 8:00 — 6 commitsThu 9:00 — 7 commitsThu 10:00 — 9 commitsThu 11:00 — 9 commitsThu 12:00 — 22 commitsThu 13:00 — 13 commitsThu 14:00 — 12 commitsThu 15:00 — 12 commitsThu 16:00 — 20 commitsThu 17:00 — 16 commitsThu 18:00 — 5 commitsThu 19:00 — 5 commitsThu 20:00 — 5 commitsThu 21:00 — 14 commitsThu 22:00 — 3 commitsThu 23:00 — 4 commitsFri 0:00 — 0 commitsFri 1:00 — 2 commitsFri 2:00 — 0 commitsFri 3:00 — 2 commitsFri 4:00 — 0 commitsFri 5:00 — 1 commitsFri 6:00 — 8 commitsFri 7:00 — 5 commitsFri 8:00 — 2 commitsFri 9:00 — 5 commitsFri 10:00 — 9 commitsFri 11:00 — 15 commitsFri 12:00 — 11 commitsFri 13:00 — 17 commitsFri 14:00 — 14 commitsFri 15:00 — 16 commitsFri 16:00 — 19 commitsFri 17:00 — 12 commitsFri 18:00 — 2 commitsFri 19:00 — 6 commitsFri 20:00 — 10 commitsFri 21:00 — 9 commitsFri 22:00 — 4 commitsFri 23:00 — 6 commitsSat 0:00 — 2 commitsSat 1:00 — 0 commitsSat 2:00 — 7 commitsSat 3:00 — 4 commitsSat 4:00 — 2 commitsSat 5:00 — 7 commitsSat 6:00 — 7 commitsSat 7:00 — 4 commitsSat 8:00 — 4 commitsSat 9:00 — 2 commitsSat 10:00 — 2 commitsSat 11:00 — 6 commitsSat 12:00 — 17 commitsSat 13:00 — 4 commitsSat 14:00 — 9 commitsSat 15:00 — 2 commitsSat 16:00 — 7 commitsSat 17:00 — 8 commitsSat 18:00 — 4 commitsSat 19:00 — 2 commitsSat 20:00 — 5 commitsSat 21:00 — 6 commitsSat 22:00 — 4 commitsSat 23:00 — 1 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.

    453.6K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    385.5K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • anomalyco/opencode

    The open source coding agent.

    194.7K stars · TypeScript