# Tailwind CSS RISC-V Node Wrapper - a Linux RISC-V compatible Tailwind CSS v4 CLI distribution

**URL:** <https://forum.elixirforum.com/t/tailwind-css-risc-v-node-wrapper-a-linux-risc-v-compatible-tailwind-css-v4-cli-distribution/75815>\
**Category:** Announcing\
**Tags:** phoenix, tailwindcss, project, risc-v\
**Created:** [June 28, 2026, 10:56pm UTC](https://forum.elixirforum.com/t/tailwind-css-risc-v-node-wrapper-a-linux-risc-v-compatible-tailwind-css-v4-cli-distribution/75815 "2026-06-28T22:56:47Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![arcanemachine](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/arcanemachine/32/29109_2.png) [@arcanemachine](https://forum.elixirforum.com/u/arcanemachine)\
**Post date:** [June 28, 2026, 10:56pm UTC](https://forum.elixirforum.com/t/tailwind-css-risc-v-node-wrapper-a-linux-risc-v-compatible-tailwind-css-v4-cli-distribution/75815/1 "2026-06-28T22:56:47Z")

</div>

I (with the help of an LLM-based agent) put together a Node-backed Tailwind CSS v4.3.1 wrapper for Linux RISC-V GNU systems:

This repo offers a prebuilt binary and a simple `tailwindcss` CLI wrapper. The binary is reproducible using a simple Docker-based workflow.

This came out of trying to run a Phoenix app on a Scaleway RISC-V server running Ubuntu 24.04. Phoenix’s `tailwind` package could not download an official Tailwind binary for `riscv64-unknown-linux-gnu`, and Tailwind’s official standalone binary path depends on Bun. Bun does not currently provide a Linux RISC-V target, so the official single-file Tailwind standalone binary is not available there.

**DISCLAIMER:** I built this to scratch an itch for a weekend project, and have only run this in a `:dev` config environment. Everything appears to work, but this is presented as an _experimental proof-of-concept_, and nothing more. I just thought it was cool and wanted to share it.

* * *

This package is not Tailwind’s official standalone binary. It is a self-contained tarball distribution with:

- A wrapper (`bin/tailwindcss`) that provides a compatible interface for the `:tailwind` Mix package.
- bundled Node
- pinned `@tailwindcss/cli` / `tailwindcss`
- the Linux RISC-V native addons needed by the Node CLI

It does not need npm at runtime, and it does not require app-local Tailwind `node_modules`. It does need the extracted package directory to remain intact, because `bin/tailwindcss` is a wrapper around the bundled runtime.

For Phoenix, the important part is to point the Elixir Tailwind config at the wrapper and disable the version check.

`config/config.exs`

```diff
  config :tailwind,
    version: "4.3.1",
+ path: "/path/to/tailwindcss-riscv64-linux-gnu-v4.3.1/bin/tailwindcss",
+ version_check: false,
    hello_phoenix: [
      args: ~w(
        --input=assets/css/app.css
        --output=priv/static/assets/css/app.css
      ),
      cd: Path.expand("..", __DIR__ ),
      env: %{"NODE_PATH" => [Path.expand("../deps", __DIR__ ), Mix.Project.build_path()]}
   ]

```

Also remove `tailwind.install --if-missing`, because the Elixir Tailwind downloader does not provide a Linux RISC-V binary.

`mix.exs`

```diff
defp aliases do
  [
- "assets.setup": ["tailwind.install --if-missing", "esbuild.install --if-missing"],
+ "assets.setup": ["esbuild.install --if-missing"],
    "assets.build": ["compile", "tailwind hello_phoenix", "esbuild hello_phoenix"],
    "assets.deploy": [
      "tailwind hello_phoenix --minify",
      "esbuild hello_phoenix --minify",
      "phx.digest"
    ]
  ]
end

```

I built and verified this on Ubuntu 24.04 LTS on a Scaleway RISC-V server. Phoenix asset build/deploy worked, and the rendered page was styled correctly in the browser, and works correctly with Phoenix’s built-in hot reload feature.

The long-term upstream fix is still Bun support for Linux RISC-V, or a different official Tailwind standalone build path that does not depend on Bun. Until then, this gives Phoenix apps a technically-usable Tailwind v4 path on Linux RISC-V.

> **[GitHub - arcanemachine/tailwindcss-riscv64-node-wrapper: This repository builds and packages a Linux RISC-V...](https://github.com/arcanemachine/tailwindcss-riscv64-node-wrapper)**
>
> This repository builds and packages a Linux RISC-V compatible Tailwind CSS v4 CLI distribution.

---

<div class="post-metadata">

**Author:** ![olivermt](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/olivermt/32/2354_2.png) [@olivermt](https://forum.elixirforum.com/u/olivermt)\
**Post date:** [June 30, 2026, 6:22am UTC](https://forum.elixirforum.com/t/tailwind-css-risc-v-node-wrapper-a-linux-risc-v-compatible-tailwind-css-v4-cli-distribution/75815/2 "2026-06-30T06:22:23Z")

</div>

Hi,

You could also pr risc support (if zig needs it?) into BeaconCMS’s compiler.

Once Brian merges my pr ( [Add streaming candidate extraction by olivermt · Pull Request #2 · BeaconCMS/tailwind\_compiler · GitHub](https://github.com/BeaconCMS/tailwind_compiler/pull/2) ) then you should have all of tailwind in a box without needing node.
