A Git-native toolset for small teams to manage the things they make.
- Design
- Manage part/assembly metadata, drawings/CAD/notes files, BOMs, etc.
- Snapshot
- 1-click revision control of parts.
- Build
- Track built parts, serial numbers, test results, photos, etc.
- Manage inventory.
Read the smallFactory Story
- Built for small teams: minimal setup, low overhead, fast workflows.
- Git-native and portable: plain files under Git; diffs, reviews, history. No database, no lock‑in.
- Opinionated, simple standard: Entities, BOMs, Revisions, Inventory, Files in a consistent layout.
- Tools that fit your flow: CLI and lightweight web UI; human/JSON/YAML output; commits locally, pushes if origin exists.
- Extensible by design: readable YAML/JSON so you can script, automate, and integrate.
Want everything smallFactory offers without running servers? smallFactory Cloud is our fully managed, multi-tenant hosting—so you can focus on building, not babysitting infrastructure.
Get started: https://www.exploresf.com
Get up and running with smallFactory inventory management in a few simple steps:
# Setup (once)
# Prereqs: Python 3 and Git installed
# Clone the smallFactory core repo
$ git clone https://github.com/yusufm/smallfactory.git smallfactory
$ cd smallfactory
# Optional: create and activate a virtual environment
$ python3 -m venv .venv && source .venv/bin/activate
# Install CLI dependencies
$ python3 -m pip install -r requirements.txt
# Optional: Web UI dependencies (if you plan to run the web app)
$ python3 -m pip install -r web/requirements.txt
# Initialize by cloning the example datarepo
$ python3 sf.py init --github-url [email protected]:yusufm/smallfactory_test_datarepo.git
# Start the web server
$ python3 sf.py web
# Access the web UI
http://127.0.0.1:8080
# Note: All mutating CLI operations automatically create a Git commit (and push if an origin exists).
# Commit messages include machine-readable tokens like ::sfid::<SFID>.- Entities — Organize parts, assemblies, and locations with names, tags, and metadata.
- Files workspace — Upload, organize, and download design files and documents; snapshots captured in revisions.
- BOM — Manage bills of materials with alternates; edit in the app; see structure at a glance.
- Revisions — One‑click, numbered revisions with clear release tracking.
- Stickers — Generate QR stickers for parts and locations; print in batches with chosen fields.
- Camera capture — Snap a photo of an invoice or label to auto‑extract parts data.
- Vision‑assisted intake — Extract parts from invoices and batch‑create with review.
- Inventory — Track quantities by location; adjust quickly with mobile QR scanning.
- Mobile access — Optimized for phones with simple, touch‑first flows.
- Search & dashboard — Find parts fast and see key stats at a glance.
- QR‑first workflows — Label, scan, and act quickly on the floor.
Use a camera or upload to extract parts from invoices and batch-create entities.
- Git‑native workflow — Your product data lives in Git. Simple, transparent, and portable.
- Collaboration & history — Work as a team with reviewable changes and a full history.
- Local‑first — Runs on your machine; you control your data and workflow; automatically updates your remote Git repo when configured.
- Web UI — Fast, clean, responsive interface with search and inline editing.
- CLI — Powerful command‑line for automation; human‑ or machine‑readable output.
- Validation — Built‑in checks to catch mistakes early.
- Custom fields & tags — Capture the details that matter to your business.
- Simple onboarding — Start in minutes with an example repository.
- All HTTP GET routes avoid cache writes and Git mutations.
- Inventory reads in the web app use the read‑only helper
inventory_onhand_readonly(). - CLI parity: use
sf inventory onhand --readonlyto compute on‑hand without writing caches.









