A-104 Golden Court
A concept review hub for padel courts, scored on glass, lighting, turf and facilities.
ConceptGolden Court is not a real business. It is a fictional review site invented so a data-heavy Laravel application could be designed and built end to end without a client brief. Its venues are made up, and so are all of its accounts and reviews.
- Client
- Self-initiated concept
- Year
- 2026
- Sheet
- A-104, 4 of 5
- Status
- Concept, no real client
- Role
- Sole developer and designer: Laravel backend, PostgreSQL, Vue front end and deployment
- Stack
- Laravel 13, PostgreSQL 17, Inertia 3, Vue 3, TypeScript, Tailwind CSS 4, Pest, Larastan, Docker
Summary
A Trustpilot-style review site for padel courts, built to show the backend of a data-heavy application rather than a brochure site. Players find a venue, read what others thought and score each court on glass, lighting, turf and facilities. Venue owners can claim a venue and reply to reviews once an admin approves the claim. There is no booking, pricing or availability. The public copy has sign-up switched off and is hidden from search.
Why
The reasons behind the stack.
-
Laravel
I have strong experience with MVC frameworks. Laravel lets me build fast, with an emphasis on quality and reusability, because of its MVC structure.
-
PostgreSQL
I have strong experience with SQL, which made a relational database like PostgreSQL the natural choice over most other options.
Construction notes
What I built, keyed 1 to 7.
- Designed the review model: four scores per review, with one review per player per court enforced by a database constraint
- Built venue search on PostgreSQL, by name or city with full-text search and by distance with earthdistance
- Recalculated court and venue scores in queued jobs behind a swappable aggregator, a Bayesian average by default
- Built moderation: flagging with automatic escalation after three flags, venue claims with admin approval, and an append-only audit log
- Wrote it in strictly typed PHP, checked by Larastan at level 8, with Data classes generating the TypeScript types the Vue pages use
- Server-rendered the public pages with Inertia and checked the design with axe at desktop and phone widths
- Deployed it with Docker Compose behind Caddy, with PostgreSQL, a queue worker and a scheduler
Outcome
A working concept with 12 fictional venues, 44 courts and 259 generated reviews that can be browsed and searched online. The venues, accounts and reviews are all made up, and the site says so on every page.
More drawings
Hiring, or want something like this?
Ask me how I built it, or tell me what you're working on, or email oscarfreeman@live.co.uk.