Andrés
banner
andresgutgon.bsky.social
Andrés
@andresgutgon.bsky.social
#elixirlang #typescript #react
Also I think the DX of lazygit is impressive
November 10, 2025 at 2:58 PM
I use lazygit inside nvim. It feels really nice. I use Snacks plugin for lazygit
github.com/folke/snacks...

Snacks is freaking amazing. I use a lot of things from it
GitHub - folke/snacks.nvim: 🍿 A collection of QoL plugins for Neovim
🍿 A collection of QoL plugins for Neovim. Contribute to folke/snacks.nvim development by creating an account on GitHub.
github.com
November 10, 2025 at 2:57 PM
ok 😂, but no seriously what's that? a static site in Liveview?
November 8, 2025 at 7:53 PM
What I'm watching?
November 8, 2025 at 3:36 PM
I lost a nice package name while i was working on the thing. I prefer to own the name before releasing
October 1, 2025 at 8:47 PM
This is the present if you want typed Phoenix routes in your Typescript code #elixirlang
hex.pm/packages/way...
wayfinder_ex
Wayfinder generates TypeScript client helpers from Phoenix routes for use with Inertia.js or similar frameworks.
hex.pm
September 29, 2025 at 6:24 PM
Holy shit, saving jobs with this PR
September 27, 2025 at 3:57 PM
Do you have some implantation inside ash code on how to make ecto a replaceable piece? I'm not promising nothing but sounds an interesting thing to check
September 24, 2025 at 7:42 PM
It's ok, for now is just a learning tool for me. I built typescript generation porting Wayfinder from Laravel to Phoneix and you shipped rpc typescript xD
All are exercises. If later are helpful for someone is a nice byproduct
September 24, 2025 at 7:40 PM
Also related to this @jakeprem.com commented that maybe how Rails handle polymorphism is not the most idiomatic way in Ecto and pointed me to this doc

bsky.app/profile/jake...

What's your input on this? really interesting in hearing it
jakeprem.com jake @jakeprem.com · Sep 23
Short answer is the way ActiveRecord (and ActiveStorage by extension) does polymorphism does not benefit from database reference guarantees. (See hexdocs.pm/ecto/polymor... for "official" Ecto reasoning). I think for wide adoption an Elixir storage solution would want to follow Ecto's patterns too.
Polymorphic associations with many to many — Ecto v3.13.3
hexdocs.pm
September 24, 2025 at 4:36 PM
I was thinking on relying on Ecto as a hard requirement. But totally open to listen to ideas.
What other storage would make sense for handling file storage. Sorry, too many storages
September 24, 2025 at 4:30 PM
...commands I'm trying `Makefile`. Don't know if nothing of this works but it looks professional 😂
September 24, 2025 at 3:07 PM
...individual package development. I'm probably wrong but is my feeling.

So now that I choose (3) I have the problem of reusing common parts like tooling for format, credo dyalizer and alias.

This is done in a helpers/mix_helperx.ex that I use in each package.

Regarding on how to run dev
September 24, 2025 at 3:07 PM
... development of the packages

1. Different repos for each package
2. Monorepo with an Umbrella project
3. "packages" folder with different mix projects

I'm going with (3) because I feel I dont want to fight Umbrella projects. I think is better for apps development more than for...
September 24, 2025 at 3:07 PM
(1) is simpler, but final users pay the price of installing, let's say, Azure and Google dependencies when they just want to

(2) split in different hex package and avoid installing unnecessary dependencies on final apps.

I go with (2) but here I have three more choices on how to handle ...
September 24, 2025 at 3:07 PM
"...to the attachments ledger table. Then all attachment records point to the ledger table, using it as a sort of constrained join table."

This is in your README. How this work? how you achieve DB consistency?
September 23, 2025 at 11:35 PM
Super nice documentation! Thanks

"To that end it (currently) uses a Ledger approach, where polymorphism is achieved by adding a foreign key from the main table (e.g. Post) ..."
September 23, 2025 at 11:35 PM
I understand your point but i think a full implantation of active storage adds a lot of value in a lot of common cases. I'll try to build a prototype and report how it goes
September 23, 2025 at 7:03 PM