Who you are hiring

The proof that I am not just a website guy.

Plenty of people will sell a small business a template. This page is here so you can see what I do the rest of the time: real software, in production, that companies and customers use every day. It is the same person and the same standard behind your site.

Web · iOS + Android · Team product · In production

Ruta

Service management for landscaping and maintenance businesses.

One platform that carries a job from the first rate request to the final payment — quoting, scheduling and dispatch, the crew in the field, and billing. I helped build it, and work across the web app, the AWS backend, the crew app on iPhone and Android, and the customer portal.

TypeScriptReactReact NativeExpoAWSInfrastructure as code
A Ruta Crew visit screen with the crew, an admin note, and the property
The Ruta Crew queue of today's visits with a clock-in button

Four apps over one backend

An office web app, a field crew app on iPhone and Android, a self-service customer portal, and an internal admin console — all working off the same shared data.

Money that moves on its own

Billing is the area I spend most care on: charges that run on schedule without anyone chasing them, and an owner who can see what the book of business is worth.

Built for a truck with no signal

Crews work in places with no coverage, so the field app has to feel no different offline than online and sync the moment signal returns. Making that true is a large part of my work on it.

An integral part of a team product

Ruta is built by a team, and I have been an integral part of it — shipping across all four apps and the backend they share. It is the best example of what I do inside a live product with other engineers around it.

The campaign map of Italy from the Latin practice game
The home screen of the Latin practice game

iPhone, iPad & Android · Client project

Latin practice game

Classical Latin as a Roman-legion quest.

Homeschool and classical students march north from Rōma to Gallia, learning real vocabulary, verb endings, and sentences at every stop. A curriculum wrapped in a game, with a leaderboard that keeps students drilling on their own initiative.

React NativeExpoExpo RouterTypeScriptSupabasePostgreSQLEAS

Built for Jam with Latin.

A curriculum, not a word list

Twelve stops teach declensions, then verbs, then sentences — the order classical teachers use — with camp-outs along the way that review everything so far.

A reason to come back

XP, ranks, and a global arena leaderboard turn solitary vocabulary drilling into a friendly contest, with progress synced across devices.

iPhone · Apple Watch · Widgets

Tap to Tick

A frictionless expense tracker.

Most expense trackers fail for the same reason: logging a purchase is more work than making one. Tap to Tick puts the whole thing on your Lock Screen, your wrist, and your Apple Pay — one shared budget for two people when you want it.

SwiftSwiftUIWidgetKitwatchOSCloudKit
Logging a purchase in Tap to Tick
The Tap to Tick overview screen

Two seconds to log a purchase

A Lock Screen widget, an Apple Watch app, and a Siri phrase all write to the same ledger — so recording a purchase takes about as long as making it.

Your data stays yours

No servers holding your budget and no account to create. Everything syncs through your own iCloud, including an optional shared budget for two people.

Free, all of it

Every feature is free, including the shared budget for two people.

AI

AI that does the work, not just the talking

I have shipped this in production on Ruta: an assistant inside a platform businesses run on. It answers from the company's own data, and it can take actions — with a person in the loop — not just talk about them.

Ruta AI

Service-management platform · web, backend, crew app

  • Answers built from the company’s own records, found by natural phrasing rather than exact keywords
  • It acts as well as answers, and can take a user straight to the right place in the app
  • Draft replies from a customer’s real history, which a person edits or regenerates before sending
  • Available everywhere people already work — the office app and the app in the field

What I would build into yours

Grounded in your data

Answers from your own records rather than the open internet. That is a retrieval problem before it is a model problem, and it is where most of the work goes.

Actions with a person in the loop

Draft, send, approve, schedule — the model proposes and someone confirms. Nothing irreversible happens on its own.

Costs and failures handled

A model chosen per task instead of the priciest one everywhere, timeouts, and errors your staff can actually act on.

AI in the workflow too

Not only in the product: production errors explained into Slack, plain-language summaries on every code change, and internal tooling that saves your team time.

I also set other developers up with AI

Consultation for developers and teams new to it: learning to use AI properly, or getting it into the product you are building. Loops that run on their own, tools an agent can actually use, your codebase's rules written down, prompting, and context engineering.

See the AI tooling

Websites

Sites built the way I build them for clients

kingdom-sites.com

This site · marketing site

Server-rendered for speed, scored on real visitor performance, deliberately kept to static pages with no database behind it. The same setup I build client marketing sites on.

Next.jsReactTypeScriptTailwindVercel

Prayer

This site · Romans 10:14 prayer meetings

A casual mini-site for a weekly prayer-meeting initiative for the unreached world — how a night runs, sample guides to download, a leader brief, and links to pray and give. Its own look and navigation, built as a small self-contained site inside this one.

Visit the site

Ministry

This site · video pages in two languages

Short hand-drawn walkthroughs of books of the Bible, in English and Bangla. Its own look and navigation, a custom video player with a language switch, and the Bengali script shipped with the page so it reads the same on every device.

Visit the site

And a product page for everything I ship

Every product above gets its own page to sell it.

How long it usually takes

From first email to launched.

A website

About 2 weeks*

An app

30 days*

* Assuming the direction, graphics, and content come from you before the build starts, or reach me as it goes. Time spent waiting on those pushes the date out with it — and it depends on how complex the app is.

My tools

The kit I build with.

Languages and platforms, the cloud services behind them, and the AI work — for developers, and just as much for anyone doing marketing, email, SEO, or day-to-day task management who wants a hand getting AI genuinely useful.

  • Swift
  • SwiftUI
  • TypeScript
  • JavaScript
  • HTML
  • CSS
  • Stylesheets
  • Tailwind
  • React
  • Next.js
  • React Native
  • Expo
  • Node.js
  • SQL
  • iOS
  • Android
  • Apple Watch
  • Websites
  • Web apps
  • Customer portals
  • Admin dashboards
  • Widgets
  • Responsive design
  • Accessibility
  • App Store releases
  • AWS
  • Lambda
  • DynamoDB
  • Supabase
  • PostgreSQL
  • Cloudflare
  • Cloudflare Workers
  • Vercel
  • CloudKit
  • Infrastructure as code
  • APIs
  • Authentication
  • Payments
  • Offline sync
  • Push notifications
  • Mapbox
  • Apple Maps
  • Google Maps
  • Geofencing
  • Live location
  • Search
  • Error monitoring
  • CI/CD
  • TestFlight
  • Xcode
  • GitHub
  • Claude API
  • Amazon Bedrock
  • AI assistants in products
  • Answers from your own data
  • Draft replies
  • AI in the workflow
  • Agent tooling
  • Model choice and cost control
  • Evaluating what it gets wrong
  • AI coaching for developers new to it
  • Claude Code
  • MCP servers

Want this kind of attention on your business?

Most of my clients are local service businesses on a monthly partnership — I run everything that gets them found and called. Start with a free look at where you stand.

Bigger build in mind? Email me at thomas@kingdom-sites.com