Frequently Asked Questions

Everything you need to know about self-hosting diy-analytics, from setup to data ownership.

What is diy-analytics?

diy-analytics is a free, open-source, self-hosted web analytics platform — a privacy-first, cookie-free alternative to Google Analytics that you deploy to your own infrastructure and fully own.

How quickly can I deploy my own instance?

Under 5 minutes. Deploy to Vercel, connect a PostgreSQL database (14+), and you're collecting data.

What database does diy-analytics use?

PostgreSQL, accessed via Drizzle ORM and the postgres-js driver. Any standard Postgres 14+ works, including Vercel Postgres, Neon, Supabase, or Railway — there's no vendor-specific SDK, just a DATABASE_URL connection string.

Is diy-analytics GDPR and CCPA compliant?

Yes. It's cookie-free, collects no personally identifiable information, and is privacy-first by design. Because you self-host it, your visitors' data never leaves servers you control.

How is this different from Google Analytics?

Google Analytics sends your visitors' data to a third party and relies on cookies for tracking. diy-analytics is self-hosted, cookie-free, and open source — your data stays on your own database and is never shared or sold.

Do I need technical expertise to set it up?

No. Setup is three steps: deploy the app, connect a PostgreSQL database, and paste the tracking snippet into your site. No DevOps background is required.

How big is the tracking script?

Under 2 KB, and it loads with async/defer so it never blocks page rendering or hurts Core Web Vitals.

Can I track custom events?

Yes. diy-analytics supports custom events and reports Core Web Vitals (LCP, CLS, INP) out of the box, alongside standard pageview and session tracking.

Is diy-analytics free?

Yes, it's free and open source under the MIT license. You only pay for your own hosting and database, which can be free-tier on platforms like Vercel and Neon.

Where can I get help if something isn't working?

Start with the troubleshooting guide, which covers the most common setup issues. If you're still stuck, open an issue on the GitHub repository.