Giovanni @gio.wtf · 16/06/2026The team is constantly refining their problem statements instead of speaking only in terms of solutions. They manage the risk of solving the wrong problem or the right one at the wrong time. Its surprisingly difficult to reverse engineer a problem from a solution request 010
Giovanni @gio.wtf · 06/06/2026Aligning the effort budget helps with whether and how to apply those levers. Estimation of effort is still useful tho, for different purposes. 000
Giovanni @gio.wtf · 06/06/2026How much effort are we willing to invest? What scope can be cut to deliver a smaller but valuable product increment within the effort budget? What technical debt can we take on to deliver the product increment within the effort budget at the expense of long-term speed? 100
Giovanni @gio.wtf · 06/06/2026Thinking about how feeling lack of control over a software project often manifests as a desire for estimation, but estimating won’t bring control, or at its worst will rush sloppy work and upset ppl for not meeting arbitrary deadline It is more useful to focus on the things we can actually control 100
Reposted by GiovanniHugo Baraúna @hugobarauna.com · 17/12/2025We're launching our new Elixir book! 🎉 Programming Nerves: from web developer to hardware maker. If you've ever been curious about hardware but felt intimidated, this is for you. Beta available now (38% off), or download free chapters to get started. #ElixirLang 1249
Giovanni @gio.wtf · 27/11/2025I’m catching up with CSS with @piccalil.li “Complete CSS” course. It feels like a book (?) to me which is exactly how I like it. Many “wow we can do that now” moments too, very happy I can take this course 171
Giovanni @gio.wtf · 13/11/2025Here's the last call site if you want to check the code yourself: github.com/phoenixframe...github.com 000
Giovanni @gio.wtf · 13/11/2025JS.set_attribute/2 under the hood runs DOM.putSticky(el, name, operation) which stores the "operation" function in a private key in the DOM element. While patching, DOM.applyStickyOperations(toEl) re-plays all stored DOM operations which should stick through patching! 100
Giovanni @gio.wtf · 13/11/2025Think of CSS transitions, caret position, scroll state. All is preserved while efficiently updating the DOM. morphdom `onBeforeElUpdated(fromEl, toEl)` callback allows tapping into the transform. LV uses it to re-apply DOM "sticky" operations to the toNode, the "target" state. 100
Giovanni @gio.wtf · 13/11/2025LiveView server-side renders new HTML, and sends to client the smallest diff necessary to update the client DOM to match the server state The DOM patching is done by morphdom, which transforms the existing DOM tree to match a new DOM tree in order to preserve internal state of the original elements 110
Giovanni @gio.wtf · 13/11/2025TLDR; LiveView "sticky" DOM operations re-run when DOM is patched with new HTML Demo: gio.wtf/demos/sticky... Here's the explanation of how it works: 120
Giovanni @gio.wtf · 13/11/2025Why LiveView DOM patching doesn't overwrite attributes updated through JS commands? This is one of the top questions I received after my "mastering live view reconnects" talk. I finally have time to explain it 😁 Answer and link to demo in the thread 🧵 131
Giovanni @gio.wtf · 11/11/2025Cool to see #PhoenixLivewView featured on latest @thoughtworks.com Tech Radar “well-suited for building highly interactive frontends without the need for a full JavaScript framework” Avoiding unnecessary JS bloat is key to achieve high performance at low cost www.thoughtworks.com/radar/langua...thoughtworks.comPhoenix | Technology Radar | ThoughtworksWe continue to have positive experiences with Phoenix, a server-side web MVC framework written in Elixir. Phoenix builds on the rapid application development and developer [...] 020
Giovanni @gio.wtf · 07/11/2025Great initiative from jump.ai 👏jump.aiAI Assistant for Financial Advisors | Jump AI | JumpJump is an AI-powered assistant for financial advisors that automates key tasks, improves compliance, reduces risk exposure, and more. Start a free trial today. 020
Giovanni @gio.wtf · 01/09/2025I believe this is a solved problem in the sense that the tools are there. DX could be improved tho to make it more obvious tho: www.youtube.com/watch?v=AnbW... Would love to hear your thoughts. And totally agree with Elixir happiness 😁youtube.comPhoenix LiveView: Mastering Reconnects for a Seamless User Experience -Giovanni FrancischelliYouTube video by Code Sync 130
Reposted by GiovanniElixir Radar @elixir-radar.com · 20/08/2025Elixir Radar issue 481 is out! 📣 You can read it here: buff.ly/gJLStkm This issue comes with content from @josevalim.bsky.social @solnic.dev @wojtekmach.bsky.social @gfrancischelli.bsky.social , Chris O'Donnell and Baptiste Chaleil. Thank you! #ElixirLangbuff.lyElixir Radar 481 063
Giovanni @gio.wtf · 08/08/2025Thank you 💕!! I think a higher level API for this should probably be possible 🤔 010
Giovanni @gio.wtf · 06/08/2025My talk at #ElixirConf is live 🎉 100% biased but I highly recommend watching it if you are doing #LiveView #Elixir 😁 I explain not only how to fix reconnect issues, but even how to eliminate them with some software design adjustments that also improve DX and UX! www.youtube.com/watch?v=AnbW...youtube.comPhoenix LiveView: Mastering Reconnects for a Seamless User Experience -Giovanni FrancischelliYouTube video by Code Sync 4294
Giovanni @gio.wtf · 13/05/2025So for the "Pure UI" logic, where to draw the line between using JS commands versus relying on LV assigns which might make UX suffer if connection is slow? That's the criteria I'm trying to come up with, so devs can use it to guide design decisions. What state should be tracked in the client only? 110
Giovanni @gio.wtf · 13/05/2025Heey thanks for engaging! Optimistic UI covers a lot of what I'm looking, but not everything. Some UI interactions have nothing to do with accessing remote data. But lots of LV developers fall in the mistake of using assigns to control some piece of UI that could be controlled by JS commands 110
Giovanni @gio.wtf · 12/05/2025Thanks! Didnt know this video. In my experience there’s usually a way to leverage JS cmds to drive the UI and fix UX when server feels distant. I’m trying to arrive at a definition/rule that helps identifying when this is possible. If u dont mind sharing some specific example would be very helpful 🙏 110
Giovanni @gio.wtf · 12/05/2025Heey Petar, in your experience how does UX gets impacted negatively? Did the JS commands help? Thanks you for sharing 🙏 200
Reposted by GiovanniPetar Radošević @petar.dev · 21/02/2025We are hiring an #elixirlang engineer in the EU (UK, Ireland, Netherlands, Spain or Portugal). No need to already know Elixir. We will teach you. Want to work on an amazing team? Go here: job-boards.greenhouse.io/workera/jobs... If you have questions on the role. DM me.job-boards.greenhouse.ioSenior Fullstack Engineer (EU)EU 23212
Giovanni @gio.wtf · 08/02/2025Very excited to share I'll be presenting "Phoenix LiveView: Mastering Reconnects for a Seamless User Experience" at @elixirconfeu.bsky.social 😁 #elixirconfeu 1102
Giovanni @gio.wtf · 08/02/2025Hey something like it yes, there's a bare minimal proof of concept here github.com/samaraolivei...github.comGitHub - samaraoliveiram/poc-liveview-embeddedContribute to samaraoliveiram/poc-liveview-embedded development by creating an account on GitHub. 010
Giovanni @gio.wtf · 25/12/2024With those other interop tools being available, don't you think saying *no JS is a core idea* isn't very accurate? 000
Giovanni @gio.wtf · 25/12/2024Thanks mate! What are your thoughts on js hooks and JS.dispatch then, aren't they encouraging to write JS? Personally I see Phoenix.JS just as a convenience layer of interoperability plus composability goodies. 100
Giovanni @gio.wtf · 25/12/2024Hey Josh, do you mind saying why you consider *no JS* a core idea? Asking because I don't really see it, and I'm curious to understand how exactly our experiences diverge. 000
Giovanni @gio.wtf · 10/12/2024Thanks @whatyouhi.de for this blog post andrealeopardi.com/posts/get-ri... ❤️ I vaguely remembered seeing this before, today it saved us time 😁andrealeopardi.comGet Rid of Your Old Database MigrationsAre database migrations good? Probably, but are we using them in the right way? In this post, I write about how I think about migrations and what I'm doing to mitigate some of their shortcomings. 010
Giovanni @gio.wtf · 09/12/2024Idk how to call this approach tho? Cross-origin LiveView? Embedded LiveView? The approach can also be used for a #microfrontend architecture. Anyone exploring something like this? 010
Giovanni @gio.wtf · 09/12/2024Did you know LiveViews can be embedded inside any web application? Fetch the disconnected HTML, insert in the document, call liveSocket.connect, profit. I'm experimenting with this approach to support incremental migration to #PhoenixLiveView #ElixirLang 4130
Giovanni @gio.wtf · 08/12/2024Just submitted my @elixirconfeu.bsky.social talk proposal. It's about why should any business bet on #PhoenixLiveView, from the perspective of user experience and the economics of product development. Good timing in light of the 1.0 release! happy this is my first post 😁 #ElixirLang 3132
Giovanni @gio.wtf · 05/12/2024I was looking for something like this for a some time already, thank u (: 000