See you there! ๐
14.05.2025 11:37 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0@jskalc.bsky.social
Creator of live_vue โค๏ธ Father of 2, indie maker ๐ building SaaS https://postline.ai ๐งโ๐ป in love with the #ElixirLang ๐งช Follow for updates! #buildinpublic X profile -> https://x.com/jskalc
See you there! ๐
14.05.2025 11:37 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0image
image
image
This is one of the coolest things I built recently ๐
If YOU are an OSS maintainer with a bunch of repos on your shoulders, you may find it useful - ping me if you'd like to test it out when I actually deploy the thing.
#buildinpublic #opensource #github #automation
My PR was merged and now we have ~LIQUID sigil in the newest release of Solid package! ๐ Available in v0.18. Big thanks to @Edwardo Gurgel for looking into this so quickly!
#elixirlang #myelixirstatus
https://github.com/edgurgel/solid/pull/151
image
image
Elixir sigils are extremely powerful ๐ค
To prepare AI prompts, we're using Liquid templating language.
I've created a sigil validating our templates at compile time. It gives us instant feedback if everything's OK ๐
Now onto`~ASSISTANT`, `~USER` sigils ๐
#elixirlang
image
Just found another use case for cursor - filling up *.po translation files.
Elixir and Phoenix manages them through a great library Gettext. Running `mix gettext.extract` creates these files for you with missing translations, and Cursor fills them.
It's so easy ๐
#elixirlang
Well I wrote a tweet like a week ago I was accepted ๐ literally couldn't be more discrete ๐
22.01.2025 19:42 โ ๐ 3 ๐ 0 ๐ฌ 0 ๐ 0We all keep learning! ๐
22.01.2025 16:57 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0Holy cow! I've just re-read email I've got from them and indeed they asked not to announce it.
I don't know how I could've missed it ๐
Personally I use it quite often, for things like autocomplete etc. No need to put these in the socket just to display in the UI for a moment.
So IMO, {:reply, value, socket} is needed because it allows to return some value directly to the client. Re-rendering is triggered on assigns.
Reply tuple returns value directly to the client, without saving it to the socket. You can use it when using eg pushEvent in a hook, in a callback.
So it has nothing to do with re-rendering ๐ง
I'm speaking at @elixirconfeu.bsky.social this year in Krakow. I'll be talking about distributed Elixir and some basic ways in which you can get value out of it without making things complicated for yourself. It's a very practical talk to expect to come away with some recipes! #ElixirLang
22.01.2025 15:55 โ ๐ 46 ๐ 10 ๐ฌ 2 ๐ 0Very interesting topic. I believe many people don't use distributed festures because they fear complexity involved.
Looking forward to meeting you there! ๐
image
I really like Cursor agents mode. It works well even for moderately complex Elixir features!
We're applying for LI API and we needed an easy way to login without social auth. Cursor did it on it's own ๐ฒ
AI browsing code, writing & running tests is amazing ๐
#myelixirstatus
My @elixirconfeu.bsky.social talk "Why combining LiveView and a frontend library is a great idea" was just accepted! I'm so pumped๐
It's my very first Elixir conference. I can't wait to be there and meet y'all nerds! ๐ฅณ
#elixirlang
I had exactly this problem. I don't see an easy solution.
In the end I ditched HEEX and replaced it by Vue. It renders HTML based on props, and LiveView handles events & provides top-level props with end-to-end reactivity.
There's a clear place for everything ๐
๐ฏ Oban Web is open Source
๐ฌ Oban v2.19 includes MySQL support
๐งญ Web v2.11 is released
๐ Met v1.0 is released (and open source)
oban.pro/articles/oss...
#elixirlang
Let me know if you'd need some help!
17.01.2025 08:17 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0So LiveVue is inspired by LiveSvelte, and LiveReact inspired by LiveVue ๐
All work in a similar way. I'm a huge Vue fan so that's the reason ๐
Tbh, I had some issues with HEEX. Eg. there's no place for client-side state so you need to work around. With Vue everything has a place ๐
I've created and using LiveVue in production ๐
In my current project all LiveViews render only a single Vue component. Then Vue takes over, and based on props renders the app.
Props are reactive - any change in assigns is reflected in Vue.
So far my favourite stack! ๐
PS I might be biased ๐
The struggle is real.
24.12.2024 16:24 โ ๐ 8237 ๐ 1972 ๐ฌ 79 ๐ 247You can find an article here: https://chrisdone.com/posts/htmx-critique
21.12.2024 08:00 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0image
I've just read an interesting article about HTMX strengths and weaknesses ๐ค
โ Critiques client-side state management in HTMX
โ
Praises lack of duplication between front & back end logic
The fun part? Author suggested something that is exactly what LiveVue does ๐
#elixirlang
I've seen people with 3000+ hours ๐
Still, I envy you. It's great to optimize the factory for the first time. Over time you find your best designs ๐
...until you install Space Age. 70h in DLC, about 30% completion ๐
When I first started playing factorio I realized that sleeping is optional ๐
500+ in-game hours and still going strong
The only problem is dead render of LV. It needs auth. Cookies are the only solution I'm aware if.
15.12.2024 16:04 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0And for SSR.. Next, nuxt and others simply uses cookies.
Just, there's some hope. Cookie can either store actual data or just a session id which is used to fetch session data from the db.
The second approach would allow modifying cookies for LV. I'm not sure if it's already there...?
SPA doesn't solve it at all since first request usually just fetches static files, so auth is not needed.
In LV you need it to properly handle mounts / conn middleware etc.
AFAIK all server rendered frameworks (django, rails) uses cookies.
SPAs usually use local storage for auth token, and then token is sent in each request header.
LV uses websocket. If auth would need to happen through ws then ok, frontend can store the token client side, but then it would need to be provided somehow to all the other requests. So, like a cookie? ๐
Auth requires controllers because it sets cookies. Currently changing cookies is not possible through LiveView.
15.12.2024 15:09 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0Sometimes we have to move on to make room for our updated priorities ๐
Good luck!