Portfolio

Sites I have built, start to finish.

Design, code, copy, hosting and the launch — all of it by one person. Two of these are real products with real customers. Four are concept builds, and they say so.

227 KB Total homepage weight, images and fonts included
340 ms First contentful paint, measured on production
0 Third-party requests — no trackers, no font CDN
0 Colour-contrast failures, in either theme

Measured on this page's own site, in Chromium, against the live deployment.

Six builds

The work

A concept piece is a site I designed and built to my own brief, with no client behind it. They are labelled, because a portfolio that blurs that line is not worth showing you.

The HydroPeak homepage: a dark blue hero reading The dirt isn't permanent, over a photo of a technician soft washing the side of a house
Local service business

HydroPeak

Concept build

A pressure-washing company site — the exact shape most Minnesota trades need. Service pages built to rank for the thing people actually search, a quote path on every screen, and a homepage that finishes loading before a customer gives up.

  • Static HTML
  • Responsive
  • Local SEO
The OrePlugins homepage: large black type reading Minecraft plugins that are actually finished, with a purple Join from seven dollars a month button
Online store

OrePlugins

Live product

A membership store taking real payments. Stripe checkout, accounts, and access rules that had to be right in the database rather than the interface — one membership covers every product, so entitlement is a date range, never a yes/no flag.

  • Next.js 16
  • Supabase
  • Stripe
  • Vercel
The Solène Estate homepage: two backlit wine glasses behind large serif type reading Slow hills, long light, honest wine
Winery & hospitality

Solène Estate

Concept build

Six pages for a fictional estate winery, where the restraint is the product: a typographic layout, a lot of air, and almost no interface. Built on Vite with plain JavaScript — no framework, because none was needed.

  • Vite
  • Vanilla JS
  • Multi-page
The SwansonX Music homepage: a dark track listing headed The music, with Play all and Shuffle buttons above a list of songs
Web application

SwansonX Music Studio

Live product

Not a brochure — an app. Streaming playback, a queue, per-track pages and listener counts, deployed straight from Git on every push. Proof that the same hands that build a five-page business site can build the thing behind the login too.

  • Next.js
  • Streaming audio
  • Vercel
The Nocturne homepage: a dark hero with large serif type and coloured gradient light
Creative studio

Nocturne Studio

Concept build

Dark, motion-led and deliberately the opposite of a trust-first small business site. Gradient light, large serif type, and reveals timed to stay out of the reader's way. It is here to show the range, not because most businesses should look like it.

  • Static HTML
  • Scroll motion
  • Dark UI
The Hello Swanson homepage: a near-black page with huge type reading Hello, I am Sean, the second line in orange, above See the work and Start a project buttons
Personal site

Hello Swanson

Live site

My own résumé and portfolio, on its own domain. A single long page with a clear hire-me path, built to load instantly on a phone — the same brief I get from consultants, photographers and tradespeople who need one good page.

  • Static HTML
  • One-page
  • Custom domain
The common thread

Different jobs, same rules

Whatever the site is for, these do not change.

It loads fast, or it does not ship

Images are converted and sized for the slot they land in, fonts are self-hosted, and nothing third-party is allowed to block the first paint.

It is readable by everyone

Real text, real headings, keyboard-reachable controls, and colour that meets AA contrast at the size it is actually used — checked with numbers, not by eye.

You own it

Source code handed over, hosting in your name, and no proprietary builder holding the site hostage if you and I stop working together.

Want one of these for your business?

Tell me what the business does and what the site needs to accomplish. I will reply within 24 hours with a fixed price and a date.