Early access Tailwind CSS for image optimization

Stop thinking about
image optimization.

Rendorix replaces messy query parameters with semantic presets. Define your image system once. Reference it everywhere.

Any image, any framework
/photo.jpg?p=hero

Open source · Built for developers · No dashboard required

The problem

Every image becomes a mini decision.

Image optimization today is unnecessarily complicated. Developers constantly deal with arbitrary options, inconsistent results, and URLs that nobody wants to read.

Arbitrary decisions

Every image forces a micro-decision: 783px or 800? Quality 80 or 85? There's no right answer, so you guess.

Inconsistent sizes

Different developers, different configs. The same image ends up at four different widths across your app.

Bloated URLs

You end up with ?w=837&q=82&f=webp littered across your codebase. Fragile, unreadable, untestable.

Decision fatigue

Image optimization shouldn't require this much thought. Too many options, no sane defaults.

The solution

Presets, not parameters.

Instead of asking "how should I transform this image?" you define "what role does this image play?" — once.

Before
What you write today
/photo.jpg?w=837&q=82&f=webp

Arbitrary numbers nobody agrees on. Duplicated everywhere.

After
What you write with Rendorix
/photo.jpg?p=hero

Same intent. Readable. Consistent. No guessing.

1 — Define your presets once

presets.json
{
  "hero":   { "w": 1200, "q": 85, "f": "webp" },
  "card":   { "w": 600,  "q": 80, "f": "webp" },
  "avatar": { "w": 128,  "q": 70, "f": "webp" }
}

2 — Reference by role, everywhere

Any URL, any framework
/photo.jpg?p=hero
/photo.jpg?p=card
/photo.jpg?p=avatar
  • No second-guessing
  • Consistent across your entire app
  • Readable URLs at a glance

How it works

Simple by design.

Three steps. No dashboard, no SDK required, no configuration beyond what you care about.

01

Define your presets

Describe what each image role means — dimensions, quality, format. Write it once in a config file.

{ "hero": { "w": 1200, "q": 85, "f": "webp" } }
02

Reference by role

Use the preset name in your URL instead of raw parameters. Readable, memorable, consistent.

/photo.jpg?p=hero
03

Delivered and cached

Rendorix transforms the image on-demand, then caches it at the CDN edge. Every subsequent request is instant.

✓ Processed once · Cached globally

Developer experience

One function call.
That's the whole API.

The Rendorix JS client (coming soon) handles URL construction, parameter canonicalization, signing, and preset resolution — so you don't have to.

setup.ts
// Initialize once
const rx = createRendorix({
  baseUrl: process.env.RENDORIX_BASE_URL,
  secret: process.env.RENDORIX_SECRET,
});
anywhere.tsx
// Use anywhere — plain JS
rx.img("photo.jpg", { preset: "hero" });

// JSX / React / Astro
<img src={rx.img("photo.jpg", { preset: "hero" })} alt="" />

Coming soon. The JS client is on the roadmap. The URL API works today — no SDK required for the core flow.

Zero URL construction

Stop hand-writing query strings. The client generates the correct URL — parameters, expiry, signature — behind one call.

Built-in signing

HMAC-SHA256 request signing happens automatically, server-side. No secrets ever reach the browser.

Framework-agnostic

React, Astro, Next.js, Express — any JavaScript environment. No framework-specific adapter needed.

Zero-config feel

Two environment variables. One initialization call. That's the entire setup.

Under the hood

Fast by default.

Rendorix runs on AWS. Every unique transformation is computed once and cached at the CloudFront edge globally — so subsequent requests are served in milliseconds, not seconds.

  • Automatic WebP / AVIF format optimization
  • Smart quality defaults via presets
  • Zero redundant processing — compute once, cache forever
  • Secure signed requests via CloudFront Functions

S3

Durable, private storage for original images

Lambda + Sharp

On-demand image processing — runs only when needed

CloudFront

Global CDN caching · edge validation · signed requests

Your app

Receives a transformed, optimized image — instantly

Ready to stop thinking
about image optimization?

Rendorix is open source and in active development. Star the repo to follow progress, or join the waitlist for early access when it launches.

⭐ Star on GitHub

Join the waitlist

Get notified when hosted Rendorix launches. No spam.

No spam. Unsubscribe anytime.