2pac spray painting · Burleigh Heads, Gold Coast · 2026

  • Client project
  • In development

A 2pac spray-painting site with a merch store and card checkout built in

A website for a Burleigh Heads 2pac spray-painting shop, with a merch store that takes card payments through Stripe Connect and an owner dashboard for stock, orders and traffic.

In development: this site isn't live yet, so the screenshots come from a local build.

Client
Precision 2Pac
Industry
2pac spray painting
Location
Burleigh Heads, Gold Coast
My role
Design and build
Year
2026
Status
In development

By · Updated

Precision 2Pac homepage with a black and neon-green hero reading High-End 2Pac Spray Painting, Burleigh Heads QLD, with Browse the Shop and Get a Free Quote buttons
The homepage: the trade first, with the shop one button away. Local build; not live yet.Desktop full size: The homepage: the trade first, with the shop one button away.

The brief

Precision 2Pac sprays 2pac finishes on kitchens, wardrobes, laundries, internal doors and vanities for homeowners, builders and cabinet makers around the Gold Coast. The business needed a proper site that explains the trade and brings in quote enquiries, and it also wanted to sell its own branded gear online: tees, hoodies, caps and hi-vis.

I built the marketing pages first, in March 2026, using the contact details from the business's own social profiles. My first shop, in May, put the painting services themselves into a cart and emailed a quote request at “checkout”. In June the brief changed: spray painting stays as marketing content, and the cart sells merch with real card payments.

What I built, and why

  1. Spray painting stays the main event

    On /services the painting work is information, not products: each service explains the finish and leads to a free quote request. When the brief changed in June, the services came out of the cart and went back to plain pages written for homeowners, builders and cabinet makers.

    Services grid with cards for Kitchens, Wardrobes, Laundries, Internal Doors, Vanities and Shelving & More
    The painting services, explained on their own terms. Local build; not live yet.View full size: The painting services, explained on their own terms.
  2. A merch store inside the same site

    The shop sells apparel, headwear, workwear and accessories, each with sizes, colours and stock levels. It has its own Supabase database for products, variants, orders and traffic.

    The public site only reads that database from the server, and the database refuses direct public access on every table. Every product page goes into the sitemap automatically.

    Merch promo band headed Rep the booth. Wear the mark., with a button to open the shop
    Spray painting up front, merch one click away. Local build; not live yet.View full size: Spray painting up front, merch one click away.
  3. The server decides what gets charged

    Cart totals in the browser are only a preview. At checkout the server re-prices every item and re-checks stock, and it refuses an order bigger than what's on the shelf rather than quietly shrinking it.

    The Stripe webhook marks an order paid and takes the stock off in one database step. A retried webhook can't double-count an order, and two people can't both buy the last hoodie.

    Cart page listing a black Precision Tee in size L and a Trucker Cap, beside an order summary with a Continue to Checkout button
    Cart totals are a preview; the server re-prices everything at checkout. Local build; not live yet.View full size: Cart totals are a preview; the server re-prices everything at checkout.
  4. Sales go straight to the owner's Stripe account

    Checkout runs through Stripe Connect. The owner connects his own Stripe account once from the dashboard, and each sale is charged on that account. The site stores the connected account ID, never a Stripe secret key, and a settings check stops test-mode and live-mode details being mixed up.

    The dashboard itself signs in by email link, and only addresses on an owner allowlist get in. Every dashboard action re-checks that the person is an owner.

  5. Reviewed hard, and safe with no keys at all

    I ran two adversarial review passes over checkout, the webhook and sign-in, then fixed all 15 findings in one hardening commit. Among them: an open redirect in the sign-in callback, and dashboard revenue that stopped counting after 1,000 orders.

    The site also builds and runs with no keys. Without them the shop shows empty, checkout says it isn't taking payments yet, and the dashboard stays locked. Nothing breaks while the accounts are being set up.

What shipped

  • Home, Services, About and Contact pages, built in March 2026.
  • Shop and product pages with size and colour pickers and live stock, a slide-out cart drawer and a full cart page that remembers the visitor's cart between visits.
  • Card checkout on Stripe's hosted page, with success and cancel pages, an emailed receipt for the customer and an order notification for the owner.
  • An owner dashboard: overview, inventory with inline stock, price and visibility edits, orders with status, a 14-day traffic chart from a first-party tracker that counts visitors with a daily-changing hash, and Stripe settings.
  • The store, checkout, webhook and dashboard, finished and pushed on 14 June 2026. The build and lint pass with zero credentials.
  • A step-by-step setup runbook covering the database, Stripe Connect and hosting, so going live is a checklist.

Not live yet. Going live needs the store's database, the Stripe Connect platform setup, hosting settings and DNS.

I can build something like this for your business.

Contact me

Questions about this project

Can a trade business sell merch from its own website instead of a separate store?

Yes. For Precision 2Pac I built the store into the same site as the service pages. One site handles both the painting enquiries and the merch, and the products, sizes, colours and stock all live in the site's own database.

Where does the money from a sale go?

Straight to the business's own Stripe account. The owner connects Stripe once from his dashboard, and each checkout is charged on his account. The site never holds his Stripe secret key.

Can the owner change stock and prices himself?

Yes. The dashboard has an inventory screen where he can change stock, prices, and whether a product shows on the shop, and the shop updates without a redeploy. Adding a brand-new product is currently a job I do in the database.

What stops the store selling something that's out of stock?

The server checks stock at checkout and refuses an order bigger than what's on the shelf, rather than quietly shrinking it. When the payment goes through, the order is marked paid and the stock comes off in a single step, so two people buying the last hoodie at once can't both get it.

I already have a website. Can you add a shop to it?

Usually, yes. Here the shop sits alongside the existing service pages, with its own cart, checkout and dashboard. Get in touch and I'll look at what your current site is built on.

Want to sell online from your own site?

Merch, products or gift cards alongside your services: I'll build the store, checkout and owner dashboard into a new or existing site.

Related case studies

All work