A hosted website platform specifically for restaurants and cafes

Frustrated by terrible restaurant/cafe websites that don’t have the info that you need, or simply don’t work on mobile, I wanted to make something that enables owners to get a great online presence, fast. So for the last few years I’ve been occasionally working on my own product; Zukini, a service for restaurant/cafe owners to take their business online. A hosted website platform tailored specifically to restaurants and cafes.

The product

The Minimum Viable Product is a hosted website platform with website builder, featuring customisable/brand-able responsive templates. There’s heavy use of Microdata and semantic markup, to ensure great accessibility to users and robots alike.

Eventually, the website might become a lesser part of the product, as the Zukini will be the central point of an online presence, linking with Social Media, checkin apps, and other services, making sure important information is available in the places their customers are searching.

The process:

I managed to distill my ideas down to a list of User Stories and requirements for both website owners and their customers.

To summarise: a visitor would like to quickly get a visual impression of a place, figure out where it is located, and if (and when) it’s open for business, maybe even give a phone call to reserve a table.

The business owner has different goals, mostly related to accurately representing the restaurant and their values online. They should be able to easily enter information that’s important to users (opening times, contact information, news, the menu).

These requirements were then translated to a customisable and responsive design.

zukini designs
A couple of design sketches for determining possible templates, and finding parameters for customisability.


The backend consists of two NodeJS apps, the main API + data store (backed by a Postgres database) and a rendering app which generates the HTML and CSS.

The HTML for the pages is generated by a React on the server side. Components are customisable and modular, so they can be shared amongst other “themes” (templates), and also offer customisability by the user.

Because I wanted to keep the client websites as fast as possible, there is no client-side rendering with React, but progressive enhancement is possible by allowing individual components modules can have their own client-side code that will be combined and shipped to the front-end.

Content Management System

Designing the user-facing side of Zukini was the heaviest design project that I’ve ever done by myself, and it required constant balancing between User Experience and pragmatic implementation.

After a few months of sketching, wireframing, and making hi-fi mockups I came up with a design language which I documented in a simple styleguide and component library.

Afterwards, I built the CMS is built with ReactJS and Redux. Like with the design, this was the biggest project I’ve worked on by myself.

Pictured: A wireframe for the “page designer” interface, two images of the content management system, showing the current iteration of the page and design editors.

Up next: Testing + Release

Now that the majority of the minimum viable project is Built, I’m offering early-access to people interested in the hope of gathering user feedback while I finish the first version. You can sign up for the early-access on the Zukini website.

A reflection…

I’ve been thinking and working on this project for a long time, and it’s been a constant exercise in determination and focus. There are services that do the same thing or that do parts of it way better. Some companies are staffed by more than a 100 specialised people, and I’m doing all the disciplines by myself, that can be a bit hard.

That said, I still think I have some nice solutions that might help people, and in any case it’s teaching me a lot about what it takes to build a product. I’m learning tons during the design process and technical implementation. I hope to call the Minimum Viable Product “done” soon, and bring it to the attention of some people who need it. Because my frequent travelling shows me that a lot of places could still use a product like this.

One of the nicest things was seeing all the pieces come together, and looking at the product and thinking “I built this!”.