Andrew Timberlake
andrewtimberlake.com
Andrew Timberlake
@andrewtimberlake.com
🛠️ buildinpublic ☕️ coffee 👨‍💻 programmer 🎸music ✝Christ follower 💭 sharing his thoughts • Monitor your site ☁️ http://sitesure.net • 💌 https://mailcast.io
#ElixirLang
The last jump was from 3m to 1y. Showing up every day for a year is a huge commitment. This app did almost nothing to help me celebrate the success and then I immediately felt like the next 365d were going to be a slog.
I’ve stopped. Not because of the app, but it didn’t help.
September 22, 2025 at 10:41 AM
Vibe coding cleanup 💻🧹
September 18, 2025 at 10:49 AM
Reddit is not a terrible place to do business. Good marketing is offering a solution to a problem people have when they need it. When you do that, you can see good results anywhere.
September 17, 2025 at 4:28 PM
Added configurable spam blocking to Mailcast.io
You can now set the score at which to block spam. And you can see what’s being blocked in the logs so you always know what’s happening with every email.
August 27, 2025 at 11:37 AM
Sometimes you only want validation to be applied if some condition is met.
In one of my projects the first workflow step always runs immediately (0 days) and the rest have to be at least 1 day apart (>= 1 day), so I only wanted validation from the second step.
#MyElixirStatus
August 27, 2025 at 6:57 AM
My favourite email reply. Personal reply always. No AI automation
August 26, 2025 at 7:06 AM
August 22, 2025 at 1:09 PM
Confirmable button in #Phoenix #LiveView #ElixirLang
Also my first colocated hook which makes sharing something like this super easy.
August 22, 2025 at 1:09 PM
Just overhauled Mailcast’s test suite. Lot’s of global state in GenServers. Every test is now async: true and it’s ended up more reliable and twice as fast
#MyElixirStatus #ElixirLang
August 8, 2025 at 7:12 AM
June 24, 2025 at 6:57 AM
Cooking 👩‍🍳
June 5, 2025 at 3:09 PM
Abusing LiveView to have events that update data but don’t re-render and abusing LiveComponents to get change tracking on comprehensions
#MyElixirStatus #ElixirLang
May 23, 2025 at 10:51 AM
Scopes in Phoenix make it much easier to add user specific, global UI elements (like an unread count)
#ElixirLang #phoenix
April 17, 2025 at 2:40 PM
Ah, that one commit that calms everything down 🍬
April 17, 2025 at 8:34 AM
Upward doing live upgrades in action
Give it a try at upward.andrewtimberlake.com
#ElixirLang #Phoenix #LiveView
April 8, 2025 at 3:24 PM
I love how José manages Elixir. He makes you feel great when you contribute, even for small, seemingly insignificant updates.
April 8, 2025 at 9:18 AM
The problem with treating AI like a junior programer is that it’s not going to remember what I “taught” it tomorrow 🤦‍♂️
March 27, 2025 at 12:32 PM
New greenfield project. Don’t even know what to name it yet.
Working with Phoenix 1.8.0-dev, Tailwindcss 4, and gonna give DaisyUI a try at least for the initial prototype
#ElixirLang
March 27, 2025 at 11:14 AM
Hot code upgrades working for Phoenix LiveView app
Quick updates without WebSocket reconnect
#ElixirLang #Phoenix #LiveView
March 25, 2025 at 10:37 AM
Here’s mine
March 14, 2025 at 8:55 AM
Add environment config to your Phoenix Javascript.
Make sure latency simulation never makes it to production.
#ElixirLang
Blog post: andrewtimberlake.com/blog/2025/03...
March 7, 2025 at 9:39 AM
Great idea. Here’s a video, and I’ve added it to the blog post.
March 7, 2025 at 6:52 AM
This snippet in your app.js file will highlight areas that change on the screen which can be useful for debugging Phoenix LiveView changes. Sometimes more is changing than you expect.
#ElixirLang
March 6, 2025 at 2:02 PM
What’s nice is Elixir’s type system catches it in this case where it’s always going to be a test of disjointed types.
February 19, 2025 at 9:25 AM
Be careful, Elixir has structural comparison so the following test passes even though you might expect it not to
hexdocs.pm/elixir/Kerne...
#ElixirLang
February 19, 2025 at 9:03 AM