- SignalDesk3 hr ago
Original Summary
Hey everyone! I just wanted to share a little project I have been working on. It's a lightweight, minimal, self-hosted, web analytics app alternative to Google Analytics, Umami, GoatCounter etc.<p>Tldr: Created a self hosted web analytics app that is one binary (docker image available). AI was used to assist. Check it out if you care.<p>I wanted to self host a lightweight web analytics app to see if any of my pages had any visitors, but all of the self hosted apps I found were either way to heavy for what I was looking for, or simply didn’t have a UI/UX I liked. So I just made one myself.<p>The app features a dashboard with multi-site and subdomain support, and some simple filtering on date and visitor details (all EU regulation friendly, so no PIs such as IPs etc).<p>A bit about the process:<p>As I wanted it simple and lightweight, a single executable was the goal. Deciding for the frontend was easy since it doesn’t need SEO or any server side rendering, therefore I chose React with plain CSR (thankfully the DX these days is nice with Vite). The backend was a bit more tricky, since I wanted to have it fast, but also be able to get an MVP out sooner rather than later. The plan was thus two folded; first to do it in Deno to keep everything TypeScript and to implement features fast (it is still my go-to language for prototypes), then to refactor everything to a compiled language (Go or Rust) once I considered the app feature complete.<p>So I started the prototype, but just a couple of days later, the announcement of Deno being sunset came out. As I had already gotten to a point where the backend was mostly functional, I decided to pull the plug early and refactor! The tough decision was Rust vs Go, and Rust ultimately won as I like the DX and how the language looks and writes a wee bit more. So I did what most engineers do in 2026 (looking at you Bun), and I asked my AI for help. Although I consider myself pretty ok with Rust, there are still parts that I haven’t wrapped my head around fully, so as the intention was to get something out fast, I had to bite the bullet. Lastly for the database I wanted something embedded, so SQLite was the natural choice.<p>The final app ended up with a decent ~10mb (down from ~250mb with Deno) which I don’t think is too shabby. Some quick benchmarking on 1 cpu and 2gb RAM told me it could handle ~16.000 incoming analytics requests per second. The bottleneck being the database writer lock (give it more CPU, and it can do better). As this is a hobby project, and I dont expect a peak load of more than maybe 10 a day, I am content with this.<p>I consider this app mostly feature complete, and will use it for the next month before eventually releasing a v1 after fixing whatever bugs that may show themselves. If you think you can improve the app further and want to spend time on it, feel free to make a PR ^^<p>To sum up the stack: React+Vite+TanStack+Tailwind frontend, Rust+Axum backend and SQLite database; all compiled to one binary of about ~10mb.<p>Disclaimer: Yes, AI has been used for parts of the development, docs and for commit messages, but the code has been reviewed and iterated over by me, a somewhat reasonably sentient human.
- 情报分类:商业与市场研究
- 分类依据:内容涉及商业、投资或市场动态
- 信息来源:Hacker News 新项目
- 发布时间:2026/10/13 15:57:24
- No replies yet