Alex Loukissas

Alex Loukissas

@alexloukissas.com

Enzo's dad 🇬🇷 in LA 🌴

86 followers28 following107 posts

After 2 years in production, I sadly cannot recommend Absinthe if you’re building graphql APIs. Unergonomic, plus you’re missing out from all the tooling in the JS space. I’d still use elixir for many cases, eg have the resolvers call into an elixir service, with minimal logic in the BFF.

No shade, it’s maintained almost exclusively by a single person. And it had an unfortunate design choice of not going schema-first, making it even harder to build GraphQL with it. Plus, working with graphql in a not strictly typed language is a handicap from the get go.

Oban is too good of a tool to be limited to be used only from elixir apps. I wonder what would be the lift for being able to use it as a lightweight replacement for Temporal (which is polyglot)

Alex Loukissas reposted

The more I use GenAI coding tools, the more I am convinced keeping to "traditional" software engineering practices is what works most productive here. As in 10x more productive. E.g. - Small changes - Test that the change works before moving on - (unit) tests wherever you can

“A moment on your lips, the rest of your life on your hips”. Applies for ice cream but also for LLM-generated code. Code is a liability you must live with and support for months and years after it’s written. Just because you can commit 1000s LoC in a day, you probably shouldn’t.

The unfair advantage of building with mainstream tech like React is that the LLMs have a ton more training data on them. So you can build + iterate faster. Languages don't matter, products do.

If you take all the time it takes to configure nvim, calculate how much you make as a developer and boom! You have enough money to buy a new MBP that can run cursor that works epic ootb and go on with your life.

I wish elixir could check all these missing boxes: - supported by a massive tech co (that’s the big one) - large ecosystem - great for teams (eventually when types are in and everyone’s using them by default)

My big commitment for 2025 is to finally learn #golang. It has won as the de facto language for building backend stuff. It is insanely fast, scalable, strongly typed, has a rich ecosystem, and runs as a single binary. Sign me up!

I used Phoenix for web quite a bit this weekend. Bit of a first, since I've almost always used it to build REST APIs. It is *complicated* to use, if you're coming from React, Astro, Svelte, etc. What is a view? Which template is used? Can you have interactivity "islands"? Not for beginners for sure.

Similar to how I pick workout exercises, same with technology: it must feel good to use/do. Phoenix does not feel good to use for my taste/muscle memory. It's hard to understate how many things React (and NextJS) has got right.

Two quick things I discovered hacking on LiveviewFaster: 1. Prefetching on hover is a superpower to optimize cross-site navigation. NextJS, Astro and others have it. 2. Ditto for auto image optimization. I’ll investigate how to bring both those features to Phoenix so it catches up with competition

First draft is ready! Caveats: - it's running on fly + neon free tier, so prob 💩 - no search - no streams - had to use a JS 🫢 hack to emulate the NextJS <Link preload> (this should exist in Phoenix!) - no optimizations whatsoever liveview-faster.fly.dev

liveview-faster.fly.devLiveFaster · Phoenix Framework
Alex Loukissas@alexloukissas.com

I’m gonna try to build the equivalent of this in LiveView this weekend. Let’s see how this goes! next-faster.vercel.app

You may not like it but, some of the most consequential languages and OSS have come out of companies that had deep skin in the game for them to work well: Java, Go, React, Prometheus, k8s, etc.