DEV Community

Cover image for my cookieless analytics knows your device from pixels, not user agents
Om Yaduvanshi
Om Yaduvanshi

Posted on

my cookieless analytics knows your device from pixels, not user agents

every website you visit files away what phone you have.
you hand it to them yourself, in the user agent string on every page load.
mine throws it away.

i'm om yaduvanshi, 18, an applied ai developer building cloudline, a cookieless analytics tool. day 21 of 90, building in public.

what the user agent actually is

your browser sends a paragraph with every page load. it looks like this:

Mozilla/5.0 (iPhone; CPU iPhone OS 18_6 like Mac OS X) AppleWebKit/605.1.15

phone model, OS version, browser build. every visit, everywhere, unasked.

conventional analytics stores the whole string and derives your device, browser, and OS from it. precise, useful, and quietly identifying. enough of these signals together and you're looking at fingerprinting.

why we don't store it

cloudline stores no user agents and does no fingerprinting. a pageview stores exactly four things: page, referrer, screen size, time. that's the whole receipt.

the screen size does double duty. device type (mobile, tablet, desktop) gets worked out from screen width alone. no cookie, no IP, no user agent string sitting in a database.

the honest trade-off: it's a coarse bucket. a tablet in landscape reads as desktop. foldables are chaos. a vertical monitor reads weird.

but a coarse honest bucket beats a fake precise one. same rule i wrote about on day 16: show the honest number or show nothing.

cloudline live visitors dashboard

the part nobody markets

every data point you don't collect is a thing you can't leak, can't sell, and can't be asked to hand over. the settings page for data you never stored doesn't exist. that's the entire privacy argument for not storing user agents. not a toggle. an absence.

cloudline visitors-over-time chart

what's next, honestly

the roadmap says operating systems and browsers are coming. not shipped yet. countries, core web vitals, weekly email reports — also coming, none shipped.

the question i'm sitting with: how do we add browsers without storing user agent strings? maybe a coarse browser-family bucket, like the device ones. maybe "we don't know" stays where it is. i'd rather ship the coarse honest bucket than a fake precise one, and i'd rather ship nothing than a bucket i can't defend.

day 21 of 90. still figuring out the line between knowing enough and knowing too much.

free while in early access. no card.

https://trycloudline.space

— om

Top comments (0)