Daemon Labs. Software that keeps working.

Custom software for work that shouldn’t be manual.

I build internal tools, client portals, booking systems, dashboards and automation around how your organization already works. You own the code, and it runs where you control the data. Four of my projects are public on GitHub, each with a live demo below.

Why “Daemon”? In computing, a daemon is a program that runs quietly in the background and keeps things working. That’s the job.

Open-source CSS library

Lume CSS

A minimal CSS library for calm, readable interfaces. One stylesheet with design tokens, a real dark mode and accessible components. Every page of this site is built with it.

Live componentsRendered by Lume, right here
ActivePendingOverdueDraft

Press Tab to see the focus states.

  • Token-based theming. Change a few CSS variables and the whole interface follows.
  • Dark mode with real elevation. Page, surface, card and overlay each get their own shade.
  • 30+ components. Modals, drawers, tabs, toasts, tables, steppers and more.
  • Accessible by default. Focus rings, AA contrast and reduced-motion handling built in.
View on GitHub Read the docs CSS, vanilla JS, MIT licence
Source-available app

Seatbookr

Desk booking for hybrid teams. Staff book a desk on an interactive floor map; admins manage locations, layouts, people and booking rules.

Head office, floor 2

Pick a free desk to book it. Striped desks are taken.

  • Interactive floor maps with zones, amenities and a drag-and-drop editor.
  • Booking rules for advance windows, weekly caps and group-only desks.
  • Check-in with auto-release, so unclaimed desks free up.
  • Microsoft Entra ID sign-in, Outlook calendar events, Slack and Teams alerts.
View on GitHub CodeIgniter 4, MySQL, vanilla JS, installable PWA, PolyForm Noncommercial licence
Open-source app

TicketHub

A self-hosted IT service desk for teams that want proper service management without the enterprise price tag. One application, no queue workers, no build step to deploy.

My queue4 open

    SLA clocks are live. Resolve a ticket before it breaches.

    • Real SLAs with business hours, plus problems, changes and assets.
    • Self-service portal with a knowledge base and service catalogue.
    • Email in and out, automations, webhooks and a JSON API.
    • Single sign-on and two-factor authentication built in.
    View on GitHub PHP 8.3, CodeIgniter 4, MySQL or MariaDB, MIT licence
    Open-source app

    UpWatch

    Uptime monitoring and public status pages you host yourself, so your team keeps full control of the infrastructure that reports on your infrastructure.

    All systems operationalLast 60 days
    • HTTP, TCP, SSL certificate and ping checks on your schedule.
    • Incident management with timeline updates.
    • Scheduled maintenance announcements.
    • Uptime history and response-time graphs.
    View on GitHub CodeIgniter 4, HTMX, Alpine.js, MIT licence
    AI-assisted development

    Built with AI.

    Reports someone downloads by hand every morning, forms re-keyed from one system into another, old scripts nobody dares touch: that work can run on its own. I use Claude Code to build the automation quickly without cutting corners: work out how a system behaves, prototype against it the same day, then harden the prototype into something people can rely on.

    Nightly jobs SimulationIdle. Next run at 02:00
    Done
    64 / 64
    Retries
    1
    Clock
    02:31:08

      Sample data only: made-up jobs and numbers, not a real system. It shows the kind of dashboard I build: scheduled runs, retries, a re-login when a session expires, and a live log.

      Report and data pulls

      Scheduled services that sign in to a web system, run the exports people download by hand, and file them, with retries, run history and a small dashboard.

      Data-entry automation

      Scripts that fill in the forms people re-key every day, with a log of every change.

      Legacy service replacement

      Old background jobs nobody can maintain, documented from what’s running and rebuilt as small, supported services.

      • A probe for every question. Small throwaway tools, each built in minutes to test one idea.
      • Measured, not guessed. A quick counting probe often finds the big speed-up that guessing misses.
      • Days, not months, from first probe to a production service, for focused tools.
      • Built to be handed over: single executables, plain logs and documentation your team can read.
      Read how I build these Need something similar? Go, PHP, SQLite. Built with Claude Code.
      Work with me

      Your app could be next.

      The same approach goes into client work: plain, durable technology, careful interfaces, and code you own outright. Tell me what's slowing your team down.

      Internal tools

      Requests, approvals, case tracking and scheduling, shaped around your process.

      Client portals

      A secure place for customers or members to submit, track and download.

      Dashboards

      Your numbers in one place, updated automatically and exportable.

      Booking systems

      Rooms, people, vehicles or equipment, with your rules built in.

      Integrations and automation

      Connect the tools you already pay for, and script the downloads, uploads and re-keying people do by hand.

      Forms and intake

      Replace paper and PDF forms with ones that check themselves and route to the right person.

      1. DiscoveryHow the work flows today.
      2. Spec and quoteScreens, scope, one fixed price.
      3. Build in cyclesA live preview from early on.
      4. Launch and hand offTraining, docs, full source.

      How we'd work together

      Fixed-price project

      For a new app

      Discovery, a written spec and one agreed price for the first release. Later phases are quoted the same way, so the budget doesn't drift.

      Ongoing support

      For apps already running

      A monthly plan covering fixes, security updates, small features and questions, with a set response time.

      App rescue

      For inherited or ageing apps

      An audit first, then a plan to stabilise, secure and document what you have, whoever built it.

      Based in
      Ontario, Canada
      Hours
      Eastern Time
      Usual stack
      PHP, CodeIgniter, MySQL, vanilla JS, Go
      Hosting
      Your servers or Canadian hosting
      Enter your name.
      Enter an email like [email protected].
      Add a sentence or two.
      or email [email protected]

      Your message comes straight to me. It isn't added to a mailing list or shared with anyone.