oblien/openshipPublic

Self-hosted deployment platform

AI summary: Open-source self-hostable deployment platform with built-in CI/CD and routing.

Stars
10.4K
+62 today
Forks
863
Watchers
27
Open issues
74
Open PRs
57
Contributors
~49
Commits
622
Branches
6

TypeScriptApache-2.0Created Mar 5, 2026Last push todayLatest release v0.6.1+440 stars this week+1K this month

Star history

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

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulAugMonWedFri2025-08-09: 0 commits2025-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-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: 46 commits2026-07-25: 4 commits2026-07-26: 15 commits2026-07-27: 13 commits2026-07-28: 21 commits2026-07-29: 33 commits2026-07-30: 15 commits2026-07-31: 23 commits2026-08-01: 6 commits2026-08-02: 1 commit2026-08-03: 7 commits2026-08-04: 1 commit2026-08-05: 10 commits2026-08-06: 5 commits2026-08-07: 9 commits2026-08-08: 0 commits
446 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    10,398 stars

  • Actively maintained

    Pushed within 48 hours

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

  • Repeat trending

    9 trending appearances

What openship does

Openship is a self-hostable alternative to PaaS solutions that automatically builds, ships, and routes applications directly from a GitHub repository or local folder. It detects the stack, builds the necessary containers, and manages TLS termination and reverse proxying via an embedded OpenResty edge. Users can interact with Openship through a web dashboard, desktop app, or CLI, and it supports both single-node deployments and remote server targeting over SSH.

Developers, DevOps engineers, and self-hosters who want the convenience of a modern PaaS on their own infrastructure without writing complex CI pipelines.

  • Zero-config builds: Automatically detects the stack from package.json or docker-compose.yml to build the application.
  • Built-in OpenResty edge: Handles reverse proxying and automatic Let's Encrypt TLS certificate generation.
  • Push-to-deploy: Integrates with GitHub webhooks to trigger automatic rebuilds on branch pushes.
  • Multiple interfaces: Manage deployments via a graphical desktop app, web dashboard, or scriptable CLI.
  • Embedded database: Runs an embedded control plane for bare-metal macOS/Windows installs to manage remote nodes.
  • MCP API: Exposes deployment controls and logs to AI agents securely via an MCP endpoint.

Where teams use it

Self-hosted PaaS replacement

Startups can deploy their entire monorepo stack on their own Hetzner or DigitalOcean VPS without paying Heroku fees.

Solo developer homelab

Hobbyists can use the desktop app to easily deploy and route applications to a local homelab server.

AI-assisted DevOps

Developers can use AI agents connected to the MCP endpoint to diagnose failed builds and trigger rollbacks.

Automated preview environments

Teams can configure webhook integrations to spin up temporary isolated environments for every pull request.

Getting started: curl -fsSL https://get.openship.io | sh

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)
openship                                          # guided setup, then control panel

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 (or just openship update). Build from source instead: add -f docker/docker-compose.build.yml … up -d --build.

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 is open-source software, licensed under the Apache License 2.0.

You may use, run, modify, self-host, and distribute it — including in commercial and closed-source products — under the terms of the Apache 2.0 license. See LICENSE for the full text.

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

14 total
  1. Openship v0.6.1v0.6.1Aug 7, 2026141 downloads

    Bump to v0.6.1 + announce

  2. Openship v0.5.0v0.5.0Jul 31, 20261.3K downloads

    Bump to v0.5.0 + announce

  3. Openship v0.4.8v0.4.8Jul 28, 20261.3K downloads

    Bump to v0.4.8 + announce

  4. Openship v0.4.7v0.4.7Jul 28, 2026101 downloads

    Bump to v0.4.7 + announce

  5. Openship v0.4.5v0.4.5Jul 27, 2026395 downloads

    Bump to v0.4.5

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: +94,174 linesWeek of 2026-08-02: -12,813 linesMar 1, 2026Aug 2, 2026
+1.4M lines added, -160.1K removed over the last year.

Commits per week

last 52 weeks
1410Week of 2025-08-09: 0 commitsWeek of 2025-08-16: 0 commitsWeek of 2025-08-23: 0 commitsWeek of 2025-08-30: 0 commitsWeek of 2025-09-06: 0 commitsWeek of 2025-09-13: 0 commitsWeek of 2025-09-20: 0 commitsWeek 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: 141 commitsWeek of 2026-07-26: 126 commitsWeek of 2026-08-02: 33 commitsAug 9, 2025Aug 2, 2026
446 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 2 commitsSun 1:00 — 1 commitsSun 2:00 — 1 commitsSun 3:00 — 4 commitsSun 4:00 — 2 commitsSun 5:00 — 1 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 1 commitsSun 10:00 — 0 commitsSun 11:00 — 3 commitsSun 12:00 — 3 commitsSun 13:00 — 1 commitsSun 14:00 — 4 commitsSun 15:00 — 4 commitsSun 16:00 — 4 commitsSun 17:00 — 5 commitsSun 18:00 — 3 commitsSun 19:00 — 0 commitsSun 20:00 — 4 commitsSun 21:00 — 4 commitsSun 22:00 — 1 commitsSun 23:00 — 2 commitsMon 0:00 — 2 commitsMon 1:00 — 4 commitsMon 2:00 — 1 commitsMon 3:00 — 2 commitsMon 4:00 — 0 commitsMon 5:00 — 1 commitsMon 6:00 — 2 commitsMon 7:00 — 1 commitsMon 8:00 — 2 commitsMon 9:00 — 0 commitsMon 10:00 — 0 commitsMon 11:00 — 0 commitsMon 12:00 — 2 commitsMon 13:00 — 2 commitsMon 14:00 — 4 commitsMon 15:00 — 5 commitsMon 16:00 — 1 commitsMon 17:00 — 1 commitsMon 18:00 — 2 commitsMon 19:00 — 1 commitsMon 20:00 — 10 commitsMon 21:00 — 3 commitsMon 22:00 — 0 commitsMon 23:00 — 0 commitsTue 0:00 — 2 commitsTue 1:00 — 1 commitsTue 2:00 — 7 commitsTue 3:00 — 0 commitsTue 4:00 — 1 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 1 commitsTue 8:00 — 0 commitsTue 9:00 — 0 commitsTue 10:00 — 2 commitsTue 11:00 — 3 commitsTue 12:00 — 2 commitsTue 13:00 — 1 commitsTue 14:00 — 4 commitsTue 15:00 — 2 commitsTue 16:00 — 5 commitsTue 17:00 — 2 commitsTue 18:00 — 1 commitsTue 19:00 — 4 commitsTue 20:00 — 1 commitsTue 21:00 — 3 commitsTue 22:00 — 3 commitsTue 23:00 — 6 commitsWed 0:00 — 5 commitsWed 1:00 — 6 commitsWed 2:00 — 3 commitsWed 3:00 — 3 commitsWed 4:00 — 3 commitsWed 5:00 — 3 commitsWed 6:00 — 0 commitsWed 7:00 — 2 commitsWed 8:00 — 2 commitsWed 9:00 — 1 commitsWed 10:00 — 2 commitsWed 11:00 — 5 commitsWed 12:00 — 6 commitsWed 13:00 — 1 commitsWed 14:00 — 2 commitsWed 15:00 — 3 commitsWed 16:00 — 7 commitsWed 17:00 — 1 commitsWed 18:00 — 5 commitsWed 19:00 — 7 commitsWed 20:00 — 7 commitsWed 21:00 — 3 commitsWed 22:00 — 5 commitsWed 23:00 — 2 commitsThu 0:00 — 3 commitsThu 1:00 — 2 commitsThu 2:00 — 7 commitsThu 3:00 — 2 commitsThu 4:00 — 0 commitsThu 5:00 — 3 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 0 commitsThu 9:00 — 0 commitsThu 10:00 — 5 commitsThu 11:00 — 3 commitsThu 12:00 — 9 commitsThu 13:00 — 6 commitsThu 14:00 — 4 commitsThu 15:00 — 3 commitsThu 16:00 — 4 commitsThu 17:00 — 2 commitsThu 18:00 — 2 commitsThu 19:00 — 3 commitsThu 20:00 — 1 commitsThu 21:00 — 4 commitsThu 22:00 — 6 commitsThu 23:00 — 10 commitsFri 0:00 — 6 commitsFri 1:00 — 10 commitsFri 2:00 — 5 commitsFri 3:00 — 3 commitsFri 4:00 — 2 commitsFri 5:00 — 9 commitsFri 6:00 — 0 commitsFri 7:00 — 2 commitsFri 8:00 — 12 commitsFri 9:00 — 4 commitsFri 10:00 — 3 commitsFri 11:00 — 3 commitsFri 12:00 — 5 commitsFri 13:00 — 2 commitsFri 14:00 — 5 commitsFri 15:00 — 2 commitsFri 16:00 — 2 commitsFri 17:00 — 2 commitsFri 18:00 — 6 commitsFri 19:00 — 5 commitsFri 20:00 — 4 commitsFri 21:00 — 2 commitsFri 22:00 — 3 commitsFri 23:00 — 4 commitsSat 0:00 — 3 commitsSat 1:00 — 1 commitsSat 2:00 — 4 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 2 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 1 commitsSat 9:00 — 1 commitsSat 10:00 — 0 commitsSat 11:00 — 0 commitsSat 12:00 — 3 commitsSat 13:00 — 1 commitsSat 14:00 — 3 commitsSat 15:00 — 4 commitsSat 16:00 — 2 commitsSat 17:00 — 1 commitsSat 18:00 — 0 commitsSat 19:00 — 0 commitsSat 20:00 — 1 commitsSat 21:00 — 3 commitsSat 22:00 — 0 commitsSat 23:00 — 5 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
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.

    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

  • awesome-selfhosted/awesome-selfhosted

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

    311.2K stars