A store's revenue told as a story: one big annotated line you can scrub day by day against last period, a plain-sentence summary whose numbers roll, a range switch that morphs the line and moves its notes, and a ranked strip of where the money came from.
akaanalytics·dashboard·revenue
Run this in any project set up for the shadcn CLI. It copies the Revenue Story source into your components folder, so the code is yours to change.
npx shadcn@latest add https://devl.dev/r/revenue-overview.jsonImport it and render it. Every prop has a typed default, so it works straight away, and you pass your own data when you’re ready.
import { RevenueStory } from "@/components/revenue-overview";
export default function Page() {
return <RevenueStory />;
}A free React screen in the Product collection, written in TypeScript with Tailwind CSS on coss ui. MIT licensed.
Read from the Revenue Story source. Everything is optional unless it says required.
| Prop | Type | Default |
|---|---|---|
| days | RevenueDay[] | SAMPLE_DAYS |
| channels | RevenueChannel[] | SAMPLE_CHANNELS |
| moments | RevenueMoment[] | SAMPLE_MOMENTS |
| store | { name: string; plan: string } | { name: "Fernwood Goods", plan: "Growth plan" } |
| user | { name: string; email: string } | { name: "Ines Moreau", email: "ines@fernwood.shop" } |
| defaultRange | RangeKey | "30d" |
| onRangeChange | (range: RangeKey) => void | — |
| onNavigate | (label: string) => void | — |
| className | string | — |