Sign in

Andrew Timberlake

@andrewtimberlake.com
131 followers 182 following 110 posts

🛠️ buildinpublic ☕️ coffee 👨‍💻 programmer 🎸music ✝Christ follower 💭 sharing his thoughts • Monitor your site ☁️ sitesure.net • 💌 mailcast.io #ElixirLang

PostsRepliesMedia
Andrew Timberlake @andrewtimberlake.com · 22/09/2025
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.
010
Andrew Timberlake @andrewtimberlake.com · 18/09/2025
Vibe coding cleanup 💻🧹
000
Andrew Timberlake @andrewtimberlake.com · 17/09/2025
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.
000
Andrew Timberlake @andrewtimberlake.com · 27/08/2025
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.
000
Andrew Timberlake @andrewtimberlake.com · 27/08/2025
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
050
Andrew Timberlake @andrewtimberlake.com · 26/08/2025
My favourite email reply. Personal reply always. No AI automation
000
Andrew Timberlake @andrewtimberlake.com · 22/08/2025
030
Andrew Timberlake @andrewtimberlake.com · 22/08/2025
Confirmable button in #Phoenix #LiveView #ElixirLang Also my first colocated hook which makes sharing something like this super easy.
3241
Andrew Timberlake @andrewtimberlake.com · 08/08/2025
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
030
Andrew Timberlake @andrewtimberlake.com · 24/06/2025
TIL #ElixirLang #MyElixirStatus from: burakaymakci.com/why-did-the...
010
Andrew Timberlake @andrewtimberlake.com · 05/06/2025
Cooking 👩‍🍳
000
Andrew Timberlake @andrewtimberlake.com · 23/05/2025
Abusing LiveView to have events that update data but don’t re-render and abusing LiveComponents to get change tracking on comprehensions #MyElixirStatus #ElixirLang
120
Andrew Timberlake @andrewtimberlake.com · 17/04/2025
Scopes in Phoenix make it much easier to add user specific, global UI elements (like an unread count) #ElixirLang #phoenix
040
Andrew Timberlake @andrewtimberlake.com · 17/04/2025
Ah, that one commit that calms everything down 🍬
030
Andrew Timberlake @andrewtimberlake.com · 08/04/2025
Upward doing live upgrades in action Give it a try at upward.andrewtimberlake.com #ElixirLang #Phoenix #LiveView
1173
Andrew Timberlake @andrewtimberlake.com · 08/04/2025
I love how José manages Elixir. He makes you feel great when you contribute, even for small, seemingly insignificant updates.
1334
Andrew Timberlake @andrewtimberlake.com · 27/03/2025
The problem with treating AI like a junior programer is that it’s not going to remember what I “taught” it tomorrow 🤦‍♂️
010
Andrew Timberlake @andrewtimberlake.com · 27/03/2025
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
040
Andrew Timberlake @andrewtimberlake.com · 25/03/2025
Hot code upgrades working for Phoenix LiveView app Quick updates without WebSocket reconnect #ElixirLang #Phoenix #LiveView
6333
Andrew Timberlake @andrewtimberlake.com · 14/03/2025
Here’s mine
110
Andrew Timberlake @andrewtimberlake.com · 07/03/2025
Add environment config to your Phoenix Javascript. Make sure latency simulation never makes it to production. #ElixirLang Blog post: andrewtimberlake.com/blog/2025/03...
071
Andrew Timberlake @andrewtimberlake.com · 07/03/2025
Great idea. Here’s a video, and I’ve added it to the blog post.
150
Andrew Timberlake @andrewtimberlake.com · 06/03/2025
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
3416
Andrew Timberlake @andrewtimberlake.com · 19/02/2025
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.
020
Andrew Timberlake @andrewtimberlake.com · 19/02/2025
Be careful, Elixir has structural comparison so the following test passes even though you might expect it not to hexdocs.pm/elixir/Kerne... #ElixirLang
Elixir code that shows that nil >= 3000 resolves to true
120
Andrew Timberlake @andrewtimberlake.com · 18/02/2025
iif/3 - check a value against a condition, if true, then execute a function, else return original value #ElixirLang
def iif(value, condition, func) when is_function(condition, 1) and is_function(func, 1) do
    if condition.(value), do: func.(value), else: value
  end
020
Andrew Timberlake @andrewtimberlake.com · 01/02/2025
Made Eggs Benedict with salmon for the family this morning. Another restaurant-at-home meal 😋
Photo of Eggs Benedict on a plate
000
Andrew Timberlake @andrewtimberlake.com · 31/01/2025
Working on a new feature for @mailcast.io. Mostly there but a few edge cases need to be ironed out before shipping #buildinpublic
020
Andrew Timberlake @andrewtimberlake.com · 30/01/2025
It was all pay from the start, with a free trial. Thanks, interested to see if it adds value over build in public on X or BSky
110
Andrew Timberlake @andrewtimberlake.com · 29/01/2025
A simple change to CoreComponents to enable multi select checkboxes in Phoenix You also need to be explicit about the checked attribute `checked={value in List.wrap(@form[:field].value)}` #ElixirLang #Phoenix
040
Andrew Timberlake @andrewtimberlake.com · 14/01/2025
Sometimes you have to protect users from themselves Good UI should make things obvious, but still too many people have made this mistake.
000
Andrew Timberlake @andrewtimberlake.com · 30/12/2024
This about sums it up
000
Andrew Timberlake @andrewtimberlake.com · 09/12/2024
Use variants
160
Andrew Timberlake @andrewtimberlake.com · 03/12/2024
I love looking through a database and finding this (someone else’s, off course)
010