Yield tells you which traffic paid you.
Every analytics tool on your server can tell you that 4,000 people visited last month. Almost none can tell you that the 61 who came from your newsletter are worth $14.20 each and the 1,900 from paid search are worth eleven cents. Yield closes that loop. It ties every pageview, referrer and UTM set to a visitor, carries that visitor into checkout, and stitches the payment webhook back to the session that earned it.
The headline number on the dashboard is not pageviews. It is revenue per visitor.
Yield runs entirely on your own server. One purchase, no monthly fee, no per-event overage, and no customer data leaving your infrastructure.
What it does
- Revenue attribution that actually works. First-touch, last-touch or linear, with a configurable attribution window. Every dollar is traced to a channel, campaign, referrer, landing page and UTM combination.
- Five payment gateways, signature-verified. Stripe, Paddle, Lemon Squeezy, Polar and Paystack. Every webhook delivery is logged with the reason it did or did not attribute, so a missing payment is a question you can answer instead of guess at.
- A tracking script under 4 KB. No third-party requests, no cookie banner required in cookieless mode, automatic outbound-link stamping so your buy button carries the visitor id without you touching it.
- Realtime. Who is on the site right now, which page they are on, where they came from, and a live pulse of the last hour.
- Funnels and goals. Step-by-step drop-off with the revenue behind each conversion, not just a count.
- Per-visitor journeys. Every session, every page, every payment for one person, on one screen.
- Public share links. Read-only dashboards for a client or an investor, optionally password-protected, with revenue hidden if you want the traffic without the numbers.
- A native mobile app, with push. Flutter source included for iOS and Android, and an optional Firebase Cloud Messaging integration that tells you the moment a payment lands, naming the channel that earned it. Sign in with the same account and the whole dashboard is in your pocket. Try the Android build from the demo landing page, then rebuild it against your own install with a single flag.
- Teams. Owner, admin, analyst and viewer roles per site, on top of an install-wide administrator or member role, all enforced by policies rather than by hiding buttons. One account opens both the reporting dashboard and the settings panel, with password reset by email, so nobody is ever locked out of their own analytics.
- It stays fast. Nothing is written inside the web request and no chart is computed from raw events on page load. Ingestion is queued, reporting reads pre-aggregated rollups, and raw events age out on a retention window you set.
Installs in about ten minutes
Upload, point your domain at the public folder, create an empty database, and open /install. Four screens: requirements, database, administrator, done. It writes your configuration, runs the migrations and locks itself afterwards. No file editing, no command line. Developers who prefer the terminal can run one Artisan command instead.
The bundled documentation is a full offline HTML manual with screenshots of every screen, annotated diagrams of the attribution engine, an expected outcome printed against every configuration step, and a PDF of the same thing.
Built on
Laravel 12, Livewire 3, Filament 4, Tailwind CSS 4 and MySQL on the server. Flutter and Riverpod in the app. Fonts and icons are self-hosted, so a Yield install makes no outbound request to anyone at runtime.
Requirements
- PHP 8.2 or newer with bcmath, ctype, curl, fileinfo, json, mbstring, openssl, pdo, pdo_mysql, tokenizer, xml and zip.
- MySQL 8 or MariaDB 10.6, or PostgreSQL.
- One cron entry and one queue worker. Both commands are printed for you, pre-filled with your real paths.
- Flutter 3.32 or newer, only if you want to build the mobile app. Android 7.0 and iOS 15 are the minimums it targets.
Third-party services and costs
Yield runs with no third-party account at all. Everything below is optional, and any fees are billed by that provider directly to you, under your own account. None of it is included in the price of this item.
- Stripe, Paddle, Lemon Squeezy, Polar, Paystack: payment webhooks, so revenue can be attributed. You almost certainly already use one. Swap in any other gateway by adding a handler; the interface is documented.
- A mail provider: for invitations and password resets. Yield ships with a PostaLynk transport and works with plain SMTP, Amazon SES, Postmark, Resend or anything else Laravel supports. Leave it on the log driver and no mail is sent at all.
- Firebase Cloud Messaging: optional, for push notifications to the mobile app. Off unless you configure it; the app and the dashboard work exactly the same without it.
- A support widget: optional. Leave the key blank and no third-party script is ever loaded.
Try it
Live demo: https://yield.foundrcode.com. Sign in with demo@yield.test and the password YieldDemo! The account is an administrator, so both the reporting dashboard and the settings panel are open to you. The landing page at that address is the one bundled with the item, and it carries a Get the app button for the Android build of the companion app, pointed at the same demo.
Support
Item support covers installation, bug reports and help with the documented features. Customization of your own code is outside its scope. Updates are free for the life of the item.