Case Study — GolfHub

GolfHub

A proposal for a golf club stalled at four screens in Figma. It became a product you can use: the members’ app and the club’s ERP, 21 clickable screens and a 3D golf course you turn with a finger.

Client
Clube de Golfe de Brasília (proposal)
Year
Proposal in 2023 · prototype in 2026
Role
Solo, from proposal to code
Delivered
Members’ app and club ERP, clickable in the browser
Platforms
App on mobile · ERP on desktop
Three GolfHub app screens on a grainy green background: the Olá, Pedro home with a photo of Campo A, hole 2 in 3D with the player’s avatar and distance rings, and the round summary with the ball reaching the cup

In 2023 I pitched two products to the Clube de Golfe de Brasília: an app for members to book, pay and follow their own game, and an ERP for staff to see the club’s day at a glance. The proposal stalled at four screens in Figma. Four screens can’t show what it’s like to book a tee time, pay and play a round.

In 2026 I turned the proposal into something you can use. I worked out the missing screens from the club’s own rules, kept the original identity and turned the static hole map into a 3D scene. That’s what I deliver: a product that’s thought through, designed and working, in days.

What I did

Product strategyProduct designUI and interactionUX writingFront-end3D in three.jsAI agent orchestration
21clickable screens, from 4 in Figma
16proposal modules, each placed in the app or the ERP
1person from proposal to code, with AI doing the build
2products, app and ERP, on the same data
18holes in 3D, generated in code
3ways to pay: card, Pix or the monthly bill

01 — The problem

Four screens don’t sell a club

There were two audiences. Management needed bookings, members and cash in one place. Members wanted to book, pay and track their game from their phone.

Figma had the home screen, the hole map, the membership screen and the dashboard. What was missing was the part that persuades: the whole flow working, from booking to the round summary.

Both products in the prototype: the ERP dashboard in a browser window, with active members, bookings, occupancy and birthdays, and the app on an iPhone, with the Olá, Pedro home and the Campo A card
The proposal’s two products, working: the club’s ERP and the members’ app.

02 — The prototype

Try it before you read

It’s 17 app screens, and what you do is saved. Book a tee time and it becomes a voucher. Play a round and the scorecard adds itself up. Or let the tour run through the screens.

Jump to

Use it like a phone: book a tee time, pay with Pix and play a round. On the hole, drag to turn it. The data is fictional and stays in your browser. The interface is in Portuguese, as it was for the club.

Open full screen ↗

03 — Decision: scope

The missing screens came from the club’s rules

I didn’t invent features. The scope came from what the proposal already promised: the tab bar, the menu and the deck’s 16 modules. Each new screen started as a wireframe, with the business rule settled before any colour. Members pay no green fee; guests do. A booking can go on the monthly bill, since members already have a club account. Check-in happens from the voucher itself.

Wireframe
Home wireframe: greeting, a course card with the photo as a box, next tee time, the Começar rodada button and the tab bar
Prototype

01 — Home

Decision: One main action

Hierarchy first: who the member is, where they play, when their next tee time is, and a single button, Começar rodada (start round).

In the final pass, the course card shows who’s playing right now and opens a 3D fly-over of the course.

Wireframe
Hole wireframe: the map as a large box, weather in a side column, the Anotar buraco 2 button and the player bar
Prototype

02 — The hole

Decision: The data a golfer uses

On the tee, a golfer wants three things: how far to the flag, the wind, and where the ball landed.

It’s the screen that stays open all round, so it got the 3D. Everything in metres, with the drive drawn on the fairway.

Wireframe
Membership wireframe: the card as a box, the plan block, tabs and the list of receipts
Prototype

03 — Membership

Decision: Prevent the error

Payments are where a mistake costs the most. The structure puts the card, the plan, the next charge and the receipts in plain sight.

The card form checks the number, expiry date and CVV as you type, and every receipt opens its proof of payment.

04 — The ERP dashboard

Decision: Numbers with context

A number on its own doesn’t tell you whether the day is going well. In the wireframe, every indicator already had room for a reference next to it.

In the prototype: bookings against the forecast, occupancy by shift and revenue against the goal. Birthdays come with a one-tap congratulations.

Wireframe
ERP dashboard wireframe: side menu, four indicators on top, the bookings gauge, occupancy, the balance chart and the birthday list
Prototype
ERP dashboard in the prototype: active members, today’s bookings, rentals and overdue fees, the month’s bookings against the forecast, today’s occupancy by shift, revenue and goal, birthdays with actions and the year’s goals

04 — Decision: identity

Complete the brand, don’t reinvent it

The proposal already had a look: Inter, charcoal, indigo, violet and the club’s green. I kept all of it and filled in what was missing, like states, contrast and a single icon set. The deck’s 16 modules each got a home in the app, the ERP or both.

GolfHub palette: charcoal #303030, violet #771AA3, indigo #4A3AFF, the green ball gradient and club green #106F36, above the green, violet, indigo and ink ramps and four status colours
The proposal’s colours

The file’s own colours, now as tokens. Charcoal to act, violet to highlight, indigo for selection and the green ball on the active tab.

Inter scale from the Olá, Pedro greeting to the uppercase label, with 84, +12 and 12.4 on a charcoal card and the GolfHub wordmark in DM Sans
Inter, from heading to scorecard

One typeface for everything, with the round’s numbers up front. DM Sans stays in the logo.

24 Iconsax Linear icons from the app, the tab bar with the green ball over Home, and five icons in Linear and Bold
One icon stroke

Iconsax Linear on every screen. The tab bar, which only had icons, got labels.

The proposal’s 16 modules as cards, each with an icon and a tag for where it lives: App, ERP or App + ERP
16 modules, each with a home

Every module from the deck now points to where it lives: the members’ app, the club’s ERP or both.

Top-down plans of Campo A’s 18 holes, generated by the 3D view’s own code and drawn to one scale, with fairway, green, bunkers, water and trees, each numbered with its par
A whole course in code

All 18 holes come from the same code that builds the 3D. Each one starts from a few facts, like par, length and layout.

States: charcoal button default, pressed, disabled and focused; tee times free, partly booked, full and selected; tee picker; hole chips; switch; eagle to double-bogey marks; status tags
The missing states

The file showed each component one way. The prototype has default, selected, full, disabled and a visible focus.

05 — Decision: where to invest

The 3D went to the screen members open on the tee

If the effort was going to one place, it was the hole. It’s the screen that stays with the member for the whole round, and the one that sets the product apart from an ordinary booking system. The static map became a course you turn, zoom and aim with a finger.

3D has a cost, and I planned for it. On devices without support, the flat map comes back. With reduced motion on, the camera doesn’t fly.

The fly-over of Campo A, the par 3 over the lake and the ball dropping into the cup at the end of the round.

06 — The round

Log a hole in a few taps

Nobody wants to type mid-game. A round starts with three choices: course, tee and 9 or 18 holes. Then each hole takes strokes, putts and whether the drive found the fairway. The scorecard uses the notation golfers already know, and the summary shows what matters: score against par, net and points. If a round is interrupted, it picks up where it stopped.

07 — Book and pay

From tee time to check-in, on your phone

The grid shows how full each time slot is before you pick one. Pricing follows the club’s rules: members pay no green fee, guests do, and the cart goes on the same bill. You can pay by card, Pix or on the monthly bill. The booking becomes a voucher with a QR code and in-app check-in, and it can be cancelled free of charge up to 24 hours before.

08 — Club life

Reasons to open the app between rounds

A club app that only takes bookings gets opened once a week. The tabs Figma promised became reasons to come back: the monthly ranking, lessons with a pro, tournaments with a live spot count, a shop that delivers rentals to the tee, notifications and a member card with the gate QR code.

09 — Decision: one system

What members do on their phone shows up on the club’s screen

The app and the ERP read the same data. The Pedro who books on his phone is member no. 0427 on the tee sheet, and prices, pros and courses match on both sides. A proposal that shows this working answers the question every manager asks: does it talk to the rest of the club?

Figma only had the ERP dashboard. The tee sheet, the member record and finance follow the same grid, and chasing an overdue fee is one click away.

01 — Dashboardthe club’s day
ERP dashboard: the day’s indicators, the month’s bookings against the forecast, occupancy by shift, balance, this week’s birthdays and the year’s goals
Every number with its reference: bookings against the forecast, occupancy by shift, revenue against the goal.
02 — Tee sheetbookings
Course schedule: the week on top, a tee-time grid with four slots per time, each booking’s status and the panel for the 10:20 booking with manual check-in
Bookings from the app land here: four slots per time, arrival status and manual check-in.
03 — MembersCRM
Member record for Roberto Xavier open over the member list: handicap, rounds this year, senior plan, two overdue monthly fees, payment history and the Enviar cobrança button
The record opens over the list, with overdue fees and a payment reminder one click away.
04 — Financecash
Finance: the month’s revenue, monthly fees, overdue fees and average shop ticket, a monthly revenue chart against the goal, revenue by source and recent transactions
Revenue by source and the app’s payments, card, Pix and monthly bill, in one statement.

10 — How I worked

AI does the build, the judgement stays with me

I wrote the brief, set the business rules and the components, and had AI agents build the screens in parallel. Then I reviewed each one: copy, states, contrast and the numbers that have to match between the app and the ERP.

AI sped up production. The product decisions stayed with me, and that’s what makes it possible to go from a stalled file to a testable product in days, not months.

Outcome

What the proposal gained

  • +A product you can use instead of four static screens: 21 clickable screens, on phone and desktop
  • +The flows that sell the club working end to end: book, pay, play and follow your game
  • +A signature moment, the 3D hole, that an ordinary booking system doesn’t offer
  • +App and ERP on the same data, showing a whole system rather than loose screens
  • +A base ready to become a product, with scope, rules and interface already proven in the prototype

Tools

FigmaHTML, CSS and JavaScriptthree.jsAI agentsPlaywright

Got an idea stuck in Figma?

I take it from the drawing to a product you can use and test, with design and code, in days.