---
title: "Prior art"
description: "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."
canonical: "https://lopifi.com/docs/prior-art"
---

# 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.

Source: https://lopifi.com/docs/prior-art
Part of: Lopifi — Planned: US GAAP books on autopilot, checked by a CPA (https://lopifi.com)

---

# 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](https://ui.shadcn.com/) | The distribution model and base primitives | Deliberately domain-agnostic. We build on it and consume it via `registryDependencies`. |
| [Shadcn Fintech](https://shadcn-fintech.vercel.app/dashboard) | 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](https://www.shadcnblocks.com/) | Blocks and templates; paid plans from $149 one-time ([pricing](https://www.shadcnblocks.com/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](https://reui.io/) | "1,264 Free Shadcn UI Components" under MIT, plus paid Pro blocks ([reui.io](https://reui.io/), checked 2026-10-18) | Breadth over depth: general-purpose components, not accounting-specific ones. |
| [Shadcn UI Kit — Finance](https://shadcnuikit.com/dashboard/finance) | Admin dashboard template | Same category as above. Template, not system. |
| [cameronking4/shadcn-openai-plaid-dashboard](https://github.com/cameronking4/shadcn-openai-plaid-dashboard) | Personal finance dashboard w/ Plaid + OpenAI | An **application** rather than a component library. |
| [Tremor](https://tremor.so/) | "Open-source, accessible components for dashboards and charts" ([tremor.so](https://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](https://actualbudget.org/), [Firefly III](https://www.firefly-iii.org/) | Personal finance applications | Applications, not component libraries: their UI is built for their own app rather than for reuse. |
| [Apache Fineract](https://fineract.apache.org/) | Core banking platform | A backend platform, not a UI component library. |
| [Recharts](https://recharts.org/) / [visx](https://airbnb.io/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):

1. **A money primitive.** Minor-unit storage, per-currency decimals, accounting negatives, `null`/`0`/redacted as distinct states.
2. **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 />`.
3. **Reconciliation UI.** Two-pane matching, confidence scoring, bulk match. In our experience, accounting products rebuild it from scratch.
4. **FX / swap primitives** that treat a rate as a perishable, timestamped fact.
5. **Typographic accounting conventions.** Case-shifted parentheses, single/double rules, em-dash nil.
6. **A documented motion system** where the frequency of an interaction determines whether it animates.
7. **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](https://lopifi.com/md/docs/foundations/elevation-borders-shadows#backdrops)). 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](https://www.ui-skills.com/) 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.
