A small honey page for my father-in-law. Shows whether honey is in stock right now, what a jar costs and how to reach him.
Hans keeps bees in Bad Schussenried and sells the honey from his own garden to neighbours and friends. Until now that ran on phone calls and word of mouth. A page that says whether anything is in stock saves him half of them. The important part for me was that he can change everything himself without asking me.

In the backend he ticks availability on or off, sets the price per jar and the fill weight (the page works out the price per kilo), and uploads gallery images that he sorts by drag and drop. All texts, the contact details and his password live in the same form. The front end has a share button using the Web Share API with the clipboard as a fallback, tappable links for mail, phone and directions, plus JSON-LD, a sitemap.xml and an OG image so a shared link looks decent.
The whole thing is styled like a honey jar label: honeycomb pattern, stamped serif type, brown frame. A few SVG bees drift around the hero, and above the footer a randomly generated flower meadow grows on every load, with poppies, daisies and a butterfly. Anyone who has reduced motion enabled gets none of the animation.

It runs as a Docker container on my VPS behind Caddy and deploys on git push: a post-receive hook builds the image and restarts the container. Database and uploads sit in host volumes and survive every deploy.
Tech-Stack: Python, Flask, Jinja, SQLite, uv, gunicorn, Docker, Caddy
Links: