Umami Analytics for Static Sites
You cannot improve a landing page you do not measure — but mainstream analytics tools often bring cookie banners, heavy scripts, and data practices that feel overkill for a single pre-launch page. Umami is an open-source analytics platform built for simplicity: pageviews, referrers, devices, and basic events without tracking individuals across the web. It fits static sites because integration is one async script tag and a website ID.
Self-hosted vs Umami Cloud
Umami is AGPL-licensed and runs on PostgreSQL or MySQL. Self-hosting on a $5 VPS or a small Docker container on Fly.io costs less than SaaS analytics over a year if you are comfortable running updates. Umami Cloud (hosted by the creators) trades money for convenience — reasonable when your time is worth more than server maintenance. Both options respect visitor privacy more than legacy enterprise analytics stacks.
| Approach | Cost profile | Best for |
|---|---|---|
| Self-host Docker | VPS + your time | Technical founders, multiple sites |
| Umami Cloud | Monthly subscription | Fast setup, no DevOps |
| Plausible Cloud | Monthly subscription | Teams wanting hosted EU option |
| No analytics | $0 | Absolute minimum before launch |
What Umami tracks (and does not)
Umami records page URL, referrer, browser, OS, device type, and country derived from IP — then discards raw IP per their design. It does not fingerprint users for cross-site profiling. You get aggregate dashboards: which blog post drove signups, whether mobile bounce is high, if a Hacker News spike happened. It is not a replacement for product analytics inside your SaaS app; it is marketing-site telemetry done ethically.
Add Umami to LaunchStatic templates
Create a website entry in Umami admin, copy the tracking ID, and paste the script before </body> on every page you want measured — at minimum index.html, plus legal pages if you care about privacy-policy traffic.
<script defer src="https://your-umami.example.com/script.js" data-website-id="YOUR_WEBSITE_ID"></script>
Use the defer attribute so HTML parsing is not blocked. Host the script on the same domain as your Umami instance (or Umami Cloud URL). After deploy, visit your live site and confirm realtime views increment in the dashboard.
Self-hosting quick path with Docker
The official Docker Compose file spins up Umami and PostgreSQL. Point a subdomain like analytics.yourdomain.com at the server, terminate TLS with Caddy or Nginx, and set a strong admin password on first login. Schedule automatic image updates — Umami releases security patches like any public-facing app. Back up the database volume; losing stats is not catastrophic but hurts trend analysis.
Environment variables that matter
DATABASE_URL— PostgreSQL connection stringAPP_SECRET— session signing secret; generate a long random stringDISABLE_TELEMETRY— set true if you prefer no phone-home from the app itselfCORS— restrict origins if you embed the script on multiple domains
Custom events for conversion tracking
Beyond pageviews, Umami supports custom events — useful for button clicks without full tag-manager complexity. Track waitlist submits by firing an event after successful Formspree response:
if (window.umami) {
umami.track('waitlist_signup', { source: 'hero' });
}
Keep event names consistent and documented. Three well-chosen events beat fifty noisy ones you never review.
GDPR, cookie banners, and privacy policies
Umami markets itself as cookieless analytics when configured without local storage. Many EU sites still mention analytics in privacy policies and offer opt-out where required. LaunchStatic is not a law firm — consult your counsel for your markets. Practically, teams choose Umami to reduce intrusive consent banners compared to AdTech-heavy alternatives. Document what you collect and why in your privacy page.
Umami vs Plausible vs Google Analytics 4
Plausible is a polished hosted product with transparent pricing and excellent docs — great if you want zero servers and will pay monthly from day one. GA4 is free but complex, script-heavy, and tied to Google's ecosystem; overkill for a waitlist. Umami shines when you want open source, self-host optionality, and a clean dashboard without learning a tag manager. You can switch tools later — analytics snippets are a few lines in shared layout partials.
Operational tips for launch week
- Verify tracking on production domain, not just localhost
- Exclude your own IP in Umami settings to avoid skewing data
- Share read-only dashboard links with cofounders instead of screenshots
- Set a weekly reminder to review top referrers and adjust messaging
- Remove analytics from password-protected staging environments
Related: Cloudflare Pages guide Formspree guide Privacy policy template
Will Umami slow my landing page?
The tracker is lightweight — far smaller than typical GA4 bundles. Use defer and load from a nearby host to minimize impact on Core Web Vitals.
Do I need cookies consent with Umami?
Depends on jurisdiction and configuration. Many sites use Umami specifically to avoid cookie banners, but you must align with your legal advice and disclose analytics in your privacy policy.
Can I run Umami on Cloudflare Workers?
Umami expects Node and a SQL database; Workers alone are not a fit. Host on a VPS, Railway, Render, or Umami Cloud instead.
Does Umami support multiple sites?
Yes. One Umami instance can track many websites with separate IDs — ideal for portfolio founders running several experiments.
Measure what you ship
Deploy a LaunchStatic template, add Umami in two minutes, and know where your first visitors come from before you scale ad spend.
Browse templates All tool guides