puemos/craftplanPublic

Self-hosted software for managing artisanal D2C micro-businesses

AI summary: An open-source ERP system built specifically for small-scale artisanal manufacturers.

Stars
1.1K
Forks
65
Watchers
5
Open issues
2
Open PRs
0
Contributors
~5
Commits
356
Branches
6

ElixirAGPL-3.0Created Dec 24, 2024Last push 7d agoLatest release v0.7.1+-1 stars this week+5 this month

Quick answers

What is craftplan?
An open-source ERP system built specifically for small-scale artisanal manufacturers.
What does craftplan do?
Craftplan is a comprehensive, open-source Enterprise Resource Planning (ERP) system tailored specifically for small-scale artisanal manufacturers and direct-to-consumer (D2C) micro-businesses. Built on the highly concurrent Elixir ecosystem, it provides a robust backend capable of managing complex, multi-stage production workflows with real-time updates. The platform unifies inventory tracking, raw material procurement, and customer order fulfillment into a single, cohesive interface. It is uniquely designed to handle the variable, small-batch nature of craft businesses, accommodating custom product variations and unpredictable production timelines that traditional corporate ERPs fail to address. By offering a self-hosted solution under the AGPLv3 license, it empowers independent creators to maintain complete sovereignty over their critical business data.
Who is craftplan for?
This ERP is built for small-scale manufacturers, food producers, and craft business owners who need precise inventory and production tracking. It requires basic knowledge of Docker for self-hosting.
How do I get started with craftplan?
git clone https://github.com/puemos/craftplan.git
How popular is craftplan on GitHub?
puemos/craftplan has 1,149 stars and 65 forks on GitHub, and gained -1 stars in the last 7 days.
What license does craftplan use?
puemos/craftplan is released under the AGPL-3.0 license.

Star history

since Jul 29, 2026
05001KJul 2026Aug 2026Sep 2026Oct 2026
1.1K stars as of Oct 3, 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: 5 commits2025-10-12: 12 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 24 commits2025-10-19: 14 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 5 commits2025-10-26: 9 commits2025-10-27: 1 commit2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 35 commits2025-11-02: 9 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 11 commits2025-11-09: 25 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: 26 commits2026-01-31: 11 commits2026-02-01: 35 commits2026-02-02: 1 commit2026-02-03: 4 commits2026-02-04: 8 commits2026-02-05: 3 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: 1 commit2026-02-13: 2 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: 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: 5 commits2026-04-10: 2 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 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: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 1 commit2026-04-30: 1 commit2026-05-01: 0 commits2026-05-02: 0 commits2026-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: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 1 commit2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-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: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 4 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 3 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 0 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 0 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 1 commit2026-07-27: 0 commits2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 0 commits2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 0 commits2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 4 commits2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 0 commits2026-08-28: 0 commits2026-08-29: 0 commits2026-08-30: 0 commits2026-08-31: 0 commits2026-09-01: 0 commits2026-09-02: 0 commits2026-09-03: 0 commits2026-09-04: 10 commits2026-09-05: 2 commits2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 0 commits2026-09-09: 0 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 0 commits2026-09-13: 0 commits2026-09-14: 0 commits2026-09-15: 0 commits2026-09-16: 0 commits2026-09-17: 0 commits2026-09-18: 0 commits2026-09-19: 0 commits2026-09-20: 0 commits2026-09-21: 0 commits2026-09-22: 0 commits2026-09-23: 0 commits2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 1 commit2026-09-27: 0 commits2026-09-28: 0 commits2026-09-29: 0 commits2026-09-30: 0 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
276 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Continuous integration

    Automated checks passing

What craftplan does

Craftplan is a comprehensive, open-source Enterprise Resource Planning (ERP) system tailored specifically for small-scale artisanal manufacturers and direct-to-consumer (D2C) micro-businesses. Built on the highly concurrent Elixir ecosystem, it provides a robust backend capable of managing complex, multi-stage production workflows with real-time updates. The platform unifies inventory tracking, raw material procurement, and customer order fulfillment into a single, cohesive interface. It is uniquely designed to handle the variable, small-batch nature of craft businesses, accommodating custom product variations and unpredictable production timelines that traditional corporate ERPs fail to address. By offering a self-hosted solution under the AGPLv3 license, it empowers independent creators to maintain complete sovereignty over their critical business data.

This ERP is built for small-scale manufacturers, food producers, and craft business owners who need precise inventory and production tracking. It requires basic knowledge of Docker for self-hosting.

  • Artisanal Workflow Management: Specifically designed to track the unique, variable, and multi-stage production processes common in small-batch manufacturing.
  • Unified Inventory Tracking: Seamlessly links raw material procurement, current stock levels, and finished goods inventory into a single cohesive database.
  • Elixir Backend Architecture: Built on the highly concurrent Erlang VM (BEAM), ensuring massive scalability and real-time data updates across the application.
  • Direct-to-Consumer Fulfillment: Integrates order management directly with production schedules, ensuring that custom client requests are tracked from fabrication to shipping.
  • Self-Hosted Data Sovereignty: Provided as an open-source Docker container, allowing businesses to retain absolute control over their sensitive financial and customer data.
  • Custom Product Variation Support: Flexibly handles highly customized orders and unique product iterations without requiring rigid, predefined corporate SKU structures.

Where teams use it

Managing Leathercraft Production

Independent leatherworkers can track their inventory of raw hides, hardware, and dyes while managing custom client wallet orders in real-time.

Scaling Micro-Breweries

Small-scale brewers can utilize the system to manage complex fermentation schedules, track grain inventory, and organize direct-to-consumer keg sales.

Organizing Custom Furniture Builds

Woodworkers can link raw lumber procurement directly to specific, multi-week client commissions, ensuring materials are always available when needed.

Tracking Ceramic Studio Inventory

Potters can manage the variable timelines of clay throwing, bisque firing, and glazing, while tracking their inventory of specialized chemical glazes.

Operating Independent Apparel Brands

Small clothing designers can track limited-run fabric supplies and coordinate sewing workflows alongside managing their online boutique orders.

Getting started: git clone https://github.com/puemos/craftplan.git

README

main branch

GitHub-Banner

Craftplan

Open-source ERP for small-scale artisanal manufacturers and craft businesses

License: AGPLv3 Elixir ~> 1.20 Phoenix ~> 1.8

Craftplan brings all essential business tools into one platform: catalog management, inventory control, order processing, production planning, purchasing, and CRM, so you can get off the ground quickly without paying for multiple separate platforms.

Manage overview with schedule, make sheet, and completion snapshot

Features

Catalog & BOM

  • Product catalog with photos and labels
  • Versioned Bills of Materials — edit latest, older versions read-only
  • Automatic cost rollups across nested BOMs
  • Labor steps with time and cost tracking

Orders & Invoices

  • Customer order processing with calendar-based scheduling
  • Invoice generation
  • Order item allocation to production batches

Production

  • Production batching with automatic material consumption
  • Cost snapshots per batch
  • Completion workflow with produced quantity tracking

Inventory

  • Raw material management with lot traceability
  • Stock movements (consume, receive, adjust)
  • Allergen and nutritional fact tracking
  • Demand forecasting and reorder planning

Purchasing

  • Purchase orders and supplier management
  • Receiving into stock with lot creation

CRM

  • Customer and supplier database
  • Order history and statistics

Import / Export

  • CSV bulk import for products, materials, and customers
  • CSV export

Email

  • Transactional email delivery configurable from the UI
  • SMTP, SendGrid, Mailgun, Postmark, Brevo, and Amazon SES
  • API keys encrypted at rest

Calendar Feed

  • iCal (.ics) subscription URL for Google Calendar, Apple Calendar, or any iCal-compatible app
  • Includes order deliveries and production batch schedules
  • Generate and revoke feeds from Settings

API

  • JSON:API and GraphQL endpoints for programmatic access
  • API key authentication with encrypted storage
  • CORS configuration

Access Control

  • Admin and staff roles
  • Policy-based authorization on all resources

Global Search

  • Command palette (Cmd+K / Ctrl+K) for instant access to any record
  • Fuzzy search across products, materials, orders, customers, and batches

Screenshots

BOM editor Order management
Inventory forecasting Global search command palette
Settings and email configuration

Tech Stack

Elixir · Ash Framework · Phoenix LiveView · PostgreSQL · Tailwind CSS

Getting Started

Deploy Craftplan on your own server. No need to clone the repo:

curl -O https://raw.githubusercontent.com/puemos/craftplan/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/puemos/craftplan/main/.env.example
cp .env.example .env   # Fill in the required secrets (see .env.example)
docker compose up -d

This starts Craftplan, PostgreSQL, and MinIO with migrations running automatically.

See the self-hosting guide for single-container mode, Railway deployment, reverse proxy setup, and more.

Development Setup

For contributors who want to work on the codebase. Prerequisites: Docker and mise

mise install            # Install Elixir, Erlang/OTP, and Node.js versions from mise.toml
mise run services:up    # Start PostgreSQL + MinIO + Mailpit
mise run setup          # Install deps, migrate, build assets, seed
mise run dev            # Start at localhost:4000

See the development setup guide for detailed instructions.

Why Craftplan?

  • Purpose-built for artisanal manufacturing — not a generic ERP adapted to fit; workflows are designed around small-batch, made-to-order production
  • Allergen & nutritional tracking — first-class support for food and beverage producers who need to track ingredients and generate nutrition labels
  • BOM versioning with cost rollups — iterate on recipes and formulas while keeping full history and accurate costing
  • Self-hosted, no vendor lock-in — your data stays on your infrastructure, backed by PostgreSQL

Documentation

Contributing

Contributions are welcome. For major changes, please open an issue first to discuss your proposal.

mise run test          # Run the test suite
mise run format        # Format code (Styler, Spark, Tailwind, HEEx)
mise run format:check  # Check formatting without modifying files
mise run ci            # Run the full CI suite locally (requires services:up)

Commits follow the convention: type(scope): description (e.g., feat(batching):, fix(orders):, ui(production):).

License

This project is licensed under the AGPLv3 License. See the LICENSE file for details.

Support

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Releases and announcements

21 total
  1. v0.7.1v0.7.1Sep 26, 2026

    ## Fixes - Fixed product deletion when a bill of materials is defined. Deletion now removes owned recipe versions, components, labor steps, and cost rollups while preserving restrictions for products referenced by orders or other recipes. - Fixed the Recipe tab’s Remove controls for materials, component products, and labor steps on desktop and mobile. ## Upgrade This release includes a database migration updating recipe foreign keys. Apply migrations as part of the upgrade. Fixes #41 in #43.

  2. v0.7.0v0.7.0Sep 5, 2026

    This release adds end-to-end food-production traceability from supplier receipt to customer destination. - Receive purchase orders into one or more supplier lots, including partial deliveries, quantities, and expiry dates. - Trace an ingredient lot forward into finished batches and customer orders, or trace a finished batch backward to every ingredient source. - Run a focused recall workflow with affected-scope totals, lot hold and release controls, CSV export, and printable records. - Print A5 or compact finished-batch labels from frozen production data, with batch barcodes and setup warnings for missing label information. - Preserve historical ingredient allocation and product-label details even after recipes or catalog data change. - Add a dedicated [Traceability & Recalls guide](https://puemos.github.io/craftplan/docs/traceability/) with responsive product screenshots.

  3. v0.6.4v0.6.4Sep 4, 2026

    This release completes the invited-user setup flow reported in #36. - Invited staff and admins now set their password as part of accepting the invitation. - Setting that password confirms the account and signs the user in. - Confirmation links sent by v0.6.3 remain supported and now continue into password setup. - Authentication pages use local images and styles, so the existing Content Security Policy no longer blocks their resources. - New sessions safely fall back to UTC if the browser timezone cookie is missing or invalid. After setup, invited users can sign out, sign back in with their chosen password, and load the app normally.

  4. v0.6.3v0.6.3Sep 4, 2026

    ## What’s Changed ### Authentication - Fixed invited staff and admin account confirmation links returning `FORBIDDEN`. Confirmation links now open the CSRF-protected interactive confirmation page, and existing links remain compatible. Thanks to [@noromamai](https://github.com/noromamai) for reporting this issue. **Full Changelog**: https://github.com/puemos/craftplan/compare/v0.6.2...v0.6.3

  5. v0.6.2v0.6.2Sep 4, 2026

    ## What's Changed ### Security - Prevented public password registration requests from assigning privileged roles. Public accounts are now always created as customers, while initial setup uses a dedicated server-controlled administrator action. Thanks to Michael Holmquist ([mtholmquist](https://github.com/mtholmquist)) for responsibly reporting this issue. ### Build and maintenance - Accelerated multi-platform Docker releases with native AMD64 and ARM64 builds, persistent caches, and improved Docker layer reuse. - Removed the discontinued hosted demo infrastructure and stale documentation. **Full Changelog**: https://github.com/puemos/craftplan/compare/v0.6.1...v0.6.2

Code frequency

additions and deletions
+33K-33KWeek of 2025-09-07: +0 linesWeek of 2025-09-07: -0 linesWeek of 2025-09-14: +0 linesWeek of 2025-09-14: -0 linesWeek of 2025-09-21: +0 linesWeek of 2025-09-21: -0 linesWeek of 2025-09-28: +0 linesWeek of 2025-09-28: -0 linesWeek of 2025-10-05: +7,468 linesWeek of 2025-10-05: -1,385 linesWeek of 2025-10-12: +29,029 linesWeek of 2025-10-12: -23,506 linesWeek of 2025-10-19: +6,458 linesWeek of 2025-10-19: -5,617 linesWeek of 2025-10-26: +9,680 linesWeek of 2025-10-26: -4,427 linesWeek of 2025-11-02: +5,620 linesWeek of 2025-11-02: -3,229 linesWeek of 2025-11-09: +4,502 linesWeek of 2025-11-09: -732 linesWeek of 2025-11-16: +0 linesWeek of 2025-11-16: -0 linesWeek of 2025-11-23: +0 linesWeek of 2025-11-23: -0 linesWeek of 2025-11-30: +0 linesWeek of 2025-11-30: -0 linesWeek of 2025-12-07: +0 linesWeek of 2025-12-07: -0 linesWeek of 2025-12-14: +0 linesWeek of 2025-12-14: -0 linesWeek of 2025-12-21: +0 linesWeek of 2025-12-21: -0 linesWeek of 2025-12-28: +0 linesWeek of 2025-12-28: -0 linesWeek of 2026-01-04: +0 linesWeek of 2026-01-04: -0 linesWeek of 2026-01-11: +0 linesWeek of 2026-01-11: -0 linesWeek of 2026-01-18: +0 linesWeek of 2026-01-18: -0 linesWeek of 2026-01-25: +32,958 linesWeek of 2026-01-25: -811 linesWeek of 2026-02-01: +13,329 linesWeek of 2026-02-01: -14,850 linesWeek of 2026-02-08: +8 linesWeek of 2026-02-08: -42 linesWeek of 2026-02-15: +0 linesWeek of 2026-02-15: -0 linesWeek of 2026-02-22: +0 linesWeek of 2026-02-22: -0 linesWeek of 2026-03-01: +0 linesWeek of 2026-03-01: -0 linesWeek of 2026-03-08: +0 linesWeek of 2026-03-08: -0 linesWeek of 2026-03-15: +0 linesWeek of 2026-03-15: -0 linesWeek of 2026-03-22: +0 linesWeek of 2026-03-22: -0 linesWeek of 2026-03-29: +0 linesWeek of 2026-03-29: -0 linesWeek of 2026-04-05: +2,579 linesWeek of 2026-04-05: -3,365 linesWeek of 2026-04-12: +0 linesWeek of 2026-04-12: -0 linesWeek of 2026-04-19: +0 linesWeek of 2026-04-19: -0 linesWeek of 2026-04-26: +3 linesWeek of 2026-04-26: -3 linesWeek of 2026-05-03: +0 linesWeek of 2026-05-03: -0 linesWeek of 2026-05-10: +0 linesWeek of 2026-05-10: -0 linesWeek of 2026-05-17: +210 linesWeek of 2026-05-17: -150 linesWeek of 2026-05-24: +0 linesWeek of 2026-05-24: -0 linesWeek of 2026-05-31: +0 linesWeek of 2026-05-31: -0 linesWeek of 2026-06-07: +0 linesWeek of 2026-06-07: -0 linesWeek of 2026-06-14: +0 linesWeek of 2026-06-14: -0 linesWeek of 2026-06-21: +1,977 linesWeek of 2026-06-21: -296 linesWeek of 2026-06-28: +416 linesWeek of 2026-06-28: -44 linesWeek of 2026-07-05: +0 linesWeek of 2026-07-05: -0 linesWeek of 2026-07-12: +0 linesWeek of 2026-07-12: -0 linesWeek of 2026-07-19: +0 linesWeek of 2026-07-19: -0 linesWeek of 2026-07-26: +182 linesWeek of 2026-07-26: -24 linesWeek of 2026-08-02: +0 linesWeek of 2026-08-02: -0 linesWeek of 2026-08-09: +0 linesWeek of 2026-08-09: -0 linesWeek of 2026-08-16: +1,184 linesWeek of 2026-08-16: -187 linesWeek of 2026-08-23: +0 linesWeek of 2026-08-23: -0 linesWeek of 2026-08-30: +0 linesWeek of 2026-08-30: -0 linesSep 7, 2025Aug 30, 2026
+115.6K lines added, -58.7K removed over the last year.

Commits per week

last 52 weeks
510Week of 2025-10-05: 5 commitsWeek of 2025-10-12: 36 commitsWeek of 2025-10-19: 19 commitsWeek of 2025-10-26: 45 commitsWeek of 2025-11-02: 20 commitsWeek of 2025-11-09: 25 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: 37 commitsWeek of 2026-02-01: 51 commitsWeek of 2026-02-08: 3 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: 0 commitsWeek of 2026-04-05: 7 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 2 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 1 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 0 commitsWeek of 2026-06-21: 4 commitsWeek of 2026-06-28: 3 commitsWeek of 2026-07-05: 0 commitsWeek of 2026-07-12: 0 commitsWeek of 2026-07-19: 0 commitsWeek of 2026-07-26: 1 commitsWeek of 2026-08-02: 0 commitsWeek of 2026-08-09: 0 commitsWeek of 2026-08-16: 4 commitsWeek of 2026-08-23: 0 commitsWeek of 2026-08-30: 12 commitsWeek of 2026-09-06: 0 commitsWeek of 2026-09-13: 0 commitsWeek of 2026-09-20: 1 commitsWeek of 2026-09-27: 0 commitsOct 5, 2025Sep 27, 2026
276 commits in the last 52 weeks.

When work happens

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

Who is committing

last 52 weeks
Maintainer commits268 (96%)
Community commits10 (4%)

278 commits in total over the last year.

DateListRankStars gained
Feb 4, 2026daily#14+158
  • awesome-selfhosted/awesome-selfhosted

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

    323.9K stars

  • 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

  • immich-app/immich

    High performance self-hosted photo and video management solution.

    115.6K stars · TypeScript

  • Stirling-Tools/Stirling-PDF

    #1 PDF Application on GitHub that lets you edit PDFs on any device anywhere

    93.6K stars · Java

  • unslothai/unsloth

    Local UI to run and train LLMs and diffusion models. Supports GGUF, MLX, Qwen3.8, DeepSeek-V4, MiniMax-H3, Gemma 4, FLUX and more.

    77.2K stars · Python

  • usememos/memos

    A personal timeline for quick notes. Write short memos, find them later by search, tag, or date. Open source and self-hosted.

    63.5K stars · Go