The Work Was Getting It Out the Door

A Digital Visittkort

My sister has a private practice beside her day job. She’d seen some of the other web apps I’d built and was impressed with the work, and somewhere along the way the conversation turned into me offering to help her put up a website for the practice. A favor, on evenings and weekends.

We landed on the ambition pretty fast. The site should be a digital visittkort. A digital business card she could point existing and potential clients to, where they’d self-onboard to her services via Konfidens (her booking and intake platform) without her needing to be the human in the loop for SMS and phone bookings.

That was the brief.

The Mindset of a Professional

The thing that shaped almost every decision after that was the field. Clinical psychology in the Nordics. GDPR is the baseline, not an afterthought.

We’re not the target of a datatilsynet audit. Small businesses rarely are. But that’s not the standard I wanted to build to. The site should be able to stand any scrutiny if it ever came to that. We have an answer to everything in terms of privacy. No shortcuts. We do it by the book.

In practice that meant a few things. Analytics by design are just high-level Cloudflare Web Analytics. No cookies, no user-level data. Phone, personal email, postal address are intentionally not displayed. A proper personvern page that covers the things that need to be there but are easy to skip when you’re a small business.

The principle, said another way: behave like the regulated party, even when you’re not the one in the crosshairs.

The Contact Form That Wasn’t

The clearest example of that principle in action is a feature that doesn’t exist on the site.

The original idea was to have a contact form. New clients fill it in, get a feel for whether the service is the right fit, and the inquiry lands in my sister’s inbox. Standard small-business pattern. I built it out with AI in a session or two. Turnstile for spam, Resend for delivery, the whole pipeline. It worked. Emails landed where they should.

Then I sat with it for a bit and realized: GDPR hell.

A free-text contact form for a clinical psychologist opens a door. People might share sensitive information without thinking. A “checkbox only” form solves the data problem but doesn’t fit how people reach out about something like this. And even if I trimmed the form to the minimum, I’d still need a manual cleanup routine for the inbox, and I’d be putting unneeded private information into my sister’s email account in the meantime.

The pivot: route to Konfidens instead. Konfidens already has the privacy issue settled, that’s what it’s built for. So we deleted the contact form, and the website itself captures zero personal data from anyone who visits.

From SaaS to Organic

The look-and-feel went through its own version of build-it-then-scrap-it.

I prototyped early with Google Antigravity, partly to ship something my sister could react to, partly to test out its newer design capabilities. The output was technically impressive and entirely wrong. Hero messages, eye-capturing fonts, components that looked like SaaS subscription tiers, but with psychology service text crammed into them. The framing was: “you got to get in on this now, or you might lose out on a great deal.”

You do not try to fool people into a psychology service. It’s a mindful, conscious decision someone makes on their own. Not something you trigger them into with visual stimulus.

So Antigravity got scrapped early. But it earned its keep. It surfaced the design pillars by being the anti-pattern. Organic. Professional. Mobile first. Nature color tones. The kind of place you’d be willing to read before deciding whether to reach out.

The reset was simple. I had Claude Code read through the prototype, told it exactly why I didn’t like it, and asked for three alternative directions. I pointed at the one closest to where I wanted to go, and we built from there.

That set the rhythm for the rest of the project. Small evening sessions. Grounded specs and plans before any implementation, written together with Claude. The site lived on a noindex preview URL the whole way through, and my sister reviewed copy and design as we went. The loop was: write a spec, I review it, Claude implements, I visually inspect, my sister sees the result, repeat.

Most of my time went into the specs and the reviewing, not the typing. That’s deliberate. Plan thoroughly, keep yourself in the design seat.

Live on Its Own

The other thing that shaped every decision was that I didn’t want this site to become an ongoing job for me.

This is a favor for my sister, and the favor needs an end. Not in the sense that I’d refuse to help if something broke, but in the sense that the system should be the kind of thing where nothing routinely breaks. Once it’s up, it’s up.

That’s why we’re on Cloudflare Pages on the free tier with auto-renewing TLS. It’s why there’s no contact form to babysit, no third-party services to keep credentials rotated for. The yearly task list is essentially: renew the domain. That’s it.

What I did build is a clean iteration pipeline. main is a noindex preview that auto-deploys, production is the live site behind a PR gate. So when my sister wants a copy tweak or a new section, the work to land it is small. The expensive part was getting the site out the door. Operations are a breeze.

What AI Actually Unlocked

Here’s the thing I wouldn’t have predicted about working this way.

I couldn’t have done this without AI. Sure, I could have coded it up myself. None of it is technically beyond me. But it would have taken probably 1-2 months instead of the 1-2 weeks of evenings it actually took. That part isn’t surprising. The speed-up gets talked about a lot.

What surprised me is what speed unlocks for the psychology of a project like this.

Take the contact form again. I built it. It worked. Emails landed where they should. By any normal “is this done?” check, the feature shipped. And then I scrapped it.

Without AI, that decision is much harder. You’ve spent a week on something, it’s working, and you’d find ways to talk yourself out of the concerns. AI enables you to make mistakes and recover from them quickly, avoiding what’s sometimes called sunk-cost bias. The form took a couple of evenings to build. Scrapping it cost nothing emotional. I spent the next session researching Konfidens properly and pivoting to it, no hard feelings.

That’s the unlock I’d want to flag for anyone working this way. AI doesn’t just let you build faster. It lets you throw work away faster. And throwing the right work away is half of building a clean small system.

The lesson I’d hand to a past version of myself: plan thoroughly before each session, keep yourself in the design seat. And specifically about contact forms (and any form, really), don’t just ask whether it works. Ask what privacy door it opens, and whether someone else is already doing it properly so you don’t have to.

Out the Door

The site has been live for a bit now. My sister is very, very happy with it. People have actually used it to book appointments. Real psych client outcomes through a static website that captures zero data about them. The feedback she’s gotten about how it looks has been good.

It is, honestly, a simple website. How complex can you make a static website, you know? But it’s a static website that’s clean and professional, with privacy considered from the first design session. By-the-book in the way the field expects. Live on its own in the way I needed it to be. And done.