Listen "Rebuilding Fathom Analytics on Serverless Infrastructure with Jack Ellis"
Episode Synopsis
Jack Ellis
Personal Site@JackEllis
Fathom Analytics
Fathom Analytics (SAAS version, Affiliate link with $10 discount)Fathom Lite (Open-source, original Golang version)We rebuilt Fathom Analytics from the ground up and moved to Laravel VaporHow we built a GDPR compliant website analytics platform without using cookies
Laravel
Laravel (PHP web framework)Laravel Vapor (Serverless provisioning and deployment tool)
Hosting Providers
Digital Ocean (Host for Open-source version)Heroku (Host for 1st rewrite)AWS (Host for 2nd rewrite)
AWS Services Used
ElastiCache (Redis)Elastic Load Balancing (Handles web requests and triggers Lambda functions)Relational Database Service (MySQL)Simple Queue Service (Message Queue)Lambda (Run functions without managing a server)
Other Links
Things you should never do (Post Jack mentions on never rewriting software)
Timestamps
[00:00:58] What's Fathom Analytics and how is it different from Google Analytics?[00:03:35] When was the project started?[00:06:00] Limiting what we know about our users[00:08:11] Tracking unique page views without cookies[00:11:50] The original Open Source Golang version of Fathom[00:14:06] The case for rewriting Fathom[00:17:46] The process of rewriting Fathom[00:20:49] Migrating from individual SQLite instances to multitenant MySQL[00:24:10] Working with DNS Caching, running the old and new application simultaneously while migrating[00:26:40] Moving from Digital Ocean, to Heroku, to AWS (using Laravel Vapor)[00:34:07] What's Laravel Vapor? (Provisioning and deployment tool for AWS serverless offerings)[00:37:06] Comparing how Fathom used Heroku vs AWS (Heroku Redis -> ElasticCache + SQS, Web/Worker Dynos -> SQS + Lambda functions)[00:40:25] Moving from Heroku Web/Worker dynos to Lambda functions[00:42:25] Using Elastic Load Balancer instead of API Gateway[00:44:01] Tracking load, downtime, maintaining availability[00:51:22] Walkthrough of what happens when a user visits a site running Fathom[00:52:50] Dealing with the AWS lambda cold start problem[00:54:04] Why serverless was a good fit and when to use it
Theme music is 12:30 AM by Crystal Cola.
Personal Site@JackEllis
Fathom Analytics
Fathom Analytics (SAAS version, Affiliate link with $10 discount)Fathom Lite (Open-source, original Golang version)We rebuilt Fathom Analytics from the ground up and moved to Laravel VaporHow we built a GDPR compliant website analytics platform without using cookies
Laravel
Laravel (PHP web framework)Laravel Vapor (Serverless provisioning and deployment tool)
Hosting Providers
Digital Ocean (Host for Open-source version)Heroku (Host for 1st rewrite)AWS (Host for 2nd rewrite)
AWS Services Used
ElastiCache (Redis)Elastic Load Balancing (Handles web requests and triggers Lambda functions)Relational Database Service (MySQL)Simple Queue Service (Message Queue)Lambda (Run functions without managing a server)
Other Links
Things you should never do (Post Jack mentions on never rewriting software)
Timestamps
[00:00:58] What's Fathom Analytics and how is it different from Google Analytics?[00:03:35] When was the project started?[00:06:00] Limiting what we know about our users[00:08:11] Tracking unique page views without cookies[00:11:50] The original Open Source Golang version of Fathom[00:14:06] The case for rewriting Fathom[00:17:46] The process of rewriting Fathom[00:20:49] Migrating from individual SQLite instances to multitenant MySQL[00:24:10] Working with DNS Caching, running the old and new application simultaneously while migrating[00:26:40] Moving from Digital Ocean, to Heroku, to AWS (using Laravel Vapor)[00:34:07] What's Laravel Vapor? (Provisioning and deployment tool for AWS serverless offerings)[00:37:06] Comparing how Fathom used Heroku vs AWS (Heroku Redis -> ElasticCache + SQS, Web/Worker Dynos -> SQS + Lambda functions)[00:40:25] Moving from Heroku Web/Worker dynos to Lambda functions[00:42:25] Using Elastic Load Balancer instead of API Gateway[00:44:01] Tracking load, downtime, maintaining availability[00:51:22] Walkthrough of what happens when a user visits a site running Fathom[00:52:50] Dealing with the AWS lambda cold start problem[00:54:04] Why serverless was a good fit and when to use it
Theme music is 12:30 AM by Crystal Cola.
More episodes of the podcast Software Sessions
Elizabeth Figura on Wine and Proton
24/09/2025
François Daoust on the W3C
16/09/2025
Brandon Liu on Protomaps
06/04/2025
Hong Minhee on ActivityPub
28/02/2025
Tom MacWright on Shutting down Placemark
06/02/2025
Paul Frazee on Bluesky and ATProto
16/01/2025
ZARZA We are Zarza, the prestigious firm behind major projects in information technology.