Your source for recent updates to Fathom Analytics and our simple, privacy-focused website analytics software. If you'd like to let us know which features we're working on, here's our roadmap and suggestion form.
We spent a few months upgrading our tech stack for future development. Now we're working on some big improvements to our dashboard, finalizing our Google Analytics importer and working on a few exciting projects.
- Introduced hotkeys on the dashboard
- Reset pagination when changing tabs in dashboard
- Refactor on currencies and added support for rand
- Improvements on country searching
- Critical work on some ad-blocker bypassing updates coming in February
- Added support for ?via in query string of URLs
- Deployed a function to update GeoIP file on deployment to keep it up to date
- Laravel Tips section is now live!
- Big improvements to difference labels in the totals box
- Added UTC data to our demo to show off what Fathom can do
- Uptime monitoring improvements
- New currency: Vietnamese dong
- Improved site picker search
- You can now add a LIKE filter (search filter) to your events box (well, the whole dashboard)
- Extended trial length from 7 days to 30 days. This is important because people need more time to play with analytics and see how much better Fathom is than their current solution ;)
- Reverted Base64 changes in script.js. Certain adblockers' actions are encouraging people to use Google Analytics so, don't worry, we'll have another ad-blocker bypass update soon
- Add easier way to copy API key
- Event filters are live! So you can now filter your dashboard by event completions 🥳
- Network improvements for custom domains
- Huge refactor of the date range core. This won't mean much for a lot of people but we've improved how we handle date ranges throughout Fathom
- All time date range now shows the actual start date of the site
- Cal.com created a Fathom Analytics app (to collect data from your scheduling link on Cal.com)
- You can now search your sites from the dropdown on your dashboard. For those of you with lots of sites, there’s also now pagination in that dropdown.
- The chart now shows a dotted line when the data is incomplete (i.e. you’re looking at today and there’s 12 hours left in the day). That way you can better see if there’s a drop in stats vs just incomplete stats.
- Added Thai Baht and NOK Norwegian Krone as event currencies
- Additional work on some secret projects
- Dashboard Datepicker improvements
- All Sites improvements (server-side ordering)
- Working on some secret projects
- Internal tool improvements
- Launched our dashboard (well, entire app) re-write in Inertia.js & Vue.js to help us move faster as we scale and bring in more software engineers
- Added new ad-blocker bypassing codde
- Added slight delay to notification emails, as they were slowing down the database (suffering from success!)
- Continued working on dashboard re-write to Inertia.js & Vue.js
- Dark mode fixes
- Additional query optimizations for dashboard (we have a need for speed)
- Added token endpoint to API
- Additional validation added to custom domain forms
- Added support for event currency via API
- Working on dashboard re-write to Inertia.js & Vue.js
- Improved speed of dashboad
- Fixed bounce rate in email when value was 0%
- Timeouts increased for API queries
- Added sorting to goals box
- Upgrade to goals box, allowing easier creation of goals and customization of currency
- Gorgeous new tab interface for editing sites
- Fixed a bug where multiple requests would sometimes fire on dashboard despite some boxes not being ready (you won't notice this one but it improves speed!)
- Added ability to inject non-numeric Site ID into the ?site query string parameter on the dashboard. Useful for folks that are using our API
- Upgraded the search feature in the dashboard boxes. You can now search for a value and we will filter all boxes, not just the box you search in. This has also been added to the API as IS LIKE and IS NOT LIKE
- Added an RSS feed to our status page
- Launched our new UTM Builder
- Launched gigantic codebase refactor which included all of our technical debt fixes. A huge technical achievment that most customers won't notice, but it lays the groundwork for essential development over the next few years
- Change the way that blocked countries work behind the scenes
- Continued work on technical debt with 700+ automated tests being added
- Worked on paying down some technical debt throughout the codebase
- The Austrian DPA declared that Google Analytics is illegal, so we spent a few weeks responding to that, and dealing with a flood of new customers. We are the only analytics company on the market who offers EU Isolation without slowing down your website for US visitors, so everyone was choosing Fathom. We took the Schrems II ruling seriously back in 2020, worked hard to implement something in response to it, and our work was rewarded.
- Worked on launching the Fathom Newsletter
- Launched new terms & our new Data Processing Agreement
- And honestly, we took it easy throughout December. We've been working hard this year and took December to calm down, recharge and strategize.
- Huge custom domain relaunch. We now offer you dedicated CDN endpoints, allowing you to block yourself, allow certain domains, continue to bypass ad-blockers and also have rapid performance around the globe. This is a huge innovation and we're so proud to have launched it
- Moved our background queue back to serverless environment (so much better for us)
- Launched our monthly newsletter
- Launched a brand new affiliates page, with much more detail
- Created some NFTs, FathomCatz, on an eco-friendly blockchain to raise some money for a local animal charity.
- Added error messages to our analytics API to help with development (sorry it took so long, early access folks <3)
- Fixed bounce rate colour (🇬🇧) in emails. Again, sorry this one took so long, it's been on the list for a while
- Brand new error pages, which we hope you never see
- We completely migrated our ingest point to a new CDN provider. Previously, our script.js file was served globally, but the actual ingest was in the US, meaning it was slower for folks who weren't in the US. Well now our ingest point (pageview/event collector) is globally available, meaning your TTFB (nerd term, sorry) will be much lower, and you can let the local edge perform the slower request using their enterprise network. Long story short, everything is faster and more distributed. Watch this space, because we're about to launch something even more incredible.
- Fixes to dashboard boxes on mobile
- Deprecated user agent from being read on the client of the script.js file (ePrivacy Directive requirement)
- Launched EU Isolation. A gigantic innovation in the privacy-first analytics space.
- Introduced "Entries" to the dashboard
- Changed terminology and added tooltips to all table headers on the dashboard.
- Fixed filtering of blanks to factor in NULL values
- Improved DNS checks of custom domain set-up
- Moved away from using updates in our pageview ingest queries, making it super scalable (it's now append only). Non-technical customers won't fully understand this but it was a HUGE upgrade for us, and ensures we can continue to scal
- Dropped Redis caching and moved to a faster cache database
- Fixed remember me not remembering you (sorry about that folks!)
- Dark mode fixes in Firefox
- General UI improvements
- Dropped DynamoDB completely (read more here)
- Improved queue speed to ensure even faster real time data
- Huge optimizations to current visitors performance, making it much faster for folks who don't have the box expanded. Win for users, as it means we don't load extra data that they're not needing, and it's a win for our database CPU ;)
- Fixed dashboard issue where the pagination icons wouldn't change as you went between sites
- Launched multi-tennant analytics BETA, meaning you can have a single site dashboard for hundreds of thousands of unique site names.
- Fixed client side versioning so that it's automatic, not manual, when we deploy (huge for us, users won't notice)
- Launched a gorgeous new features page
- Fixed asset deployment to hook into our new CDN set-up
- Implemented profanity checker for Site ID random generator (long story)
- Changed "today" comparison to compare with the previous day up to the current hour
- BIG database migration. We now have the fastest website analytics in the game. Seriously, test our dashboard against others. Throw hundreds of millions of pageviews at us, and our dashboard will still be rapid!
- Launched API early access. Want in? Email us.
- More optimizations to our dashboard, including utilizing SingleStore for caching
- Added abilities to API tokens, so that you can create read only, admin or "tracking only"
- Introduced insight into usage within the billing section, so you can easily monitor pageviews/events/api calls
- Paid down so much tech debt. Developers, you know how it is, and you know how good it feels
- Migrated to new dashboard provider, and placed it behind a new firewall & CDN. It's much faster and more protected now
- Added a Roadmap section
- Launched new demo and demo website. Fun project.
- Added custom social sharing graphics to public dashboards. So if you share your public dashboard on Twitter, a gorgeous graphic with your site name is used
- Big refactor to the way we collect pageviews. We've been growing fast, and we've modified things to be able to handle even more pageviews. This was phase one, and the gain has been huge, but phase two is going to be the biggest leap we've ever made. Keep an eye on our Twitter & changelog, as we'll surely share more when it happens
- Fix bug where boxes would flash (and reload) two times
- Added locking at visitor level. Long story short, if someone was refreshing a page really fast, it could cause issues. Very rare edge case but we wanted to add in "locking" (or reserving) to improve the accuracy of your analytics
- Added link back to dashboard on settings page
- Fixed some dark mode color issues
- Fixed legend on graph
- Made it more obvious that the UTM box is... the UTM box ;)
- Re-added hash to path for SPA hash mode
- We've been working on event/entry page filtering. No ETA yet but it's been a good chunk of work
- We launched our new website!
- We launched a new version of Fathom (formerly known as V3)
- We've redirected all V3 early access links to the main Fathom application. So if you've shared any dashboards with your clients using veethree.usefathom.com, don't worry, we've got your back!
- All sites view has draggable sites again
- Ditched Redis, and moved to using DynamoDB (follow @JackEllis on Twitter if you're wanting to follow our data journey, as we're very public about our work)
- Chart updates from "Tiny Wings" style to a straight one
- Added iOS icon (if you save your dashboard to your homescreen)
- # of currents switches to # of filters when filtering
- You now have an "All Sites" option in your site selector. This page lets you view all of your sites at once, change the reporting periods, and monitor current visitors
- Previously, "Last 7 days" would show a breakdown by hour. We've changed it so anything that's 2+ days will group by day. You can drag & zoom in if you want to see an hourly breakdown
- You can now plot Avg time on site, Bounce rate and Event completions on the graph. This is really useful to see performance over time (e.g. is my bounce rate improving on my registration page? Are my event completions on the rise? etc.). To plot these, simply click the metric in the top, black box
- You can now click the figures in the totals box to switch from absolute increase mode (e.g. pageviews +10 since last period) to percentage change mode (e.g. pageviews +10% since last period)
- The whole left column is now clickable to filter. Previously you had to click the text to filter
- Fixes to current visitors to ensure correct use of grid system
- When there are no events, we now hide "Events completions" from the top black box
- Added event completions to the All Sites view
- Added delta (increase or decrease) to All Sites view
- Added Y axis to All Sites view
- Added pagination to child rows (paths) of Referrers
- Various other bug fixes & implementing customer feedback
Version 3 has entered early access. We are still finishing off various new features but we've deployed the new dashboard. Everyone can get involved. Here are the details.
After many months and hundreds of hours of work, we have migrated to a new analytics database. It's much faster and is better suited to scale as we land bigger customers. It will also enable us to run more flexible queries, which we need for V3 (UTM drill-down, page drill-down, referrer drill-down, etc.). Exhilarating times.
We spent all of February working on a huge analytics database migration, along with Version 3 work.
We've been working hard on Version 3 throughout December & January. It's coming along nicely, and we know it's going to blow your mind when we launch it. We managed to launch our new privacy law compliance section, which has gone down really well.
- Worked on data migration for Version 3 (we're moving to a much faster data store)
- Improved chart x-axes ticks on dashboard
- Converted a single, big dashboard request into multiple, faster ones. This was a huge refactor but the benefits are already being seen
- More brand updates, including brand new cat drawings (done by Paul)
- Improvements to our spam protection system
Most of this month, we were dealing with a malicious DDoS attack. In response, we worked with security experts to help protect our infrastructure from future attacks.
- Built admin functionality for clearing spam traffic
- Moved current visitors from MySQL to DynamoDB to ensure faster performance
- Fixd "Not a number" error on brand new events
- We received expert guidance on configuring our firewall to protect our application from DDoS attacks
- Added application level spam protection
- Removed old code that was no longer in use
- Switched previous range from using -1 month to using the actual previous date range
- Optimizations to event tracking
- Deployed some basic spam protection
- Made significant progress on one of our secret projects
- Launched Phantom Analzyer - a simple, real-time website scanner to see what invisible creepers are lurking in the shadows and collecting information about you.
- Added new branding
- More technical debt tidying
- Tidied up some technical debt. Specficially, we removed some excess deprecated to improve page speed.
- We removed support for ?utm_source and ?ref temporarily. We never actually announced this but we were breaking out the ?ref and placing it in referrers. The downside is that you then lose the referrer value. So our recommendation, for those who noticed the experiment, is to just keep ?ref in place. We'll be "pulling it out" when we move to Version 3!
- Started denormalizing hundreds of millions of stat entries ahead of our move to Elasticsearch
- We now hide the events box on your shared dashboards if you don't have any events set-up
- Speaking of shared dashboards, you can now hide the purple promotional banner. If you hide it, you don't get the chance to earn 25% comission on people you refer, but some people are fine with that.
- You can now configure invoices to go to multiple people, not just your account email. This is great if you have an accountant or boss who needs the invoices.
- Fixed an issue where Current Visitors would fire, continuously, when Fathom has logged you out. You wouldn't have noticed this, but we did, so we now redirect you to the login page once you lose your session.
- Removed the stats chart from mobile. Don't worry, we'll be adding it back in Version 3
- For custom domains, your script.js file will now be served much faster and is much smaller. We've built a new deploy method that copies script.js to our entire fleet of custom domain proxies rather than reverse proxying to Cloudfront!
- Improvements to our database IOPS after one customer's analytics went super viral. We'll be moving to DynamoDB in Version 3 but this is a great solution for now
- Improvements to database indexing, speeding up current visitors queries etc.
- Limit current visitors to 150 pages as some customers were seeing thousands of entries (first world problem!)
- Improved speed of data aggregation
- Added total pageviews on hover. So if you see 1.1k in one of your rows, hover over it to see the actual figure
- Added extra security to outbound links (noopener)
- We now have a YouTube channel. But we only have one to reach an audience that is already using it. For others, we built a privacy-focused shield page that requires your consent before you visit YouTube. Radical? Perhaps. But we like it.
- We wrote a ton of automation for various things to free up development time. This doesn't affect you (or excite you) in the slightest, I'm sure, but it's a win because it allows us to spend more time building Fathom
- Our Fathom cats are now fully custom, and fully owned by us. Thanks Natalie @ SaltFlat Studios!
- Optimizations to custom domain provisioning to make it much faster
- We now grab the visitor country from the IP. Previously we used the timezone to establish it. We use a locally hosted database to match the IP to country and we never send the IP to a third party service.
- Tidied the sites table up as it was getting out of control with all the new features we've been adding
- Added additional configuration for uptime monitoring. You can now customize the Check Interval and Notify After setting
- After Cloudflare went crazy and broke the internet, we added throttling to our uptime monitoring feature. This way, you won't get flooded with up/down notifications
- Added unlimited uptime monitoring to all plans at no extra cost
- Added support for ?ref in URLs. So you can override the referrer. Great for tracking campaigns / sources
- Moved our data collector & dashboard to edge-optimized set-up, meaning faster performance globally
- Introduced a much more simple tracking code, with lots of goodies
- Added support guides for installing Fathom in Ember.js, Gatsby.js, Ghost, Next.js, Nuxt.js, Webflow, Vue.js and Other SPAs
- Deployed a gorgeous refactor to our aggregator. This will mean nothing to you, unless you're nerdy like us, but we moved our thread locks from MySQL to DynamoDB
- You can now stop your analytics from tracking you. And guess what? You don't have to use a browser plugin or have a static IP!
- Revamped custom domains, and they're now much faster, along with having better global availability. Jack actually wrote about how we did it. Not to toot our own horn too much but this is the best custom domain solution on the market, and it took months to get it perfect
- Removed that external image from emails we send you. Our logo now comes as an attachment instead
- Added the data export feature back but with so many improvements. Most people didn't care about this feature, since they have no plans to leave Fathom, but we needed to get this back online
- Fixed a dashboard problem that would log you out if you clicked from another site / email
- Custom domains are now live. Read about it here.
- We had our application reported as malware. We quickly contacted all relevant tools that were reporting us as malware and got them to remove us from their blacklists. We've added real time SSL monitoring and this won't happen again
- Added a new section for our podcast
- Huge aggregation refactors to handle the growing number of new sites. Viral sites do not slow down aggregation for others
- Automate account locking if a user's invoice is unpaid for 1+ month. Less admin work = more time for the product
- Automated affiliate payouts to save admin work
- Released email reports weekly / monthly etc.
- Updated logout to be current device only, not all devices
- Improved "Update credit card" process for failed payments
- Introduced affiliate role, allowing people to register as affiliates without opening an account
- Added remember user's preference for current visitors box
- Added "This Year" to date range picker
- Improved automatic dunning to free up our time for development, not chasing invoices
- Improved invoices sent via email (PDF)
- Added email that goes out before yearly subscription renews
- Fixed Firefox issue with red highlight on input boxes
- Added notifications when 2FA is enabled / disabled on accounts
- Improved caching of events
- Added ability to convert dashboard boxes to percentage view (click the numbers)
- Fixed currency on invoices
- Created a privacy-focused affiliate program, 25% lifetime commissions. Read about it here.
- Created a WordPress plugin for our customers, to display the Fathom dashboard inside WordPress. Read about it here.
- Added option to enable 2FA for our customers. Read about it here.
- Launch of V2
- New marketing site.
- New dashboard with several new features, including: event tracking, live visitor details, weekly email reports, dashboard sharing, and under-the-hood speed improvements.
- Added 30-day free trials for all plans.
- New support articles added to public site.
- We also created this changelog (how meta).