Colcheco
Indie refill shop, Colchester
The brief
Colcheco is Colchester's indie refill shop, selling unpackaged dried foods, herbs and spices, coffee, tea, beauty products, and household essentials. They already used Square for their in-store POS, but the online shop ran on Shopify: a separate system, with monthly platform fees, that did not talk to the till. Stock, products, and orders lived in two disconnected worlds, and every change had to be entered twice. This project replaced Shopify end to end with a custom site that plugs directly into their existing Square account. One platform for in-store and online, no monthly platform fees, and no double data entry. Scope covers the full stack: storefront, checkout, payments, inventory sync, order management, email notifications, and back-in-stock alerts.
691
Products synced from Square
£300
Saved per year on Shopify
20
Product categories
30
Automated browser tests
How it looks

Homepage

Product catalogue

Product page

Mobile view
What I built
Full e-commerce storefront
691 products across 20 categories with search, cart, and checkout. Fully synced with Square so the shop owner manages everything from one place.
End-to-end Square payments
Secure online payments via Square. Each payment links to the order in Square Dashboard, so the shop owner sees one clear record per transaction.
Orders appear in the Square Dashboard
Online orders show up in the same Square Dashboard and app as in-store POS sales. No new tool to learn, no separate inbox to check, everything stays where the shop already manages tills and customers.
Two-way Square integration
Catalogue, prices, and stock levels flow in from Square automatically. Orders, payments, and stock changes flow back out. The website listens for changes in Square and updates itself the moment anything changes at the till, so customers never see stale stock.
Click-and-collect with real opening hours
Customers pick a date from a swipeable strip of the next two weeks, then a time slot. Slots match the shop's actual opening hours, which differ each weekday, and closed days drop off the strip. 24 hours' notice enforced. Order confirmation emails go out automatically.
Back-in-stock notifications, stored in Square
Customers leave their name and email on out-of-stock products. Each subscriber becomes a Square Customer in a per-product group, so the shop owner sees who is waiting for what in their own Square Dashboard. As soon as the shop restocks the item in Square, personalised emails go out automatically.
Forgiving search that handles typos
Customers still find the product when they type 'tumeric' instead of 'turmeric', or 'choclate' instead of 'chocolate'. No lost sales to a misspelling.
Built for phones first
Most customers browse on their phones, so the shop was designed for a phone screen first and scaled up from there. Large tap targets, fast loading, nothing cramped.
Automatic order and reminder emails
Order confirmations, collection reminders, and back-in-stock alerts all send themselves. Rachel never has to write a follow-up email by hand.
Tuned to run on Vercel's free tier
When Rachel's site was on track to blow past Vercel's monthly hosting budget, I rewired things so Square only refreshes the pages that actually changed (not all 21 category pages on every stock update), and paced scheduled refreshes from every 5 minutes to every 15. Result: plenty of headroom under the free-tier limit, no surprise hosting bills.
Catches bugs before customers do
Every change runs through a suite of automated browser tests before it ships: searching, adding to cart, checking out, choosing a collection slot, and notify-me signup. Each one runs on both desktop and mobile. If something breaks, it breaks in development, not in front of a paying customer.
Tech stack
The approach
The core principle: the shop owner should not have to learn new tools. Rachel already uses Square for everything in-store, so the website plugs directly into her existing Square account. Products, prices, stock levels, and orders all flow through one system.
Payments go through Square, and each payment links to its order in the Square Dashboard. When a customer completes checkout, the stock count in Square goes down automatically. No manual stock adjustments, no risk of overselling.
The click-and-collect system was designed around how the shop actually works. Customers browse at home, add items to a cart, choose a collection date, and pay online. The shop receives the order and has it ready when the customer arrives.
Back-in-stock sign-ups are stored directly inside Square as customer records, grouped by the product each person is waiting for. Rachel can see the list in her own Square Dashboard without logging into anything new. The moment she marks a product as restocked, the site picks it up and emails everyone who asked.
Every change goes through a suite of automated browser tests that act like a real customer: searching, adding to cart, checking out, picking a collection slot. Each one runs on both desktop and mobile. Rachel also sees a private preview of any change before it goes live, so nothing reaches the public site without her sign-off.
Want something similar for your business?
I build custom websites and online shops for small businesses. Modern, fast, and built to turn visitors into paying customers.
Book a free chat