// built by someone who reads the methods sectionBuilt by someone who reads the methods section

The impediment to action advances action. What stands in the way becomes the way.

// Marcus Aurelius— Marcus Aurelius

I've been working in science and industry. Now I'm building for the web.

From simple websites to diving deep into science integrations, and always learning.

// not a coder? flip the switch up top to render() this page

services/How I can work with you

Interactive, clear and purposeful design. After all, your website is your digital expression.

// not sure what to ask? tell me what's standing in your way, and we'll figure out the tools together.Not sure what to ask? Tell me what's standing in your way, and we'll figure out the tools together.

// start something new: no site yet, or starting overStart something new

No site yet, or it's time to start over.

websites()Websites

Websites

From a simple one-pager to a full site, designed and built from scratch and fast on every phone.

  • Web design
  • Business, portfolio and community sites
  • Domains, email and hosting set-up
stack:Often built with"astro"Astro"next"Next.js"tailwind"Tailwind"netlify"Netlify"cloudflare"Cloudflare"infomaniak"InfomaniakyoursYour stack

webApps()Web apps and databases

Web apps and databases

Tools that do things: logins, dashboards, listings, and data your users create.

  • Web apps
  • Database integration
  • Dashboards and data visualisation
stack:Often built with"next"Next.js"react"React"supabase"Supabase"vercel"VercelyoursYour stack

connect()Forms, bookings and integrations

Forms, bookings and integrations

Contact and registration forms, bookings, and connecting the tools you already use.

  • Forms and registrations
  • Bookings
  • Integrations and automations
stack:Often built with"netlify"Netlify"supabase"Supabase"apis"APIsyoursYour stack

campaign()Campaigns

Campaigns

Fundraisers and launches, end to end: donation or landing page, emails, flyers and social graphics.

  • Donation and landing pages
  • Email campaigns
  • Print and editable Canva templates
stack:Often built with"canva"Canva"astro"Astro"netlify"NetlifyyoursYour stack

content()Blogs and content

Blogs and content

A blog you can run yourself, plus clear writing for the tricky stuff: science, tech, anything that needs explaining.

  • Blog set-up
  • Science and technical writing
  • Content structure and planning
stack:Often built with"sanity"Sanity"astro"Astro"cloudinary"CloudinaryyoursYour stack

help()Not sure which one?

Not sure which one?

Tell me what's going on in plain words and I'll suggest what fits. Sometimes it's smaller than you think.

// fix or move: your site exists but isn't working for youFix or move what you have

Your site exists, but it isn't working for you.

improve()Fixes and improvements

Fixes and improvements

Site broken on phones, slow, or hard to use? I fix it where it is and add what's missing.

  • Fixing sites that don't work on mobile
  • Speed and accessibility check-ups
  • Enhancements and new features
stack:Works withyoursYour stack"lighthouse"Lighthouse

migrate(from)Move your site

Move your site

Leaving Squarespace, Wix or WordPress? I move everything across and tell you upfront what can't come over automatically.

from: "squarespace" | "wix" | "wordpress" | "webflow" | "godaddy" | "google-sites"

Moving from Squarespace, Wix, WordPress, Webflow, GoDaddy or Google Sites

  • Pages, images and blog posts moved
  • Old links redirected, so Google and your customers still find every page
  • Domain and email switched over with a plan, so nothing goes dark
  • Forms and bookings rebuilt and tested
  • A before-and-after speed check
stack:Often moved to"astro"Astro"next"Next.js"sanity"Sanity"netlify"Netlify"cloudflare"Cloudflare"infomaniak"InfomaniakyoursYour stack

review()Built it with AI? Let's make it work

Built it with AI? Let's make it work

Made an app with an AI builder but it breaks, won't go live, or you're not sure it's safe? I check it, fix what's wrong and get it ready for real users.

  • Code and security review (exposed keys, open databases)
  • Fixing logins, data and forms that don't quite work
  • Getting it live properly: domain, hosting, backups
stack:Works withyoursYour stack"supabase"Supabase"vercel"Vercel"netlify"Netlify

// take it further: run it yourself, or make it smarterTake it further

It works. Now run it yourself, or make it smarter.

handover()A site you can update yourself

A site you can update yourself

I set up an editor (a CMS) so you can change text, photos and prices without calling me.

  • CMS set-up (Sanity)
  • Training and a how-to guide
  • Ongoing help when you need it
stack:Often built with"sanity"Sanity"cloudinary"Cloudinary"netlify"NetlifyyoursYour stack

science()AI and science integrations

AI and science integrations

AI built into your site or workflow, and scientific data turned into something people can use.

  • AI assistants that answer from your content
  • Document search and automations
  • Scientific data on the web
stack:Often built with"claude-api"Claude API"gemini"Gemini"python"Python"mcp"MCPyoursYour stack

seo()SEO and AEO

coming soon

SEO and AEO

Getting found on Google and in AI answers, from analysis to implementation.

  • Search audits
  • Structured data
  • Visibility in AI answers
toolbox:Tools I often use

// hover a tool to see where it fitsHover a tool to see where it fits.

## how it worksHow it works

  1. 01ChatTell me the problem, not the tech. We work out what you actually need.
  2. 02Plan and quoteA clear plan and a quote before anything starts.
  3. 03Build and reviewYou see progress early and shape it as it grows.
  4. 04Launch and hand overLive, tested and yours, with an editor and a how-to guide if you want them.

recent-work/Recent work

// Small sample, large effect size.

export const project = {
name: "CT Studio NZ",
for: "A Christchurch photo and video studio",
what: "Portfolio and booking site for a Christchurch photo and video studio.",
built: [
"Photo and video portfolio",
"Booking flow",
"Direct WhatsApp contact",
],
status: "live",
url: "ctstudionz.com",
};

A Christchurch photo and video studio

CT Studio NZ

Portfolio and booking site for a Christchurch photo and video studio.

  • Photo and video portfolio
  • Booking flow
  • Direct WhatsApp contact
Live
CT Studio NZctstudionz.com
Visit ctstudionz.com (opens in a new tab)1/4

lab/Lab

const shoshin = "beginner’s mind";Shoshin: beginner’s mind.

// zen. meet every problem with openness and no assumptions. experiments, small tools, things I built to find outFrom Zen: meet every problem with openness and no assumptions. Experiments, small tools, and things I built to find out.

The logo, decoded

The SheDecodes tiger, animated in pure CSS. No JavaScript, under 5 KB, and it holds still for anyone who asks their device to reduce motion.

Puddle Piggy: a cartoon pig in a pool above a fundraising progress bar

Puddle Piggy

The fundraising thermometer running on Sumner Pool's donation page: a pig that warms up as donations come in. One self-contained block dropped into Squarespace.

Try the live demo (opens in a new tab)

Currently compiling

Deep learning, and the tools changing how science gets done: protein structure prediction, research agents, AI that reads the literature.

aboutAbout

I’m inherently drawn to complex systems, the kind where tweaking one variable just creates three new problems.

After moving through industry, academia and an ongoing PhD, I learned that analysing massive, messy datasets takes more than off-the-shelf tools. Naturally, instead of buying software keys, I started coding my own data and statistical solutions in Python and R.

That early curiosity for machine learning and data analytics opened the door to the creative high of software development: building my own tools and taking other people’s apart to see how they work.

Today, I build web platforms designed to solve real problems for real people. And I never stop learning: from full-stack development into machine learning, deep learning and agentic AI workflows, building towards the intersection where scientific research meets software engineering.

Based in Christchurch, New Zealand. Working with people anywhere.

stackTools I use

// not every tool I've touched. what I reach for, and what it's for.

{
"name": "shedecodes",
"build": { // sites and apps for clients
"next + react": "web apps and interactive sites",
"astro": "fast content sites",
"typescript": "code that catches its own mistakes",
"tailwindcss": "consistent design, quickly",
"sanity": "content you can edit yourself"
},
"data": { // where your data lives
"supabase": "logins, databases, file storage",
"postgres / sql": "structured data",
"mongodb": "flexible documents",
"node + fastapi": "APIs in JavaScript or Python"
},
"science": { // where I came from, and still live
"python + r": "analysis, statistics, pipelines",
"gaussian-processes": "multi-output models for messy time series",
"self-organising-maps": "finding structure nobody labelled",
"neo4j": "knowledge graphs"
},
"ai": { // AI built into what I ship
"claude-api": "assistants that answer from your content",
"gemini / vertex-ai": "AI on Google Cloud",
"mcp": "connecting AI to your tools and data"
},
"ship": { // hosting that fits the project, and your values
"netlify": "sites and forms",
"vercel": "Next.js apps",
"cloudflare": "domains, speed, security",
"infomaniak": "Swiss, B Corp, renewable-powered",
"your-values": "other green and ethical hosts on request"
},
"check": {
"figma + canva": "layouts first, templates your team can edit",
"playwright": "tested before every release",
"docker": "when 'works on my machine' isn't enough",
"git + github": "every change tracked"
}
}
Build
Next.js and React, Astro, TypeScript, Tailwind CSS, Sanity
Data and back end
Supabase, PostgreSQL, MongoDB, Node.js and FastAPI
Science and machine learning
Python and R, Gaussian processes, Self-organising maps, Neo4j
AI in products
Claude API, Gemini and Vertex AI, MCP
Host and ship
Netlify, Vercel, Cloudflare, Infomaniak, other green and ethical hosts on request
Design and testing
Figma and Canva, Playwright, Docker, Git and GitHub

contactSay hello

$ ./contact.sh

→ emailbei.koni@gmail.com

→ linkedin/in/koni-espinoza-iversen

→ github@Koni-BEI

→ basedChristchurch, NZ · working with people anywhere

./contact.sh --interactive

Got something that needs to make sense on a screen? Tell me about it.

Send me a message

bei.koni@gmail.com

LinkedIn GitHub