What shipped this week — accounts, saved cards, status page, cue light system, and more
We had a busy day. Most of these were either "we should really build this" items from the backlog or "wouldn't it be nice if…" notes scribbled on Post-its in the workshop. Today they all landed at once. The shortlist:
Accounts, properly
Until today, the only way to see your order history was a magic-link email — type your address, get a one-time link, see your orders. That still works (it's the right call for one-off buyers), but if you're returning often you can now sign up for a proper account.
- Email + password log-in. Sign up at https://expanseelectronics.com/account/#signup. We hash the password with PBKDF2-SHA256 (100 000 iterations, per-user salt — the platform-imposed max on Cloudflare Workers); we never see it.
- Saved addresses. Your account holds as many shipping addresses as you'd like, each with an optional label ("Home", "Workshop", "FOH booth"). At checkout, they appear as chips above the address form — one click to pre-fill.
- Saved cards. Cards stay with Stripe; we hold a
cus_…reference linking your account to your Stripe Customer. Saved cards show up as chips above the payment form at checkout; one click pays with the chosen card. Add a new card any time from the Payment methods tab — it goes through a Stripe SetupIntent so no charge is made. - One-tick "save this for next time" at checkout, for both addresses and cards. Off by default for guests, on by default for logged-in customers (uncheck to stay anonymous on any individual purchase).
- Magic link still works alongside it all — both options are on the
/account/page.
Full details in the account features wiki, including the deletion process (we delete everything we hold within a week of you asking, except the order records HMRC requires us to keep for 7 years).
Cart-recovery emails — without a SaaS
If you start typing your email at checkout but don't finish, we now send up to two reminder emails:
- 24 hours later — a plain "your cart is still here" message with the items you'd selected and a one-click link back to checkout that works on any device.
- 72 hours later — a second email with a single-use 10% discount code valid for 7 days. (If you came back after the first one, the second is never sent.)
Both have a one-click unsubscribe link in the footer. We rely on the soft-opt-in rule under PECR Reg 22(3) for this — your email was collected during a transaction for the same goods. Records are deleted after 14 days regardless, and we never share the address with anyone.
The whole thing is a Cloudflare Worker cron job (*/5 * * * *) plus a D1 table. No third-party SaaS, no per-email pricing tier.
Live service status
A few months back we had a 4-minute Stripe outage during a busy hour. Customers couldn't tell whether we were down or Stripe was. New page: expanseelectronics.com/status.
The Worker pings Stripe, Resend (transactional email), and Cloudflare D1 every 5 minutes; results land in a D1 history table; the status page renders the latest plus 30-day uptime. The probe for Resend was particularly fiddly — most of their endpoints require a permission scope our sending-only key doesn't have, so we ended up using a reachability-only check. Lesson learned: status probes should match what you actually need the service to do.
cueSystem bundle
The cueServer and cueDesk have been individual pre-orders for a few weeks. Today the cueSystem Bundle opens at £329.99 — that's £49.98 off versus buying both separately. There's a "Bundle & save" card on each component product page pointing at it; on the homepage and main store grid the bundle is hidden (cross-sold from the components rather than the parent), and the compare page reflects the new price automatically because we made it data-driven (see below).
If you're new to the cueSystem we wrote three wikis last week worth reading:
- Quick start — unbox to first cue in 15 minutes.
- Network setup — port/protocol reference, four common topologies.
- cueDesk operator reference — the desk's LED colour code, fault states, and the "Lost link" panic-state design.
Newer / smaller bits
A handful of less-headline things that all add up:
- JSON-LD on every product page. Schema.org
Product+Offer(orAggregateOfferfor multi-variant) markup so Google can render rich SERP results — price, availability, brand. Submit your site URL to https://search.google.com/test/rich-results if you're curious how it parses. /compare/auto-hydrates prices and ship-dates fromproducts.json. Used to be three places to update when a price changed (products.json,compare/index.html, the homepage Coming-soon copy). Now it's one.- Contact form moved off Formspree onto our own Worker route — same form, but the submission lands in D1 and is forwarded via Resend rather than a third-party SaaS. Privacy policy got tighter as a result.
- Royal Mail Letter shipping for sticker-only orders. £1.80, takes a few days, doesn't make sense on bigger orders so it's hidden when there's anything else in the cart. The shipping-method picker auto-filters either way.
- Trader-identity sub-footer auto-injected into every page via
nav.js— company number, registered office, registered-in-England-and-Wales. Single source of truth, no per-page footer duplication. - R2-hosted install photos. Linked further down — see the new Share your install page.
And: a newsletter, finally
Up to now our only mailing lists were per-product launch notifications (one email when masterETH ships, one when cueSystem ships, etc.). Today we added a general newsletter — one email a month covering new products, firmware releases, and the workshop-side things we think you'd find interesting.
Double opt-in, no tracking pixels, one-click unsubscribe, mostly written by hand. If you'd like the next post like this one to land in your inbox without you remembering to come back: https://expanseelectronics.com/newsletter/.
Plus: share what you've built
We get the most enquiries from people who saw one of our products in someone else's install — but until now we had no way to actually collect those photos. New page: /share-your-install/. Tell us where your kit ended up, attach a photo, and we'll thank you with a discount on your next order. With your permission we'll feature standout installs on the blog and the Instagram (https://instagram.com/expanse.electronics).
Photos upload directly to our Cloudflare R2 bucket — no third-party image host required.
What's next
For the rest of the month we're back on the products themselves — finishing the masterETH firmware (v1.1 → v1.2), getting the cueSystem prototype boards into proper shake-testing, and polishing the dualETH v7.5.2 release notes. The next blog post in this thread will probably be the next firmware update for the dualETH.
If you spot anything in the new storefront that's off, email support@expanseelectronics.com or reply to this if you got it via the newsletter. Thanks for reading — and for the buyers who've been with us since the original 2022 site, thanks for being patient while we cleaned everything up.