14:54
The public pages got a proper look
The old front end read like a document — a serif typeface, hairlines, and not one photograph anywhere. It now uses the visual language customers already recognise from the big catering sites: photo-led cards, alternating bands, pill buttons, real pictures. 25 photographs added. Also fixed while doing it: every image was rendering at the wrong height, form boxes came out at four different sizes so nothing lined up, the price panel read “Evidenced14 quotes” with no space, and the only “Get quotes” button on mobile was buried inside the hamburger menu.
15:04
Closed a security hole on the old site
The site answered on plain, unencrypted http:// as well as the secure https://, and did not redirect between them. Anyone on the same network could have read the first request. It now forces the secure version.
16:35
Rebuilt as an actual marketplace
Big one
This is the day's real work. Accounts for caterers and customers, message threads, structured quotes, the booking and payment flow, verified reviews, an admin screen. Every page now has its own proper web address — /listings/hog-roast, /suppliers/smoke-and-oak-bbq — which is what Google needs and what the old version could not have. Every form works even with JavaScript switched off.
Five faults were caught by the safety checks rather than by hand: sign-out was completely broken and returned an error while leaving you logged in; a security rule was silently breaking the layout of every page; a malformed form submission crashed instead of politely refusing; the written-down instructions for restoring the database did not actually work; and sign-in had no limit on attempts.
16:49
A way to update the live database by hand
The access key on this machine can deploy the website but has no permission to touch the database, so the usual command fails outright. Wrote a single file that can be pasted into Cloudflare's own console instead, which also records that it ran so the normal tooling stays in step later.
17:04
Fixed sign-in from any machine but this one
The login cookie was marked “secure connections only”, which is correct for the real site and wrong for testing — browsers silently threw it away, so signing in from a phone on the same network was impossible and gave no error to explain why. It now follows whichever connection is actually in use. The live site is unaffected; it is always encrypted.
17:22
No invented caterers on the live site
The test data includes nine made-up catering businesses and sample reviews. Useful for development, dishonest in public, so a second version of the update file was written that leaves them out. Writing it exposed a real bug: every caterer card linked to a profile page that did not exist for the five businesses already in the database, because they pre-dated the new structure. Those links are now built properly, and their ratings show “New to FeastMatch” rather than a number nobody has earned.
17:43
Went live — and the real server found two bugs
Deployed
Both were invisible on the test machine. First: password scrambling was set stronger than Cloudflare permits, so registering an account crashed the moment it was deployed, despite passing every local test. It now uses three chained rounds to reach the same strength within the limit. Second, again: the live address answered on unencrypted http, handing out login cookies to anyone listening. Fixed and redirected.
A backup was taken, then 19 duplicate applications and 6 enquiries left over from August form testing were cleared out, along with the accounts created while checking the deployment.
18:29
Caterers can upload their own photographs
Deployed
You upload from your own profile page: one main photo and up to eight in the gallery, 6MB each. Detail below — this one matters to you more than the rest.
18:43
Three older versions retired
Four separate builds of FeastMatch existed. Three are now filed away with a note saying what each one proved, leaving one project that is worked on and deployed. Nothing was taken offline; the old ones are just no longer touched.
20:30
A phone-sized test, and the fixes it forced
Not deployed yet
A new check drives a real browser at phone width across every page and fails on four things: sideways scrolling, anything running off the edge, buttons smaller than a fingertip, and text under 12px. It found the menu button squashed to 32px wide, footer links, service tags and checkbox rows all at 20–27px tall, and a set of text boxes that had been missing their type, so the “make everything 52px tall” rule skipped them. All fixed and passing — but this batch is still on my machine, not on the live site.