andreamancuso

andreamancuso

Proposal: Ask Tailwind CSS to support RISC-V, for the sake of Phoenix portability

Hey folks,

This might sound niche, but I think it’s worth bringing up - especially given Phoenix’s reputation for being lightweight, portable, and fast.

I recently attempted to run a full Phoenix + LiveView stack on a RISC-V board (specifically a Milk-V Mars running Debian Trixie). Everything worked surprisingly well:

  • Erlang/OTP installed and ran without a hitch
  • Elixir compiled fine
  • Phoenix booted up like a champ
  • Even Docker worked!

And then… Tailwind happened.

As most of you know, Phoenix uses the Tailwind CLI during asset compilation - and unfortunately, the Tailwind CLI doesn’t currently provide builds for RISC-V. Even compiling it from source doesn’t work cleanly out of the box due to its Rust-based binary and tight coupling with unsupported system assumptions (like filesystem access during runtime scanning in v4).

This is the roadblock stopping Phoenix from running cleanly on RISC-V systems out of the box - and frankly, it’s a shame. Everything else is ready. We’re just blocked by one missing binary.

I’d like to suggest that the Phoenix core team officially reach out to Tailwind Labs, asking them to consider adding a RISC-V target for their standalone CLI releases.

It would:

  • Unlock Phoenix development on new/emerging architectures
  • Encourage broader experimentation (edge computing, low-power setups, alt-arch servers, etc.)
  • Future-proof the asset pipeline for what’s quickly becoming a real-world dev target (Debian officially supports RISC-V)

I know this is an upstream request, but coming from Phoenix - a major Tailwind integrator - it might carry more weight than individuals asking piecemeal.

Just planting the seed.

Thanks for considering and apologies if anyone finds this proposal silly/outrageous.

Andrea

Most Liked

andreamancuso

andreamancuso

LOL, sorry for giving you false hope.

I compiled turbo (by vercel) on my Milk-V Mars, took 2+ hours. It’s 03:18am as I type this so will try compiling tailwind tomorrow. That said, I was able to compile the oxide binary. Let’s see what happens.

arcanemachine

arcanemachine

I vibe-coded a wrapper that makes it so that vanilla Phoenix can work on RISC-V with Tailwind support:

FWIW it’s a workaround, not a proper solution (Bun doesn’t support RISC-V, which is a hard blocker for official tailwindcss CLI support), but it does the job.

Just figured I’d let you know since you’re the only other person I know who has dug into the issue.

P.S. This page is currently the top result on Google when you search tailwind risc-v :partying_face:

Where Next?

Popular in Proposals: Ideas Top

moacirbishopcamata
Good morning to the Elixir team. Please excuse me if I’m commenting in the wrong place; please indicate where I should discuss this. I ...
New
AHBruns
Rethinking phx-no-feedback So, I won’t go into how phx-no-feedback works in detail, but the tl;dr is that it lets you conditionally add a...
New
lessless
Hi, There are a few writeups describing alternative config arrangements by a topic (or an OTP app): Configuring Phoenix apps: Two sma...
New
dorgan
Currently the Phoenix.LiveView.JS struct is defined as an @opaque type, meaning it’s fields are internal api not to be relied upon. I ha...
New
bartblast
This could resolve to {[a: 1, b: 2]}. Was it ever considered to allow such syntax? Notice this: {:abc, a: 1, b: 2} and this: my_fun(:abc,...
New
Astolfo
When generating a release with phx.gen.release --docker a debian version is used by default to avoid “DNS issues” on Alpine. It seems li...
New
bamorim
Story behind Recently, I gave a talk on a meetup about improving performance of Phoenix applications and the example app was a LiveView ...
New
davydog187
I’ve been enjoying the new Streams API, but I keep needing to work around the lack of access to the underlying items. One issue that cons...
New
superchris
Currently there is no out of the box way to support DOM Custom Events in phoenix. I’ve created a separate library to do this, but I’d lov...
New
dimitarvp
To @jonatanklosko and @the-mikedavis: I see that there is a Rust crate at crates.io: Rust Package Registry but it is pointing at https:/...
New

Other popular topics Top

danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 29603 241
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
PeterCarter
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

We're in Beta

About us Mission Statement