oblien/openshipPublic

Self-hosted deployment platform

AI summary: An open-source, self-hosted deployment platform providing built-in CI/CD, routing, and TLS termination for applications.

Stars
14.4K
+376 today
Forks
1.3K
Watchers
41
Open issues
67
Open PRs
33
Contributors
~75
Commits
1.3K
Branches
8

TypeScriptApache-2.0Created Mar 5, 2026Last push 2d agoLatest release v0.7.2+1.9K stars this week+2.4K this month

Quick answers

What is openship?
An open-source, self-hosted deployment platform providing built-in CI/CD, routing, and TLS termination for applications.
What does openship do?
Openship is a comprehensive, self-hosted alternative to PaaS solutions, designed to automate the deployment lifecycle of applications directly from a repository. By simply pointing it at a codebase, the platform automatically handles building the application, shipping the containers, configuring routing, and managing TLS certificates. It offers multiple interfaces including a command-line tool, a web dashboard, and a desktop application, giving developers flexible control over their infrastructure. The system is built to simplify self-hosting by providing an out-of-the-box CI/CD pipeline integrated with modern deployment practices.
Who is openship for?
DevOps engineers, self-hosting enthusiasts, and development teams looking for an open-source, easily manageable deployment platform.
How do I get started with openship?
npm install openship
How popular is openship on GitHub?
oblien/openship has 14,368 stars and 1,281 forks on GitHub, and gained 1,924 stars in the last 7 days.
What license does openship use?
oblien/openship is released under the Apache-2.0 license.

Star history

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

Contribution activity

commits per day, last 52 weeks
SepOctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-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-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: 2 commits2026-03-06: 3 commits2026-03-07: 1 commit2026-03-08: 2 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 1 commit2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 3 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 3 commits2026-03-21: 0 commits2026-03-22: 2 commits2026-03-23: 2 commits2026-03-24: 1 commit2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 2 commits2026-03-28: 2 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 1 commit2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 1 commit2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 3 commits2026-04-13: 0 commits2026-04-14: 4 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 1 commit2026-04-23: 4 commits2026-04-24: 0 commits2026-04-25: 1 commit2026-04-26: 1 commit2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 1 commit2026-05-02: 1 commit2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 1 commit2026-05-11: 1 commit2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 1 commit2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 1 commit2026-05-19: 0 commits2026-05-20: 1 commit2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 3 commits2026-05-26: 1 commit2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 1 commit2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 1 commit2026-06-08: 1 commit2026-06-09: 0 commits2026-06-10: 2 commits2026-06-11: 0 commits2026-06-12: 1 commit2026-06-13: 1 commit2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 1 commit2026-06-18: 1 commit2026-06-19: 0 commits2026-06-20: 4 commits2026-06-21: 1 commit2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 1 commit2026-06-25: 0 commits2026-06-26: 1 commit2026-06-27: 1 commit2026-06-28: 2 commits2026-06-29: 2 commits2026-06-30: 2 commits2026-07-01: 1 commit2026-07-02: 2 commits2026-07-03: 4 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 2 commits2026-07-07: 0 commits2026-07-08: 2 commits2026-07-09: 8 commits2026-07-10: 5 commits2026-07-11: 1 commit2026-07-12: 12 commits2026-07-13: 1 commit2026-07-14: 5 commits2026-07-15: 10 commits2026-07-16: 5 commits2026-07-17: 1 commit2026-07-18: 13 commits2026-07-19: 9 commits2026-07-20: 13 commits2026-07-21: 11 commits2026-07-22: 22 commits2026-07-23: 36 commits2026-07-24: 54 commits2026-07-25: 8 commits2026-07-26: 23 commits2026-07-27: 14 commits2026-07-28: 21 commits2026-07-29: 34 commits2026-07-30: 25 commits2026-07-31: 36 commits2026-08-01: 6 commits2026-08-02: 1 commit2026-08-03: 10 commits2026-08-04: 3 commits2026-08-05: 14 commits2026-08-06: 12 commits2026-08-07: 11 commits2026-08-08: 11 commits2026-08-09: 11 commits2026-08-10: 5 commits2026-08-11: 23 commits2026-08-12: 2 commits2026-08-13: 9 commits2026-08-14: 1 commit2026-08-15: 8 commits2026-08-16: 4 commits2026-08-17: 5 commits2026-08-18: 9 commits2026-08-19: 6 commits2026-08-20: 8 commits2026-08-21: 3 commits2026-08-22: 3 commits2026-08-23: 1 commit2026-08-24: 5 commits2026-08-25: 11 commits2026-08-26: 7 commits2026-08-27: 1 commit2026-08-28: 0 commits2026-08-29: 0 commits2026-08-30: 9 commits2026-08-31: 0 commits2026-09-01: 2 commits2026-09-02: 11 commits2026-09-03: 15 commits2026-09-04: 15 commits2026-09-05: 3 commits2026-09-06: 4 commits2026-09-07: 1 commit2026-09-08: 6 commits2026-09-09: 3 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 1 commit2026-09-13: 3 commits2026-09-14: 6 commits2026-09-15: 27 commits2026-09-16: 56 commits2026-09-17: 3 commits2026-09-18: 2 commits2026-09-19: 6 commits2026-09-20: 4 commits2026-09-21: 17 commits2026-09-22: 6 commits2026-09-23: 51 commits2026-09-24: 7 commits2026-09-25: 0 commits2026-09-26: 0 commits
900 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    14,368 stars

  • Rising fast

    +1,924 stars this week

  • Very active

    900 commits in 52 weeks

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

  • Repeat trending

    13 trending appearances

What openship does

Openship is a comprehensive, self-hosted alternative to PaaS solutions, designed to automate the deployment lifecycle of applications directly from a repository. By simply pointing it at a codebase, the platform automatically handles building the application, shipping the containers, configuring routing, and managing TLS certificates. It offers multiple interfaces including a command-line tool, a web dashboard, and a desktop application, giving developers flexible control over their infrastructure. The system is built to simplify self-hosting by providing an out-of-the-box CI/CD pipeline integrated with modern deployment practices.

DevOps engineers, self-hosting enthusiasts, and development teams looking for an open-source, easily manageable deployment platform.

  • Automated CI/CD pipelines: Builds and deploys applications automatically when changes are pushed to the connected repository.
  • Built-in routing and TLS: Automatically configures domain routing and provisions secure TLS certificates for deployed services.
  • Self-hosted architecture: Runs entirely on your own infrastructure, providing full control over data and deployment environments.
  • Multiple management interfaces: Controllable via a dedicated CLI, a responsive web dashboard, or a native desktop application.
  • Repository-driven deployments: Simplifies the process by relying solely on the source repository to define the deployment state.

Where teams use it

Private cloud deployments

Hosting internal company applications securely on private infrastructure without relying on third-party PaaS providers.

Automated staging environments

Spinning up dynamic preview environments automatically for every pull request merged into the repository.

Personal project hosting

Managing multiple personal web applications efficiently from a single, centralized self-hosted dashboard.

Simplifying complex infrastructure

Replacing complex Kubernetes or custom CI scripts with an integrated solution that handles builds, routing, and certs.

Getting started: npm install openship

README

main branch

Openship

Open-source, self-hostable deployment platform with built-in CI/CD.
Point it at a repo — it builds, ships, routes, and TLS-terminates your app. Drive it from a desktop app, web dashboard, or CLI.

Trendshift

npm version License Website

Quick Start · How It Works · Interfaces · Docs · Contributing

English العربية 简体中文 Español Français 日本語 Português Deutsch Türkçe 한국어

Openship dashboard


Quick Start

There's one decision to make first: how you run Openship itself (the control plane). Everything else is the same afterwards.

If you're… Run Openship as Where your apps run
Solo, one machine, no ops Desktop app A server you connect over SSH, or Openship Cloud
A team — or you want push-to-deploy / to host apps on your own box Self-hosted server (openship up) On that box (Compose mode) — or out to another server / Cloud (bare mode)
Not interested in running anything Openship Cloud Managed sandboxes, zero setup

Tip

Solo? Use the desktop app. It runs Openship's control plane on your own machine only while the app is open — nothing is left running on an always-on server, nothing is exposed publicly. You only need an always-on server install once you want push-to-deploy (CI/CD), team access, or to host apps on that box — the things that need a public, always-on endpoint.

Solo — desktop app

The control plane runs locally and drives your servers over SSH. No login, no terminal, no public surface — download, open, done:

Platform Download
macOS (Apple Silicon) Openship-arm64.dmg
macOS (Intel) Openship-x64.dmg
Windows Openship-win32-x64.zip
Linux Openship.AppImage

Linux: chmod +x Openship.AppImage && ./Openship.AppImage. Already have the CLI? openship install fetches and launches it. Links always point at the newest release.

From the desktop app you connect a server (SSH) or Openship Cloud and deploy to it — the app itself doesn't host public apps on your laptop.

Team / always-on — self-hosted server

Install the CLI (it bundles the API + dashboard), then run openship — an interactive wizard creates the first admin, wires your domain, and installs Openship as a boot service. Run it again anytime to manage the instance.

curl -fsSL https://get.openship.io | sh          # install  (or: npm i -g openship — needs Node 22+)
openship                                          # guided setup, then control panel

The install script brings its own Node when your system one is older than 22; a package-manager install runs on the Node you already have.

For CI / headless boxes, skip the wizard and drive openship up directly:

openship up                                       # install + start as a background service (boots + auto-restarts)
openship up --public-url https://openship.example.com   # + serve the dashboard on your domain (edge + TLS handled)

openship up picks how it runs for you:

  • On Linux with Docker → Compose mode (the default). Brings up the full stack — Postgres, Redis, API, dashboard, and a containerized OpenResty edge on :80/:443 — from published images. This is the flavor that hosts your deployed apps on the same box, with automatic domains + Let's Encrypt TLS. Force it with --compose.
  • Everywhere else → bare mode (macOS, Windows, or Linux without Docker). A single lightweight process with an embedded database — an always-on control plane that deploys apps out to a server (SSH) or Cloud, like the desktop app but always on and login-required. Force it with --bare.

A self-hosted instance always requires login (the admin you create in setup). openship open opens the dashboard · openship stop stops it · openship update upgrades · openship up --foreground runs attached.

Preview an unreleased build (dev). To run the CLI built straight from source — a branch, tag, or main ahead of the next release — install the from-source build:

curl -fsSL https://get.openship.io/dev | sh                  # main (default)
curl -fsSL https://get.openship.io/dev | OPENSHIP_REF=dev sh  # a branch/tag (var goes on sh, not curl)
openship-dev                                     # same CLI, built from source
openship-dev update                              # pull latest source + rebuild (no release needed)

It installs as a separate openship-dev command with its own isolated home (~/.openship-dev) and boot service, so your production openship and its data are never touched. Needs Bun + git; it's an unverified dev build (the dashboard compile wants real RAM/CPU) — not a production path.

Deploy a project:

cd your-project
openship init            # link this directory to a project
openship deploy

Full server guide + complete CLI reference: openship.io/docs.

Shell completion (bash/zsh/fish)

Two ways to enable Tab-completion for openship:

Setup Trade-off
Static file (recommended) openship completion <shell> > <path> Instant shell startup. Regenerate after upgrading to pick up newly added commands.
Live-sourced add source <(openship completion <shell>) to your shell config Always reflects the currently installed version. Adds a small delay to every new shell session.

Static file:

openship completion bash > /etc/bash_completion.d/openship
openship completion zsh  > ~/.zsh/completions/_openship
openship completion fish > ~/.config/fish/completions/openship.fish

Open a new terminal — done.

Live-sourced (zsh example):

echo 'source <(openship completion zsh)' >> ~/.zshrc
Self-host with raw Docker Compose (no CLI)

The self-hosted stack lives in docker/docker-compose.yml and pulls published images from GitHub Container Registry (ghcr.io/oblien/*) — no build tooling, no monorepo compile. Run it from the repo root:

git clone https://github.com/oblien/openship.git && cd openship
cp .env.example .env          # then edit
docker compose --env-file .env -f docker/docker-compose.yml up -d

The stack is postgres + redis + api + dashboard + edge. The edge is OpenResty on :80/:443 as a container (network_mode: host) — routing + Let's Encrypt, no bare host install. Linux only (host networking); on mac/win use openship up (bare). The api container mounts the host Docker socket so the control plane can build + run your apps as host containers — it's host-privileged through the socket, so run it only on a trusted host.

Upgrade: pin OPENSHIP_VERSION in .env for reproducible pulls, then docker compose --env-file .env -f docker/docker-compose.yml pull && … up -d. openship update only reconciles a stack the CLI installed, and openship up would adopt this one — don't reach for either here. Build from source instead: add -f docker/docker-compose.build.yml … up -d --build.

Host operations (:80/:443 takeover, the mail engine, host terminal/port scans) need the container→host SSH channel, which openship up provisions and this path does not — the five manual steps are in .env.example under Host operations from the container, and the failure it produces is Troubleshooting → Host control channel. Everything else, including deploys, works without it.

The root docker-compose.yml is a different file: it's the SaaS / from-source control plane (builds from source, ships the marketing site, no edge/socket). It does not self-host your apps — use docker/docker-compose.yml above or openship up.


How It Works

Point Openship at a source — a GitHub repo, a local folder, or a prebuilt artifact — and it runs one pipeline end to end:

  1. Detect. It reads your package.json, framework config, lockfiles, and any docker-compose.yml / openship.json to work out the stack, package manager, build/start commands, and port. Zero config files required; an openship.json overrides the guesses if you want control.
  2. Build. On the target server or locally on the orchestrator, into a Docker image or a bare release. The resolved config is frozen into a snapshot, so redeploys and rollbacks re-run exactly what shipped.
  3. Run. As a container (published on loopback only — never a public port) or a supervised host process.
  4. Route + secure. The OpenResty edge writes a reverse-proxy vhost to your domain and issues a Let's Encrypt certificate (HTTP-01). Because routing and TLS happen after the app is up, a DNS or cert hiccup surfaces as "action required" — it never fails the deploy or takes your app down.
  5. Push-to-deploy. A GitHub webhook re-runs the pipeline on every push to the tracked branch — rebuilding only the services a monorepo push actually touched.

Databases, domains, SSL, CDN, mail, and backups are managed from the same place. (Push-to-deploy and public domains need an always-on server or Cloud — a desktop/loopback instance has no public endpoint to receive webhooks.)


Interfaces

Three ways to drive the same backend:

  • Desktop app — full GUI, real-time logs, one-click everything. Best for solo.
  • Web dashboard — the same UI in the browser, built for teams.
  • CLI — scriptable and CI-friendly; also how you install and manage a self-hosted instance.

An MCP endpoint (for AI agents) and a REST API round it out for automation. Only routes that opt in are exposed as MCP tools, every call re-checks your permissions, and credential/token routes can never become tools. Full reference at openship.io/docs.

Note

The docs are actively being filled out. If something's missing or unclear, contributions are hugely welcome.


Features

Built-in CI/CD Push-to-deploy, preview environments, staging/prod flows, rollbacks
Any stack Node, Python, Go, Rust, PHP, Ruby, Java, .NET, Docker, monorepos
Full backend Postgres, MySQL, MongoDB, Redis, workers, WebSockets, storage
Domains & SSL Automatic Let's Encrypt, wildcards, unlimited domains, auto-renewal
CDN Edge caching, HTTP/3, Brotli compression, instant purge
Mail server Built-in SMTP with DKIM/SPF/DMARC — no Mailgun or SES needed
Backups Scheduled, databases + volumes, one-click restore, export anytime
Real-time monitoring Live build logs, container metrics, visitor geography and per-code response mix — ~1.4 µs per request, zero DB writes per request
Scaling Auto-scaling on cloud, multi-node ready on self-hosted
Portability Standard Docker containers — move between providers freely
Docker Compose Deploy existing compose files as-is

Deploy Anywhere

  • Openship Cloud — managed, auto-scaling, zero setup
  • Any VPS — Hetzner, DigitalOcean, Linode, OVH, and the rest
  • Dedicated servers — bare metal, colo, homelab
  • Multi-server — spread workloads across machines

Same interface regardless of where you deploy.


Status

Production-ready core, actively developed. Self-hosting is free (no billing).

Coming next: multi-node clusters, load-balancing UI, private networking, advanced monitoring, and visual CI/CD pipelines.


Contributing

See CONTRIBUTING.md.


Security

Found a vulnerability? We welcome your report — please disclose it privately, never in a public issue, PR, or discussion.

  • Report it here (preferred): Report a vulnerability — a private GitHub advisory, visible only to you and the maintainers.
  • Scope, what to include, and our response/disclosure process: SECURITY.md.

Good-faith security research is authorized under our safe-harbor policy, and we're happy to credit valid first reports.

License

Openship-authored code is licensed under the Apache License 2.0. Bundled third-party components retain their own licenses. In particular, the iRedMail engine is GPL-licensed and is included in several control-plane distributions even when mail setup is not used. See the component and packaging inventory for the recorded license boundaries and outstanding upstream notice review.

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

21 total
  1. Openship v0.7.2v0.7.2Sep 5, 20263.7K downloads

    Bump to v0.7.2 + announce

  2. Openship v0.7.1v0.7.1Sep 4, 2026452 downloads

    Bump to v0.7.1 + announce

  3. Openship v0.6.9v0.6.9Aug 30, 20261.8K downloads

    Bump to v0.6.9 + announce

  4. Openship v0.6.8v0.6.8Aug 25, 20261.2K downloads

    fix e2e tests for 0.6.8

  5. Openship v0.6.7v0.6.7Aug 20, 20261.8K downloads

    fix e2e test

Code frequency

additions and deletions
+517.5K-517.5KWeek of 2026-03-01: +42,896 linesWeek of 2026-03-01: -5,960 linesWeek of 2026-03-08: +37,547 linesWeek of 2026-03-08: -10,665 linesWeek of 2026-03-15: +21,948 linesWeek of 2026-03-15: -3,645 linesWeek of 2026-03-22: +14,064 linesWeek of 2026-03-22: -5,818 linesWeek of 2026-03-29: +4,072 linesWeek of 2026-03-29: -3,135 linesWeek of 2026-04-05: +2,655 linesWeek of 2026-04-05: -1,365 linesWeek of 2026-04-12: +6,233 linesWeek of 2026-04-12: -1,445 linesWeek of 2026-04-19: +5,068 linesWeek of 2026-04-19: -1,444 linesWeek of 2026-04-26: +3,500 linesWeek of 2026-04-26: -1,236 linesWeek of 2026-05-03: +0 linesWeek of 2026-05-03: -0 linesWeek of 2026-05-10: +16,070 linesWeek of 2026-05-10: -5,013 linesWeek of 2026-05-17: +7,006 linesWeek of 2026-05-17: -5,551 linesWeek of 2026-05-24: +116,941 linesWeek of 2026-05-24: -5,019 linesWeek of 2026-05-31: +5,038 linesWeek of 2026-05-31: -1,563 linesWeek of 2026-06-07: +33,365 linesWeek of 2026-06-07: -8,093 linesWeek of 2026-06-14: +75,732 linesWeek of 2026-06-14: -9,484 linesWeek of 2026-06-21: +43,420 linesWeek of 2026-06-21: -11,587 linesWeek of 2026-06-28: +59,994 linesWeek of 2026-06-28: -4,015 linesWeek of 2026-07-05: +69,178 linesWeek of 2026-07-05: -13,922 linesWeek of 2026-07-12: +87,044 linesWeek of 2026-07-12: -9,777 linesWeek of 2026-07-19: +517,488 linesWeek of 2026-07-19: -23,780 linesWeek of 2026-07-26: +90,593 linesWeek of 2026-07-26: -14,801 linesWeek of 2026-08-02: +95,558 linesWeek of 2026-08-02: -13,008 linesWeek of 2026-08-09: +122,543 linesWeek of 2026-08-09: -18,407 linesWeek of 2026-08-16: +55,238 linesWeek of 2026-08-16: -8,705 linesWeek of 2026-08-23: +35,264 linesWeek of 2026-08-23: -7,311 linesMar 1, 2026Aug 23, 2026
+1.6M lines added, -194.7K removed over the last year.

Commits per week

last 52 weeks
1590Week of 2025-09-27: 0 commitsWeek of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 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: 6 commitsWeek of 2026-03-08: 3 commitsWeek of 2026-03-15: 6 commitsWeek of 2026-03-22: 9 commitsWeek of 2026-03-29: 1 commitsWeek of 2026-04-05: 1 commitsWeek of 2026-04-12: 7 commitsWeek of 2026-04-19: 6 commitsWeek of 2026-04-26: 3 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 3 commitsWeek of 2026-05-17: 2 commitsWeek of 2026-05-24: 4 commitsWeek of 2026-05-31: 1 commitsWeek of 2026-06-07: 6 commitsWeek of 2026-06-14: 6 commitsWeek of 2026-06-21: 4 commitsWeek of 2026-06-28: 13 commitsWeek of 2026-07-05: 18 commitsWeek of 2026-07-12: 47 commitsWeek of 2026-07-19: 153 commitsWeek of 2026-07-26: 159 commitsWeek of 2026-08-02: 62 commitsWeek of 2026-08-09: 59 commitsWeek of 2026-08-16: 38 commitsWeek of 2026-08-23: 25 commitsWeek of 2026-08-30: 55 commitsWeek of 2026-09-06: 15 commitsWeek of 2026-09-13: 103 commitsWeek of 2026-09-20: 85 commitsSep 27, 2025Sep 20, 2026
900 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 3 commitsSun 1:00 — 2 commitsSun 2:00 — 1 commitsSun 3:00 — 4 commitsSun 4:00 — 3 commitsSun 5:00 — 5 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 1 commitsSun 10:00 — 3 commitsSun 11:00 — 7 commitsSun 12:00 — 4 commitsSun 13:00 — 2 commitsSun 14:00 — 6 commitsSun 15:00 — 5 commitsSun 16:00 — 4 commitsSun 17:00 — 8 commitsSun 18:00 — 8 commitsSun 19:00 — 4 commitsSun 20:00 — 6 commitsSun 21:00 — 7 commitsSun 22:00 — 6 commitsSun 23:00 — 5 commitsMon 0:00 — 3 commitsMon 1:00 — 7 commitsMon 2:00 — 3 commitsMon 3:00 — 4 commitsMon 4:00 — 4 commitsMon 5:00 — 2 commitsMon 6:00 — 2 commitsMon 7:00 — 4 commitsMon 8:00 — 3 commitsMon 9:00 — 0 commitsMon 10:00 — 0 commitsMon 11:00 — 0 commitsMon 12:00 — 4 commitsMon 13:00 — 2 commitsMon 14:00 — 6 commitsMon 15:00 — 8 commitsMon 16:00 — 4 commitsMon 17:00 — 3 commitsMon 18:00 — 5 commitsMon 19:00 — 1 commitsMon 20:00 — 15 commitsMon 21:00 — 4 commitsMon 22:00 — 4 commitsMon 23:00 — 1 commitsTue 0:00 — 2 commitsTue 1:00 — 1 commitsTue 2:00 — 8 commitsTue 3:00 — 1 commitsTue 4:00 — 1 commitsTue 5:00 — 4 commitsTue 6:00 — 0 commitsTue 7:00 — 1 commitsTue 8:00 — 0 commitsTue 9:00 — 1 commitsTue 10:00 — 2 commitsTue 11:00 — 3 commitsTue 12:00 — 2 commitsTue 13:00 — 6 commitsTue 14:00 — 7 commitsTue 15:00 — 6 commitsTue 16:00 — 14 commitsTue 17:00 — 5 commitsTue 18:00 — 11 commitsTue 19:00 — 9 commitsTue 20:00 — 11 commitsTue 21:00 — 11 commitsTue 22:00 — 13 commitsTue 23:00 — 18 commitsWed 0:00 — 10 commitsWed 1:00 — 10 commitsWed 2:00 — 9 commitsWed 3:00 — 14 commitsWed 4:00 — 18 commitsWed 5:00 — 10 commitsWed 6:00 — 3 commitsWed 7:00 — 4 commitsWed 8:00 — 11 commitsWed 9:00 — 14 commitsWed 10:00 — 13 commitsWed 11:00 — 14 commitsWed 12:00 — 17 commitsWed 13:00 — 4 commitsWed 14:00 — 2 commitsWed 15:00 — 3 commitsWed 16:00 — 7 commitsWed 17:00 — 4 commitsWed 18:00 — 8 commitsWed 19:00 — 15 commitsWed 20:00 — 11 commitsWed 21:00 — 9 commitsWed 22:00 — 8 commitsWed 23:00 — 7 commitsThu 0:00 — 4 commitsThu 1:00 — 4 commitsThu 2:00 — 9 commitsThu 3:00 — 8 commitsThu 4:00 — 3 commitsThu 5:00 — 3 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 1 commitsThu 9:00 — 1 commitsThu 10:00 — 8 commitsThu 11:00 — 5 commitsThu 12:00 — 15 commitsThu 13:00 — 9 commitsThu 14:00 — 7 commitsThu 15:00 — 4 commitsThu 16:00 — 7 commitsThu 17:00 — 7 commitsThu 18:00 — 7 commitsThu 19:00 — 5 commitsThu 20:00 — 2 commitsThu 21:00 — 4 commitsThu 22:00 — 6 commitsThu 23:00 — 20 commitsFri 0:00 — 9 commitsFri 1:00 — 10 commitsFri 2:00 — 7 commitsFri 3:00 — 3 commitsFri 4:00 — 2 commitsFri 5:00 — 10 commitsFri 6:00 — 2 commitsFri 7:00 — 3 commitsFri 8:00 — 13 commitsFri 9:00 — 6 commitsFri 10:00 — 3 commitsFri 11:00 — 4 commitsFri 12:00 — 7 commitsFri 13:00 — 15 commitsFri 14:00 — 7 commitsFri 15:00 — 3 commitsFri 16:00 — 6 commitsFri 17:00 — 3 commitsFri 18:00 — 7 commitsFri 19:00 — 9 commitsFri 20:00 — 5 commitsFri 21:00 — 3 commitsFri 22:00 — 4 commitsFri 23:00 — 4 commitsSat 0:00 — 3 commitsSat 1:00 — 5 commitsSat 2:00 — 7 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 3 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 2 commitsSat 9:00 — 3 commitsSat 10:00 — 1 commitsSat 11:00 — 0 commitsSat 12:00 — 4 commitsSat 13:00 — 3 commitsSat 14:00 — 3 commitsSat 15:00 — 5 commitsSat 16:00 — 7 commitsSat 17:00 — 1 commitsSat 18:00 — 4 commitsSat 19:00 — 0 commitsSat 20:00 — 2 commitsSat 21:00 — 4 commitsSat 22:00 — 6 commitsSat 23:00 — 8 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Sep 30, 2026daily#7+436
Sep 29, 2026daily#7+436
Aug 20, 2026monthly#14+10,646
Aug 19, 2026monthly#14+10,646
Jul 31, 2026weekly#14+2,743
Jul 30, 2026weekly#14+2,743
Jul 29, 2026weekly#4+3,628
Jul 28, 2026weekly#4+4,911
Jul 23, 2026daily#6+8
Jul 22, 2026daily#17+4
Jul 20, 2026daily#4+6
Jul 19, 2026daily#1+14
Jul 18, 2026daily#7+6
  • 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

  • awesome-selfhosted/awesome-selfhosted

    A list of Free Software network services and web applications which can be hosted on your own servers

    323.8K stars

  • obra/superpowers

    An agentic skills framework & software development methodology that works.

    295.2K stars · Shell

  • NousResearch/hermes-agent

    The agent that grows with you

    251.2K stars · Python

  • anomalyco/opencode

    The open source coding agent.

    211.7K stars · TypeScript