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 · 08/09/2025
The difference between girls and boys Mom to the girls, “help yourself to vegetables”. The boys get theirs dished.
000
Andrew Timberlake @andrewtimberlake.com · 03/09/2025
Been digging through logs and picking up interesting bugs. Watching customers work with your software is a great source of learning. Error logs is another one.
000
Andrew Timberlake @andrewtimberlake.com · 01/09/2025
So true “It’s tempting to fear AI slop, because it’s here and it’s going to get worse. But there’s human slop all over the internet, and it’s getting worse as well.” seths.blog/2025/09/wal...
seths.blog
Walk away or dance
AI and LLMs pose a particularly visceral threat to the typing class. Writers, editors, poets, freelancers, marketing copywriters and others are voicing reasonable (and unreasonable) objections to t…
010
Andrew Timberlake @andrewtimberlake.com · 01/09/2025
If you want to bleed money, leave a few snapshots on AWS EC2 that you don’t need
000
Andrew Timberlake @andrewtimberlake.com · 28/08/2025
There’s nothing quite as frustrating as a test that fails when running the whole suite but passes on its own.
020
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
I hate it when I know I’ve definitely solved this problem before, but cannot remember in which project 🤦‍♂️
010
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 · 25/08/2025
I had an hour and a half video chat with a customer who only bought a $2/m plan on Mailcast, but it was worth it. I watched them struggle. I identified where I had to point out things that I thought were obvious. Today I’m changing a bunch of UI based on that learning.
010
Andrew Timberlake @andrewtimberlake.com · 23/08/2025
What menu toggle are you using?
100
Andrew Timberlake @andrewtimberlake.com · 23/08/2025
Nice. That was my first approach, but it didn’t work in a popup menu, because swapping the buttons meant focus was lost causing the menu to close
010
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
Thankfully LiveView now does change tracking on comprehensions from 1.1
000
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 · 04/08/2025
You know you’re in “the zone” when you take a sip of cold coffee
010
Andrew Timberlake @andrewtimberlake.com · 06/07/2025
I’m glad it helped
000
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 · 23/04/2025
My very almost six year old to me this morning, “Dad, have you already bought my presents, or do you need to go shopping today?”
010
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 · 10/04/2025
When you ask for a change to a form and you get an entirely new form layout #VibeCoding
010
Andrew Timberlake @andrewtimberlake.com · 10/04/2025
It’s always the assumptions that get you. Don’t assume. Test
010
Reposted by Andrew Timberlake
Elixir Radar @elixir-radar.com · 09/04/2025
Elixir Radar issue 466 is out! 📣 You can read it here: buff.ly/VkZOk5G This issue comes with content from @gperales.bsky.social @andrewtimberlake.com @lawik.bsky.social @mitchellhanberg.com , Mike Hostetler and Chris McCord. Thank you! #ElixirLang #MyElixirStatus
buff.ly
Elixir Radar 466
064
Andrew Timberlake @andrewtimberlake.com · 09/04/2025
I published an updated blog post on how to use Font Awesome (or any other SVG based icon library) with Phoenix and Tailwind 4 #ElixirLang #Phoenix andrewtimberlake.com/blog/2025/0...
andrewtimberlake.com
Use Font Awesome icons in Phoenix with Tailwind 4
With a few small changes, you can change Phoenix to use Font Awesome or any similar icon library.
1133
Andrew Timberlake @andrewtimberlake.com · 08/04/2025
See it in action bsky.app/profile/andr...
000
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 · 08/04/2025
I love Elixir 🥰
000
Andrew Timberlake @andrewtimberlake.com · 07/04/2025
Runtime config doesn’t play nice with hot code upgrades. But, I think I have a solution in upward. #ElixirLang
030
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 · 27/03/2025
There is often a very simple solution. Sometimes it just takes time for it to surface
000
Andrew Timberlake @andrewtimberlake.com · 27/03/2025
Add multiple hooks to an element with Phoenix LiveView I needed to add functionality to an element with an existing hook. I could add concerns to that hook or add a new hook (not possible). Now I have a single hook that delegates to two. #elixirlang andrewtimberlake.com/blog/2025/03...
andrewtimberlake.com
Multiple hooks per element in Phoenix LiveView
Phoenix LiveView only supports one hook per element. This article shows how to delegate out to other hooks.
092
Andrew Timberlake @andrewtimberlake.com · 27/03/2025
That is an overly specific form field. A select list is also an interesting choice of input. How many options does it have? Would Jacob be able to complete the form?
130
Andrew Timberlake @andrewtimberlake.com · 26/03/2025
I just rolled back through three patch releases x.y.9 back to x.y.6 on a project and it was seamless. It will always depend on what changes within those releases though. My initial objective is to deal with small changes which is why Upward will only build an appup for a patch release for now.
000
Andrew Timberlake @andrewtimberlake.com · 26/03/2025
I hadn’t heard of Bootleg. I used to use distillery before Elixir releases and that’s what inspired this. Bootleg looks like it still uses distillery which is no longer maintained. I actually took the automatic Appup generation from distillery.
000
Andrew Timberlake @andrewtimberlake.com · 26/03/2025
I don’t think Bluesky can figure out what “this” is. I keep asking it to “show less like this” but my feed is still full of American politics
000
Andrew Timberlake @andrewtimberlake.com · 26/03/2025
Nice
010
Andrew Timberlake @andrewtimberlake.com · 26/03/2025
CSS reload is actually just about replacing the CSS file in the browser. I lean on the existing static tracking already in LiveView I’m deploying to a VPS using my own shell script
110
Andrew Timberlake @andrewtimberlake.com · 25/03/2025
It’s standard Erlang hot upgrades. The channel won’t bounce and can be upgraded (since LV 1.0.6) if you don’t change your assigns or are careful about changes. I’m even playing with hot updates of the generated CSS, like if you add a Tailwind class that wasn’t in your CSS
240
Andrew Timberlake @andrewtimberlake.com · 25/03/2025
Yup, I run one project that is call-centre software where they run the app all day, and any deploy until now has had a reconnect banner. Deploy -> support requests go through the roof because they see the banner.
020
Andrew Timberlake @andrewtimberlake.com · 25/03/2025
WIP github.com/andrewtimber...
github.com
GitHub - andrewtimberlake/upward: A library to assist with hot-code upgrade in Elixir releases
A library to assist with hot-code upgrade in Elixir releases - andrewtimberlake/upward
130
Andrew Timberlake @andrewtimberlake.com · 25/03/2025
Hot code upgrades working for Phoenix LiveView app Quick updates without WebSocket reconnect #ElixirLang #Phoenix #LiveView
6333