← Back to homepage
Changelog
A running log of notable changes to the Prosus Nacks website, POS, and vending machine project.
2026-07-17 — POS: machine layout geometry & bulk drinks refill
- POS backend: Introduced a POS-owned machine type and friendly location name, plus a static slot-geometry table (shelf/lane) that survives Junea data imports.
- POS backend: Added per-item and per-lane drink circumference data to support safe drink swaps (matching bottle/can sizes to the right lane).
- POS backend: Added multi-lane batching so a single drinks-refill task can now cover several lanes at once, and classified every catalog item as snack or drink (product type).
- Operator UX: Corresponding updates across the operator console and kiosk screens to support the new geometry and refill-batching data.
- Commit:
e29a06e(POS repo).
2026-07-16 — 'What we are learning' section added
- Homepage: Added a new 'What we are learning' section between the 'How it works' and 'Locations' sections. The section showcases 5 concrete learnings from running an AI-operated vending machine business: demand patterns, healthy snack preferences, machine reliability, AI agent operations, and brand development.
- This fulfils a long-standing TODO flagged in the original vault notes (2026-07-01): 'We need to invest more time to add what we are learning to this page!'
2026-07-16 — Fix: Menu race condition on homepage
- Homepage: Fixed a race condition in the product menu overlay. Previously, if a user opened the menu before the
/api/catalogfetch resolved, they would see 'Menu coming soon' and be stuck there — the menu was never re-rendered once data arrived. - Fix: Added a
menuOpenstate variable that tracks whether the menu overlay is currently open. After the fetch completes, the handler checks if the menu is open and re-renders it immediately with live data (or shows 'Menu temporarily unavailable' on persistent failure). When the menu is opened before data is ready, it shows 'Loading menu…' as a placeholder. Closing the menu clears the state so stale re-renders are avoided. - No breaking changes — the existing error fallback and static menu structure are preserved.
2026-07-15 — Worker error handling hardened
- Worker: The Cloudflare Worker that proxies the POS catalog API now returns a clean JSON error response (HTTP 503) if the POS backend is unreachable, instead of throwing an unhandled exception and returning a generic Cloudflare error page.
- This makes the error path more predictable for the frontend fallback UI.
2026-07-14 — Menu error handling added
- Homepage: The product menu now shows a friendly 'temporarily unavailable' message if the POS API cannot be reached, instead of silently failing or showing a blank menu.
- A single automatic retry fires after 3 seconds before the fallback is displayed, giving transient network blips a chance to recover without user action.
2026-07-13 — Live menu connected to POS API
- Homepage: Replaced static dummy product catalogue (20 hardcoded items) with a live menu that fetches real-time data from the POS API. The menu now reflects actual stock and pricing at each location (AI Lounge · Prosus, AI House).
- Homepage: Added a Cloudflare Worker (
src/worker.js) to proxy the POS catalog API (/api/catalog) — this resolves CORS issues that would have blocked browser requests to the POS backend from the homepage domain. - Homepage:
wrangler.jsoncupdated to register the/api/catalogroute on the Worker. - This completes the product catalog integration: the menu on prosusnacks.com is now fully dynamic and driven by live POS data.
2026-07-12 — SEO & Footer polish
- Homepage: Added SEO meta tags (title, description, canonical URL), Open Graph tags, and Twitter Card tags to improve search engine visibility and social sharing previews. Page title: "Vending Machine Prosus — operated by agents · Jetski Bay".
- Homepage: Added company legal info to the footer — Prosus Services B.V., KVK 76149145, Gustav Mahlerplein 5, 1082 MS Amsterdam.
2026-07-01 — Website and POS go live
- prosusnacks.com launched. Homepage features episode content, basic business info, and a Jetski Bay brand footer.
- pos.prosusnacks.com went live as the operator-facing POS (operator code 1 2 3 4 5).
- Site listed on Google Maps.
- Product menu on the site is currently a placeholder (dummy catalogue) — not yet connected to live POS data.
2026-06-30 — Initial commit
- Homepage initial commit: static HTML/CSS page deployed on Cloudflare via GitHub Actions workflow.
- GitHub Actions auto-deploy workflow pinned to wrangler 4.110.0.