Skip to main content
Cleverbrush Framework adoption

Cleverbrush Framework 4.4.0 adoption in xpenser

xpenser adopted Cleverbrush Framework 4.4.0 to simplify configuration, cache invalidation, database access, and MCP transport code.

Published July 6, 2026

xpenser now runs on Cleverbrush Framework 4.4.0. This release is mostly internal, but it matters because xpenser is also a reference application for a schema-first TypeScript stack.

The update replaces local utility code with framework primitives where the behavior should be consistent across projects. Environment flags now use Cleverbrush env booleans, API cache tag metadata can invalidate the Next.js cache through one bridge, and database code can lean on inferred row types and schema-aware upsert helpers.

What changed

  • Adopted Cleverbrush Framework 4.4.0 across the API, web app, shared client, contracts, UI package, and Telegram bot.
  • Centralized Next.js tag invalidation behind the typed xpenser client instead of repeating tag lists inside every server action.
  • Added a read-only database schema drift check for the API entity map.
  • Simplified MCP transport handling with a raw Cleverbrush action result.

Why it matters

The goal is to keep product code focused on xpenser behavior instead of repeating framework glue. When the same patterns work here, they can be reused in future Cleverbrush projects with less custom code and fewer application-level conventions to remember.

Developers can explore the framework behind these patterns in the Cleverbrush Framework documentation. For the product side, start with the xpenser home page, the open-source expense tracker overview, or the personal finance API and MCP tools.

Start hosted, then self-host when ready

Create a hosted xpenser account for the public instance, or review the MIT licensed source and run your own deployment from Docker Compose.