Services

We design it, build it, ship it, and look after it.

One small team covers the whole job, from the first sketch to the software running in production years later. We work from West Gippsland with clients across Melbourne and Australia. Here's what that looks like.

What we do

1. Design & UX

We like to get something visual in front of you quickly. Sometimes that's a Figma mockup, though these days it's more often a clickable prototype we scaffold with AI tools. It doesn't actually work, there's nothing behind it, but you can click through it and get a real feel for how the thing might behave.

Then we show it to you, take your feedback, and iterate. Getting the visual side roughed out early tells us a lot about how the rest of the system needs to look and work.

For bigger or more involved jobs we'll usually write up a short brief first, the requirements and a rough design spec, depending on how complex it is. We try not to get bogged down in design though. The goal is to agree on the shape of it and get moving, and we keep working closely with you, iterating on the design and the build as we go.

  • Figma
  • Design systems

2. Backend & APIs

This is usually where a project really takes shape. We start with the database, modelling your actual data, processes and workflows, then layer REST and GraphQL APIs on top. Most of the time that's Ruby on Rails or Node.js, occasionally PHP, on PostgreSQL or sometimes MySQL.

The design work pays off here, because by this point we already know what data we need to collect and how. We nearly always build a back-office admin UI as well, so you and your team can get in and see what's actually in the database.

Get the backend right and it sets the tone for the whole build. We aim for backends that are quick, easy to extend, and a genuine model of how your business works. That covers the less glamorous parts too: background jobs, mailers, push notifications, and getting authentication and permissions right, which matters more than almost anything.

We take security seriously and stick to the practices that keep it dependable: full test suites, error monitoring, and automated backups on everything we run.

  • Node.js
  • Ruby on Rails
  • PostgreSQL

3. Web applications

On top of those backends we build the web apps and dashboards your users and staff actually work in. They're responsive, so they adapt to desktop, tablet and phone, and we'll handle light and dark themes where it makes sense. We test across a range of real devices and browsers, not just whatever's on our machines.

These days that's usually React, often with a framework like Next.js, Remix, React Router or TanStack Start, picked to suit the job rather than out of habit.

For anything public-facing there's a longer list of things to get right, and we do: SEO, performance (CDNs, caching, the usual optimisations), accessibility and internationalisation where they're needed, and sensible defaults for security and privacy. When it's time to ship, we're comfortable across the common frontend hosts like Cloudflare, Netlify and Vercel.

  • React
  • Remix
  • TypeScript

4. Mobile apps

We build cross-platform mobile apps for phones and tablets, usually with Ionic, Capacitor or React Native. We've done the traditional native thing too, Objective-C, Swift, Java on Android, but it's not really what we chase. We'd rather reuse our web skills, which is why we lean on Capacitor and React Native.

That doesn't mean staying at arm's length from the device. We've built in subscriptions and payments, location tracking, signing on glass, the hardware bits that make an app feel like a proper app.

Where it gets interesting is apps that compile to both web and mobile from the one codebase. Sharing that much between platforms takes a bit of skill to get right, handling different screen sizes properly and dealing with touch and mouse input without it feeling bolted on. We've done a fair bit of it.

  • Ionic
  • Capacitor
  • React Native

5. Cloud & DevOps

We set up and look after the infrastructure that gets your software from a commit to production. That's mostly GitHub Actions for CI/CD, with deployment tools like Kamal on the Rails side.

We use Docker and Ansible to build infrastructure as code, so a developer's machine and the CI environment can mirror production instead of being a rough approximation of it. We'll set up staging and preprod environments too, so changes get a proper run before they go live.

Our pipelines do a lot before anything ships: unit, integration and end-to-end tests, formatters and linters, and security and audit checks. Lately we've started bringing AI agents into that process as well, for an extra pass on security and correctness.

  • Docker
  • GitHub
  • DigitalOcean

6. Support & monitoring

Shipping isn't the end of it. Once your software's live we keep an eye on it with monitoring and error reporting tools, so we often know something's gone wrong before you do, and we've got the detail in hand to start fixing it straight away.

Most of our support happens during business hours, Australian eastern time, but we're available around the clock for anything urgent, like a production system going down. You can reach us by phone or email, and we'll respond quickly when it matters. Urgent support always jumps the queue, ahead of whatever else we're working on.

Sometimes that's just answering a question. Other times it's digging into a bug in the software or the database, writing a fix and getting it deployed. And if it's a server that's fallen over or stopped responding, we'll get in and sort out the infrastructure too.

  • Monitoring
  • Error reporting
  • On-call 24/7

7. A second opinion

Now and then someone wants a straight answer rather than a build. A read on their architecture, a hand with a hire, or a second pair of eyes on a project that's stalled. Think of it as a micro-CTO arrangement, chipping in to help a team get its bearings.

It's not the bulk of what we do, we're builders first, but if you need someone in your corner for a bit, we're happy to have the conversation.

  • Consulting

How we work

1. We start with the problem

Before any code, we get clear on what you actually need and what success looks like. Sometimes the honest answer is that you need less than you thought.

2. We prototype, then build

We get something in front of you early, refine it until it feels right, then build it properly on a stack we know will hold up.

3. We ship and stay on

We put it live on proper infrastructure with monitoring, then keep working on it. Most of our relationships run for years, not weeks.

Got a project worth doing properly?

Tell us what you're building. We'll give you an honest read on whether we're the right team for it, no sales pitch.