marcusDenslow f47c10ed8a refactor: structured error handling + CreateBox/formatListItem in checkout
Replace ErrorMsg string with typed VisibleError struct. Add catch-all
error handler at top of Update() that auto-recovers cart on shop/cart
errors. ESC now dismisses error banners. Refactor shipping address and
payment card checkout lists to use CreateBox + formatListItem for
consistent bordered cards with radio indicators.

Written with Claude Code (claude.ai/code)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-27 20:52:52 +02:00
2026-04-09 19:05:29 +02:00
2026-04-24 10:07:03 +02:00
2026-04-09 19:05:29 +02:00
2026-04-16 18:00:38 +02:00
2026-04-09 17:39:59 +02:00
2026-04-24 10:17:46 +02:00

Terminal Coffee Shop

ssh sshops.uk

it's a coffee shop but in your terminal. you ssh in, browse the menu, chuck stuff in your cart, put in your address and card, and buy coffee without ever touching a browser. your ssh key is your account so there's no login or signup or any of that.

made it because i thought it would be fun to see if you could build a real e-commerce flow that lives entirely in a terminal. turns out you can. heavily inspired by terminal.shop.

running on Hetzner, behind Cloudflare.

tech: Go, Bubbletea, Wish, Chi, PostgreSQL, Stripe, Shippo, Bring

Description
No description provided
Readme 45 MiB
Languages
Go 95.9%
Shell 3%
JavaScript 0.9%
Makefile 0.2%