§00System 04 / Client EngagementCase Study

What is the smallest useful system that creates actual business value?

CountRise is a multi-tenant back-office platform for US small businesses, consolidating accounting, payments, banking, CRM, scheduling, and a dozen other provider systems into one normalized data layer. The engagement that built it began as a business question, not a software specification, and evolved from a single discovery phase into an ongoing technology and AI partnership.

Technology & AI PartnerDiscovery → MVP → RetainerHardened Beta

Published with permission. No secret values, credentials, private infrastructure endpoints, customer data, financial figures, or personally identifiable information are reproduced on this page.

§01The ContextWhere it started

The engagement with CountRise didn’t begin as a straightforward software-development assignment. The initial discussions centered on understanding what CountRise was trying to build as a business, how technology and AI could support that direction, and what should actually be built first, covering business operations, AI-enabled workflows, client acquisition, product demonstrations, automation, and a practical MVP that could be taken to businesses and clients.

That first conversation also reframed what “technology” meant for the engagement. It wasn’t just an implementation layer waiting for instructions; it became a consulting layer, a product-strategy layer, and a research and decision-making partner. That framing shaped how the whole engagement was structured from there on.

§02The ProblemWhat needed to change

The natural instinct with a broad, exciting vision is to try to build all of it. The key challenge here was resisting exactly that. The question on the table was not “How do we build the biggest system?” It was “What is the smallest useful system we can build that creates actual business value and allows CountRise to start validating and expanding the opportunity?” That distinction became central to everything that followed.

Answering it meant figuring out the system before building the system: product requirements, business workflows, technology needs, AI opportunities, architecture, integrations, and what could realistically be delivered first: a discovery phase, rather than an immediate, unrestricted build.

§03The IdeaBuild what can be validated

By the time the discovery phase reached a significant point of progress, most of that groundwork was already done, with a handful of areas left to finalize, a clear signal the engagement had moved past theoretical discussion into execution.

Alongside it came a second idea: the product being built didn’t have to be just software. If it was demonstrated to real businesses, it could also help identify and win new client work, turning the MVP into a business-development asset, not only an internal prototype. Lead generation was treated as an extension of discovery and validation, not a replacement for the product work itself.

What the MVP had to do
Business validation

Determine whether the workflows and product direction actually solve meaningful problems.

Client demonstrations

Have something tangible that could be presented to prospective businesses.

Business sourcing

Use the product and its capabilities to help identify and acquire business opportunities.

Iteration

Use actual requirements from businesses to determine what should be built next.

Who did what
Technology, AI & Consulting

Technology strategy, AI and product strategy, research, architecture, technical decisions, development, and review, including guidance to external teams when required.

Business Development

Business discussions, decks, pitches, client-facing activities, and business direction.

Marketing & Outreach

Business conversations, talks, demonstrations, and marketing/business-development activities.

§04How The Engagement EvolvedNot fixed from day one

The engagement wasn’t a perfectly defined, fixed project from the start; it evolved in stages, each one building on evidence from the last.

Discovery

A dedicated phase to turn a broad business direction into concrete requirements, architecture, workflows, and an integration plan: its own scoped piece of work, not folded into open-ended development.

Proof of Work

A shorter, focused phase that followed discovery, sharpening the direction further before any larger build began, evidence that the engagement wasn't fixed from day one but evolved through validation.

MVP

A three-month push to get the core technology working and validate it against real business requirements: not a promise everything would be finished, but a foundation to build the next decision on.

Ongoing Partnership

As requirements kept emerging, the relationship shifted from a fixed deliverable to continuous technology and AI capability, described as resembling part-time involvement rather than a single handoff.

§05The ShiftFrom a problem to a product

Looking at the whole progression, the most interesting part isn’t the dashboard or the integrations. It’s the evolution of the problem itself, from “we need technology for the business” to “rather than defining every future requirement upfront, let’s have continuous technology and AI capability available to the business.”

A business question, not a spec

Understand CountRise's business and technology needs

Identify where AI, automation and software could actually help

A discovery phase: architecture, requirements, validation

Most of that work completed, a handful of areas finalized

A proof-of-work phase to sharpen the direction

An MVP-first strategy takes shape

The MVP becomes a business-development asset, not just software

Continuous technology and AI capability, not a one-time build

The business story ends around: “We have established the business direction, cleared the MVP approach, identified the initial integrations, and moved into actual MVP development.” From here, the case study turns to the product itself: what was built, how it works, and what the engineering underneath it had to guarantee.

§06Building The MVPWhat actually got built

CountRise, as built, is a single place for a small business to see everything that’s normally scattered across a dozen different tools (accounting, payments, banking, CRM, scheduling, messaging, e-commerce, advertising, documents, project tracking, and payroll) pulled into one consistent, up-to-date picture.

The architecture had to solve three problems at once: pulling together data from many different outside systems without the product becoming fragile; making sure the answers it gives are trustworthy, not just plausible-sounding; and, eventually, letting it take action in the world safely, with a person always able to see and approve what it’s about to do.

This isn’t a demo or a prototype dressed up to look finished. What exists today is a real, substantial application: a working backend, a real security model, and two full front-end experiences, not a mockup with no engineering behind it.

§07How It WorksTwo experiences, one connected system

From the outside, CountRise is two experiences. Business owners get a single dashboard: cash position, work in progress, team approvals, and a plain-language question-and-answer tool that answers with sources, not guesses. The internal team gets a separate console for managing every client account at once: health checks, activity across every connected tool, and the queue of actions waiting on a human decision.

Neither application is ever trusted to decide, on its own, what a user is allowed to see. That decision is made once, on the server, every time, which is what keeps one business’s data from ever leaking into another’s, even by accident.

Here’s what that actually looks like, screen by screen.

  1. 01

    Sign-in

    A quiet, deliberate front door: no marketing copy, just a way in.

    The CountRise sign-in screen: an email and password field on a dark, editorial login card.
  2. 02

    Home

    Cash on hand, who owes you, and what's happening this week: the first thing an owner sees.

    The CountRise owner home screen showing cash on hand, who owes the business money, and a weekly snapshot.
  3. 03

    Money

    Every account balance, a 90-day cash-flow trend, and exactly what's outstanding and for how long.

    The CountRise Money screen showing account balances, a cash-flow chart, and receivables aging.
  4. 04

    Ask

    Plain-English questions about cash, customers, invoices, and jobs. Answered, not guessed at.

    The Ask CountRise screen: a plain-English question-and-answer interface with suggested prompts.
  5. 05

    Approvals

    Every action that needed a human decision, with a full, timestamped history of what was approved.

    The CountRise Pending Approvals screen showing a history of approved actions.
  6. 06

    Team

    Who has access, what they're allowed to do, and a way to bring on the next person.

    The CountRise Team screen showing account members, their roles, and an invite form.

Shown with the product’s own seeded demo data, not a real customer’s books.

§08The Engineering Behind ItDepth, not decoration
OWNER DASHBOARD:5174OPS CONSOLE:5173/v1NESTJS API:3001 · modular monolithPOSTGRESQL 16FORCE RLS · tenant-scopedapp role cannot bypass RLSRedis 7 / BullMQnormalized recordsaction + audit enginesconnector / LLM / voice

Both applications sit on top of one shared backend, which is the only thing allowed to touch the database, and every request to it is scoped to exactly one organization’s data, enforced by the database itself, not just application code.

Two React applications · one API · a database with per-organization isolation

Security wasn’t treated as a feature to add later; it’s built into how the system handles every request. Sign-in never leaves a secure, server-only session; the two applications can’t accidentally share one. Every connection to an outside service stores its credentials encrypted, and incoming updates from those services are verified before they’re trusted. And any action that could affect the real world (refunding a payment, for example) passes through a human-approval step the system itself owns; no proposer, including the AI, can grant itself permission to skip it.

Decisions that mattered

Build one well-organized system, not many small services.

Splitting the backend into many independent services adds real operational overhead, and nothing about this MVP needed that yet. One deployable system kept transactions and debugging simple while the product was still being validated.

Technically:A modular monolith rather than a microservice architecture: the boundaries exist as internal modules, ready to split later if the evidence calls for it.

Talk to the database directly, rather than through a heavier abstraction layer.

An off-the-shelf data-access library conflicted with how the system enforces per-organization data isolation inside a single request. Working closer to the database kept that isolation guarantee airtight.

Technically:Raw parameterized SQL instead of an ORM, revisited only if the number of data models grows enough to justify the extra layer.

Never let the browser decide whose data it should see.

Every request is checked against a server-side record of who belongs to which organization: a browser can't grant itself access it doesn't actually have. It's the difference between a lock a visitor can pick and one the building itself enforces.

Technically:Database-level row-level security plus a server-side membership check, not just an application-layer permission flag.

Make the whole product demoable without live credentials.

Every outside connection has a realistic, deterministic stand-in, so the system can be evaluated, tested, and demonstrated to stakeholders before a single production account is ever connected.

Technically:A clean simulated run proves the experience works. It doesn't yet prove a specific outside service behaves the same way for real; that's tested separately, connection by connection.

The AI can propose an action; it can't decide how risky that action is.

If a model, a rule, or a person suggests doing something in the outside world, the system, not the proposer, decides how much oversight that action needs before it happens.

Technically:A server-owned risk registry with escalating approval levels, so no single actor can quietly grant itself more trust than it's earned.

Check that an action actually happened before calling it done.

Outside systems don't always confirm a change instantly. Rather than assume success, the system performs the action, then independently reads it back to confirm, catching silent or partial failures instead of reporting a false success.

Technically:A separate write step and verify step, accepting more internal complexity in exchange for catching failures a single write call would miss.

Let the product be evaluated before committing to a first live connection.

Choosing the wrong first outside service to connect to is expensive to undo. A safe, realistic demo lets stakeholders react to the real experience first, so that choice gets made with evidence instead of a guess.

Technically:An opt-in, self-contained demo mode with realistic sample data, clearly labeled as a demo, not a substitute for proof against a real backend or provider.

§09What Was HardThe build, chapter by chapter

A clear progression, not a collection of isolated features; each stage established a boundary the next one could actually build on.

Laying out the map before writing code

Before any implementation began, the shape of the system was documented first: how organizations would stay isolated from each other, how outside services would connect, how actions would be approved, and how the two applications would divide responsibility. Later work had a boundary to build against, not a moving target.

The core spine

The foundational layer went in first: the API, a database with per-organization isolation built in, sign-in and sessions, and the first internal tool for the operations team. Everything that came later depends on this holding correctly.

Read-only intelligence

With the spine in place, the system started being genuinely useful: connections to real business data, a way to ask plain-language questions and get cited answers, and the first version of the owner-facing dashboard.

From insight to controlled action

The most important engineering step in the whole build: turning "the system can tell you things" into "the system can safely do things," with a human approval step no proposer, including the AI, could bypass.

A demoable product

All twelve outside-service connections reached a realistic, simulated state, alongside alerts, scheduled summaries, and a first voice interface: enough for a full stakeholder walkthrough without a single live credential.

Finding out what breaks under pressure

Deliberate failure and load testing surfaced a real crash under database pressure, exactly the kind of problem that only shows up when you go looking for it. Finding and fixing it was worth more than another feature would have been.

Closing the trust gaps

A security and correctness pass fixed a cash-reporting bug, tightened how sessions are handled, and made sure every screen that existed was actually reachable and working, not just built and forgotten.

Real permissions for real teams

Access moved from a single-owner assumption to a proper set of roles (owner, admin, employee) so a business with more than one person on the account could actually use it as a team.

Making it repeatable

The engineering foundation was hardened to a production-shaped standard: proper database migrations, safe configuration defaults, automated tests run against a real database, and a build pipeline that runs on every change.

An honest security and reliability pass

A dedicated audit turned a list of risks into tested guarantees: stronger data isolation, monitoring, and a way to detect and recover from a failed automated action.

One real external connection, proven carefully

One outside service, payments, reached a genuinely production-shaped state: real reads, a gated refund action, and automated contract tests. It's presented honestly as one proven connection, not a claim that every connection works this way yet.

A safer way to evaluate the product

The most recent work adds a self-contained, clearly labeled demo mode with realistic sample data, so the product can be evaluated and validated before committing to which outside service to connect to first.

§10What ChangedA hardened beta, honestly graded
Working today
  • A complete backend and two working applications (one for the internal team, one for business owners) on a database that keeps every organization’s data properly separated.
  • Sign-in, sessions, and role-based access for multi-person business accounts.
  • A structured way to connect outside business tools, sync their data, and normalize it into one consistent picture.
  • A conversational Q&A feature that answers with citations, plus summaries and alerts.
  • The full approval-and-audit system that lets the product safely act in the outside world, with every step logged.
  • The internal team’s day-to-day tools and the account owner’s full dashboard, both built and working.
  • Automated tests, a working build pipeline, and thorough documentation.
  • A self-contained demo, ready for a walkthrough with real stakeholders.
Underway
  • Recent product and security refinements exist but aren’t formally finalized yet.
  • The payments connection is built and automatically tested, but hasn’t yet been proven with a real, restricted account.
  • A deployment plan exists, but the exact steps for a real target environment are still placeholders.
  • A live-updating interface has been designed but not built: the product currently refreshes rather than pushing instant updates.
  • Outside sign-in, a real voice interface, and email delivery are designed but not yet built.
Still ahead
  • Picking the first outside business tool to connect for real, and proving that connection end-to-end.
  • Doing the same for the other outside connections, one at a time, as real businesses need them.
  • A real deployment target, with security, backups, and alerting proven in practice.
  • A dedicated task-management experience, if that turns out to be something businesses actually need.
  • A decision on how new users and accounts get set up in a live environment.
  • Anything involving a professional-services layer, self-serve signup, or a billing product, deliberately left out of this validation phase.

None of this is presented as finished. There’s no formal requirements document to check the product against; its intent is reconstructed from what was actually built. Eleven of the twelve outside connections are still simulated rather than live. The task-tracking feature imports data but doesn’t yet support a full workflow. A live voice interface, WhatsApp, and Wise aren’t built. And this review didn’t include deploying to a real server or testing against live outside accounts, so some of what’s designed hasn’t been proven under real conditions yet.

430
Backend tests passing, across 57 suites
73
Frontend tests, across both applications
3/3
Production builds passing: API, and both applications

That’s not a claim that everything is proven in the real world; it’s confirmation that what has been built behaves the way it’s supposed to.

§11What I LearnedScope, safety, and proof

The biggest lesson of this engagement wasn’t technical; it was scope. The instinct with any new AI-enabled product is to build the whole vision at once: every integration, every workflow, every possible use case. CountRise’s actual answer was the opposite: figure out the smallest system that creates real value, build that, put it in front of actual businesses, and let their answers decide what gets built next.

On the engineering side, the equivalent discipline was treating safety as part of the architecture from day one, not a feature bolted on later. Once the system could tell a business owner something useful, the harder and more important step was making sure it could act on that information safely, with a person always making the final call on anything that touches the real world.

And the most honest lesson is the one the underlying technical review insists on: the project doesn’t need a rewrite. It needs proof. The architecture holds up; what’s left is proving it against real outside systems, one connection at a time, rather than assuming it will just work.

§12Where It Goes NextProof, not more architecture
Right now
  • Turn the most recent product and security work into finished, reviewed changes.
  • Run the full test suite against a real database, not just simulated data, to confirm nothing was missed.
  • Walk the product through with real stakeholders and use their feedback to decide what's actually needed next.
Next
  • Choose the first outside business tool to connect for real, based on what stakeholders actually need.
  • Prove that one connection end-to-end (real authentication, real data, and a verified write-back) before claiming it works.
  • Set up a real deployment target, with working backups and alerting.
Later
  • Add further outside connections only as real businesses ask for them.
  • Revisit bigger architectural changes (splitting services apart, real-time updates) only if the product's growth actually calls for them.
  • Decide on sign-in, voice, and email providers once those become real product needs.