Prior art
Does something like this already exist? Finance templates do. We haven't found a finance primitive system, meaning installable money, statement and ledger components you compose into your own product.
What exists#
| Project | What it is | Why it isn't this |
|---|---|---|
| shadcn/ui | The distribution model and base primitives | Deliberately domain-agnostic. We build on it and consume it via registryDependencies. |
| Shadcn Fintech | A finance dashboard template; its demo sidebar links 13 pages (checked 2026-10-18) | A template: a finished app you fork and adapt. As we read the demo, it is a layout rather than a set of money or statement primitives. You fork it and diverge. |
| Shadcnblocks | Blocks and templates; paid plans from $149 one-time (pricing, checked 2026-10-18) | A general block library rather than a finance one — in our reading, page sections rather than accounting product surface. |
| ReUI | "1,264 Free Shadcn UI Components" under MIT, plus paid Pro blocks (reui.io, checked 2026-10-18) | Breadth over depth: general-purpose components, not accounting-specific ones. |
| Shadcn UI Kit — Finance | Admin dashboard template | Same category as above. Template, not system. |
| cameronking4/shadcn-openai-plaid-dashboard | Personal finance dashboard w/ Plaid + OpenAI | An application rather than a component library. |
| Tremor | "Open-source, accessible components for dashboards and charts" (tremor.so, checked 2026-10-18) | Closest in spirit, and good. It is dashboard-native: its site lists charts, filters and dashboard blocks, with money formatting left to a valueFormatter the consumer supplies, and no statement or ledger components (checked 2026-10-18). |
| Actual Budget, Firefly III | Personal finance applications | Applications, not component libraries: their UI is built for their own app rather than for reuse. |
| Apache Fineract | Core banking platform | A backend platform, not a UI component library. |
| Recharts / visx | Charting | We wrap them. They are general-purpose charting; negative-aware baselines, money axes and fiscal periods are ours to add. |
The gap, stated precisely#
We did not find, in any project above (as we read them; re-checked 2026-10-18 where a row says so):
- A money primitive. Minor-unit storage, per-currency decimals, accounting negatives,
null/0/redacted as distinct states. - Financial statement components. P&L, balance sheet and cash flow, with hierarchy, expandable rollups, period columns, variance, drill-down and correct rule lines. This is the biggest hole. We have not found a library with a
<BalanceSheet />. - Reconciliation UI. Two-pane matching, confidence scoring, bulk match. In our experience, accounting products rebuild it from scratch.
- FX / swap primitives that treat a rate as a perishable, timestamped fact.
- Typographic accounting conventions. Case-shifted parentheses, single/double rules, em-dash nil.
- A documented motion system where the frequency of an interaction determines whether it animates.
- Designed responsive collapse for dense financial tables, as opposed to
overflow-x: auto.
Our position#
Lopifi is to fintech what shadcn/ui is to general UI: a set of owned primitives you compose, with a domain model where a template has only a layout.
Where we differ:
- Correctness is in the component. The formatting rules ship with it, so the consumer doesn't have to know them.
- Statements. Nobody else has built them.
- A motion doctrine. Written rules for when not to animate. Libraries of animations are easy to find. Rules for leaving things still are rare.
- Free to install. The product surfaces are MIT-licensed.
Explicitly borrowed#
- Distribution model from shadcn/ui:
registry.json, namespaced installs, copy-paste ownership. It works, so we don't reinvent it. - Charting engine. Wrap, never rebuild.
- Accessible primitives. Base UI (preferred) or Radix for anything with keyboard or focus behavior. Never hand-roll a combobox.
- Toasts from Sonner, drawers from Vaul. Both already behave the way our motion doctrine asks, and we have nothing to add.
Explicitly rejected#
Three respectable bodies of work that fall apart on a money surface.
| Rejected | Source | Why not |
|---|---|---|
| Disney's 12 principles | raphaelsalaja/12-principles-of-animation |
Anticipation, squash-and-stretch, follow-through and overshoot exist to make a character look alive, and a balance shouldn't. Each one adds time before the number is legible, and three of them distort the glyph while the eye is on it. We keep slow in, slow out and call it easing. |
| Glassmorphism | iart-ai/glassmorphism |
Wants backdrop-filter on large surfaces, which we forbid outright (elevation). It also puts an uncontrolled background behind text whose contrast we promise at 7:1, so we can't keep that promise. |
| Scroll-driven narrative motion | MengTo/animation-on-scroll, gsap-scrolltrigger-storytelling |
Built for content-led pages where scrolling is the interaction. In a ledger, scrolling is how you reach row 4,000, and anything attached to it slows the user down on the way to a number. |
The registry these come from is worth reading in full. A skill can be good at motion and still be wrong for a ledger.
Re-check cadence#
Re-audit before each major milestone, and check whether shadcn's own registry has filled any of the gaps above.