╔═════════════════════════════════════════════════════╗
║     Z O R I  ·  R E V E N U E  A N A L Y T I C S    ║
╚═════════════════════════════════════════════════════╝
open_source // mit_license
free_forever

$ ./revenue_analytics
where does money come
which click became a customer
now you finally know

zori@terminal:~
> analyzing revenue streams...
connected to payment providers
tracking visitor journeys
attribution model: first-touch
>connect_website:
━━━ ✦ ━━━
scroll_down()
// what_you_get

answers, not dashboards

> the questions every founder asks at 2am

[01]$
> which_channel_pays()
// stop guessing. see exactly which traffic source turned into a paying customer. connect the click to the checkout.
╰─ ready
[02]
> time_to_convert()
// how long from first visit to first purchase? understand your sales cycle. know when to follow up.
╰─ ready
[03]
> customer_journeys()
// see every touchpoint before conversion. which pages matter? what path do buyers take?
╰─ ready
[04]
> llm_cost_tracking()
// coming soon: track inference costs alongside revenue. know if your ai features are profitable.
╰─ ready
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  f e a t u r e s . r e a d y ( )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// how_it_works

5 minutes to clarity

> stop_wondering() → start_knowing()

step_0101

> install.package()

// one line. tracks every visitor. knows where they came from.

$ pnpm add @zorihq/react

✓ Package installed
✓ Tracking enabled
✓ Ready to analyze
╰─ step_01_complete
step_0202

> connect.stripe()

// link your payment provider. we match visitors to customers automatically.

stripe
paddle
lemonsqueezy
╰─ step_02_complete
step_0303

> see.truth()

// twitter brought 10k visitors but $0 revenue. that blog post? $12k. now you know.

channel
visitsrevenue
twitter_ads
10,241$0
blog_post
847$12,400
google_search
3,102$4,200
╰─ step_03_complete
// why_zori

built for the 2am question

> where is my money actually coming from?

HIDDEN
$ revenue_exposed

> you_have_been_lied_to()

// ga says twitter is your #1 source. but that blog post from 6 months ago? it's quietly driving $40k/month. you just couldn't see it.

DIRECT
$ not_charts

> founders_need_answers()

// not dashboards. not charts. answers. which channel should I double down on? where am I burning money? zori tells you directly.

100%
$ transparent

> your_data_your_servers()

// open source. self-host if you want. no data selling. no vendor lock-in. see every line of code.

╔═══════════════════════════════════════════════════╗
║    stop_wondering()  →  start_knowing()          ║
╚═══════════════════════════════════════════════════╝
// integrations

connect. match. know.

> link stripe. we match visitors to payments. you see which channels pay.

stripe

$ stripe_integration()

// every payment. traced to its source.

[01]
> automatic_matching()

// visitor clicks ad → browses → buys. we connect the dots automatically.

[02]
> see_the_source()

// that $500 purchase? it came from your twitter thread 3 weeks ago. now you know.

[03]
> conversion_timeline()

// how long from first visit to purchase? some channels convert fast. others take months.

[04]
> one_click_setup()

// oauth connect. no code. no webhooks. revenue data flows in seconds.

> coming_soon: paddle · lemonsqueezy · paypal

// mit_licensed

your data.
your servers.

> revenue data is sensitive> we get it> self-host on your infra> every line of code is auditable> no data leaves if you don't want it to

> free_forever · mit_licensed · built_by_founders
$ repository_stats
stars
---
forks
---
$ self_host_in_minutes
$ git clone github.com/ZoriHQ/zori
$ cd zori
$ docker-compose up -d

zori running on localhost:3000