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 Vapor
  • How 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.