Skip Navigation

Scott Spence

Portfolio

Last updated: October 16th 2026

I’m Scott, a UK-based product engineer and Svelte consultant with 9 years of commercial web development experience. Through OES Technology, I take products from prototype to production and leave codebases that coding agents and teams can keep building on after I’ve gone. Client work is private, so it’s described without names.

Reinsurance underwriting platform

April-September 2026

As lead engineer, working solo for the first two months, I took a clickable prototype to production in the client’s private Azure network in six weeks, built to support roughly $20m in business: submission intake, document extraction, rules, quoting, and audit history.

  • Built the monorepo, web app, worker, rules, database, and domain packages
  • After handover, the team raised underwriting capacity by more than 130% in one week, through underwriting rules and configuration alone. My architecture checks kept the change inside the layers built for it, and the team kept and extended them. A second product has since adopted them.
  • The docs search I built for the agents became its own tool, wiki0
  • Handover is a verified export: the end client gets exactly the application they paid for, and the agency’s docs, agent skills, and delivery tooling stay with the agency

Claims platform for deposit-replacement insurance

August-September 2026

A letting agent files a damage claim, the tenant responds item by item, and an adjuster decides what’s paid. I took it from spec to production in about five weeks, on a live platform I’d maintained since March.

  • Mobile-only video evidence that won’t record without a location fix accurate to 250 metres; the adjuster sees whether each video was filmed at the property
  • Every video is transcribed, so the adjuster can read along while reviewing
  • Tenants accept or dispute each item with their own evidence; the adjuster can request information, approve, part-approve, or decline

Quoting and binding platform for an insurer

March-June 2026

A commercial trucking insurance platform where agents build quotes through a wizard and underwriters manage the policies. I rebuilt its foundations and set up its infrastructure.

  • Moved off Prisma to plain PostgreSQL with versioned SQL migrations and Valibot-validated remote functions
  • Replaced Auth.js, which has been sunset, with Better Auth
  • Set up their AWS with Terraform: staging and production on ECS with a deploy pipeline to both, DNS and certificates for their domain, and SES for email

Mobile sign-up platform for a telecoms reseller

June-September 2026

Speed was the brief. I turned a click-through prototype into a live production app in under two weeks, and it has taken real customer orders since July.

  • Hardened it after launch with more than 120 tests and no known dependency vulnerabilities

AI customer-service agents

September 2023-February 2026

I led 12 developers across two product teams at XtendOps.

  • Built the agent runtime that reduced average handle time by 40% through skill-based routing across chat, email, and SMS
  • Led the Svelte 5 migration off a shared Svelte 4 component package, so four applications could ship independently
  • The consistent Svelte 5 patterns gave Claude Code the right examples to follow, so old habits stopped creeping back into new code
  • Built Sveltest to give the team, and their coding agents, testing patterns they could trust

my-pi

my-pi package preview

my-pi is my curated Pi distribution: a ready-to-run coding agent CLI with MCP, LSP, skills, recall, redaction, telemetry, team mode, and prompt presets.

I used it to build every client project on this page. When a client task needed something my agent couldn’t do yet, I built that feature into my-pi first.

Key Features:

  • Pi-native CLI with interactive TUI, print mode, JSON mode, RPC mode, and a programmable runtime
  • Project-aware MCP tools and skills, scoped per repo so noisy or sensitive tools only load where they belong
  • LSP-backed diagnostics, hover, definitions, references, and document symbols
  • Local SQLite context sidecar, telemetry, evals, recall, and live observability
  • Secret safety through output redaction and nopeek reminders
  • Team mode for local RPC teammate orchestration with tasks and mailboxes

Tech Stack: TypeScript, Pi, SQLite, MCP, LSP, pnpm

Visit my-pi | View Source | Read the write-up


wiki0

wiki0 share card

wiki0 is docs search for your coding agent. It indexes the Markdown already in a repo (plus PDF, DOCX, and TXT if you include them) into SQLite full-text search and returns the right section with a path:start-end citation, so agents read the part they need instead of whole documents. It never calls an LLM and never rewrites your files.

It grew out of the docs search I built for the reinsurance platform.

Key Features:

  • Ranks current, authoritative docs first; superseded docs rank low and point to their replacement
  • One cited section per document, readable with wiki0 show
  • Link and anchor linting for broken docs
  • A local docs browser with rendered docs, search, and index health
  • An MCP server (@wiki0/mcp) that gives agents the same operations as tools

Tech Stack: TypeScript, node:sqlite, SQLite FTS5, MCP, SvelteKit

Visit wiki0 | View Source | Read the write-up


omnirecall

omnirecall package preview

omnirecall finds answers in your past coding conversations, even when they happened in a different agent. It searches Pi, Codex, Claude Code, and OpenCode session histories from one local archive, so you can recover a decision, find a command that worked, or give your current agent the context to pick up earlier work.

Key Features:

  • One search across agents, without remembering which one you used
  • Read the conversation around a match and the original tool output
  • Imported history stays searchable after its source files are gone
  • Runs on your machine, with no account or hosted service
  • Ask your agent to run it with pnpx omnirecall, or install the desktop plugin

View Source | Read the write-up


Svortie

Svortie dashboard screenshot

At XtendOps, building an agent meant assembling it by hand in a clunky builder. Svortie is my answer to that: you ask for what you want, by typing or speaking, and the platform decides which agents, workflow, and schedule to build for you.

I built the whole product myself: auth, billing, sandboxing, and multi-provider AI.

Key Features:

  • Describe what you need and Svortie builds the agents, workflow, and schedule
  • Runs on Anthropic and OpenAI-compatible models, and provider credentials never enter the sandbox
  • Each run is isolated in a Daytona sandbox, with live log streaming
  • Credits charged from each run’s actual cost, through Polar

Tech Stack: SvelteKit 3, Svelte 5, TypeScript, node:sqlite, Tailwind CSS, shadcn-svelte, Better Auth, Daytona, Polar, valibot

Visit Svortie


Sveltest

sveltest.dev screenshot

I built Sveltest for the team at XtendOps while we worked out our testing story. Tests written by LLMs at the time weren’t very good, so the team and their coding agents needed working examples to follow rather than plausible-looking tests that didn’t prove much. It started alongside my post on migrating from @testing-library/svelte to vitest-browser-svelte, and it’s now a public testing resource for the wider Svelte community.

Key Features:

  • Testing documentation and working examples using vitest-browser-svelte in a real browser
  • A shared testing skill for coding agents, plus a pnpx sveltest CLI that works with any AI assistant
  • Minimal mocking: shared validation logic, real FormData and Request objects, and TypeScript contracts
  • Patterns taken from production Svelte 5 apps

Tech Stack: SvelteKit, TypeScript, Vitest, vitest-browser-svelte, Playwright, TailwindCSS, daisyUI

Visit Sveltest | View Source


Model Context Protocol tools

I’ve built 21 MCP servers and tools since January 2025. On 25 September 2026 they had more than 1,400 GitHub stars, 260 forks, and 11,000 npm downloads a month. The numbers change, so the repository list is the source of truth.

Most were experiments, or tools to fill a gap that models and agent clients have since closed. Two are still in daily use:

  • Omnisearch provides one interface for web search, AI answers, and content extraction across several providers. View the repository.
  • SQLite Tools separates read-only, write, schema, and transaction operations for safer SQLite access. View the repository.

I wrote up why those two stuck.

To manage them, MCPick keeps MCP servers and skills in one configuration that works across coding-agent clients.

Explore all MCP repositories


SvelteKit Embed

SvelteKit Embed screenshot

21 components for embedding media in Svelte sites without pasting iframes around: YouTube, Vimeo, Spotify, Bluesky, Threads, CodePen, StackBlitz, and more. Give a component an ID or a link and it handles the rest. I started it in 2021, and it has around 6,800 npm downloads a month.

Key Features:

  • Embeds load as they get close to the viewport
  • Works in Markdown with mdsvex
  • Responsive by default

View the docs | View on GitHub | NPM Package


Svead

Svead screenshot

Svead is used on Ashley Furniture’s home page.

Svelte + Head = Svead. Every page needs the same set of head tags: title, description, canonical link, Open Graph, and Twitter card. Miss one and a shared link shows up as a bare URL. Svead is two components:

  • Head takes one config object and writes the lot
  • SchemaOrg adds typed structured data for articles, products, FAQs, events, breadcrumbs, and more, so a schema mistake fails at build time instead of weeks later in search results

I’ve maintained it since 2022, and it’s now on Svelte 5.

View the docs | View on GitHub | NPM Package


Analytics for this site

This site runs its own analytics rather than a third-party script. The stats page shows live visitors, referrers, and historical trends, and a nightly rollup separates people from bots.

Splitting traffic by browser version showed that roughly half my visitors were software: visitors on months-old Chrome or Firefox mostly arrived with no referrer, while those on current browsers mostly came from search or a link.

Tech Stack: SvelteKit, SQLite, LayerChart

View the stats


Community involvement

  • Svelte Ambassador: recognised by the Svelte team
  • Svelte Society London: co-founder and co-organiser
  • Technical writing: more than 240 public engineering articles
  • Speaking: conference talks, workshops, podcasts, and community events about AI engineering, coding agents, Svelte, and SvelteKit

Technical writing

I publish first-hand engineering guides rather than product summaries. Current highlights include:


Get in Touch

For product engineering, coding-agent infrastructure, Svelte consulting, workshops, or speaking, use the contact form. My main public profiles are:


Stay Updated

If you’re interested in knowing when I publish new projects or blog posts, you can sign up for my newsletter below.

Sign up for the newsletter

Want to keep up to date with what I'm working on?

Join other developers and sign up for the newsletter.

I care about the protection of your data. Read the Privacy Policy for more info.

Copyright © 2017 - 2026 - All rights reserved Scott Spence