Phoenix LiveView is now public as we work towards our first release! I don’t think my inbox could take any more messages asking for access :D
Chris McCord
@chris_mccord
Creator of the Phoenix Framework, Author of Metaprogramming Elixir, Programmer at , builder of things
Chris McCord’s posts
My screencast is out! Build a real-time Twitter clone in 15 minutes with LiveView and the new Phoenix 1.5:
phoenixframework.org/blog/build-a-r
We build a timeline that broadcasts messages to all connected browsers - with payloads more efficient than the best hand-written SPA!
More details👇
Here's a little sneak peek of Phoenix LiveView uploads:
✅ interactive file selection
✅ file progress
✅ concurrent uploads
✅ drag and drop
✅ auto enforced validation constraints
✅ previews of local files before upload
✅ direct to cloud suport
✅ zero lines of user-land JS
I made some Phoenix LiveView progress this weekend. I think we have a good model for nested, dynamic live views, as well as error isolation and recovery. Here's a sneak peak!
note: this is *not* localhost. Deployed to remote server, and interaction is buttery smooth:
I'm thrilled to announce I've joined ! They'll support my continued work on Phoenix while I help grow their geographic global deployments around Elixir and Phoenix. Imagine turn-key PubSub + LiveView + your greater app running on every continent. This is the future!
My Phoenix LiveView writeup is out! It details our latest progress and shows off a bunch of demo applications. We show autocomplete in 35 LOC, a complete snake game in 330 LOC, and how our optimizations match hand-written JSON in payload size.
It's here! The culmination of 2 years of work across Phoenix & the book. Congrats all around
"Phoenix overtakes Svelte’s spot as the most loved web framework"
I forgot Stack Overflow's Dev Survey was a thing this year, so this was delightful to see pop up on my feed today. Thanks for the love everyone! ❤️❤️❤️🐥🔥
survey.stackoverflow.co/2022/
LiveView uploads are going to be 🔥🔥🔥. After experiencing true pain of getting correct direct to S3 uploads working, this is going to be such a quality of life improvement. Interactive uploads, progress reports, multiple files – same API for direct to server vs direct to cloud.
Phoenix 1.7.0-rc.0 is out! So much good stuff in this release – by default, HTML-aware component system with compile-time checks, verified routes, and more!
👉phoenixframework.org/blog/phoenix-1
I just released LiveBeats – open source social music app built on Phoenix LiveView. It's deployed around the world a 14 node cluster. PubSub and Presence Just Work™
This is what the future of full stack development looks like 👇
Phoenix 1.6.0-rc.0 is out on the heels of a new LiveView 0.16 release! These releases bring new authentication and mailer generators, a new HTML-aware HEEx template engine, node-free asset building, and more! Check the announcement for details! 🐥🔥
phoenixframework.org/blog/phoenix-1
Phoenix LiveView 0.15 is out with the new uploads feature! I'm super excited to see what folks build with this. We put together a 30 minute deep dive that takes you step-by-step thru adding uploads to an app, including direct to S3 support 🐥🔥
phoenixframework.org/blog/phoenix-l
It really feels like Phoenix LiveView has helped spawn a new era. Lots of excitement bubbling around server rendered apps. More and more we are also getting new leads specifically mentioning LiveView, and HN Who's Hiring often mentions it in the role. Exciting times ahead!
What started as a hack to build dynamic pages without js, accidentally gave rise to a new programming model
HTTP falls away, cli/server payload contracts aren't a thing. More efficient than graphql – we didn't plan any of that at the start. Latest blog👉
I just published a write up on the history of Phoenix LiveView. I hope it challenges the way you think about building web applications, even if you're not yet into Elixir
Phoenix LiveView 0.19.0 is out along with `TodoTrek` – an open source showcase for the new features! Check the blog for details
phoenixframework.org/blog/phoenix-l
GIF
LiveView function components and slots are so good! Paired with Tailwind the productivity is incredible. Class soup complaints disappear because you encapsulate everything into a single place inside the component. Check out this fully accessible TailwindUI dropdown:
Verified routes coming soon to a phoenix 1.7 project near you. Thanks to for complaining at the right time, and for the idea! This feature is 🔥🔥🔥. I love it so much!
Here's a 5 min screencast on deploying Phoenix globally via . I show spawning remote iex & seeing the new node auto join the cluster from a new continent. Elixir & Fly are next-level! This is what I dreamed of when starting Phoenix 9 years ago!
I'm blowing my own mind deploying elixir apps across the world on and seeing them cluster together. PubSub's just arrive in Sydney and Amsterdam. A couple minutes later I can have another instance in Hong Kong. And it all works somehow! This deserves a little screencast
My Phoenix LiveView keynote from ElixirConfEU is out detailing the LiveView life-cycle and how we achieve our diffing optimizations with ’s work on the LiveEEx engine:
My ElixirConf keynote is out showing the latest features in Phoenix 1.7 & LiveView, and a demo of the beautiful new generators
Not seen is 30 min of AV issues after I took the stage. Thanks to the audience for sticking it out with me! tldw;👇
Nothing but love on the Phoenix 1.3 hacker news comment thread, with 100+ comments. Nice way to end the week :)
I say this in the fairest way possible after years of support & churn – I now consider placing the burden of node/npm/webpack on new users as actively harmful. Also, long-term reproducible builds are essential for maintainable software & node has not stood this test of time /1 twitter.com/josevalim/stat
This post is unavailable.
There's a dozen Elixir job postings on HN who's hiring this month. A couple specifically call out LiveView, which is fun to see :)
You can now use Tailwind as a stand-alone CLI in Phoenix, with no dep on node or npm! `phx.new` will eventually support it out of the box but it’s super quick to add yourself today.
Check my write up to find out how:
My keynote is up where I highlight all the new and upcoming features for LiveView. The imminent LiveView 0.17 release is going to be 🔥🔥🔥
This is what these LiveView optimizations that highlighted look like in practice:
twitter.com/josevalim/stat
This post is unavailable.
It's pretty wild watching the pendulum swing back to server side rendering:
"Not only is it the default, the Next documentation also recommends users to stay in server mode as much as possible to improve end-user performance.” via
In case you missed it, we have beautiful Phoenix heex template highlighting in vscode thanks again to 's excellent work!
marketplace.visualstudio.com/items?itemName
😍😍😍
Sooo I made this discovery while putting together my ElixirConf talk. The logo is essentially contained in the Phoenix logo fire trails. It was fate!
With Phoenix 1.5 going rc, my latest woodworking project is approaching rc as well. Custom cabinet base for a 1940 farmhouse sink. I used my old front-door and some various scraps for the entire thing. First attempt at insets
Spent an hour with my brother hacking native iOS video streaming jpeg frames to the browser at 30fps over phoenix channels
Embed and broadcast Whisper speech-to-text transcriptions in your Phoenix app in 15 minutes
youtube.com/watch?v=Yd220T
There’s no third-party APIs to call out to, no background jobs to kick off, and no JavaScript to write. The only external dependency is ffmpeg.
I wrote a little blog about UX considerations with LiveView and how to leverage 's wonderful Alpine.js when client-side execution is required, along with a couple basic examples:
Final results from Phoenix channel benchmarks on 40core/128gb box. 2 million clients, limited by ulimit
#elixirlang
My first installment of the Phoenix Dev Blog is out! I demo the new LiveView Streams feature and talk about how it came about:
Simulate poor network on osx:
# app.local 100ms latency 30% pkt loss
$ sudo -i
$ dnctl pipe 1 config bw 10Mbit/s delay 100 plr 0.3
echo "dummynet out proto tcp from any to app.local pipe 1" | pfctl -f -
$ pfctl -e
# disable
$ pfctl -f /etc/pf.conf && pfctl -d && dnctl -q flush
HN's Who's Hiring July has 11 Elixir jobs with 4 mentioning Phoenix specifically. It's exciting to see the job opportunities blowing up
Replying to
The tailwind team generously designed and implemented our base level components and landing page for new applications, giving you a truly first class application to rapidly prototype with while learning the ins and outs of tailwind.
I just published a post & screencast on what makes Phoenix Presence special w/ sneak-peek on using upcoming features
Replying to
This is enabled by a new `phx.gen.release --docker` task that generates everything you need to deploy a released-based docker image on any platform that uses docker. You don't have to know anything about docker either. This will Just Work™ !
My ElixirConfEU keynote is up, covering Phoenix 1.4, as well as stateless vs stateful applications
I'll be showing off some neat LiveView demos that build off these features in my talk. Dynamic/nested forms in the next LiveView release will be 🔥🔥🔥 twitter.com/josevalim/stat
This post is unavailable.
I am so excited about Livebook! It is such a cool example of a LiveView application. Even with all the advanced client-side features like elixir lexer/syntax highlighting, autocomplete, etc, it weighs in at just 2186 lines of user-land JS. This is insane!
twitter.com/josevalim/stat
This post is unavailable.
“I can’t remember the last time I even saw a Phoenix bug that I’ve ever experienced in the 4+ years I’ve been using Phoenix in production. That’s a hell of an achievement.”
I love this anecdote from from my appearance on the latest
How have I used vim (key bindings) for this long and I just now learned of `. to jump to last change, and `` to jump to your location before your previous jump. I have been manually setting a/b as marks for this for years
The LiveView demos coming out have been amazing! My favorites so far are ’s PlantHopper game in 220 LOC, & ’s table pagination/filter/sorting in 50 LOC
If you’ve built something, we want to see it!
twitter.com/miladamilli/st
Quote
Table pagination, filtering, and sorting with Phoenix LiveView and no JS :-)
~50 lines of Elixir github.com/joerichsen/pho #myelixirstatus
GIF
My ElixirConfEU keynote on Phoenix 1.3 and upcoming metrics is finally live. Take a look!
If you’re looking for a 3 hour quick-start guide into #elixirlang, my RailsConf workshop is live:
confreaks.com/videos/3488-ra
Congrats to & team for shipping Bumblebee– library for pre-trained NN's like GPT2, Stable Diff, & more in Elixir.
It's amazing how little code it takes. Here's an entire single file Phoenix + Image classifier app in < 300 LOC:
phx-ml-example.fly.dev
GIF
I love how many Phoenix LiveView talks we had at ElixirConf:
LV File Uploads
youtube.com/watch?v=svpk-h
LV Demystified
youtube.com/watch?v=9eOo8h
Beyond LV
youtube.com/watch?v=AbNAuO
LV in Healthcare
youtube.com/watch?v=3SWksX
🐥🔥
Replying to
at the same time, I'm transitioning to an Advisor role at DockYard where I'll remain in close contact with the team. DockYard has been an instrumental part of the Phoenix story & their support thru the last six years has made Presence, LiveView, & all maintenance work possible❤️
My ElixirConf keynote is finally live! Check out what's in store for Phoenix 1.3 and the future:
confreaks.tv/videos/elixirc
First run of the chainsaw mill on a smaller test log. It works! My throttle cable hopped off a couple times so still some issues to debug, but it worked way better with a regular chain that I thought it would. Next up is the larger logs with a rip chain
My wife just made me this shirt! I should have some at in Feb 💁🏻♂️👕🐥🔥
I'm blown away by 's live coding "object detection in Elixir" from the Warsaw meetup.
Elixir's ML story went from 0 to copy/paste and get magical black boxes in shockingly fast timeframe. Same for Livebook. Collab notebook w/ ML visualization🤯
~100 lines of Swift, 50 lines of JS, 10 lines of Elixir :D
From : "I’m calling it. Elixir & Phoenix will be the hip programming language & web framework of 2017"
Heads up on the osx 10.12.2 upgrade, ssh config changed and mine kept prompting for ssh passphrase. Here's the fix:
apple.stackexchange.com/questions/2544
My poll at of those using Phoenix in production is humbling. The growth over the last year is amazing!
Heres what a Phoenix app & server look like with 128000 users in the same chatroom. Each msg goes out to 128k users!
This talk by about building native Elixir UIs is a must see from ElixirConf. Fantastic work!
Uh oh, time to go implement something crazy :D #espressobeandrivendevelopment
1/ If you're procrastinating on submitting to because you feel like an imposter... fight it! Three years ago I gave my 1st talk
We keep getting reports of Phoenix without caching being faster than other solutions with caching. Good perf lets you focus on what matters!
If you want a glimpse into a day in the life of an open source maintainer, here's my writeup on fixing an 8 year old Phoenix bug that somehow went uncaught for so long
Woodworking is such a nice break from programming. After working on the phx guides all day, I present my router jig for bookshelf making
The news of Phoenix 1.2 frontpaged on HN before I even finished writing the official release ann for the mailing list. So much excitement!
Find me on elixir slack if you need advice, a sanity check, or words of encouragement on your talk abstracts. I nearly backed out of my first talk submission because of imposter syndrome. Happy to help others cross that chasm!
Quote
Quote
Built a BlackJack game without using javascript! My first stab at using @elixirphoenix #LiveView. Just a POC so there may bugs :P . #myelixirstatus polite-angelic-beaver.gigalixirapp.com
As promised, my blog post is up on configuring Elixir 1.5's `open` command to work in terminal emacs:
I just ordered 200 Phoenix stickers for ElixirConf in September. Can't wait to see all my elixir friends in Seattle!
elixirconf.com
This demo video doesn't do TodoTrek justice either – everything in the app is realtime across browsers. Drag and drop, adding/delete/updating entries, activity feeds, etc!
Quote
Phoenix LiveView 0.19.0 is out along with `TodoTrek` – an open source showcase for the new features! Check the blog for details
phoenixframework.org/blog/phoenix-l
GIF
Working with on LiveView/LiveBeats accessibility has been humbling. I had no idea how far away a11y standards are from acceptable experiences without tons of work. It's my hope the community ships component libs that are accessible by default
Setting up my new macbook and migration assistant kept hanging at 0% in the “preparing” stage. I finally quit and guessed maybe node_modules was to blame. File system search showed hundreds of node_modules dirs. Current status:
Four Elixir positions on this month's HN Who's Hiring that specifically mention Phoenix:
news.ycombinator.com/item?id=158245
Landed in Denver for ElixirConf! Toddler flight was also a success 😅 Next up - fun with time zone changes
My episode is out where I talk about joining and what excites me most about their platform along with Phoenix 1.6 details. Check it out!
thinkingelixir.com/podcast-episod
On a bigger box we just 1 million phoenix channel clients on a single server! Quick screencast in action:
ie, you can run Phoenix on a $5 pi, consuming 14mb of memory, or a 40 core server serving 2M simultaneous clients. This reach is crazy to me
Excited to say I’ve joined ! Working on Phoenix oss, & limited consulting. I couldnt ask for a better team!
. has a gift for helping others level-up. Whether by mentoring or simply giving you confidence to believe you can conquer problems



