Track record

Two brands, one back office.

A bánh mì cafe and a Vietnamese street food bar, both in Perth city, both belonging to the same operator. The digital side was sequenced to be ready first, so the software is the thing waiting on the fitout rather than the other way round.

Microsoft EntraMicrosoft 365Hand-written HTML CSSVanilla JSCloudflare PagesSquare
Role
Sole developer
Delivery
Staged
Brands
2
Ahead of
The physical fitout

This is a staged engagement rather than a single delivery. The foundation went in first, the two storefronts followed, and the trading details land as the venues open. Where it stands, and when that was written, is at the foot of the page.

The Crackle and Crumb home page: cream and brown, the wordmark Crackle split by a fracture running right through the letters, a bread loaf beside it, and a small sticker reading baked this morning.
The cafe's opening screen. The crack runs through the word rather than beside it, and the loaf has a sticker on it. The loaf, the crack and the sticker are all drawn in the page as vector art rather than loaded as pictures. The only raster file on either site is the logo, which is why both weigh under 300 KB with every asset counted.

Everything except the building

Most hospitality operators buy their digital in pieces: a website from one place, a point of sale from another, menu screens from whoever installs the televisions, and an email address that ends in gmail. The mandate here was the opposite. One person, the whole stack, before the doors open.

Underneath everything

A Microsoft Entra foundation, first

Identity before anything else. Company email on the businesses' own domains, sign-in that is managed rather than shared, and the tenancy set up so staff can be added and removed properly. This is the least visible part of the job and the part that decides how everything after it behaves.

The front door

Two websites that do not look related

One operator, one precinct, two completely separate audiences. The cafe is a bright weekday takeaway; the bar is a dark evening room. They are built on the same foundation and share not a single design decision.

The plumbing

Domains, hosting and the email records

Both domains registered to the business, both zones carrying their own Microsoft 365 mail records, hosting on infrastructure they hold the account for. Attaching a site to a live domain that is already carrying email is the moment things break, so it is done in a documented order.

On the wall

Digital menuboard infrastructure

The screens behind the counter, and the thing that drives them. A menu that has to be updated in three places is a menu that will be wrong in two of them.

The till, and the phone

Square point of sale, wired into the sites

The point of sale is the source of truth for what is for sale and what it costs, so the website and the ordering app read from it rather than keeping their own copy.

The same person built both of these

Which is the point. A single supplier usually means a single house style with the colours swapped. These two share a build, a foundation and a deployment pipeline, and nothing else.

The anatomy of a bánh mì, drawn as a labelled cross-section: crackly crust baked daily, house-pickled carrot and daikon, lemongrass pork still warm, pâté and mayo both made here, and coriander, cucumber and chilli.
The Crackle and Crumb home page: a cream and brown palette with the wordmark Crackle fractured by a crack running through it, a bread loaf illustration, and a sticker reading baked this morning.
The Crackle and Crumb menu: numbered bánh mì rolls with Vietnamese names in italic, dotted leader lines to prices, and a category rail down the left.
The Hung Long home page: dark oxblood, a weathered painted-sign hero reading Hung Long, Vietnamese street bites, and a marquee of dish names underneath.
The Hung Long menu: Vietnamese category headings, dishes with dotted leaders to prices, and a hand-drawn dragon running down the left margin.

The thing itself, drawn rather than photographedA cross-section of the roll with every layer named, on the cafe's own home page. No stock photography of somebody else's food, and nothing that has to be reshot when the kitchen changes a garnish. It is vector art in the page, so it weighs almost nothing and stays sharp on any screen.

Crackle & Crumb, the daytime oneCream, brown and a wordmark with an actual fracture running through it. The name is about the two halves of a bánh mì roll, so the site says so out loud: crackle is the shatter of the crust, crumb is the soft inside. Open before sunrise, shut mid-afternoon.

Order by number at the counterEvery roll is numbered, because that is how people actually order at a bánh mì counter and it is faster than reading a name back to someone. Prices and dishes here are indicative until the venue sets them.

Hưng Long, the evening oneOxblood, charcoal and a hero built to look like a hand-painted wall sign that has been up a while. Wednesday to Sunday, five till late. The marquee underneath is dish names, including a phở negroni, which tells you what kind of bar it is.

Made for the middle of the tableCategories in Vietnamese, translations underneath, and a dragon drawn down the margin as the spine of the page. Sharing plates need a menu that reads like a list you point at, not a grid of cards.

Decisions made early, on purpose

A venue that has not opened yet cannot tell you what it needs. So the parts that are hard to change later were settled first, and the parts that will change weekly were left easy to change.

Email first

Attaching a website to a domain that carries live email

Both domains already carry Microsoft 365 mail records. Pointing a website at a domain in the wrong order, or by hand-creating the wrong record, either breaks the site or, much worse, silently breaks the mail.

So the order is written down rather than remembered, the web records are created by the platform rather than typed in, and nothing in the site repository can touch DNS at all. Mail records are not something to be clever about at nine on a Friday.

No build step

Two sites a non-technical owner will still own in five years

Hand-written HTML, CSS and JavaScript with relative paths, deployed as static files. No framework, no build pipeline, no dependency that needs upgrading before a menu change can ship.

The practical effect is that both sites behave identically on the preview address and on the real domain, and that whoever holds the account next can read the whole thing. A restaurant should not need a developer on retainer to change a price.

One source

The till decides what is on the menu

A cafe with a website, a menuboard, an ordering app and a point of sale has four places a price can live and three of them will be wrong by the second week.

Square is the source of truth. The website and the ordering app read from it, the menuboards follow, and the counter staff change things in the one place they already use all day.

Where it is up to

Delivered in the order of what unblocks what. The Entra foundation, the domains, the company mail and both websites went in first and are live. The menuboards, the Square integration and the ordering app land with the venues, because a menu is worth wiring up once the prices are real. The rest waits on the fitout, which is a building problem rather than a software one.

Status as at August 2026. The rest of this page describes what was built, and does not change.

Both links are preview addresses. Trading hours, addresses, phone numbers and menus on them are placeholders until the venues confirm the real ones, so read them as design rather than as information.