Nov 2023

F1 tracks

A racing circuit guessing game for F1 fans.

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


TypeScriptReactFramer MotionNext.jsTailwindSupabase

Mar 2023


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

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.


Next.jsReactSupabaseTailwindRadix UI