The toolkit behind our systems
Our own building blocks, refined over twenty years: data handling, reporting, courier labels, marketplace links and box packing, so each new system starts ahead.
- 20 yearsof continuous development
- 500+changes since 2014
- 3,000+packing test cases matched
The client
More Input's own work, used inside the systems we build for clients.
The challenge
Every business system needs the same foundations: sign-in and permissions, imports and exports, reports, background jobs and connections to other services. Writing them again for each client is slow, and every fresh copy brings fresh bugs. We would rather solve each problem once, properly, and keep improving the answer.
What's in it
A family of shared packages, used across our client systems and updated as they are:
- Fast saving of thousands of records at once, which keeps large imports and nightly jobs quick
- A reporting engine for totals, breakdowns and comparisons over any period
- One model for users, permissions, email templates and stored files, shared by every system
- Courier labels and Royal Mail despatch files
- A complete connection to Linnworks, produced automatically from Linnworks' own published documentation, so it can be brought up to date in minutes
- Accounting, payment, mapping and barcode helpers
Packing boxes, in three dimensions
Our packing engine works out which box an order fits into, how to split it across several boxes, and where each item goes. In 2026 we rewrote it from scratch from a published algorithm, then checked it against an established engine on thousands of test cases: the answers were identical. It is now being offered as a pay-as-you-go online service (in progress).
Keeping it current
The toolkit has moved with the technology, from its beginnings in 2006 to the latest Microsoft platform today. It now works on both the old and the new, so client systems can move across with very few changes.
Technical details
Common is a set of VB.NET NuGet packages (23 projects, 512 commits since 2014, now at 5.1.x on a private Azure Artifacts feed), descended from an earlier library dating from 2006. It dual-targets .NET Framework and .NET 10, and MoreInput.Web.MvcCore mirrors the MVC 5 API on ASP.NET Core so apps can migrate with minimal changes.
Highlights: EF bulk insert/update/delete with dependency ordering and a hash-join matcher; composite group-by analytics; LINQ expression-tree rewriting; a Linnworks REST client generated by our own documentation scraper; Royal Mail label layout and BIG pre-advice files.
Multiverse is our Cosmos DB data layer: a tenant-scoped context, partition strategies, a LINQ layer over the Cosmos SDK provider, an in-memory store for fast tests and a Roslyn source generator for strongly typed IDs. MoreInput.BoxPacking is a pure C# EB-AFIT implementation for .NET 10, thread-safe with time limits; the packing service adds API keys, metering and prepaid Stripe credits.
Other case studies
Catching mistakes before a person has to
How we've automated every stage of building software, from requirements to the live system, so fewer mistakes reach a developer and development costs less.
Building AI into products, with the costs and risks kept in check
Two of our own products in development: help for schools planning support for children with special needs, and an AI review panel for novelists' manuscripts.