explaingit

tmbeaver/openstock

Analysis updated 2026-05-18

2PythonAudience · pm founderComplexity · 3/5Setup · moderate

TLDR

A self-hosted warehouse and invoicing system for small manufacturers, handling multi-location stock, VAT invoices, production orders, and role-based access.

Mindmap

mindmap
  root((repo))
    What it does
      Multi location stock tracking
      VAT invoices and delivery notes
      Production order tracking
    Tech stack
      Python
      Flask
      SQLite
    Use cases
      Track warehouse inventory
      Issue VAT invoices
      Manage production orders
    Audience
      Small manufacturers
      Developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Track stock levels across multiple warehouse locations.

USE CASE 2

Generate VAT invoices and delivery notes as PDF files.

USE CASE 3

Manage production orders against a bill of materials.

USE CASE 4

Register customer advances and track outstanding receivables.

What is it built with?

PythonFlaskSQLiteJavaScript

How does it compare?

tmbeaver/openstock0-bingwu-0/live-interpreter010zx00x1/faresnipe
Stars222
LanguagePythonPythonPython
Setup difficultymoderatemoderateeasy
Complexity3/52/52/5
Audiencepm foundergeneralgeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires manually creating the first administrator account via a Python shell script before anyone can log in.

No license information is provided in the README.

In plain English

OpenStock is a self-hosted system built for small manufacturers to manage their warehouse stock and invoicing. It keeps track of inventory across several storage locations, records deliveries and sales, generates VAT invoices and delivery notes as PDF files, and supports moving stock between locations. It also handles production: materials can be issued to a manufacturing job, and once that job is complete the finished item is added to stock at its calculated cost, based on a bill of materials tied to a production order. Beyond core inventory and invoicing, the system supports customer quotes with their own printable layout, tracks customer advance payments and applies them to later sales, and produces a report of unpaid sales based on each customer's payment terms. Any posted document can be reversed by creating a counter-document rather than deleting the original, and the system flags items running low on stock. Access is controlled through ten specific permissions grouped into five role templates, and logins are protected with password hashing, server-side sessions, and a rate limit on repeated login attempts. The system can also optionally import a product catalogue and companies from an existing Microsoft Access database, and it can use an AI model through the Anthropic API to help import supplier invoices, though this feature is optional and disabled unless an API key is configured. Technically, OpenStock runs as a single Flask application backed by one SQLite database file, with no build step, no Node.js, and no external services required beyond the optional AI feature. The front end is plain server-rendered HTML and vanilla JavaScript. A fresh installation starts completely empty, with no demo data or user accounts, so the first administrator account must be created once through a short Python script before anyone can sign in. A script is also provided to fill the empty database with fictional demo products, suppliers, and customers for trying the system out safely. Configuration such as company details, tax label, and currency is set through JSON files, while values that change over time, like the tax rate and minimum markups, are stored directly in the database.

Copy-paste prompts

Prompt 1
Help me set up TMBeaver/openstock and create the first administrator account.
Prompt 2
Explain how goods receipts and weighted-average costing work in this system.
Prompt 3
Walk me through configuring config_local.json for my company's tax and currency.
Prompt 4
Explain the ten permissions and five role templates used for access control.

Frequently asked questions

What is openstock?

A self-hosted warehouse and invoicing system for small manufacturers, handling multi-location stock, VAT invoices, production orders, and role-based access.

What language is openstock written in?

Mainly Python. The stack also includes Python, Flask, SQLite.

What license does openstock use?

No license information is provided in the README.

How hard is openstock to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is openstock for?

Mainly pm founder.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.