TailessWind

Tailesswind is a community fork and adaptation of the open-source Weft project by its original author
Björn Roberg

Tailwind CSS,
without the build step

One script tag. Your classes are compiled on the edge, cached globally, and served in under 50ms. No npm. No config. No maintenance.

index.html
<!-- This is the entire setup. -->
<script src="https://tailesswind.com/client/latest.js"></script>

<!-- Now use Tailwind classes anywhere. -->
<div class="flex items-center gap-4 p-6
     bg-white rounded-xl shadow-lg">
  <h1 class="text-2xl font-bold">
    It just works.
  </h1>
</div>
<10ms
compilation
~4kb
client script (~1.7kb gzip'd)
0
dependencies
97%+
cache hit rate

How it works

Three layers of speed

1

Scan

The client script (2kb) scans your HTML for Tailwind classes and computes a SHA-256 hash. Same classes always produce the same hash — this is the key insight.

2

Compile (once)

On first visit, the classes are sent to a Cloudflare Worker running the real Tailwind v4 engine. Compilation takes ~8ms. The resulting CSS is cached globally on the edge.

3

Cache (forever)

On every subsequent visit — by anyone, anywhere — the CSS is served from edge cache or the browser's HTTP cache. Zero compilation. Zero round-trips. Instant.


Why Tailesswind?

For people who build without the bloat

Production-ready

Unlike the Tailwind Play CDN, Tailesswind is designed for production. No FOUC. No client-side CPU cost. Proper cache headers.

Network effects

Every user warms the cache for everyone else. flex items-center gap-4 is probably already compiled.

Framework agnostic

Works with HTMX, Alpine.js, Livewire, Django templates, Go/templ, Rails ERB, plain HTML — anything that renders markup.

Easy to leave

Your Tailwind classes are standard. When you outgrow Tailesswind, switch to a build step — your HTML doesn't change. Zero lock-in.


Built for

People who prefer simplicity

HTMX and Alpine.js projects

Server-rendered apps (Django, Rails, Laravel, Go)

WordPress and CMS sites

Prototypes that become production

Internal tools and admin panels

Static sites without a build step

Email template builders

Documentation sites


Add one line. Start building.

Generous free tier always. Open-source client SDK.

API Reference

Client API v0.2.0

The Tailesswind object provides methods to interact with the client script for dynamic updates and optimization.

tailesswind.rehash()

Rescans the DOM for new Tailwind classes and recompiles CSS if needed. Useful after dynamic content changes.

tailesswind.preload(classes)

Pre-warms the cache for upcoming classes. Accepts an array of class strings.

tailesswind.observe(opts?)

Enables automatic rehashing on DOM mutations. Returns a disconnect function. Optional debounce config.

tailesswind.status()

Returns current state: { bundleId, version, ready }.

tailesswind.version

String property indicating the client version, e.g., "0.2.0".