JackEllis Profile Banner
Jack Ellis Profile
Jack Ellis

@JackEllis

Followers
28K
Following
19K
Media
1K
Statuses
24K

Building @usefathom, the simple, privacy-first alternative to Google Analytics. Tweets about scaling web apps, Laravel and my health optimization journey.

Canada / UK
Joined May 2008
Don't wanna be here? Send us removal request.
@JackEllis
Jack Ellis
2 months
Something big happened in my life and I'm not joking around this time.
203
36
940
@JackEllis
Jack Ellis
8 months
And this is why Cloudflare has been banned from being used at our company. Our experience wasn’t an isolated incident. Told you.
Tweet media one
160
432
5K
@JackEllis
Jack Ellis
11 months
TIL: Stripe deploys changes to it's core API services 400 times per day 🤯
Tweet media one
46
251
3K
@JackEllis
Jack Ellis
2 years
Senior engineers/lead developers: How the hell do you context switch between reviewing multiple PRs, everything else that comes with your job and then also working on complex projects yourself?.
447
195
2K
@JackEllis
Jack Ellis
9 months
I don't understand why everybody is being so negative about Slack automatically using our data to train their global AI models. I'm personally really excited about it and our team is too.
Tweet media one
62
109
2K
@JackEllis
Jack Ellis
2 years
I turned off Docker 60 days ago and my Macbook Air is still at 100% battery.
32
67
2K
@JackEllis
Jack Ellis
3 years
What's the most useful JavaScript package you've found? I'll go first.
Tweet media one
101
131
2K
@JackEllis
Jack Ellis
3 years
We run Laravel on infrastructure that can handle over 157 billion requests per month. Here’s my answer to the question: Does Laravel Scale?.
72
362
1K
@JackEllis
Jack Ellis
10 months
I didn’t know this kind of speed was possible in PHP. The author starts off with an execution time of 25 minutes to handle one billion rows and then shows us how he got it down to 27 seconds. Absolutely remarkable.
20
205
1K
@JackEllis
Jack Ellis
2 months
We've just finished load testing. 21 billion requests per month. 20ms response times. Zero errors. Each request writes to a database. Using PHP. How much is this going to cost us? Assume a peak of 10,000 req/s.
104
62
1K
@JackEllis
Jack Ellis
11 months
Is anyone using the Apple trackpad as their primary mouse?.
340
3
1K
@JackEllis
Jack Ellis
4 years
Someone has been trying to destroy our small business for 3 weeks. Now we're fighting back.
73
135
838
@JackEllis
Jack Ellis
3 years
Everybody has a plan until they have 10 billion rows in their database.
21
65
776
@JackEllis
Jack Ellis
3 years
Love to see this. The default Laravel installation welcome page has ditched Google Fonts and moved to Bunny Fonts. This is great because it raises awareness that you don't have to send your website visitors browsing habits to an advertising company. Laravel is the GOAT.
Tweet media one
23
89
735
@JackEllis
Jack Ellis
2 years
I’ll make this simple. I’ll soon be migrating & transforming billions of database rows without downtime using Laravel (old SingleStore cluster to the new unlimited storage clusters). If 200+ people are interested, I will write the long article and share code. Otherwise, nope 😂.
45
13
756
@JackEllis
Jack Ellis
4 years
We ditched MySQL and made our dashboard really fast. Here is how we did it.
50
135
708
@JackEllis
Jack Ellis
9 months
The strangest thing about the JavaScript community is that they outsource their auth to third party providers. I’ve never once thought “I wish someone else controlled my users table”.
55
41
689
@JackEllis
Jack Ellis
1 year
We have some huge news to share.
144
17
674
@JackEllis
Jack Ellis
3 years
I am doing something I may regret. We made a single credit card payment to AWS last month for our company (Fathom Analytics). If you can guess the exact amount of that payment, I will send the same amount to you. You have 24 hours. One clue: It's less than $20,000.
4K
19
642
@JackEllis
Jack Ellis
3 months
New rule: If your site doesn't use Shopify or Stripe, I'm not entering my credit card details. What a day.
30
6
660
@JackEllis
Jack Ellis
2 years
We just migrated 17 billion database rows and here's every single detail about how we did it.
28
110
631
@JackEllis
Jack Ellis
3 years
Can we stop with the "Does Laravel scale?!" nonsense. You will run into database scaling issues 100x before you need to worry about your HTTP layer. And for those who still haven't got the message: Yes, Laravel scales.
44
56
587
@JackEllis
Jack Ellis
2 years
We re-built our entire application using Inertia.js and Vue.js.
31
79
580
@JackEllis
Jack Ellis
2 years
@NoContextHumans This may be the most perfect video I’ve ever seen.
1
0
535
@JackEllis
Jack Ellis
1 year
Ladies and gentlemen. Are you not entertained?!. I suppose I could take a few hours today and write about how I just reduced our AWS bill by ~$100,000 per year. Does that tickle your fancy?
Tweet media one
56
10
537
@JackEllis
Jack Ellis
4 years
Yesterday, one of our customers went really, really viral and I woke up to a queue backlog of over 1 million jobs. If you're handling high scale (or plan to), this article will save you from running into the problems that we did 😃.
54
113
527
@JackEllis
Jack Ellis
2 years
Fathom is now running on over 500,000 websites 🤯.
45
11
499
@JackEllis
Jack Ellis
2 months
We just benchmarked the same code but written in Go. That code can handle 52 billion requests per month (2.5x what PHP handled), 17ms response times, peak of 20,000 req/s, for a third of the cost. This is 100% infinitely scalable. 200,000 req/s? Easy. 2,000,000 req/s? Instant.
@JackEllis
Jack Ellis
2 months
We've just finished load testing. 21 billion requests per month. 20ms response times. Zero errors. Each request writes to a database. Using PHP. How much is this going to cost us? Assume a peak of 10,000 req/s.
30
25
507
@JackEllis
Jack Ellis
4 months
That's so weird, mine is showing something different.
Tweet media one
@arvidkahl
Arvid Kahl
4 months
Excuse me what?. Never has behind-the-scenes drama been so public-facing. And so destructive to the community that has nothing to do with it.
Tweet media one
19
17
468
@JackEllis
Jack Ellis
8 months
Nope. We use serverless and managed services because hiring 24/7 DevOps (internal or external) would cost more than our total monthly AWS spend.
@dhh
DHH
8 months
Modern developers will pay ANYTHING not to connect a server to the internet themselves. A tax on learned helplessness the hyperscalers are only too willing to collect.
50
14
469
@JackEllis
Jack Ellis
4 months
I can't believe this is real life. Anyone defending Matt is an idiot and I have a bridge to sell you.
@WordPress
WordPress
4 months
This has happened several times before, and in line with the guidelines you agreed to by being in the directory: . Best of luck with your version. We're looking forward to making ours amazing for our users, using the best GPL code available.
20
10
453
@JackEllis
Jack Ellis
4 months
Wordpress' attack on WP Engine is unhinged. Their current trademark policy aggressively targets WP Engine for using "WP" in it's name. In 2010, when WP Engine was founded, the Wordpress foundation told people to use "WP" in any way they see fit. Now they're mad? Come on now.
Tweet media one
Tweet media two
36
35
454
@JackEllis
Jack Ellis
11 months
Our new infrastructure to collect pageviews & events:. - Infinitely scalable (millions of req/s).- Multi-region.- Zero servers managed by us. I wasn't going to write about this, because I see it as a huge competitive edge, but I *will* write a blog post if enough of you want it.
35
10
420
@JackEllis
Jack Ellis
8 months
They need to fix this. Because right now they have goodwill, people think “oh I use Cloudflare and it’s great”. But then as more happy customers get treated like shit by their enterprise sales team, it’ll compound negatively. PLEASE fix your sales process, Cloudflare!.
2
4
405
@JackEllis
Jack Ellis
4 months
Has there ever been as much of a shit show in tech as the one we’re witnessing with WordPress?. I can only think of the Basecamp drama but this WordPress drama is on a whole other level.
31
11
396
@JackEllis
Jack Ellis
3 years
The PHP ecosystem looks pretty dead to me.
Tweet media one
27
49
398
@JackEllis
Jack Ellis
8 months
One of the core financial principles of our company is that we always pay freelancers' invoices as soon as we receive them. Paul and I spent many years freelancing before we started Fathom, and nobody should have to wait to have their invoices paid.
33
8
402
@JackEllis
Jack Ellis
1 year
I can't believe we were paying $1,000/month for this BS.
Tweet media one
33
19
399
@JackEllis
Jack Ellis
5 months
Postmark was acquired two years ago by ActiveCampaign, a company with ~1000 employees. The only changes I've seen since then are price hikes, extra cost for adjusted email retention period & now an SMTP SSL certificate expiring. What's your favourite change that they've made?.
36
15
400
@JackEllis
Jack Ellis
1 year
Should I drop my entire day and write about how we built our simple affiliate/referral system in three hours and release the code? 100 people by 11:30am and I’ll do it. We miss the goal and I never talk about it again 😇.
37
14
396
@JackEllis
Jack Ellis
2 years
Warning: If you enable Google Pay as a payment method on Stripe, Google Analytics will be injected into your website when using Stripe.js. This is a huge oversight and puts businesses at risk, especially with data protection authorities pursuing companies that are using GA 🤦🏻‍♂️
Tweet media one
14
90
372
@JackEllis
Jack Ellis
1 year
We just reduced our AWS bill by $100,000 and can now invest in much more important areas of our business.
30
39
374
@JackEllis
Jack Ellis
3 years
We’ve just hired our first full-time software engineer for Fathom 🥳.
22
6
371
@JackEllis
Jack Ellis
3 years
We started rebuilding Fathom’s entire frontend two weeks ago, adopting a completely different tech stack, and we’re nearly done. As I always ask before spending hours writing, is there demand for a deep-dive article on our move?.
48
1
367
@JackEllis
Jack Ellis
2 years
Twitter’s API changes have blocked it’s own URL shortener 😂
Tweet media one
21
25
358
@JackEllis
Jack Ellis
4 years
Today’s a big day for us. We officially deleted our MySQL database 🙈.
28
7
348
@JackEllis
Jack Ellis
4 months
Demanding 8% of gross revenue is insanity. Not net, gross. That’s revenue before expenses. This fight is about Automattic’s investors wanting to make more money after they poured $1 billion into the company. I believe WP Engine is a scapegoat.
@automattic
Automattic
4 months
We've published our term sheet and details of past negotiations with WP Engine:
25
10
346
@JackEllis
Jack Ellis
2 years
It took 11 seconds to remove an index from a table containing billions of rows. When I used MySQL, it would take 2+ hours to drop an index from a table containing a few million rows. The future is here 😇.
39
17
335
@JackEllis
Jack Ellis
10 months
In my latest blog post, I share why we stopped using Laravel for our web application and moved to Next.js.
49
20
338
@JackEllis
Jack Ellis
4 years
Merry Christmas to everyone except the guy who DDoS’d us 🎅.
10
4
327
@JackEllis
Jack Ellis
4 years
Woohoo! AWS refunded us ~$4,000 from the DDoS attack we got in November. Drinks on us 🥳.
14
10
321
@JackEllis
Jack Ellis
2 years
I'm excited to announce that my new video course, SingleStore for Laravel, is now live 🥳. I've charged into all of the MySQL headaches so that you don't have to, and I'll teach you how to use SingleStore at rapid speed and scale with Laravel.
27
78
324
@JackEllis
Jack Ellis
10 months
Tweet media one
@arvidkahl
Arvid Kahl
10 months
200,000 background jobs per hour. Checking podcasts for new episodes. Transcribing the ones I found. Checking chart rankings. Sending webhooks. Adding new podcasts to scan. Emails. I'm building a real platform here with And it's just humming along! 🥰
Tweet media one
19
21
325
@JackEllis
Jack Ellis
2 months
Paul has officially retired from Fathom. We signed the deal 3 days ago and I'm now the sole founder. I'm unbelievably excited for the future and happy that we finally found a way for Paul to retire. I will highlight some things and answer some questions.
12
8
334
@JackEllis
Jack Ellis
4 years
Tweet media one
6
29
323
@JackEllis
Jack Ellis
9 months
@asmartbear Those were our reasons for deleting it today 😇.
3
2
309
@JackEllis
Jack Ellis
5 years
I'm so excited to announce that Serverless Laravel is now available. This course will teach you everything you need to know about Laravel Vapor and will save you a lot of time. I've had so much fun building this course and I hope you love it.
18
75
314
@JackEllis
Jack Ellis
2 years
Apple: "Up to 18 hours of battery life".Docker: "Hold my beer".
9
30
304
@JackEllis
Jack Ellis
5 months
RIP Vercel.
23
11
311
@JackEllis
Jack Ellis
5 months
I want to publicly give a gigantic shout out to the amazing CTO/head of engineering at the company I work for. In previous roles, I've had to fight tooth and nail to be allowed to pay down technical debt. But this guy really gets it. He doesn't argue with me, he just understands.
23
3
306
@JackEllis
Jack Ellis
3 years
Unbelievable few days for Fathom. We chose to innovate in response to EU law changes, and Google Analytics didn’t. They were declared illegal and now more people than ever are going privacy-first with their website analytics 🥳.
17
14
298
@JackEllis
Jack Ellis
9 months
1.5 billion requests. 83ms average response time. AWS Lambda:.- Under $2,000/month (Lambda, ALB, data, etc).- Multi-AZ.- Autoscaling.- Updated & monitored 24/7 by AWS team.- Compute isolation. Total: $24,000/year. 150 million requests: $200/month. Serverless is worth every cent.
27
16
298
@JackEllis
Jack Ellis
2 years
Local development with PHP is simple again 🥳. - Laravel Herd for local environment.- HELO for email testing.- DBngin for Redis & MySQL.- Tinkerwell for debugging. This is like the old days when we were all using MAMP & WAMP. A new generation of developers will benefit from this.
20
27
290
@JackEllis
Jack Ellis
8 months
@arvidkahl The article is solid. They NEED to fix their sales team, it’s gross. I think the tech is great but we won’t touch them ever. Both me and Paul were disgusted with how they behaved with us.
5
2
284
@JackEllis
Jack Ellis
1 year
Akamai.$18 billion mkt cap.9,800 employees. Cisco.$204 billion mkt cap.84,900 employees. Comcast.$173 billion mkt cap.186,000 employees. Dell.$56 billion mkt cap.133,000 employees. Disney.$165 billion mkt cap.191,250 employees. Fathom Analytics.A four person company in Canada 🇨🇦
Tweet media one
12
10
281
@JackEllis
Jack Ellis
9 months
It’s not a $5 VPS. It’s a $5 VPS plus 24/7 monitoring by 1-2 DevOps folks on retainer. If you need uptime. What are you spending to have round the clock server monitoring? 1 or more people on call?. We’re staying serverless, FYI, I’m just trying to add reality into the debate.
57
5
283
@JackEllis
Jack Ellis
3 years
You're not shipping your side project because your scope is infinite. You've got a massive list of features, and you likely feel overwhelmed. The way forward is to reduce your spec and focus on completing one feature at a time. Repeat that 30x, and you'll be live in no time.
16
30
274
@JackEllis
Jack Ellis
2 years
To all the people scared of an unexpected AWS bill. Setting up a budget takes 10 seconds. This will email you at 85% and 100% by default, and you can customize additional notification thresholds (e.g. 50%). There's no reason not to use this feature.
Tweet media one
21
38
271
@JackEllis
Jack Ellis
3 years
The HTTP Client in Laravel is beautiful.
Tweet media one
11
30
276
@JackEllis
Jack Ellis
4 months
I'm on a journey to lose 80lb after failing to do so by myself for about 7 years. I'm now working with one of the UK's smartest doctors and I'm down 15lb so far. I will have a ton to share (tests, learnings, etc.). Are my tech folks here interested in the details of this story?.
54
1
275
@JackEllis
Jack Ellis
2 months
Refactoring code is 10000000x harder than writing code. Cloning software is easy. I remember when you could buy a "Facebook clone" PHP application but the code was pure junk. Sure, it worked, but good luck supporting it. Maintaining software over time, that's the real challenge.
28
23
279
@JackEllis
Jack Ellis
4 months
Why did nobody tell me about this function? I've been converting objects to arrays for years in order to use Arr::get(). This changes everything 🙈
Tweet media one
21
31
273
@JackEllis
Jack Ellis
4 months
Really excited to start work on my new side project this weekend. It’s a new type of CMS, with community plugins, multiple users, content revisions and so many other cool features. I’m going to name it WordPull.
33
5
266
@JackEllis
Jack Ellis
2 years
Updating the value of a column for 9.4 million rows. How long does it take?. MySQL: 3 minutes.SingleStore: 5.9 seconds. MySQL.- $730/month.- 250 GB Disk.- High Availability.- 4 vCPU.- 32 GB RAM. SingleStore.- $500/month.- 250 GB Disk.- High Availability.- 2 vCPU.- 16 GB RAM. 🤩.
13
24
259
@JackEllis
Jack Ellis
4 years
We've been under a layer 7 DDoS attack for the last 2 weeks. This attack was targeted at Fathom and was intended to cause financial damage or put us out or business. Thread time 👇.
20
20
253
@JackEllis
Jack Ellis
2 years
@alexfeinberg1 2017. So I was 23. Pill pushing doctor unable to fix issues my mum had. Gave her medication, documented side effects ensued and she died the next year. At age 29, I now know multiple different things we could’ve done that would’ve helped address her issues. I don’t trust doctors.
5
6
245
@JackEllis
Jack Ellis
2 years
To the developer who has sent us 900,000 dynamic event properties via our trackEvent() function, which hasn't been released yet and isn't documented anywhere on our site, I have just switched the value column from varchar(200) to TEXT to support those long values you're sending.
12
5
246
@JackEllis
Jack Ellis
5 years
The Laravel community is the best community I’ve ever been a part of. Everyone helps & encourages each other and no question is too much. If any of you ever have questions about scaling apps / Vapor, my DMs are always open :).
6
25
247
@JackEllis
Jack Ellis
1 year
Don’t point your local environment at your production database. I’m not dunking on them, some people learn the hard way, but please don’t do it. Protect your database. Limit access.
@resend
Resend
1 year
On February 21st, Resend experienced an outage that affected all users due to a database migration that went wrong. Here's a summary of what happened, how the incident was resolved, and the changes we're making moving forward.
26
16
248
@JackEllis
Jack Ellis
2 years
If your first response is anger when you see someone else enjoying a specific technology or tool, you're the problem.
17
21
245
@JackEllis
Jack Ellis
5 months
Deleted my Vercel Fathom redirect tweet from yesterday. Their CEO emailed me with context that supports what Lee said about it not being intentional. I believe them.
7
0
247
@JackEllis
Jack Ellis
1 year
My tech beliefs:. Serverless. AWS is incredible. Laravel. One codebase. Sustainable, not cheap. Cloud, never on-premise. Managed, never self-hosted. We're doubling down on all of these as we plan for further expansion this year. So much to ship and we are off to an epic start 🥳.
19
5
239
@JackEllis
Jack Ellis
2 years
A Formula 1 team is now a Fathom customer. Nothing to see here 🏎😎.
24
3
238
@JackEllis
Jack Ellis
3 years
And this is why we write tests 😅
Tweet media one
38
10
238
@JackEllis
Jack Ellis
2 years
Tweet media one
25
15
232
@JackEllis
Jack Ellis
4 years
It took 14 hours but we've just finished migrating nearly one billion database rows. This is a huge step for us and I'll be writing about it all very soon ☺️.
12
4
232
@JackEllis
Jack Ellis
5 months
Also today I decided that I’m going to start tweeting on literally everything I’m working on. I’ve fixed my experience on this platform, so this feels like a much more fun place to be, and the positive digest is making me want to share my work more. So let’s do this.
22
1
234
@JackEllis
Jack Ellis
2 years
@TheJackForge I’ve been thinking about learning it for the last 16 years but I’ll probably just spend another 16 years not learning it.
7
1
225
@JackEllis
Jack Ellis
8 months
Well, TIL. Me: "Everyone tells me to use feature flags in production but you can't exactly use them when you need to restructure a 30+ billion row table to make the feature work". Carl: "Use database views for now and deal with the migration once the feature is ready to launch".
14
9
233
@JackEllis
Jack Ellis
3 years
I can't believe I'm writing this.
20
27
225
@JackEllis
Jack Ellis
2 years
I say this with zero judgement towards other peoples’ tech stack choices but I am so happy to have my business built on top of Laravel. The company behind it, Laravel LLC, is independent and profitable. It’s not a $300M bet by some venture capitalists, it’s already sustainable.
11
13
229
@JackEllis
Jack Ellis
1 year
ChatGPT feels impressive when I’m asking it questions about a topic I don’t know anything about. But once I start asking questions about complex problems that I understand, it feels like I’m talking to someone who is just randomly Googling for answers to my questions.
25
20
220
@JackEllis
Jack Ellis
4 months
No, I seriously give up with AI, it makes me rage. 1) I give it my current solution and why it won't work.2) It gives me a new solution.3) I tell it why it's new solution won't work.4) It gives me my current solution as the solution to the problems that it's new solution caused.
58
4
225
@JackEllis
Jack Ellis
2 years
January: We speak to five orthopedic surgeons and they all agree my wife needs surgery on her hip. Yesterday: Meet a movement specialist in Amsterdam as our last hope. He identifies core body issues & has her RUNNING with a 45lb medicine ball. No pain. Today: Surgery cancelled.
21
6
221
@JackEllis
Jack Ellis
4 years
To celebrate GitHub using @usefathom, we're going to give away a Laravel course. RT to enter and we'll pick a winner on Sunday. The prize is any Laravel course under $300.
17
334
208
@JackEllis
Jack Ellis
2 years
It’s funny how we went from that chap on Reddit calling Laravel “dangerous” to the JavaScript community now discovering how amazing we have it over here in Laravel land. I’m here for it. Our company is built on top of Laravel and it’s an absolute dream to work with. Try it out 😇.
14
11
215
@JackEllis
Jack Ellis
4 months
Before: Managed WordPress hosting. After: Managed hosting for The-Software-That-Must-Not-Be-Named.
15
11
209
@JackEllis
Jack Ellis
9 months
If you’re not using Laravel, I feel bad for you son, I got 99 problems and Next.js ain’t one!.
12
15
214
@JackEllis
Jack Ellis
3 years
My biggest struggle as a software engineer is accepting that there’s no single “right” solution.
19
21
206
@JackEllis
Jack Ellis
10 months
I can’t get over how fast we’ve been growing in 2024. Google messed up big time and people absolutely hate GA4. Our team is 4 full-time people and a few contractors. Small but mighty. And we’re here to take all of Google Analytics’ business. Come try us!.
16
14
209