vibes.london

Experimented with a new approach to company and community building. Created a social product (in person dinners with 6 strangers) with exceptionally positive customer feedback. Lo-tech, high customer research project.

Technologies

Next.jsTailwind

vibes.london was an experiment in company and community building. My 2 cofounders and I made clear from the outset we wanted to see if it was possible to create a company that was high-ambition, high-impact and high-integrity.

We created a social product, in person dinners with 6 strangers. We approached dinner, its format and people's expectations, as a technology that could be iterated on to achieve specific outcomes. In our case, the outcome was a feeling of deep, human connection.

We developed a 3 act structure to dinner that comprised a circle, an hour of group conversation and listening where people we able to put down the masks they wear in everyday life and relate to each other as themselves.

We then served dinner and structured conversation through a method called spotlight where each attendee was given 5-10mins in the spotlight. At this point, other attendees would interview them. It gave everyone a chance to listen, enquire, talk about themselves without a sense of dominating proceedings, and importantly, eat!.

We closed with an improvised game, or showcase, or something else an attendee might have brought along or suggested. This third act was a chance to enjoy the connections people had made throughout the evening.

This was a very lo-tech, high customer engagement project. We had exceptionally positive customer feedback. Attendees to our dinners told us how it changed their outlook on their relationships with friends, family and socialising more broadly.

A Lime bike with a vibes.london sticker

A Lime bike with a vibes.london sticker

A hand with 4 stickers stuck to 4 fingers

We plastered Lime bikes in Hackney to attract sign ups

A Whatsapp message describing customer feedback from a dinner attendee

The feedback we got from attendees left me with little doubt that we'd achieved a huge positive impact in some people's lives

Saucey McSauceface

Company merch that's eco-conscious and interesting

Technologies

VercelTailwindFigmaChili peppers

Saucy McSauce Face was founded in 2024 with a simple mission: to make branded merch more sustainable, more memorable, and a lot more fun. Based in the UK and serving clients across Europe, we specialised in creating eco-conscious, custom-branded products—think hot sauces, snacks, and condiments—that businesses could use as giveaways, rewards, or event prizes.

Whether it was a spicy thank-you to hardworking employees or a cheeky promotional item that left a lasting taste, our products were designed to surprise and delight. Every item was produced with environmental responsibility in mind, using recyclable materials, ethical suppliers, and low-waste packaging. At its heart, Saucy McSauce Face was about mixing bold flavour with bold branding—without compromising on sustainability.

I conceived, launched, and ran every aspect of the business—from initial concept and supplier sourcing to packaging design, customer outreach, and sales. Every client we worked with was personally won and supported by me, and the feedback was consistently positive. Saucy McSauce Face was as much a test of creative thinking and branding as it was of end-to-end business execution.

Saucey McSauceface logo

Saucey McSauceface logo

F1 tracks

A racing circuit guessing game for F1 fans.

Technologies

TypeScriptReactFramer MotionNext.jsTailwindSupabase

I had the idea for a game that gradually drew the shape of F1 circuits for a while. The gameplay is quite simple: the player has to recognise 3 circuits as fast as possible.

The end result is a fun challenge, and certainly geared towards F1 die hards, although it's possible to get better quite quickly (within a week) with daily practice.

The build was simple. This is the first game I've built, so I focussed on UX a lot, animating much of the gameplay UI and keeping things ergonomic for mobile browsers.

The best way to understand how the game works is to play it. It only takes 30 seconds - play it here

Screenshot of the homepage of F1 tracks. It shows an image of the game play and a "play" button. Some text describes the game to site visitors and there are links to support the project and credits.

F1 tracks home page

Gameplay screenshot as count down lights. 2 rows of lights, on the bottom row, 4 out of 5 of the lights are lit red.

Lights out and away we go

Gameplay screenshot of a partially drawn track. Four circuit names are presented as options for the user to guess which track

Round three of three. The circuit shape is drawn out as the clock ticks by

Gameplay screenshot: the final screen shows a summary of the 3 tracks guessed, Zaandvoort, Autodromo Jose Carlos Pace and Albert park

A summary of the game with options to share and see stats

A screenshot shows a player's stats over multiple plays of the game including % of correct guesses, average time to complete the game and average track revealed. The last 7 days of game results are shown in a table

Track your stats and see your improvement over time

Quarters

A configure, price and quoting SaaS to maximise revenue from direct sales and optimise pricing of complex deals and pricing models.

Technologies

Next.jsReactSupabaseTailwindRadix UI

I spent much fo 2023 prototyping a new CPQ SaaS with a friend. We raised £500k in seed funding and signed up 5 design partners. We were on track to deploy the product with our first customer in Q4 2023 before we chose to cease work on the company for personal reasons.

The app was incredibly rewarding to build. The backend was a highly composable set of resources all accessible via a REST API. It required modeling pricing models, complex enterprise deals and rules to ensure quotes conformed to the customer's sales guidance. I constructed logic to ensure the necessary data was collected via the frontend to progress the quote regardless of how the app was configured.

The frontend was a Next.js app relying mainly on tailwind for styles and radix for component primitives.

App screenshot shows a dashboard listing quotes for new business requiring approval from a sales manager

All quotes: This dashboard lists quotes for new business requiring approval from a sales manager

App screenshot: a configuration UI to select products and countries to sell them in

New quote: Quote configuration could be extensively customised. In this example, 2 products are selected, the initial pricing model can be adjusted for each, and fields such as vertical, regulatory license and which countries each product is being sold in have been setup.

App screenshot

New quote: Pricing can be adjusted by applying discounts or tweaking individual tiers of usage based pricing models. Forecast revenue is automatically updated every time the forecast is adjusted

App screenshot

New quote: Once created, all the details of a quote can be viewed in a summary and pricing can be changed as negotiations proceed

App screenshot

Checks & approvals: This shows off the approvals feature. If a quote is created that falls foul of an automated check, the seller must request approval to develop

App screenshot: product catalogue

Config: The app can be configured with an organisation's product catalogue. Each product can be arbitrarily segmented to refine pricing by country, vertical and more

App screenshot: check

Config: The full list of checks an organisation has configured to run against every new quote

App screenshot

Config: One check in detail. This check enforces a minimum MRR value for each deal.