Services

What we do

Software, automation and operational systems, delivered one way: start from the data you already have, check it, and automate only what can be trusted.

Where to start

A Systems Health Check

Something in your workflow or systems is unreliable or wasteful, and nobody can say exactly what. A Health Check takes one narrow problem, follows it across the handful of systems and people it runs through, and tells you what is wrong and what to do first. It takes a few working days.

We agree the boundary in writing before work starts. Anything we notice outside it is written down for you, and the work does not grow without your say.

Services

What we build and run

How it connects

Built on the tools you already use

We do not start by replacing your software. We map what you have, show the gaps, connect what you keep, and build only what is missing. It runs on your own accounts.

  1. Map what you use

    Every tool, sheet and export, by department and by who relies on it, from what you tell us and read-only access.

  2. See the gaps

    What is missing, duplicated or done by hand, ranked, with what each one costs you and the quick fixes.

  3. Connect, read-only first

    Keep what works, configure what is close, connect it, and replace a tool only when nothing else will do.

  4. Build what is missing

    Pipelines with checks, agents with written limits, and an app with a page for each role.

  5. Run it on your accounts

    Your AI model and plan, your repository, your hosting and your logins. Agents reach your tools through connectors you grant and can take away.

  6. Bring your people in

    Each role gets its own seat in plain English. We hand it over, or keep running it with you on a managed basis.

One model of your business, between your tools and your people

Your tools stay where they are. We connect them into one model of how your business runs: the sites, shifts, bookings, orders and customers, and how they link. People and agents work from that model, and every change goes back to the tool it belongs in, after a person approves it.

  1. Who works from it

    • People: decide, each role has its own seat.
    • Agents: draft, prepare, check and draft.
    • Your tools act: write back, only after approval.
  2. Your business, as one model

    Site, Shift, Booking, Customer, Order, Supplier, Stock, linked. Actions such as approve order, flag no-show, remind rota wait for a person.

    Site object: status open; takings from the till; rota due Friday; stock checked today; needs you an order.

  3. The tools you already use

    Till, Bookings, Rota app, Accounts, CRM, Spreadsheets, Email.

An illustration on a made-up business. Not a record of any client's system.

your-business.systems

what it runs on

illustrative
  • GitHubcode and reviewed changes
  • Cloudflarepages and hosting
  • n8nworkflows with an approval step
  • Your AI planthe model you choose
  • Your CRM and tillkept, and connected
  • Your owner appone seat per role

Totalon your accounts

Each line is your account, billed to you by its vendor. You keep the keys.

Ways to work with us

The pieces that build and run it

stack-audit.yamlIllustration
# each tool gets one verdict, in this order of preference
till:         KEEP      reads cleanly; export nightly
bookings:     CONFIGURE no-show field unused; switch it on
stock_sheet:  CLEAN     three versions; agree one
rota_app:     CONNECT   due dates feed the managers' pages
order_emails: AUTOMATE  drafted weekly, a person approves
paper_logs:   REPLACE   a short form, only if asked
ai-setup.yamlIllustration
model:      the AI plan you choose, on your account
surfaces:   chat beside each page; Claude Code for builds
connectors: mail, files, CRM: granted by you
limits:     drafts only; a person sends
revoke:     any time, from your own settings
See all 13 pieces
seats.yamlIllustration
owner:        everything, plus agents and pipelines
ops_lead:     every site: what is late, what waits
site_manager: their site, their shift, their tools
staff:        nothing new: their usual apps
.github/workflows/checks.ymlIllustration
on:     every pull request
types:  typecheck
tests:  unit and browser tests
design: tokens only, contrast 4.5:1
merge:  when green and a person approves
weekly-order.n8nIllustration
Schedule (Mon 06:00)
  → Read till and stock exports
  → Check rows        # blank prices, missing days
  → If problems: flag them for the manager
  → Draft the order   # each line linked to its source
  → Wait for approval # nothing is sent before this
  → Send to the supplier
deploy.tomlIllustration
host:     Cloudflare, on your account
pages:    pre-rendered, served close to you
gate:     no deploy until checks pass
collects: nothing unless you decide
rollback: the last good version, one step
ontology.yamlIllustration
# the things the business runs on, and how they link
site:      has shifts, stock, bookings
order:     placed by a site, to a supplier
customer:  books, visits, opts in or out
each_link: names the system it came from
departments.yamlIllustration
# who owns which data
front_of_house: bookings, covers, reviews
kitchen:        stock, orders, waste
finance:        takings, invoices, payroll prep
marketing:      offers, a mailing list with consent
owner:          one view across all four
checks.pyIllustration
def check_stock_sheet(rows):
    """Flag what a person should look at."""
    flags = []
    for row in rows:
        if row.count < 0 or row.price is None:
            flags.append(row)
    return flags  # nothing fixed silently
osgiliath.yamlIllustration
what:   a technology and operations consultancy
lead:   the founder, on every engagement
agents: prepare, check and draft
people: approve what matters
start:  a Systems Health Check
agent-role.mdIllustration
role:     stock checker
may:      read the sheet, flag gaps, draft the order
may_not:  send, pay or change a booking
approver: a named person on your team
log:      every run, with its sources
stack.mdIllustration
interface:  React and TypeScript: fast pages, tested before they ship
checks:     Python: rules short enough to read and audit
automation: n8n: workflows with a step where a person approves
changes:    GitHub: every change reviewed, with its checks shown
hosting:    Cloudflare: static pages served close to you
data:       stays in your systems or a workspace that is yours alone
site-build.pipeline.yamlIllustration
brief:    goals, pages and the claims each page may make
copy:     written and signed off before design
design:   tokens first: colour, type and spacing in one file
imagery:  Blender renders and generated video, directed and checked
code:     React and TypeScript, written with Claude Code, every page pre-rendered
evidence: screenshots, contrast and browser tests on every change
live:     Cloudflare, after a person approves the evidence

Illustrations on made-up examples. Not records of any client's system.

Tell us what you're working on

Email is the best way to reach us. A few lines on the problem and the systems involved are plenty to start with.