Feedback · Analytics · Support · Revenue

One script. Every project.

Paste one line on every app you run and get cookieless analytics, a chat bubble for support, feedback and bug reports, and your Stripe MRR. All your projects in one dashboard and one inbox. No keys, no config, no npm package.

<script src="https://indiehacker.studio/s.js" defer></script>

Free: 1 project, 10,000 pageviews a month, no card. Pro covers every app you run.

01The problem

Five apps. Five tools each.

Every side project you launch wants its own analytics account, its own chat widget, its own feedback board and a Stripe tab you check at midnight. Multiply that by every app you run and the setup costs more time than the features.

Tools priced for teams

Support suites are built for companies with seats and a support department. A solo founder with four small apps pays for features nobody uses.

One account per app

Each project gets its own analytics property, its own widget key and its own inbox. Answering users means checking five tabs.

Revenue somewhere else

Traffic lives in one tool, complaints in another, MRR in Stripe. You never see which app is growing and which one is quietly churning.

02How it works

Paste. Verify. Done.

There is no key in the snippet. Indiehacker Studio knows which project a request belongs to from the domain it comes from, and only accepts data from domains you verified. The same line goes on every app you run.

01

Paste one line

Add the script tag before </head> on your site. It loads deferred, never blocks the page and fails silently if anything goes wrong.

02

Verify the domain

Add a DNS TXT record, a meta tag, or open your site once with a verify link. Until then, nothing is recorded. HTTPS only.

03

Watch it come in

Live visitors show up within seconds, the bubble appears on the page, and every message lands in your inbox in real time.

03What you get

Four tools. One script tag.

Analytics and the bubble launcher ship in a small script. The chat panel loads only when a visitor opens it, so your page stays fast.

Analytics

Live visitors, pageviews, unique visitors, top pages, referrers and UTM campaigns, countries, devices and browsers. Today, 7 days, 30 days or any range. Custom events with ihs.track("signup"). Single-page apps are tracked on every route change.

Support chat

A floating bubble on your site opens a real-time chat. You answer from the dashboard; the visitor sees the reply instantly, with typing and seen marks. If they leave before you answer, they can leave an email and get the reply there.

Feedback and bugs

A feedback tab with a rating and a category, and a bug report tab with screenshots, a screen recording of up to 60 seconds, or files. Bug reports carry the URL, browser, OS, viewport and, if you turn it on, recent console errors.

Revenue

Connect Stripe per project with a read-only restricted key. See MRR, ARR, active subscriptions, trials, churn, new MRR, the MRR your running trials would add, and ARPU, per project and summed across all of them.

The bubble is yours to shape: corner, offset, color, icon, greeting, light or dark, and which tabs show. Edit it with a live preview.

04Multi-project by default

Every app in one inbox. Every number on one screen.

Chats, feedback and bug reports from all your projects arrive in one inbox. Filter by project, type or status, answer live, and see who you are talking to: their current page, country, device, past conversations and, if your app calls ihs.identify, their name and email.

One inbox

Open, pending and closed threads across every project. Email and browser notifications for new conversations.

One dashboard

Switch between projects or look at all of them at once: traffic, live visitors and MRR side by side.

One JS API

identify, track, open, hide and show. Optional: the script works without a single line of code.

05Privacy

Cookieless. No IP addresses stored.

The analytics set no cookies. Each browser gets a random id in localStorage so a visit and a chat thread can be told apart. IP addresses are used only at request time to find the country and to rate limit, and are never written to the database.

No cookie banner for analytics

No cookies and no personal data by default. Your own legal setup still decides what your site needs.

Locked to your domains

Only verified HTTPS domains are accepted. Every public endpoint is rate limited per site, per IP and per visitor.

Files kept private

Screenshots and recordings sit in a private bucket and open for you only, through short-lived signed links.

Stripe stays read-only

A restricted key with read permissions, encrypted at rest. It never reaches the script or a browser.

06Pricing

Priced for solo founders. Not per seat, not per app.

Free runs one project with text chat, feedback and bug reports. Pro covers every app you run, adds Stripe revenue, screenshots and screen recordings, and removes the branding from the bubble, with the first 7 days free. Cancel any time from your account.

FreeForever
$0

One app, everything in one script.

  • 1 project
  • 10,000 pageviews a month
  • 50 conversations a month
  • Live chat, feedback and bug reports
  • Cookieless analytics
  • Small "Powered by Indiehacker Studio" in the bubble
Start free

07FAQ

What is Indiehacker Studio?

One dashboard for founders who run one or many web apps. You paste one script tag on each site and get cookieless analytics, a chat bubble for support, feedback and bug reports, and, on Pro, your Stripe revenue per project. Every project shares one inbox and one dashboard.

Why is there no API key in the snippet?

The server identifies the project from the domain the request comes from, and only accepts data from domains you verified with a DNS TXT record, a meta tag or a verify link. A key in public HTML would not be a secret anyway. For several projects on one domain, add the public data-project attribute.

Does it slow my site down?

The script loads with defer and never blocks the page. It carries the analytics and the bubble launcher only; the chat panel loads the first time a visitor opens it. If anything fails, it fails silently.

Do I need a cookie banner for the analytics?

The analytics set no cookies and store no IP addresses: each browser gets a random id in localStorage, and the country is read at request time. Your own legal situation decides what your site needs, but there is nothing in the analytics that calls for a consent prompt.

How do I answer chats?

From the inbox in your dashboard, in real time. The visitor sees your reply in the bubble with typing and seen marks. If they left before you answered and gave an email, the reply goes to their inbox. New conversations also reach you by email and browser notification.

Which Stripe key do I need?

A restricted key with read permissions on Customers, Subscriptions, Invoices, Charges, Prices and Products. A publishable key (pk_) cannot read subscriptions. The key is encrypted at rest and only used on our servers to read.

Can visitors send screenshots and recordings?

On Pro, yes: up to 3 files per message, including a screenshot of the page or a screen recording of up to 60 seconds, which the visitor starts themselves. Files are stored privately and open only for you.

What if it's not for me?

Stay on Free as long as you like. Pro starts with a 7-day free trial: cancel before it ends and nothing is charged. After that, Pro cancels any time from your account, and you keep it until the end of the period you paid for.

Paste it on your next app.
See your first visitor in two minutes.

Start free

No card · 1 project · 10,000 pageviews a month

Free · Pro $12/mo or $120/yr See the plans

Contact support

We reply by email, usually within one business day.