Skip to content
Build

Custom Software Development

Kornspire designs, builds and maintains custom software and information systems — from domain modelling and architecture through delivery, integration and long-term maintenance.

The problem

When off-the-shelf software starts costing more than it saves

Most teams do not set out to build software. They reach for it when the packaged tool has been bent so far out of shape that the workarounds have become the process — spreadsheets bridging two systems, a person re-keying the same record twice, a report nobody trusts. At that point the licence fee is no longer the real cost.

Signals you have this problem

  • Critical work happens in spreadsheets that sit outside every system of record
  • The same data is entered more than once because two tools cannot talk to each other
  • Reporting needs manual reconciliation before anyone will act on it
  • A process your business competes on is constrained by a vendor's roadmap

Our approach

Model the domain first, then write code

We start by mapping the real process — its states, its exceptions and the decisions people make inside it — and turning that into an explicit domain model. Architecture follows from the model: clear module boundaries, an explicit data contract, and integration points defined before the first screen is designed. That order is what keeps the second year of a system cheaper than the first.

Discovery and domain modelling

Process mapping, entity and state modelling, edge-case capture, and a written specification your team can challenge before anything is built.

Architecture and technical design

Module boundaries, data model, API contracts, authentication and authorisation design, environment and deployment topology.

Application engineering

Backend services, business-rule implementation, workflow and approval engines, scheduled jobs, reporting queries and administrative tooling.

System integration

Connecting to ERP, accounting, payment, messaging and government or partner APIs, with retry, idempotency and reconciliation designed in.

Migration from legacy systems

Data extraction and cleansing, mapping rules, dry-run migrations, parallel running and a documented cut-over plan with a rollback path.

Maintenance and evolution

Dependency and security updates, defect resolution, performance work and incremental feature delivery under an agreed service commitment.

Outcomes

What changes for you

  • One system of record instead of several partial ones
  • Manual re-entry and reconciliation steps removed from daily work
  • Business rules written down and enforced in software rather than held in people's heads
  • A codebase your team can read, test and extend without the original authors

Deliverables

What you receive

  • Written functional and technical specification
  • Architecture decision record for every significant choice
  • Source code in your own repository, under your ownership
  • Automated test suite and CI pipeline
  • Deployment runbook and environment configuration
  • Handover documentation and a walkthrough for your team

Evidence

What you can check before you call

Each item below links to something you can verify yourself — our own product, this website, or the engineering playbook we publish.

How it runs

The engagement, step by step

  1. 01

    Discover

    Interviews, process walkthroughs and data review. Output is a written specification with the exceptions named, not just the happy path.

  2. 02

    Design

    Domain model, architecture, data model and interface design, reviewed with you before build. Decisions are recorded with their trade-offs.

  3. 03

    Build in slices

    Vertical slices that each reach a working, demonstrable state. You see and use the system while it is being built, not after.

  4. 04

    Harden and hand over

    Performance, security and accessibility passes, migration rehearsal, documentation, then either handover to your team or a maintenance agreement with us.

Typical stack
  • TypeScript
  • .NET
  • Node.js
  • Python
  • PostgreSQL
  • SQL Server
  • Redis
  • Docker
  • REST and GraphQL APIs

Typical engagements

What this looks like in practice

Illustrative shapes of work rather than client stories. We publish client work only with the client's consent and with real figures, so these describe the problem and the approach instead.

Operations platform replacing a spreadsheet estate

A single application covering intake, assignment, status tracking and reporting, with a permission model that reflects the real organisation chart.

Integration layer between systems that will not be replaced

A service that owns synchronisation between an existing ERP and newer tools, making the contract explicit and the failures visible.

Compliance and audit tooling

Append-only records, approval chains and exportable audit trails for processes that have to be defensible after the fact.

Answers

Custom Software Development: questions

What is custom software development?

Custom software development is the design, programming, implementation and maintenance of an application built for one organisation's specific processes, data and constraints, rather than a general-purpose product adapted to fit them.

How is custom software different from configuring an existing product?

Configuration adapts your process to the product's model; custom software encodes your model directly. Configuration is usually cheaper and faster, so it is the right answer whenever your process is not a differentiator. Custom development becomes worthwhile when the process is something you compete on, when integration and data ownership matter, or when the accumulated workarounds already cost more than a purpose-built system would.

Who owns the code Kornspire writes?

You do. Work is delivered into a repository you control, with the licence position for every third-party dependency documented. Nothing in a delivery depends on continued access to a Kornspire-hosted account or a proprietary runtime unless you have explicitly chosen a managed arrangement.

Can Kornspire take over software that another team built?

Yes. That starts with a code and infrastructure audit: dependency health, test coverage, security posture, deployment path and the risks that come with them. You get a written assessment with a prioritised remediation plan before any code changes, so the decision to continue, refactor or replace is an informed one.

How do you keep a custom system from becoming the next legacy system?

By treating documentation, automated tests, dependency updates and architecture decision records as part of delivery rather than optional extras. A system becomes legacy when nobody can safely change it — so the deliverable is not just working software, it is software your own team can still change in three years.

Deep dives

5 detailed articles on this topic

Longer technical pieces, each covering one specific decision inside this service. Written to be argued with, not skimmed.

Software delivery6 min read

API design you will not have to version twice

An API is a promise you cannot take back. Once someone integrates, every field you named, every error shape you returned and every implicit ordering becomes something they depend on — usually including the parts you considered internal detail.

Software delivery6 min read

Build or buy, decided on the part that actually differs

The decision is usually framed as a cost comparison and decided on a licence fee, which is the smallest number involved. The questions that determine the outcome are whether this capability is where you compete, what the integration really costs, and what happens the day the supplier changes their pricing.

Software delivery6 min read

Modernising a system that cannot stop running

The system everyone wants replaced is also the one the business runs on, which is why the rewrite gets proposed every eighteen months and abandoned every twenty-four. The alternative is unglamorous and works: replace it a piece at a time, with the old system running until each piece is proven.

Software delivery6 min read

What you should own when a build ends

The test of a completed software project is not whether it works. It is whether a different team could take it over next month without asking the original supplier for anything. Most projects fail that test, and the failure is usually discovered at the exact moment the relationship has already deteriorated.

Software delivery6 min read

Writing a scope that survives contact with the build

Most software disputes are not about quality. They are about two parties holding different beliefs about what was agreed, both sincerely, because the document said "user management" and neither wrote down what that included. The fix is not a longer document — it is a differently shaped one.

Considering custom software development?

Tell us the outcome you need and the constraints you are working inside. You will get a straight answer about whether this is the right service, a smaller one, or none of ours.

Prefer email? hello@kornspire.com