Case study — Northbaseworks Control Center
Real monitoring, without an enterprise budget.
The Northbaseworks Control Center is the console we use every day to run our own apps, Scavenger and Stormline Weather, on iOS and Android. It's our observability layer — in plain terms, seeing what your software is doing and what it is costing you, in one place. It's also proof of how we operate, and the standard we build to for clients: usage and cost at a glance, alerts that reach a person, safety controls that work without an app-store release, and support requests that don't get lost. The same setup can be put in place for your applications.
The observability gap
01 — what small teams are missingA small or midsize business running a real application has the same questions as a large one. Is it working? Is anything breaking? What is it costing, and is that cost about to jump? When something goes wrong, will a person hear about it quickly?
The tools built to answer those questions are usually priced and staffed for enterprises, with per-seat fees, per-host fees and a dedicated team to run them. So smaller organizations often go without: a few vendor dashboards nobody checks, a support inbox, and a bill that is the first sign of trouble. Application monitoring for a small or midsize business shouldn't have to be a choice between an enterprise contract and guesswork.
Proportionate, cost-aware, built from proven parts
02 — our approachOur approach is to start from what each app actually needs to watch, and build only that. The heavy lifting comes from proven building blocks: commercial-grade cloud hosting and its own usage and billing data, a managed paging service for urgent alerts, standard business email, and single sign-on for the console itself. The custom part is the layer that pulls those numbers into one place and decides what is worth a person's attention.
That keeps the running cost small and the moving parts few. It also means the alerts, thresholds and controls exist because a real app needed them, not because a product checklist said so.
What it covers
03 — one console, every appThis is mobile app monitoring and cloud cost visibility in one console. Everything is organized by app and then by platform, with an app switcher at the top and an iOS / Android filter wherever the numbers differ by platform. iPhone and Android numbers are never blended into one figure where that would mislead, such as a crash rate.
Usage per feature, error rates, crash figures and request volume for each app.
AI cost by feature or platform, estimated from each request's real usage, hosting costs against a monthly budget, and usage allowances projected to month end, split by app.
Spikes, cost limits, unusual traffic and crash thresholds, each routed to email or on-call paging.
Usage ceilings, per-platform pauses, forced updates and kill switches that take effect without an app release.
In-app feedback, crash and hang reports, and a sudden-burst alert for feedback spikes.
Contact-form and in-app requests with a status, internal notes and account lookup.
A daily email brings it together: one report for every app and the infrastructure behind them, sent even on quiet days, with a "Needs attention" list at the top. A monthly report compares each month with the one before.
AI and API cost controls that don't wait for a release
04 — proportionate responseBoth apps use paid AI, and every new AI request costs real money. The obvious protection is a single off switch. We built a layered response instead, so the size of the reaction matches the size of the problem:
- a daily limit per account (in dollars on Scavenger), and on Stormline a daily ceiling for the whole service;
- on Scavenger, AI features held back for new or unverified accounts;
- one feature paused on one platform, with a message users actually see;
- and a full kill switch, kept for the worst case.
All of it is changed live from the console and reaches the apps within about a minute, without waiting on an app-store review. The same goes for in-app notices and requiring a minimum app version. On Stormline, each daily ceiling (AI summaries, forecasts and radar) warns by email at 80%. When one is reached, that service holds for the rest of the day: new AI summaries are refused, forecasts and radar fall back to what's already cached where they can, and the on-call page goes out.
Controls are deliberately hard to misuse. Lowering a limit is one step; raising one needs a fresh sign-in. Every change is recorded, so there's an audit trail to look back on. And no alert flips a control on its own: the system tells a person, and a person decides.
On-call alerts that reach a person
05 — routed, not just loggedMonitoring that nobody sees isn't monitoring, and incident response can't start until someone knows. The console checks its conditions every few minutes and routes what it finds: email for a record of everything, and push notifications to a phone through a managed paging service for anything urgent. The same paging service can also deliver by text message or voice call on its paid plans; we don't use that today, but adding it is a plan change, not new code.
What it watches today includes:
- a spike in rejected API keys, or in throttled requests;
- AI spend crossing a dollar limit for the day;
- request volume running far above its 7-day baseline;
- crash counts or rates, and server error rates, above their thresholds;
- failed purchase checks, and background services that stop responding or fall behind;
- a sudden burst of user feedback.
Each condition has a threshold and a cooldown, so a real incident reaches a person quickly and a brief blip doesn't become alert fatigue. For ongoing conditions, a resolved notice goes out to the same places when it clears, so nobody is left wondering whether it's actually fixed.
Hybrid cloud and on-premises monitoring, in one view
06 — hybrid, not splitEverything customers touch runs in the cloud. Internal tooling, including the console itself, runs on existing on-premises hardware, a deliberate, cost-aware choice. That hardware is watched from the same console as the apps: scheduled backup and system-image jobs, a heartbeat that proves the monitoring itself is still running, disk usage and the memory trend, container health and network storage, plus the console's own database backups.
On-premises problems appear in the same daily report's "Needs attention" list as app issues, alongside cloud costs and data freshness, so there's one place to look rather than two. They're reported daily rather than paged, a proportionate choice because none of it is in a customer's path.
Support and feedback tracking, so nothing gets lost
07 — seen, tracked, closedSupport requests from the website's contact forms and from feedback inside the apps land in the console, not just in an inbox. Each one carries a status (new, reviewed, planned, done or dismissed) and an internal note, and every status change is recorded, so nothing sits forgotten in an email thread. The default view shows only what's still open. New requests show up in the daily report, and Stormline's also trigger an email, at most once an hour.
An account lookup shows what support actually needs to see: the account's plan and subscription state, and its usage against its limits. A small number of corrective actions, such as resetting a daily limit, sit behind a fresh sign-in. Replies still go out by email; the console's job is to make sure every request is seen, tracked and closed.
AI in the loop, with people in charge
08 — accelerator, not autopilotInside the console, AI does one job: it reads. On the main pages it writes a short, plain-language summary of the numbers in front of you, with a "Needs attention" line when something looks unusual. The daily and monthly reports open with a short summary of one to three sentences written only from the report's own facts, and the AI is instructed never to invent a number. Alerts themselves come from fixed, tested rules; the AI cannot raise, silence or change one.
AI also built a lot of this. We use AI tools throughout development and support to shorten build time, plan more carefully, and deliver capable systems with fewer people and lower cost. That's how a console like this went from first commit to running a second app in about five weeks.
But speed without experience produces confident mistakes. Every system we ship is shaped by experienced engineers and technical leaders who decide what to build, set the architecture and security standards, challenge what the AI produces, and verify the result. In practice that means changes are reviewed independently before they ship, secrets are kept out of source code, releases are checked against the build that actually ships, and claims like the ones on this page are checked against the code before they're published. AI is the accelerator. Experience is the steering.
Built to grow
09 — from one app to twoThe console started in late August 2026 with one app, Scavenger, but its very first version was already organized by company, then app, then platform, and the app switcher followed within a week. Stormline Weather, in early October, was the first real test of that design.
It found the gap a design alone can't. The console's usage data had only ever held Scavenger's numbers, so a careless second app would have shown Scavenger's figures under Stormline's name. So each app now declares exactly what the console can genuinely show for it, and anything it can't back is hidden instead of borrowed. From there the second app brought:
- costs split by app instead of one blended total;
- Stormline's own live controls, crash and hang reports, and support inbox, read from its own backend;
- new alerts for its usage ceilings, background services and abuse patterns, plugged into the same alerting engine;
- and one daily report covering both apps and the infrastructure behind them.
Adding the next app now means plugging into structures that already exist, not starting from a blank dashboard.
In plain terms
10 — questions owners askWhat is observability, and do I need it?
Observability means being able to see what your software is doing and what it is costing you, in one place, without digging through a handful of vendor dashboards. If an application matters to your customers or your revenue, you need some of it. You don't need all of it: start with the few questions that would hurt to get wrong, and watch those well.
How do I keep AI and cloud costs from surprising me?
Put limits in front of the spending, not just a report behind it. Set budgets and usage limits, and make sure a person hears about it when spending moves. That's cloud cost management (some call it FinOps) sized for a small company.
What if our IT is outsourced to a managed service provider?
This doesn't replace them. A managed provider usually looks after devices, accounts and networks; this watches your applications and what they cost. The two can sit side by side, and a daily report written in plain language gives you your own view of what's happening, not just the provider's.
Can a small team watch apps and servers without an enterprise budget?
Yes, if the setup is proportionate. Build on proven parts, page a person only for what's urgent, and let one daily email cover the rest, cloud and on-premises together. That's how we run two apps across iOS and Android today.
None of this needs an enterprise budget.
It's the console we rely on to run our own apps, and the standard we build to. If your applications deserve the same visibility, cost control and alerting, we can put the same setup in place for you.
Get in touch