Evaluation Kit · v1.0 · 2026

A licensed full-stack code footprint for B2B enterprise SaaS.

A comprehensive evaluation document for business owners and the technical advisors they trust.

Operator
Product Perfect LLC
Architect
Shawn Livermore
Web
cleenui.com
Start here
cleenui.com/book-call

Contents

Front matter
  1. Executive summary
Part I — The Why
  1. The problem CleenUI solves
  2. The category — licensed code footprints
Part II — The What
  1. What ships in the codebase
  2. The technology choices
  3. What you don't have to build
  4. AI-readiness
  5. Anatomy of one request
Part III — The Who and How
  1. The architect-led model
  2. Real production deployments
  3. Pricing & licensing
  4. Risk assessment
Part IV — The Decision
  1. ROI framework
  2. Is CleenUI right for you?
  3. Questions to ask
  4. Next steps

Executive summary

CleenUI is a licensed full-stack code footprint for B2B enterprise SaaS applications. It is delivered as a single coherent codebase — React 18 frontend with 60+ accessible components, ASP.NET Core 8 Web API with 524 endpoints, Azure SQL database with 300+ tables and 700+ stored procedures, and a 12-project Azure WebJobs + Functions background-services solution — organized into 14 production-ready vertical-slice modules.

The codebase is licensed (not subscribed) to your team, deployed onto your own cloud, and modified freely. Every engagement begins with a no-cost 30-minute architecture review with the architect personally. Pricing is custom-scoped to the shape of your project rather than tiered by seats or usage.

Who this document is for

A business owner — founder, CEO, or operator — evaluating CleenUI as part of a technological solution, typically on the recommendation of a technical advisor (CTO, fractional CTO, architect, or senior engineer). Both audiences are served: the surface reading is for the business owner; the sidebars, diagrams, and code samples speak to the technical advisor reading along.

What's inside

Four parts across fifteen chapters. Part I covers the category and the problem CleenUI solves. Part II covers what ships in the codebase. Part III covers the engagement model, the customers shipping on it, the licensing terms, and the risk story. Part IV translates everything into a decision framework — when CleenUI fits, when it doesn't, what to ask in the architecture review, and what next steps look like.

Part I — The Why
Chapter 1

The problem CleenUI solves

Every B2B SaaS team rebuilds the same thirty things before they ship one distinctive thing. CleenUI eliminates that bottleneck.

The substrate-build trap

Behind every B2B SaaS product is a long list of substrate-level concerns that have nothing to do with what makes the product distinctive: authentication, authorization, multi-tenant data isolation, audit history, translation infrastructure, the admin console, the user dashboard, the notification system, the API schema, the background-job runner, the observability layer. Each one is a multi-week project. Each one has to be built right or it becomes the source of a security incident or an outage later. Each one consumes senior engineering time that the team could otherwise spend on the product.

The common path is to build them — slowly, imperfectly, while shipping the product. Six to nine months in, the team has a half-finished substrate, a feature-thin product, and a roadmap full of "we need to fix the auth layer" tickets.

Why AI-assisted coding makes this worse, not better

The premise of AI-assisted coding (Claude Code, Cursor, Copilot, Windsurf) is that an engineer with a capable model ships work that previously required three engineers. The premise holds — when the substrate already exists. When it doesn't, the model has to invent the substrate at the same time it's writing the feature. Auth schemes. Multi-tenant guards. Audit logs. Translation hooks. Permission checks. And the inventions don't reconcile across prompts — by month three the codebase is twelve flavors of half-finished foundation glued together.

What teams actually need

A foundation that is: fully implemented (not a template), internally consistent (one architectural lineage), modifiable (source code you own), AI-readable (the model can pattern-match the existing code and write more in the same idiom), and battle-tested (other teams have shipped real products on it). Almost nothing on the market fits all five constraints at once. CleenUI was built to.

Part I — The Why
Chapter 2

The category — licensed code footprints

Twenty years of SaaS scaffolding rolled through four eras. The fourth — licensed source-code footprints — is the one AI-augmented teams need now.

Four eras of B2B SaaS scaffolding

EraDelivery shapeTradeoff
2005–2012Boilerplate snippets + copy-paste helpersFree, infinitely customizable, infinitely re-invented
2013–2019Starter templates (create-react-app, dotnet new)Got you to "hello world"; every real concern was DIY
2020–2024SaaS platforms (Retool, Bubble, Supabase)Fast to first screen, vendor-owned data model, customization cap
2025+Licensed code footprints (CleenUI)Production substrate you own, deploy onto your cloud, modify freely

Code footprints vs the alternatives

AlternativeWhat worksWhere it breaks
Starter templates
create-react-app, dotnet new
Free, familiar tooling, no vendor lock-inNo auth, no multi-tenant, no audit, no translation registry, no real components
SaaS platforms
Retool, Bubble, Supabase
Fast to first screen, managed infra, built-in authVendor owns your data model, customization cap, migration off is expensive
Consulting builds
Custom agency engagements
Tailored to your domain, architect-led if you pay enough6-month minimum, $200k+ minimum, code only one team understands
Licensed code footprints
CleenUI
Full source you own + modify, production primitives, architect-led setup, your cloudRequires a real engineering team to operate; up-front investment

Why this category emerged now

AI-assisted coding tools made the substrate problem urgent. The market noticed. The category will be a lot more crowded by 2027. CleenUI is one of the first shipping in production at scale.

Part II — The What
Chapter 3

What ships in the codebase

The numbers, the architectural shape, and the 14 modules — at a glance.

Headline numbers

React frontend components60+12 categories — forms, DataGrid, charts, overlays, navigation, AI
Web API endpoints524ASP.NET Core 8 Minimal API · OpenAPI 3 documented
Database tables300+Modeled for real B2B scenarios — soft-delete, audit, translation
Stored procedures700+All data access — no Entity Framework, no ORM mystery
Production modules14M01–M14, each a complete vertical slice
Background-services projects12Azure Functions + Azure WebJobs solution
AI agent skills shipped3Setup, Builder, Theme — for Claude Code, Cursor, Windsurf

The five-layer architecture

CleenUI is a modular monolith, not a microservices fleet. One deployable artifact, in-process service composition, four-environment CI/CD pipeline. Every request flows top-to-bottom through five layers:

  1. L1Front-End ReactUI components, routes, design tokens
  2. L2C# Middle Tier API524 Minimal API endpoints organized into area files
  3. L3Services LayerBusiness logic — IAuthService, IAIService, etc.
  4. L4Data Repo LayerDapper + ADO.NET repository interfaces
  5. L5DatabaseAzure SQL + Redis + Blob + external vendors

The 14 modules

Each module is a complete vertical slice — UI screens, API endpoints, services, repositories, schema tables, background jobs. Every module ships in the codebase you license.

CodeModuleWhat it covers
M01SecurityAuth (Auth0), RBAC, granular permissions, role admin
M02AccountsTenant + member management, settings, transfer of ownership
M03SupportTicketing, help center articles, support console
M04Infrastructure & LoggingHealth, metrics, cache control, structured logs, audit
M05Translation & LanguagesMulti-language registry, runtime translation, QA workflows
M06Notify TemplatesEmail/SMS/push template authoring, test-send, dispatch
M07MessagingIn-app chat, conversations, reactions, unread counts
M08TasksTask boards, projects, phases, status, assignment
M09AI Models, Prompts, Agents, AvatarsAI provider abstraction, prompt runner, agent orchestration
M10FontsDesign-system font/asset management
M11Legal Policy ManagementAgreement lifecycle, acceptance tracking
M12Categories & TopicsTaxonomy, classification, assignment, search
M13Assessments & SurveysBuilder + scoring · personality (Big-Five, DISC) · org fit · inclination instruments
M14Vendor MarketplaceIntegrations, billing, payment subscriptions
Part II — The What
Chapter 4

The technology choices

Exact versions per tier, and the deliberate decisions that shape the codebase.

Stack

TierTechnologyVersion
Frontend frameworkReact18.3
Build toolVite4.x
Backend frameworkASP.NET Core8
Backend runtime.NET8.0
Data accessDapper + ADO.NET (no EF)
DatabaseAzure SQL2022
CacheRedis (Azure Cache)
Blob storageAzure Blob Storage
Background servicesAzure WebJobs + Functions4.x
AuthAuth0 (OAuth2 / OIDC / JWT)
ObservabilitySerilog + OpenTelemetry → App Insights

Why no Entity Framework

The codebase predates EF being a serious option for high-performance .NET, and the team has deliberately stayed on Dapper + stored procedures. Query plans are predictable, DBAs can read the data layer, performance is observable. This is a feature that .NET shops modernizing off WCF / WebForms / .NET Framework will recognize as the right choice for them.

Why modular monolith, not microservices

Microservices buy operational complexity in exchange for scaling problems most teams don't have. The modular monolith pattern gives the architectural clarity (clear module boundaries, in-process composition, single CI/CD pipeline) without the distributed-systems tax. Teams that genuinely need microservices later can carve modules out individually — the boundaries are already there.

Why deploy onto your cloud, not ours

CleenUI ships you source code, not a hosted service. You commit it to your git repo, deploy it onto your Azure subscription, and operate it yourself. Product Perfect doesn't host anything, doesn't run services on your behalf, doesn't have access to your data. This eliminates vendor lock-in by construction.

Two-layer caching by design

Performance-sensitive read paths hit a two-layer cache before reaching the database: an in-memory .NET runtime cache for hot per-process data, and a shared Redis cache for cross-process / cross-instance state. Both layers are wired and invalidation-aware out of the box.

Native Azure, fittable to other clouds

The codebase is designed natively for Microsoft Azure (Azure SQL, Azure Functions, Azure WebJobs, Azure Cache for Redis, Azure Blob Storage). It can be fitted to AWS or other clouds with engineering effort — the abstractions are clean — but the out-of-the-box deployment story is Azure. Plan accordingly if your stack is committed elsewhere.

Part II — The What
Chapter 5

What you don't have to build

Every B2B SaaS application has to solve these. CleenUI ships them already wired — every endpoint inherits them, no copy-paste per route.

Auth & access

  • OAuth2 / JWT validation via Auth0
  • Role-based authorization (RBAC)
  • Permission-based authorization (granular ABAC)
  • Multi-tenant data isolation
  • Row-level access control
  • API-key auth for service-to-service calls

Data integrity

  • Audit history on every mutation (actor / timestamp / diff)
  • Soft-delete + restore on every entity
  • Optimistic concurrency tokens
  • Idempotency keys for unsafe operations
  • Translation registry for response messages
  • FluentValidation pipeline

Query surface

  • Cursor + offset pagination
  • Multi-predicate filtering
  • Multi-column sorting
  • Field projection / shape selection
  • Full-text search across denormalized indexes
  • Date-range + numeric-range queries

Operations

  • OpenAPI 3 spec auto-generation
  • Swagger UI hosted at /swagger
  • Per-route + per-tenant rate limiting
  • Brotli + gzip response compression
  • CORS allow-list configuration
  • Serilog structured logging → Application Insights
  • OpenTelemetry tracing + metrics
  • Health-check endpoints
Part II — The What
Chapter 6

AI-readiness

The codebase is built so that Claude Code, Cursor, Windsurf, and Copilot produce idiomatic code in it — not invented-from-scratch code.

Why AI tools work better here

AI coding tools amplify whatever foundation you give them. They are pattern-matchers — they look at the existing code in the repo and produce more code that looks like it. When the existing code is internally consistent and idiomatic, the AI's output is consistent and idiomatic too. When the existing code is twelve flavors of half-finished invention, the AI's output is the thirteenth flavor.

CleenUI was deliberately built for consistency. Every endpoint follows the same shape. Every service composes the same way. Every repository is structured the same. The AI can read one handler and write the next forty.

AI agent skills shipped in the codebase

  • Setup — for a fresh team, walks the AI through CleenUI conventions, ADRs, and codebase shape so it learns the patterns before writing code.
  • Builder — scaffolds new modules / endpoints / components in the idiomatic shape. Knows which layer each concern belongs at.
  • Theme — applies design-token-aware visual customization across the codebase consistently.

Machine-readable discovery artifacts

The site ships a small constellation of well-known endpoints so AI agents can discover and ingest CleenUI without scraping the marketing HTML:

  • /llms.txt — concise AI-crawler sitemap
  • /llms-full.txt — long-form companion (~117KB) for deep ingestion
  • /.well-known/api-summary.json — every module, every cross-cutting concern, every external system
  • /.well-known/tech-stack.json — exact versions, every tier
  • /.well-known/ai-plugin.json — AI plugin discovery manifest
  • robots.txt — explicitly allow-lists 30+ AI crawlers (GPTBot, ClaudeBot, PerplexityBot, etc.)
Part II — The What
Chapter 7

Anatomy of one request

What happens when a React UI calls POST /assessment/{id}/save — every layer the request touches before the response comes back.

  1. L1
    React UI fires the request
    onClick → useMutation → fetch with Bearer JWT
  2. L2
    Auth0 middleware validates the token
    JWT signature + audience + scope + expiry
  3. L2
    Endpoint handler in ApiAssessment.cs
    Minimal API route — model bound, request validated
  4. L3
    AssessmentService.SaveAssessment()
    Multi-tenant guard · permission check · audit-log write
  5. L4
    AssessmentRepository.Save()
    Dapper + ADO.NET → sp_Assessment_Save
  6. L5
    SQL writes three tables in one transaction
    Assessment · AssessmentResponse · AuditLog
  7. L3
    TranslationService localizes response messages
    Caller's language → keyed string lookup
  8. L1
    Response returned to React
    { id, version, lastModified, errors? }

The same endpoint, at three layers

For the technical reader: the same SaveAssessment route at L2 (endpoint), L3 (service), L4 (repository). Every endpoint in the codebase has this same shape.

L2 — Endpoint (ApiAssessment.cs)
group.MapPost("/assessment/{id:guid}/save", async (
    Guid id,
    [FromBody] SaveAssessmentRequest req,
    IAssessmentService svc,
    UserContext ctx) =>
{
    var result = await svc.SaveAsync(id, req, ctx);
    return result.IsSuccess
        ? Results.Ok(result.Value)
        : Results.UnprocessableEntity(result.Errors);
})
.RequireAuthorization("Assessment.Write")
.WithName("SaveAssessment");
L3 — Service (AssessmentService.cs)
public async Task<Result<AssessmentDto>> SaveAsync(
    Guid id, SaveAssessmentRequest req, UserContext ctx)
{
    await _tenantGuard.Check(id, ctx.TenantId);
    await _audit.Log("Assessment.Save", id, ctx);
    var entity = await _repo.SaveAsync(id, req.MapToEntity(ctx));
    return Result.Ok(entity.MapToDto());
}
L4 — Repository (AssessmentRepository.cs)
public async Task<Assessment> SaveAsync(Guid id, Assessment entity)
{
    using var conn = _db.Open();
    return await conn.QuerySingleAsync<Assessment>(
        "sp_Assessment_Save",
        new { Id = id, entity.TenantId, entity.Title,
              entity.Questions, entity.Version },
        commandType: CommandType.StoredProcedure);
}
Part III — The Who and How
Chapter 8

The architect-led model

One architect, one codebase, one no-cost 30-minute review to decide if it fits.

Who is the architect?

Shawn Livermore. 27 years in technology. Senior Enterprise / Solutions Architect. Amazon top-10 bestselling author in three business non-fiction categories. Raised six rounds of seed funding across his own startups. Real person, real LinkedIn, real published books. Operates Product Perfect LLC, the company behind CleenUI.

Selected Fortune 500 consulting portfolio

The architectural lineage of CleenUI is informed by decades of in-the-trenches modernization work at enterprise scale. A representative sample:

  • Largest US title insurance company — Enterprise Architect; led consolidation of 700 applications across 80 subsidiaries and 1,000+ software engineers.
  • 2nd largest US property-tax payment processor — led a 5-year, $20M migration across 12 contracts, 30+ developers, 2 flagship products renovated/migrated.
  • Largest US corporate housing company — Enterprise Architect; drove consolidation of 80+ applications over 3 years.
  • One of the largest US tax-prep firms — re-architected the TaxCut consumer software product; guided the team toward a more fluid and scalable design.
  • Other clients — Buy.com · Carvana · Ceridian · CloudVirga · CompUSA · Kelley Blue Book · Lereta · Marsh & Swift · MedPartners · New York Energy East · Simpluris · PacifiCare · Toptal · TRW · WellPoint · Herbalife · Ziptask · PRAM Insurance.

The 30-minute architecture review

Every CleenUI engagement begins with a 30-minute architecture review with Shawn personally — not a sales engineer, not an AE. You bring your stack diagram and your top three modernization headaches. You leave with either a scoped engagement plan or a clear answer that CleenUI isn't the right fit for you.

The bus-factor question

The legitimate concern: "what happens to us if Shawn gets hit by a bus?" The answer has four parts:

  1. You already have the source. The codebase keeps working without ongoing architect access. Nothing is in escrow with a kill-switch.
  2. The codebase is internally documented. ADRs, glossary, inline comments, OpenAPI specs, a published machine-readable api-summary.json — a new architect or your own team can pick up operations.
  3. The codebase is idiomatic. Any senior .NET / React engineer can read and extend it. There are no proprietary frameworks or non-standard languages.
  4. Code escrow is available on request for engagements that need it for diligence.
Part III — The Who and How
Chapter 9

Real production deployments

Three live customer engagements as of mid-2026. Different domains, similar shape of outcome.

MiCard.io

Domain
Digital contact card platform
Location
Florida, US
Surface
Web + iOS
Cloud
Microsoft Azure

Licensed CleenUI, configured Azure cloud infrastructure to MiCard's naming conventions, built the product-distinct work on top. Weeks from license to a working platform their developers could extend without architect supervision.

is.fun

Domain
Content creation startup (structured-syntax thesis)
Location
California, US
Surface
Web
Cloud
Microsoft Azure

Licensed CleenUI to skip the multi-tenant plumbing, i18n registry, moderation tooling, and a dozen other primitives. Engineering time went entirely into the syntax engine and discovery surface — the parts that make is.fun is.fun.

FNDRS.io

Domain
Closed-loop exit ecosystem for business owners
Location
platform.fndrs.io
Surface
Web (production platform)
Cloud
Microsoft Azure

Started building October 2025, in production within a few months. Modular monolith on CleenUI gave them the substrate to build FNDRS-specific workflows on top of without inventing the foundation. One of the most workflow-heavy platforms on this list — shipped fast because the substrate was already there.

Part III — The Who and How
Chapter 10

Pricing & licensing

License-based, not subscription-based. Custom-scoped per engagement. No per-seat, no usage caps.

The model

  • License-based, not subscription. You pay once for the engagement, you own perpetual usage rights to the codebase your team receives.
  • No per-seat pricing. Your team is your team. No "growing into" the next tier.
  • No usage caps. No "you've hit 100K requests this month."
  • Custom-scoped per engagement. Pricing reflects the shape and duration of your project, not a price list.
  • Deployed onto your cloud. Product Perfect doesn't host anything. Your Azure subscription, your data, your control.

What "license" means in plain English

You receive the full source code. Your team commits it to your own git repo, runs it on your own infrastructure, modifies whatever you want, and ships products built on top of it. No vendor kill switch. No "we're sunsetting this." If Product Perfect stops operating tomorrow, your codebase keeps working — you just lose access to ongoing architectural advice.

What you specifically receive on day one

The initial code drop is six concrete deliverables, set up and verified before the architect hands off:

  1. AzureSQL Database + CI/CD — restored from a .bak file into your Azure environment, with source control and CI/CD configured for the deployed database.
  2. C# API codebase — entire ASP.NET Core 8 solution dropped in, verified to build and run locally, verified to connect to your remote Azure database.
  3. CI/CD DevOps deployments — Azure DevOps automated deployment configured for the database, API, WebJobs, and Functions across up to 4 environments included (dev, QA, staging, prod, or your equivalent split).
  4. React dashboard codebase — entire CleenUI React starting-point codebase dropped in with the required configuration for leveraging all CleenUI components. Verified to build and run locally.
  5. React CI/CD deployment — front-end deployment pipeline configured (Netlify by default; your choice of host works).
  6. Developer guidance — direct work with your developers to ensure they're well-adapted to leveraging the entire CleenUI stack. Includes the 20 hours of developer setup time bundled into every license.

What ongoing updates look like

Updates follow a formalized product roadmap. React components ship via Storybook and a versioned npm package; C# and database updates ship as scripts or zipped solution files. Your team chooses when to adopt each update — there's no forced upgrade. The license covers updates indefinitely.

What's explicitly NOT included

So there are no surprises:

  • Cloud hosting costs (your Azure subscription)
  • Auth0 subscription (third-party, your account)
  • AI provider API costs (OpenAI, Anthropic — your accounts)
  • External integrations beyond what ships (Stripe, Twilio, HeyGen are wired; you pay the vendors)
  • 24/7 support hotline (this is a code-license relationship, not a SaaS subscription)
  • Custom feature development (the architect advises; your team builds)
  • Compliance certifications (SOC2, HIPAA — codebase is built to support them, certification is your team's project)
Part III — The Who and How
Chapter 11

Risk assessment

Vendor, technical, and business risks — and the mitigation for each.

CategoryRiskMitigation
Vendor riskVendor goes out of businessYou own the source. Codebase keeps working.
Vendor riskLicense revokedLicense terms are perpetual usage. No revocation clause.
Vendor riskPricing changes mid-engagementEngagement is scoped + priced once. No re-negotiation triggers.
Vendor riskVendor-locked deploymentDeploys onto your Azure subscription. Vendor has no access.
Vendor riskBus factorCode escrow available; codebase is idiomatic + documented for handoff.
TechnicalCode quality unknownThree production deployments verify it works at scale. Customer references available.
TechnicalUpgrade path unknownArchitect provides upgrade guidance as part of ongoing engagement.
TechnicalTeam adoptionArchitect-led ramp; AI agent skills accelerate onboarding.
BusinessWon't fit your domain30-min review up-front. Architect declines engagements that won't fit.
BusinessROI uncertain6–9 months of foundation work is the conservative estimate, comparable to 2–4 senior FTE-equivalents.
BusinessExit diligence concernsCodebase architected by a published author with documented ADRs reads well in acquirer diligence.
Part IV — The Decision
Chapter 12

ROI framework

The build-vs-license math, the quantified outcomes, and the exit/diligence story.

What it actually took to build CleenUI

The codebase represents roughly 24 developer-years of focused work: an average of 7.5 developers across 39 months of active development, producing 300,000+ lines of source code, 524 endpoints, 14 modules, 700+ stored procedures, and 60+ accessible React components. That number is the floor — not the ceiling — of what your team avoids when you license rather than rebuild.

Developer-years of work captured~247.5 developers × 39 months of active development
Total months of focused build393+ years of sustained engineering investment
Lines of source code300k+Across React, C#, T-SQL, infrastructure
Average team size during build7.5Senior + mid blend

The build-vs-license math

A back-of-envelope calculation a CFO can run, two ways:

  • By dev-years. 24 dev-years × $300k fully-loaded annual cost = ~$7.2M in engineering cost to recreate the substrate from scratch. Pre-licensing this work at a fraction of the cost is the math behind the engagement.
  • By API surface alone. 524 endpoints × ~10 engineering hours each (design + implementation + test + review + docs) = ~5,200 hours. At $200/hour blended senior rate = ~$1.04M for just the API tier. Frontend, database, and background-services add 50–100% more.
  • Time cost. 4 senior engineers full-time, ~6 months minimum for the API surface alone. Market opportunity cost of those 6 months often exceeds the engineering cost.
  • CleenUI engagement cost. Custom-scoped per project, but reliably an order of magnitude less than the build-from-scratch estimate. Typically a small fraction of one engineer-year.

Quantified outcomes

Months saved on foundation work6–9Auth, multi-tenant, audit, i18n, observability — already wired
Modules avoided rebuilding14Each one a complete vertical slice
Endpoints already designed524OpenAPI-documented, multi-tenant scoped, audit-logged
Cost as % of build-equivalent<1%vs the ~5,200 engineering hours the surface represents

The exit / diligence story

When an acquirer's technical diligence team looks under the hood, they want to see an identifiable architectural lineage (not "we figured it out as we went"), documented decision records, a real audit trail, a stable data layer, and code an outside team can read. A CleenUI-based codebase clears these bars by construction. The delta between "codebase architected by published expert" and "codebase invented during 14-hour days by the founding team" shows up in diligence valuations.

Part IV — The Decision
Chapter 13

Is CleenUI right for you?

Honest fit criteria, written to disqualify as much as qualify.

CleenUI fits when…

  • You're building a B2B SaaS application from scratch, or modernizing off legacy (.NET Framework, WebForms, WCF)
  • Your product needs multi-tenant, auth, audit, RBAC out of the box
  • Your team is 2–10 engineers (works above; works exceptionally below)
  • You want to ship in months, not quarters
  • You're willing to operate the codebase on your own cloud
  • Your tech stack is open to .NET + React (or you're not committed yet)
  • You expect to use AI coding tools (Claude Code / Cursor / Windsurf) heavily

CleenUI is NOT a good fit when…

  • You need a hosted product with no engineering team (use a SaaS platform)
  • You're committed to a stack CleenUI doesn't use (Python / Node / Go / Rust backend)
  • Your application isn't B2B SaaS shaped (consumer social, IoT, embedded, game)
  • You need microservices at scale (CleenUI is a modular monolith)
  • You want to outsource the whole build (this is a foundation, not an outsourced team)
Part IV — The Decision
Chapter 14

Questions to ask

Ten for the architecture review with Shawn. Seven for your technical advisor to answer for themselves.

For the 30-minute architecture review

  1. Walk through how M01 Security handles multi-tenant isolation for our use case.
  2. We have an existing app in [tech]. What's the migration story?
  3. Show me one place where customers have struggled with the codebase. What did they do?
  4. What's the typical engagement length, and what happens at the end of it?
  5. We're considering [competitor]. Where would they be a better choice than CleenUI?
  6. What's NOT in the codebase that we should plan to build ourselves?
  7. What's the upgrade path if you ship a new version next year?
  8. Can you give us 2 customer references we can talk to?
  9. How do we handle the bus-factor question internally? What's your stance on code escrow?
  10. What's the engagement model after the initial license — ongoing retainer, project-by-project?

For your technical advisor to validate independently

  1. Read the code on /api-coverage and /codebase. Does the shape match what we'd want to maintain for 5+ years?
  2. Run the architecture dependency graph at /architecture. Does the layering make sense for our domain?
  3. Look at the data model at /database. Will our entities fit, or will we be fighting the schema?
  4. Test the API in Postman (entry point at /postman). Are the endpoints idiomatic?
  5. Try the AI agent skills with Claude Code / Cursor. Does the tooling produce idiomatic code in this codebase?
  6. Read the ADRs at /decisions. Do you agree with the architectural choices?
  7. Review the integrations list at /integrations. Are our must-have vendors there?
Part IV — The Decision
Chapter 15

Next steps

Three concrete actions that take less than 10 minutes each.

1

Book the 30-minute architecture review

No cost. With the architect personally — not a sales engineer. Bring your stack diagram and your top three modernization headaches. You'll leave with either a scoped plan or a clear "this isn't the right fit for you."

cleenui.com/book-call
2

Hand this PDF to your CTO

This document was designed for both audiences. Your technical advisor can read the same artifact and form an independent opinion. A sample forwarding email:

Subject: Worth looking at — CleenUI evaluation

[Name] — we've been talking about whether to build the
substrate of [project] ourselves or license something.
Attached is a 24-page evaluation of CleenUI, a licensed
full-stack code footprint (React + .NET 8 + Azure SQL).

Skim Ch 3-7 first (the technical scope) and Ch 13 (the
fit criteria). If it looks worth a 30-min architecture
review, the booking link is at cleenui.com/book-call.

Curious whether you think it fits.
3

Go deeper on cleenui.com

Specific pages organized by what you'd want to validate next:

Architecture deep-divecleenui.com/architecture
API narrative + search across 502 real endpointscleenui.com/api
Every endpoint mappedcleenui.com/api-coverage
Database model + 700+ stored procscleenui.com/database
14 modules in detailcleenui.com/modules
Live customer engagementscleenui.com/clients
Architecture decision recordscleenui.com/decisions
Try the API live (Postman / Swagger)cleenui.com/postman
About the architectcleenui.com/about

Ready when you are.

A 30-minute architecture review with the architect, no cost, no obligation. You'll know whether CleenUI fits your project by the end of the call.

cleenui.com/book-call
CleenUI Evaluation Kit · v1.0 · 2026
Product Perfect LLC · cleenui.com