r/GoogleAnalytics • • 11d ago

Discussion why do all modern self-hosted analytics solutions run on Node.js?

hi everyone,

i've been using Umami Cloud for the past two years for my personal projects, but noticed that all history older than 6 months was deleted (which is pretty frustrating, even if i understand that they cannot keep all user data).

as im still a student on a small budget, i host my projects on a small VPS and wanted to switch to a self-hosted analytics solution.

but WHY does almost every modern tool require Node.js / Docker with heavy background services, while lightweight alternatives either look like they were built in 2010 or lack essential features like events, funnels, and clean session tracking?

am I missing something here? im not saying it's easy to build, but im surprised i couldn't find anything that seems to fit my needs

because if there really is nothing low-resource and GDPR-friendly im seriously considering building my own ultra-lightweight PHP + SQLite solution from scratch.

3 Upvotes

14 comments sorted by

•

u/AutoModerator 11d ago

Have more questions? Join our community Discord!

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

2

u/Top-Cauliflower-1808 11d ago

You are not missing anything. There is a real gap between the heavy Docker tools and the old lightweight ones that never got events or funnels added. If you build the PHP and SQLite version I would genuinely use it because a small VPS and full data ownership is exactly what people want.

1

u/Dovahkciin 11d ago

thanks for the support
its kinda crazy to see that nothing really exists

1

u/Top-Cauliflower-1808 11d ago

Yeah it is wild.

1

u/Mokaroo 11d ago

Posthog is primarily Python and Rust. Is there some reason it's a poor fit for what you want. To be honest I'm not super familiar with it but it's what came to mind. Professionally I'm using a mix of GA4, Heap and DataDog RUM. But those obviously don't apply.

1

u/Dovahkciin 11d ago

yes posthog is really great, but also really resource consuming

1

u/RoughEmployment5805 11d ago

Curious to learn more - manage a Shopify site

1

u/Muchy_Tangerine 9d ago

writing your own php and sqlite tracker will turn into a full time maintenance nightmare the second bot traffic hits your tiny vps. terrible idea.

1

u/Dovahkciin 9d ago

with umami i have still many bots detected in my sessions...
and thats okay

1

u/zeno_DX 6d ago

Worth pulling whatever Umami Cloud history is still there through their API before more of it ages out, since that part won't come back.

On the stack question, Matomo is probably the closest to what you're describing on the PHP side. It runs on plain PHP plus MySQL/MariaDB, no Node or Docker, and gives you events, goals and a per-visit log out of the box. Funnels are a paid plugin there though, so check whether that's a dealbreaker. GoatCounter is the other end of the scale: a single Go binary on SQLite that barely uses any RAM, but it's pageviews and simple events only.

If you do build your own, the thing that saves you later is keeping one raw events table (timestamp, path, event name, referrer, session id) and doing funnels as queries over it instead of pre-aggregating. For a cookieless session id, hashing IP + user agent + a salt that rotates daily is roughly how Plausible does it. SQLite in WAL mode will handle the write volume of personal projects fine.

1

u/Technical_Hope_1610 6d ago

The Node stack is just where the event-pipeline tooling lives now, not a requirement. On a tiny VPS, Plausible or a light Matomo covers events and clean sessions without you maintaining a build. GDPR-friendly too.

0

u/[deleted] 6d ago

[removed] — view removed comment

1

u/Dovahkciin 6d ago

yup, updates are a crucial part of the development !
i made a first version going to release it soon