Skip to main content
Back to list

Weinverwaltung

Internal management tool for the Honsig family winery

Year
2024
Role
Concept & development
Stack
Svelte, Pocketbase, Tailwind, Daisy UI, Vite
Zum Projekt

Since late 2023, EU food-labelling rules have required winemakers to provide detailed nutritional and ingredient information for every wine. There is barely room for that on the label, so a QR code goes on the bottle instead, pointing to a digital product data sheet. The Honsig family winery was looking for a way to handle this without a lot of administrative overhead. What grew out of it is a product management tool that goes well beyond QR codes: it brings all of the winery’s information together in one place and lays the groundwork for future projects, such as a new website.

The problem Time should go into good wine, not into administrating data

For a small winery in particular, the EU regulation is a challenge. In a family business there simply isn’t the time to dig into requirements like these. The information has to be maintained and permanently available online. There are providers specialising in exactly this use case, but they come with high running costs. Beyond the price, what mattered most to the client was the time involved, because the product data has to be captured afresh for every future vintage.

It also became clear quickly that data management had been a problem well before the EU rules: keeping the wines on the winery’s own website up to date was barely manageable either. Two separate sets of records — one for food labelling, one for the website — would only have made things harder to handle. So I proposed a custom software solution that keeps the effort as low as possible in the long run and consolidates all the information centrally for every use case.

The solution Saving time through better processes

My main goal was to save the client as much time as possible. The first focus was therefore on a well-considered data structure and efficient workflows. Adding a new vintage had to be as quick as it could be, which put features like carrying over the previous year’s values front and centre. An intuitive interface mattered just as much, since the application is essentially used once a year. Having to find your way into a complex system all over again each time would only lead to frustration.

The frontend is a Svelte app, styled with Tailwind and DaisyUI. As an internal tool isn’t about a highly individual design but about clear operation and good usability, I deliberately went with a component library.

For the backend I chose PocketBase — an open-source framework with a SQLite database that is easy to self-host and brings along all the essential building blocks: authentication, file storage and a REST API. Even though PocketBase is still under development, it has proven a solid foundation in previous projects and is a good fit for a deployment with a low risk profile.

Each wine has one record holding the master data, such as grape variety and growing region, which stays the same across vintages. Any number of vintages can be added to a wine. These carry the variable values like alcohol content and residual sugar that the product data sheets depend on. For every vintage, a product data page with a unique ID is created automatically, along with a matching QR code that can be downloaded.

Learning Structure is everything

The biggest challenge and my most important takeaway from this project, was planning a comprehensive data structure, precisely because the tool wasn’t only meant to cover food labelling but also to be ready for whatever comes next. That made it all the more important to work out every relevant data point together with the client. This is how a dedicated section for the individual wines’ awards and the option to store sales units found their way in, so that each wine can later be presented at its best on the website as well.

On the technical side, typing the PocketBase data models was demanding, especially for queries with expanded relations. I solved that on the frontend using expanded interfaces.