Building an open source analytics platform in 2 weeks
Smidgeon Analytics is a small, dead-simple, and open source analytics tool that tracks page views on your website or blog.
As a culmination of my time at Launch Academy, this project was built as a full stack application with Ruby on Rails and React. It’s currently an MVP that has a v1 release. I’m actively developing and adding new features to it.
If you just want to check out the code + demo, go for it, it’s open source!
How I built it:
The project has a couple different pieces, that all have different jobs:
- Ruby on Rails: this technology powers the backend server. It’s in charge of getting data to the right place, at the right time.
- React: a popular frontend library, React powers the visual aspects of the application.
- PostgreSQL: The technology responsible for managing my SQL database.
- Each website’s page includes a data visualization for page views on a monthly basis.
- Smidgeon tracks referring page urls, as well as what paths were visited on the site.
The hardest part of this project was creating the snippet was dealing with CORS. This is cross-origin resource sharing. It’s a mechanism that browsers use to ensure that requests that are sent from different clients to different servers are protected (so that no one can bring an application down as easily).
I’m working on tightening up security and validations over the coming weeks.
I also want to learn more Regex (Regular Expressions). I’m using Regex to validate forms and other pieces of data input, but I’m still not totally sure what I’m doing in that realm. If webdev Twitter is anything to go by, it seems like lots of people don’t understand regex. 😅
The two primary areas of focus going forward are focused around data validation and data visualization.
As I mentioned in the section above on technical challenges, I want to tighten up validations and security for data input in the app, particularly around CORS protocols.
From a data visualization standpoint, the app currently shows a line graph that displays page views by month. I want users to have more granular control over their data. This would include:
- Date range filters
- Including a downloadable CSV of user data
This project has been a blast to create, and it’s useful, to boot. As I dabble in other projects, Smidgeon will live on — I want to add new features incrementally, evolving the project over time.
Originally published 05/25/2021