Product / Software / Operations
A customer’s wish is not the filling plan.
My family’s company fills wine for other producers. The week used to be planned in a spreadsheet, on notes and on printouts. Now customers book their own filling jobs, and the bottling line works from the plan the system prints.
- Customer’s wish
- Thursday
- Rough plan
- Week 46
- Filling day
- Thursday
- Status, derived
- Planned for Thursday, as the customer wished
I built it with the people who use it, starting with the mistakes that cost the most on the line.
My workSoftware engineer, part-time: the product, the data model, the application and its server.
Used byCustomers, through a booking form, and the office. The line works from the printed plan.
Decision / Data model
Three facts, one derived status.
A customer’s wish, the rough plan and the fixed filling day are stored as separate facts. The status on screen is derived from them and is never set by hand.
The model follows the work: customer, setup, order, position. One order can hold several positions that are planned separately.
The system warns and the person decides. A holiday, for example, shows on the board as advice, because sometimes the line runs anyway. Hard blocks are meant only for the few places where a mistake is expensive.
Context / The company
The job it does.
My parents run two companies in Edesheim on the German wine route: a winery, and the larger one, which fills wine for other producers and now also removes the alcohol from it.
The filling line was planned from a spreadsheet, notes and printouts that drifted apart, and three people planned in parallel. The system follows the path of a job: a customer books it, details get clarified, it is pencilled into a week, fixed on a filling day, materials and documents are checked, and it is filled and closed with a record.
It does this one job for the people on the line and stays away from becoming a general ERP. The new de-alcoholisation line is planned as a machine of its own, with its own rate, because it is a different process.
Operations / Server
Running it.
Next.js and PostgreSQL run on a Linux server I set up and hardened.
The database is backed up every day, a restore is tested automatically every week, and an outside monitor checks the application every five minutes. The live data came over from the old planning workbook.
- Stack
- Next.js · PostgreSQL · a Linux server I run
- Where
- Oberhofer GmbH, Edesheim
- When
- 2026
Sources: the Füllplan repository’s system map and status (9 September 2026) and its workbook import, and the vault’s project and operations notes; none is public. The week is an illustration with placeholder jobs; it shows no real bookings or quantities.