Not a demo
It is already
somebody's Monday.
Four sites in production, and the interesting thing about them is how little they have in common. A backend that only ever ran shops would only ever be a shop system.
optikigwnia.gr
Frames, lenses and contact lenses, with prescriptions validated at checkout. The optical module was built for this shop and everything in it came from a real Tuesday.
gr-optics.com
The second shop on the same core, the same modules and its own catalogue — the install that proved a vertical could ship to two businesses without either one forking it.
My own site
The personal site of the person who wrote AstroBaaS — which is the least impressive install on this list and the one that says the most. No catalogue, no checkout, no commerce module: posts, categories, scheduled publishing and a feed, the CMS half standing on its own. It is also the install whose owner has nobody else to blame when it breaks.
Themis Studio
A working photo studio, where the media pipeline is the whole product: full-resolution originals kept and downloadable, web-ready sizes generated at upload, and EXIF stripped before anything is published.
more being built on it right now. They are not listed because they are not live, and a roadmap of other people's launch dates is not ours to publish.
And seven that are demos, and say so
Invented businesses,
real websites.
These are not customers. Each is a complete site for a business we made up, built the way a real one would be, and all of them read one shared demo AstroBaaS. Each design is available as a theme, with its content model and sample content.
A family fish taverna on a Cycladic quay. The catch board updates live, the menu, evenings and journal come from the CMS, and table requests land in the admin.
A design studio in Piraeus. Case studies with their own imagery, services with published prices, the team, and a project enquiry form.
A two-day web conference. A timetable by room and track where sessions point at speakers, tickets whose seat counts are live, and registration.
Nine rooms in a stone house in the mountains. Tonight's free rooms and the next fourteen nights are read live, and a booking request goes to the admin.
A physiotherapy clinic. A body map leads to what they treat, free appointments update live, prices are published, and requests come in as entries.
An architecture practice. Projects with drawings and galleries, the way they work and what it costs, and an enquiry form.
A dental practice for nervous patients. Treatments with honest prices, emergency slots, a first visit for children, and appointment requests.
What running them taught it
Every feature here
has a Tuesday behind it.
None of this was designed in advance. Each one is a thing that broke, or nearly did, on a site somebody was depending on.
- Media URLs
- A storefront on a different host resolved
/uploads/…against itself and rendered broken product images. It stayed hidden for weeks, because an imported catalogue stores absolute URLs and only the photos the owner uploaded were broken. The API now publishes the base it should be resolved against. - Image sizes
- One shop accumulated 632 MB across 31,349 runtime-generated variants against a 1 GB ceiling. Another served full-size originals for weeks because an optimizer's native module would not load — a failure with no symptom at all. Sizes are now generated once, at upload, and a health check encodes a test image to prove it still works.
- Dead addresses
- 618 requests in 26 days arrived carrying Shopping and Ads click ids and landed on 404s. That is money already spent, and it is indistinguishable from crawler noise unless something looks for the click parameters. Now something does.
- Rate limits
- A whole shop behind one office address shared a single per-IP bucket with the internet, so staff got throttled while doing their jobs. Limits are keyed per principal now — the login throttle deliberately was not touched.