Pinned Tweet
Traks is open source.
For the past few months I've been building a web analytics platform that runs entirely inside your own Cloudflare account. Today the whole thing is public on GitHub under MIT.
Website: traks.dev
Code: github.com/shivamanupadi/tra…
What it is
Self-hosted, cookie-free analytics. You paste one script tag, and every event flows through a Worker in your account into a per-site Durable Object for realtime and into Apache Iceberg on R2 for history. No servers to manage. No third-party service ever touches your traffic data. Not even traks.dev, which only runs the install wizard and forgets you afterwards.
Privacy by construction
Visitors are counted with a daily-rotating hash, the same approach Plausible uses. Raw IP addresses are never written anywhere. No cookies, no consent banner, no cross-day identifiers. The dashboard never calls out to a third party: auth runs on D1, the world map is self-hosted, the tracker is served inline from the edge.
Realtime without a queue
Today and live views come straight from a SQLite Durable Object with zero ingest delay. A WebSocket pushes live visitors, pages, referrers, and city-level map dots to the dashboard as they happen. Anything older is answered from Iceberg via R2 SQL, edge-cached and scan-minimized.
Built for agents, not just dashboards
This is the part I'm most excited about. Your analytics are exposed to AI agents over MCP. Point Claude, Cursor, or any MCP client at your instance and ask "what changed in traffic this week" or "which referrer drove signups yesterday." Bot and agent traffic is classified and reported alongside human traffic, so you can see how much of your audience is now machines.
What it costs
Nothing, ever, from me. You pay only your own Cloudflare usage, which stays inside the free tier for most sites. A side project runs for about $5/month. 5M pageviews a month is about $7. Past that, roughly $4.60 per additional million events. The full cost model is in the README.
Getting started
Install in about two minutes at traks.dev. Read the code, file issues, send PRs at github.com/shivamanupadi/tra…
If you've wanted analytics you actually own, without running a database or trusting a vendor with your visitors, this is for you. Stars and feedback both very welcome.
Why pay $29 when you can get it for free?
traks.dev
Traks is MIT licensed and runs in your own Cloudflare account. Sign in with Cloudflare and it installs in one click: no terminal, no Node. Updates are one click too.
Already used by 100+ Cloudflare users.
It scales because your history goes to Iceberg tables on R2 object storage, not a database that fills up.
• realtime visitors on a live map
• funnels, goals, page paths
• ChatGPT/Claude/Perplexity traffic as its own channel
• bots classified, not just dropped
• MCP server so your coding agent can query your analytics
What it doesn't do yet: Stripe revenue by source. Which is on the roadmap.
Want something else? PRs are welcome.
Introducing DataBull 🎉
I was paying $39/mo for DataFast just to see which posts made me money.
That's $468 a year. Forever. And it goes up as your traffic grows.
So I built my own.
Same idea: revenue by traffic source.
$29 lifetime. Unlimited sites. Unlimited events. Lifetime updates.
> databull.app
Meet OtterKit, the inbound layer for developers and their AI agents.
otterkit.com
What it does:
🔗 Tunnels: one command puts any local port on a public HTTPS URL. Keep the same name every time, add a password, auto-stop when you're done. Every request is captured so you can inspect it and replay it.
📬 Webhooks: a permanent URL in the cloud that answers even when your laptop is closed. It verifies signatures from Stripe, GitHub, Shopify and more, lets you return any response, and forwards each event onward, signed and retried. It can also take email and answer on your own domain.
Try quick webhook here without any account:
otterkit.com/try
⏰ Pulses: call any URL on a schedule and keep every response, or use a dead-man switch that tells you when a job goes quiet.
🤖 Built for agents: through MCP, your agent can open a tunnel, create a webhook, wait for the event and verify it, entirely on its own.
💻 A new native Mac app: live traffic, spend in your menu bar, and guardrails that stop idle tunnels before they cost you.
And the part I care about most: no subscription.
Most tools want a monthly plan even if you use them for five minutes. With OtterKit you pay as you go:
• one hour of use costs a cent.
• Run it all month and it never costs more than $3.
• Pulses are a cent per hundred runs.
New accounts get 10 free credits, so you can try it today:
npx otterkit login
#DeveloperTools #AIAgents #Webhooks #MCP #BuildInPublic #macOS
I made a 4K film of the James Webb launch and unfolding.
No frame of it came from an AI video or image model. Every frame is computed by code running in a browser. Built with Claude Opus 5.5. Sound on 🔊
How it works
The film is a website that plays itself. Each chapter is a React component, a function of time. Remotion opens it in headless Chrome, steps through one frame at a time, and encodes all 2,700 frames at 3840×2160 to MP4.
3D
three.js/WebGL: PBR materials, shadows, bloom, depth of field. The telescope is NASA's own JWST model. Opus rigged every mechanism (pallets, tower, mid-booms, 5 sunshield layers, the secondary mirror tripod, both mirror wings) to go from folded to deployed.
Effects
Liftoff smoke is thousands of lit, depth-sorted particles whose positions are computed from time, so every render is identical. Earth is a custom shader with 8K day, night and cloud maps and an atmosphere that thins with altitude. The HUD and titles are plain HTML, CSS and SVG.
Music
Also code. An organ, a ticking clock, launch rumble and latch hits, synthesised sample by sample in about 200 lines of JavaScript and mastered with ffmpeg. Original, so no copyright strikes.
Real mission data
Liftoff 12:20:07 UTC → fairing jettison at 110 km → separation at L+27:07, ~1,400 km over Africa → solar array 69 seconds later → every deployment in the real order, with dates. Opus researched and cited it all before writing a line of code.
~2,800 lines of TypeScript. A 1080p preview renders in ~3 min on a MacBook; the 4K master in ~15.
The best part: it's a source file, not a black box. Every camera move, date and color is editable.
AI didn't generate the video. It wrote the program that renders it.
We launched OtterKit a while back as "tunnels and webhooks."
That undersold it. Here's what it actually is: the inbound layer for AI agents.
otterkit.com
Your agent can call any API. But nothing can call it back. It has no URL, no inbox, and no way to wait for a Stripe event while your laptop lid is closed.
OtterKit gives it an address the world can reach:
→ Webhooks that are always answered
A permanent URL that replies to every sender, checks Stripe/GitHub/Shopify/Slack signatures (+12 more) on arrival, stores every request, and forwards what matters. It keeps working when every machine you own is off.
→ Localhost on a public HTTPS link
One command, any port. Same subdomain every time, optional password, auto-stop timer, capture and replay.
→ An email inbox per endpoint
name@otterkit.app. Sign-in codes and magic links land as events your agent can wait on.
→ Scheduled pulses
Cron from the cloud, or a dead-man switch that emails you when a job goes quiet.
The part I care most about: your agent sets all of this up itself.
"Wait for the Stripe test payment, then check the order is marked paid."
"Sign up on staging and finish the email verification yourself."
"Give the designer a password-protected link to my dev server for today."
One line and Claude Code (or Cursor, or any MCP client) has the tools:
claude mcp add otterkit -- npx otterkit mcp
Under the hood, it's all Cloudflare:
No servers of mine to keep up. All powered by @Cloudflare @CloudflareDev Your endpoint lives on the edge, close to whoever is calling it.
What's new since launch:
• A rebuilt site that says what it is in one line
• OtterKit for Mac, redesigned: every tunnel and webhook live in one window, labelled with whether your agent, a terminal or the app started it. Plus ⌘K for everything.
• The CLI now tracks where each session came from
Pricing is 1¢ per connected hour, capped at $3 per endpoint per month. New accounts get free credits.
This entire video was made by Claude Opus 5.5.
Script, storyboard, every animation (coded in Remotion), sound design, audio mix. I just said "make it studio level."
Voice by ElevenLabs. Everything else: Opus.
It's so fucking good.
#ClaudeCode #Claude #AI #Remotion #ElevenLabs #buildinpublic
Traks 0.1.42 is out, the biggest dashboard update so far.
🔗 Public dashboards
Share your site's analytics with a single link. No sign-in needed to view it. Traffic is always included, and you choose whether goals, funnels and custom events are visible too. Visitors can switch periods and filter, but can't change anything. Turn it off any time.
🎯 A new UI for goals
Every goal is now a scorecard: its conversion rate up front, a bar filled to that rate, and uniques and totals underneath. Edit, duplicate or delete a goal right from its card.
📉 A new UI for funnels
Funnels now show one column per step, with the visitors lost since the previous step highlighted, so you can see exactly where people drop off. Building a funnel is one row per step, and steps reorder by drag or the arrow keys.
🔑 API tokens tab
Tokens for Claude Code, other agents and scripts now live in their own tab: create one, copy it once, see when it was last used, revoke it in a click.
⚙️ Cleaner Settings
One card per setting, a plain statement of whether you're an owner or a member, and every site's timezone shown next to the current time in that zone.
Traks is open source and runs entirely in your own Cloudflare account. Free forever, and your data never leaves your account.
Existing installs get the update banner in the dashboard.
Full changelog: traks.dev/changelog
Traks is open source.
For the past few months I've been building a web analytics platform that runs entirely inside your own Cloudflare account. Today the whole thing is public on GitHub under MIT.
Website: traks.dev
Code: github.com/shivamanupadi/tra…
What it is
Self-hosted, cookie-free analytics. You paste one script tag, and every event flows through a Worker in your account into a per-site Durable Object for realtime and into Apache Iceberg on R2 for history. No servers to manage. No third-party service ever touches your traffic data. Not even traks.dev, which only runs the install wizard and forgets you afterwards.
Privacy by construction
Visitors are counted with a daily-rotating hash, the same approach Plausible uses. Raw IP addresses are never written anywhere. No cookies, no consent banner, no cross-day identifiers. The dashboard never calls out to a third party: auth runs on D1, the world map is self-hosted, the tracker is served inline from the edge.
Realtime without a queue
Today and live views come straight from a SQLite Durable Object with zero ingest delay. A WebSocket pushes live visitors, pages, referrers, and city-level map dots to the dashboard as they happen. Anything older is answered from Iceberg via R2 SQL, edge-cached and scan-minimized.
Built for agents, not just dashboards
This is the part I'm most excited about. Your analytics are exposed to AI agents over MCP. Point Claude, Cursor, or any MCP client at your instance and ask "what changed in traffic this week" or "which referrer drove signups yesterday." Bot and agent traffic is classified and reported alongside human traffic, so you can see how much of your audience is now machines.
What it costs
Nothing, ever, from me. You pay only your own Cloudflare usage, which stays inside the free tier for most sites. A side project runs for about $5/month. 5M pageviews a month is about $7. Past that, roughly $4.60 per additional million events. The full cost model is in the README.
Getting started
Install in about two minutes at traks.dev. Read the code, file issues, send PRs at github.com/shivamanupadi/tra…
If you've wanted analytics you actually own, without running a database or trusting a vendor with your visitors, this is for you. Stars and feedback both very welcome.
Introducing Sketchy, a coloring-page app for kids on iPhone and iPad.
papermint.studio/sketchy
Your kid describes anything, and Sketchy draws it as a coloring page in seconds. Bold lines, big shapes, crisp outlines, made for small hands. Two quality levels: Standard for rich pages fast, Premium for the frame-worthy ones.
Out of ideas? Tap Surprise me. Or start from a photo and turn the family dog into a page to color.
Not every day needs a new idea. Explore has hundreds of ready-made pages, plus storybook coloring books that tell a tale from first page to last. New books arrive on their own.
Color it right in the app. Tap a crayon, tap a spot, it fills in. Switch to Draw for freehand. When it's done: confetti, and a replay of the whole masterpiece painting itself that you can share as a little movie. Or print it for real crayons.
Every page lands in My Pages and syncs across your devices through iCloud.
Free to download. Credit packs from $1.99, never expire, and come straight back if a page fails to draw. No subscription. No account, no ads, no tracking.
Hey @levelsio
Analytics is the one that fits your keep list instead of your replace list.
Traks is open source (MIT) web analytics that runs entirely on the Cloudflare account you're already keeping: Workers for ingest, Durable Objects for realtime, R2 + Iceberg for history. No VPS, no Postgres, no cron, nothing to babysit.
Cookie-free, daily-rotating visitor hash, no IPs stored. ~$5/mo at side-project scale, all of it on your Cloudflare bill.
Stats are exposed over MCP too, so the same LLM doing your moderation can answer "why did traffic drop Tuesday" against your own data.
traks.dev
✨ I replaced all these SaaS with my own vibe coded now, so about $25,000/mo savings:
- Weather API -> My own vibe coded weather service using Norway's meteorology API
- Image resizing API -> My own vibe coded image resizing API with NodeJS's Sharp + Redis (saves ~$1,500/mo)
- Google Vision NSFW detection -> My own $0/mo vibe coded NSFW detection service with Python's NudeNET (saves ~$2,500/mo)
- Cloudflare Streaming -> My own $0/mo Nginx VPS video streaming (saves ~$250/mo)
- API Flash -> My own $0/mo screenshot service (for social images) (saves ~$250/mo)
- New Relic + IPHub -> My own $0/mo error monitoring, DDOS blocking and fleet management service (called error2telegram) (saves ~$250/mo)
- Human moderators -> My own moderation on all my sites with @xAI (saves ~$10,000/mo)
- IFTTT -> Telegram bot (saves ~$100/mo)
- Photopea as editor inside Photo AI -> Vibe coded my own photo editor (saves ~$100/mo)
- Mapbox -> Vibecoded my own free replacement with OpenFreeMaps (saves ~$500/mo)
- Uptimerobot -> My own $5/mo Uptime Canary app running on Kuma (saves ~$50/mo)
- Ghost blog -> My own $0/mo blog platform
- Customer support -> @featurebasehq + AI support bot (saves $5,000/mo)
- Scrapingbee/SerpAPI -> My own $1/mo scraper with Patchright (save ~$250/mo)
I think I have reached my final limit of replacing my SaaS services as I have these left, but that'd mean becoming an ICANN registrar (I don't want 😁), managing my own email (I don't want), managing my own hard drives at home in a storage (I don't want) and managing my own servers at home too (I don't want) and running my own GPU rig at home (I don't want):
- Cloudflare Domains
- Cloudflare Email Sending
- Cloudflare R2 Storage
- Backblaze B2 for backups
- Hetzner for all my servers for all my sites (VPS)
- xAI for all LLMs for all my sites (so many things like moderation, writing emails, anything)
This is how Live View looks like. <3
Traks is open source.
For the past few months I've been building a web analytics platform that runs entirely inside your own Cloudflare account. Today the whole thing is public on GitHub under MIT.
Website: traks.dev
Code: github.com/shivamanupadi/tra…
What it is
Self-hosted, cookie-free analytics. You paste one script tag, and every event flows through a Worker in your account into a per-site Durable Object for realtime and into Apache Iceberg on R2 for history. No servers to manage. No third-party service ever touches your traffic data. Not even traks.dev, which only runs the install wizard and forgets you afterwards.
Privacy by construction
Visitors are counted with a daily-rotating hash, the same approach Plausible uses. Raw IP addresses are never written anywhere. No cookies, no consent banner, no cross-day identifiers. The dashboard never calls out to a third party: auth runs on D1, the world map is self-hosted, the tracker is served inline from the edge.
Realtime without a queue
Today and live views come straight from a SQLite Durable Object with zero ingest delay. A WebSocket pushes live visitors, pages, referrers, and city-level map dots to the dashboard as they happen. Anything older is answered from Iceberg via R2 SQL, edge-cached and scan-minimized.
Built for agents, not just dashboards
This is the part I'm most excited about. Your analytics are exposed to AI agents over MCP. Point Claude, Cursor, or any MCP client at your instance and ask "what changed in traffic this week" or "which referrer drove signups yesterday." Bot and agent traffic is classified and reported alongside human traffic, so you can see how much of your audience is now machines.
What it costs
Nothing, ever, from me. You pay only your own Cloudflare usage, which stays inside the free tier for most sites. A side project runs for about $5/month. 5M pageviews a month is about $7. Past that, roughly $4.60 per additional million events. The full cost model is in the README.
Getting started
Install in about two minutes at traks.dev. Read the code, file issues, send PRs at github.com/shivamanupadi/tra…
If you've wanted analytics you actually own, without running a database or trusting a vendor with your visitors, this is for you. Stars and feedback both very welcome.
Introducing Whittle, voice notes that write while you talk. For iPhone and iPad.
papermint.studio/whittle
Say what's on your mind. The words appear on the page while you're still speaking, straight from Apple's on-device speech engine. When you stop, Whittle whittles: Apple Intelligence writes a title, a short summary on longer notes, and a filler-free rewrite of what you said, in your own voice. The exact transcript stays underneath, tied to the audio, so you can tap any sentence and hear it.
Record in any language Apple transcribes natively, in its own script, with the pack downloaded ahead of time so it works with no signal. Translate any note on request, on-device, kept beside the original.
Start recording from a Home Screen widget, Control Center, the Lock Screen, the Action button, or Siri. Pause and stop from the Dynamic Island. Sort notes into notebooks, search by the words you used, and bring back anything you deleted within 30 days.
Nothing leaves your phone. No account, no servers, no tracking. Your notes sync through your own iCloud.
The first 25 notes are free, forever. Then Whittle Pro is $9.99 once. Nothing renews.
Shiva retweeted
Replying to @BinaryScriptar
@BinaryScriptar - finally setting p traks for plasticfree.guide and howtostore.food
First impression is it seems slick and onboarding was painless.
2 things:
- is it not open source?! I figured it would be since its free and im self hosting it
- can I use a worker on my site to serve/redirect to the tracker code? This would avoid loading from a different domain and potentially get blocked less. This is what I usually do with posthog
Guess what is coming next to self host on your own cloudflare account.
This quoted post is unavailable.
Chrome is quietly rewiring the web: pages can now hand tools straight to AI agents (WebMCP). No DOM scraping, no clicking around, Agents call your site like an API.
Humans aren't your only visitors anymore. Traks shows you the other half, AI agents calling your site's WebMCP tools
Traks now supports it. Every agent call metered: which tool, how often, how fast, what failed. Zero config expose a tool, it's tracked.
And bots? Counted by name now. GPTBot, Googlebot, Headless Chrome - their own panel, never inside your human numbers.
Your dashboard just learned to watch the machines.
v0.1.38 · self-hosted · free forever
#WebMCP #WebAnalytics #AIagents #Cloudflare #MCP
This quoted post is unavailable.
i just listed otterkit.com on outliked, the leaderboard where you participate by posting and win based on likes.
every like on this tweet pushes it closer to #1.
do your thing 💗
outlike.lol/?via=otterkit.co…
Introducing OtterKit. Always-on webhook endpoints and instant tunnels, built for developers and their AI agents.
otterkit.com
It started with a problem I kept hitting: every time my coding agent needed to test a Stripe or GitHub webhook, it had to open a tunnel.
What OtterKit does
• Permanent webhook URLs that answer senders 24/7 with the status, body and headers you choose, verify signatures on arrival (Stripe, GitHub, Shopify, Slack and 12 more), store full history, and forward matching events to your app, signed and retried
• Instant HTTPS tunnels to any local port in one command, stable subdomains, auto stop, basic auth
• Replay any captured request, edit the payload, re sign it, fire it at your local handler
• Pulses: scheduled HTTP calls and dead man's switches with email alerts
• Payload drift detection: baseline the JSON shape per event type, get emailed when a provider changes it
• Custom domains (hooks.yourcompany.com) and an email inbox on the same endpoint
• A free Mac app that shows every tunnel and webhook live and stops them when your Mac sleeps
Built for agents first
npx otterkit mcp plugs into Claude Code, Cursor or any MCP client. Your agent provisions its own endpoint, awaits the request, inspects the payload and replays it, without you touching the terminal. Every CLI command speaks --json.
How it's built (all Cloudflare)
Every endpoint and tunnel is a Durable Object with SQLite, so state lives right next to the connection: the tunnel is a WebSocket the DO holds open, the webhook history is rows in its own database. Forwarding transforms run as real JavaScript in sandboxed V8 isolates created on demand with Worker Loaders, no network access, 50ms of CPU. Email inboxes and alerts run on Email Routing and Email Sending. Custom domains use Cloudflare for SaaS with certificates issued and renewed automatically. Console data sits behind Hyperdrive. No servers anywhere in the path.
What it costs
1 cent per connected hour, and no endpoint can ever bill more than $3 a month. Disconnected time is free. New accounts get free credits, no card to start.
Try it without signing up: otterkit.com/try gives you a live endpoint in one click.
#webhooks #devtools #MCP #ClaudeCode #Cloudflare #buildinpublic
ok this blew up a bit. 17k views, 358 saves, 8 self hosted installs in a day, and the first bug reports already patched. if you hit anything during deploy, DM me, i am on it.
Here are the screenshots of how analytics dashboard looks like for my site after the launch.
This quoted post is unavailable.
sneak peek 👀
Traks - privacy-first web analytics that runs 100% on *your* cloudflare account. events land in r2 as parquet, dashboards query r2 sql directly. zero infra to run, zero bill from me.
ships with an MCP server, so you can ask claude "what's my top landing page this week".
free forever. releasing soon.
#Cloudflare #R2 #WebAnalytics #MCP #buildinpublic
Been building Traks(Web Analytics Platform) on @Cloudflare pipelines + r2 sql and honestly.
This combo is stupid good.
ingest firehoses into r2 as parquet, query it straight with sql. no warehouse, no etl glue, no ops.
The Serverless data stack is finally here.
Using it for my personal projects as i'm still digging into the exact r2 sql limits. concurrency, scan size, query duration and other limitations.















