Enterprise application architecture · 100% onshore
Enterprise application architecture that stays clean as it grows
The shape of your software decides how fast it can change. We lay it out in clear layers, write the design rules down as automated checks, and keep it tidy long after launch. It's how two of our engineers, working with AI agents, rebuilt a manufacturer's whole ERP in about five months.
Architecture that stays clean
The design rules are written as code, so shortcuts can't slip in
Every system starts out tidy. It gets messy one shortcut at a time. On Quest Industries' ERP, the design rules run as automated checks on every change, whether an engineer or an AI agent wrote it. Here are three kinds of shortcut they stop.
- Layers: screens go through the API, and only the business logic touches the database
- Names follow one pattern, so anyone can find anything
- Errors come back in one standard shape
- Deletes follow the rules, so nothing is left orphaned
- Every AI operation is registered, with its model named and its cost tracked
- Every screen passes color-contrast checks in light and dark mode
- Every screen works from phone to ultrawide, and by keyboard
- shortcut 01
A quote screen asks the database directly
Blocked by: Layers: screens go through the API, and only the business logic touches the database
Fix: Go through the API to the quote handlers, which own the database work.
- shortcut 02
An estimate calls an AI model on its own
Blocked by: Every AI operation is registered, with its model named and its cost tracked
Fix: Register it as a named AI operation, so its model is chosen on purpose and its cost is tracked.
- shortcut 03
Deleting a mold job leaves its component jobs behind
Blocked by: Deletes follow the rules, so nothing is left orphaned
Fix: Delete the job and all of its sub-jobs together, so no orphans are left.
design-rule check files that fail the build when a rule is broken
back-end tests, roughly, including integration tests on a real PostgreSQL database
front-end tests, roughly, run on every push
warnings allowed: the build treats every warning as an error
Quest Industries ERP, 2026. The three shortcuts are examples of what the checks stop; the rules are the real ones.
One system, clear boundaries
Three systems became one enterprise application
Quest Industries, a Michigan mold-tooling and machining shop, ran on an old ERP, a separate workflow platform and a stack of estimating spreadsheets, and people retyped data between them. Two Baytech engineers working with AI agents replaced all three in about five months, with one clean structure underneath: every area built the same way, all talking through the same front door.
- ✓Quoting
- ✓Estimating
- ✓Jobs
- ✓Scheduling
- ✓Purchasing
- ✓Shipping
- ✓Inventory
- ✓Quality
- ✓Workflows
separate systems replaced by one
records moved from the old systems in 7.5 minutes, with zero errors
old quotes recalculated to prove the new prices match within cents
feature areas, all built on the same pattern
Quest Industries ERP, built by Baytech in 2026.
Architectures We've Built, andWhy
One well-organized application or dozens of services: real clients, and the shape that fit them.
Quest Industries
One application, 22 feature areas
Problem: Quest ran on an old ERP, a workflow platform and estimating spreadsheets that didn't talk to each other.
What we did: Built one application with one structure: Angular screens, one API, .NET business logic, PostgreSQL, and a queue for background work. 75+ design-rule check files keep every area consistent.
Result: In daily use for quoting and jobs, built by two engineers working with AI agents in about five months.
LeadStack
50+ services, every event recorded
Problem: Prime, the CRM we'd built for lenders, was a desktop system that could serve only one company at a time.
What we did: Rebuilt it for the web as more than 50 containerized services on Kubernetes, each scaling on its own, with every event recorded permanently.
Result: Many companies on one platform, a full audit trail, and the ability to replay any lead's history.
Sell Your Boards
A clean three-tier web app
Problem: Orders ran through email, spreadsheets and shipping labels bought by hand.
What we did: Three tiers: a Next.js front end, a .NET API and PostgreSQL. The front end's code for calling the API is generated from the API itself, and side jobs like emails run as events.
Result: Launched with zero downtime: 47 orders and $4,171.11 paid out to sellers in the first week.
American Allied Health
One back end for web and mobile
Problem: Their new online school had been started, then scrapped, twice with other firms.
What we did: One back end serving a public site, student, partner and admin portals, and Android and iOS apps, all running in containers on Kubernetes.
Result: Delivered in 7 months. Average monthly revenue rose more than 20% after launch.
Petra Medical College
Three portals, one back end
Problem: An outside firm had worked on the project for two years with little progress.
What we did: Admin, partner and student portals on one shared back end, planned across more than 300 screen designs.
Result: Delivered in 5 months, on time and under budget.
Baytech's own platform
What we run our own company on
What it covers: Our CRM, projects, time tracking, reporting and client portal.
How it's built: An Angular front end and a .NET back end in clear layers, one handler per task, and background work on a shared queue so each job runs once, however many servers are up.
Why it matters: Its design rules run as automated architecture tests too. We hold our own software to the same standard as yours.
How we work
How we design enterprise application architecture
Most businesses don't need the fanciest architecture. They need one that fits how they work and stays easy to change. Here's how we get there.
- 01map
Map the business first
The software's parts follow how your company actually works. For Quest, that was quote, job, schedule, purchase, ship.
- 02shape
Pick the right shape
One well-organized application suits most businesses: simpler to build, test and run. Separate services pay off when parts must grow on their own, as in LeadStack's 50+ services. Serverless suits work that comes in bursts, if you accept tying yourself to one cloud.
- 03layers
Draw clear layers
Screens, one API, business logic, data. Each layer only talks to the one below it, so a change in one place doesn't ripple everywhere.
- 04rules
Write the rules as tests
Layering, naming, error handling and delete rules become automated checks. On Quest ERP, 75+ check files fail the build when a rule is broken.
- 05queue
Move slow work off the main path
Emails, imports and AI jobs go on a queue, so screens stay fast and no work is lost if a server restarts.
- 06we run it
Run it and keep it clean
Automated releases, Sentry error tracking, uptime monitoring and automated tests. We host and manage many of the systems we build, so we live with our own architecture.
From a client
Quest Industries' V.P. of Operations, after months of twice-weekly working sessions on the new ERP:
I trust you guys after working with you for a while ... You're not trying to upsell us or underplay something 'cause you don't feel like doing it.
Is your system getting harder to change?
Tell us what you run today. We'll look at how it's put together and tell you plainly what to keep, what to fix and what it would take.
Talk to an architectCompany Facts
& Figures
Our Office
