Websites built like software, not like templates.
I design and build full-stack web projects — from marketing sites to content-managed platforms — with the same rigour I'd bring to a research codebase: typed, version-controlled, and built to be maintained.
const developer = {
name: "Paolo Minhas",
stack: ["Next.js", "TypeScript",
"Docker"],
basedIn: "Edinburgh, UK",
also: ["physicist", "musician"],
};01 — How we work
A website should earn its keep.
It has never been easier to put up a site through a builder or a subscription service. The difference is what happens next — here's what actually goes into making one stand out.
Start with the goal
Before any design work happens, we find the number that actually matters — more people finding you for “concerts near me”, more tickets sold, more sign-ups. Everything on the site channels toward that number, and we set up the analytics to prove it's moving.
Built to be managed
The build itself moves quickly, and once it's live, running the site is just as easy. Swap a photo, add a concert date, update a price — through a simple editor, no code and no previous experience required.
Efficient by design
Every site is kept as lightweight as possible, which pays off twice: pages load fast, and they use less energy doing it. You can see this page's live score in the footer below — we're also happy to point you toward greener hosting. None of that comes at the cost of accessibility.
Found however people search
We optimise for Google the traditional way, and for the newer generation of AI answer engines — so whether someone types a query into a search bar or asks an AI assistant to find a concert near them, your site is what comes back.
02 — Watch it build
Four builds, one continuous scroll.
Changing your site is as easy as clicking a box to change a colour or typing out a new title. Behind the scenes software works to change words in the source code, as you can see happen to this site live here.
autonomous theme loop
paolominhas@portfolio ~/web $ code theme.config.ts
scroll-linked translation
paolominhas@portfolio ~/web $ code i18n/localize.ts
✓ 14 nodes retranslated → it-IT
direct DOM manipulation
paolominhas@portfolio ~/web $ code Mockup.tsx
swapping payment gateway
paolominhas@portfolio ~/web $ code package.json
✓ added 1 package · stripe-react-js@3.x
✓ added 1 package · worldpay-react-sdk@2.x
Live theme engine
Design tokens,
applied in real time.
- •250g unsalted butter, softened
- •125g caster sugar
- •375g plain flour
- •A pinch of salt
£48.00
Order #EU-2026-0417
03 — Past highlights
Two builds worth a closer look.
Real screenshots — click through either one for a couple more views.

Full website rebuild from Create React App to Next.js 15, plus a Stripe ticketing platform with QR check-in and a companion React Native scanning app, replacing a fully manual box office.
Rebuilt information architecture, live Stripe ticket sales with QR check-in, editorial concert pages.
04 — How it runs
Four stages, start to finish.
Tap a stage for what it actually involves — including the design tooling behind “Design” and the payment integrations behind “Build”.
Have a project in mind?
Tell me a bit about what you need and I'll reply within a couple of days with next steps.
