DEV Community

Cover image for Road To KiwiEngine #9: Why I Built Juice Instead of Chasing Another CSS Framework
Drew Marshall
Drew Marshall

Posted on

Road To KiwiEngine #9: Why I Built Juice Instead of Chasing Another CSS Framework

Recently, I published another major piece of the ecosystem publicly:

@citrusworx/juiceui on NPM

And honestly, Juice was never really about:

  • competing with Tailwind
  • replacing Bootstrap
  • creating “yet another CSS framework”

It came from something much deeper that kept bothering me while building larger systems:

Modern frontend code increasingly feels disconnected from operational intent.

The more applications I worked on, the more I felt like UI code was becoming harder to:

  • read
  • reason about
  • scale
  • maintain
  • communicate

Especially across larger systems and teams.

That frustration eventually became the foundation for Juice.


I Started Caring More About Intent Than Utility Classes

One thing I noticed over time was that modern frontend systems often optimize heavily for:

  • flexibility
  • composability
  • speed of implementation

which absolutely matters.

But eventually I started asking a different question:

“Does this code actually communicate what the system is trying to do?”

Because as applications grow, readability becomes operationally important.

Not just aesthetically important.

Operationally important.


Frontend Systems Eventually Become Architecture

One thing I think modern frontend culture underestimates is how large UI systems become over time.

Eventually they stop being:

  • isolated components
  • pages
  • quick layouts

and become:

  • design systems
  • operational interfaces
  • workflow systems
  • communication layers
  • application ecosystems

At that scale, frontend architecture matters enormously.

Especially for:

  • onboarding developers
  • maintaining consistency
  • scaling teams
  • evolving products long-term

That realization changed how I thought about UI entirely.


I Wanted Frontend Code To Read More Like Structure

One thing I kept coming back to while designing Juice was:

  • semantic readability
  • visual intent
  • operational clarity

For example:

<section type="pricing" paddingY="roomy">
    <div container>
        <div section-header>
            <h2>Pricing That Scales With You</h2>
            <p>
                Start free and grow at your own pace.
            </p>
        </div>

        <div grid="3x1" gap="comfortable">
            <div card="pricing">
                ...
            </div>
        </div>
    </div>
</section>
Enter fullscreen mode Exit fullscreen mode

One thing I like about this structure is that the layout intent becomes extremely visible:

  • this is a pricing section
  • this is a container
  • this is a grid
  • this is a pricing card
  • this controls spacing rhythm

The code starts communicating architectural intent instead of just visual implementation.

And honestly, the more systems I build, the more valuable that becomes.


Juice Was Never Meant To Hide CSS

This is important.

Juice is not trying to:

  • “eliminate CSS”
  • abstract developers away from styling
  • create magic systems

In many ways, it’s the opposite.

It’s trying to make frontend systems feel:

  • more explicit
  • more composable
  • more readable
  • more operationally understandable

Especially as systems become larger and more interconnected.


I Think Modern UI Development Became Operationally Noisy

One thing I kept feeling while working on larger frontend systems was that many interfaces slowly become operationally noisy over time.

Not because developers are bad.

But because modern systems often accumulate:

  • utility sprawl
  • deeply nested abstractions
  • duplicated layout logic
  • disconnected design intent
  • visual inconsistency
  • framework layering

Eventually the UI stops feeling like:

“a system.”

And starts feeling like:

“a pile of implementation decisions.”

That bothered me a lot.


Readability Scales Better Than Cleverness

One thing I’ve increasingly started valuing over time is readability.

Not just:

  • readable syntax

But:

  • readable systems
  • readable workflows
  • readable architecture
  • readable operational intent

Because eventually systems outlive:

  • trends
  • frameworks
  • abstractions
  • individual developers

And when that happens, clarity becomes incredibly valuable.

That idea heavily influenced almost every part of Juice.


This Connects Deeply To The Larger WebEngine Philosophy

The more the ecosystem evolved, the more I realized all the projects were converging around similar ideas:

  • Seltzer → explicit runtime communication
  • Nectarine → explicit data structure
  • GrapeVine → explicit infrastructure workflows
  • KiwiPress → operational publishing systems
  • Citrode → operational ownership & infrastructure awareness
  • Juice → explicit frontend intent

They’re all trying to solve the same larger problem from different angles:

“How do we make systems more understandable operationally?”

That’s really the deeper philosophy underneath all of this.


AI Makes Readable Systems More Important

Ironically, I think AI makes frontend readability even more important.

Because AI can generate:

  • components
  • layouts
  • utility combinations
  • styling systems

extremely quickly.

But generated systems still require:

  • consistency
  • operational clarity
  • maintainability
  • design cohesion
  • architectural readability

Otherwise frontend systems become increasingly difficult to evolve safely.

That’s one reason I think explicit UI systems are becoming increasingly important moving forward.


I Think Frontend Is Moving Toward System Design

One thing I suspect we’ll see more of over time is frontend development shifting away from:

  • isolated component thinking

and more toward:

  • operational interface systems
  • design architecture
  • workflow-aware UI
  • composable visual ecosystems
  • readable frontend infrastructure

Because modern interfaces increasingly function as operational platforms, not just websites.


Publishing Juice Publicly Felt Important

Honestly, publishing Juice publicly felt meaningful to me because it represented more than:

  • a styling library
  • a UI toolkit
  • a frontend experiment

It represented years of thinking about:

  • frontend readability
  • operational clarity
  • system communication
  • architectural intent
  • long-term maintainability

becoming tangible.

That’s a strange but exciting feeling.


Final Thoughts

Juice is not really about:

“creating another CSS framework.”

It’s part of a much larger exploration around:

  • readable systems
  • operational interfaces
  • explicit architecture
  • composable frontend ecosystems
  • long-term maintainability

Because the more software evolves, the more I think frontend systems increasingly need to communicate more than just styling.

They need to communicate operational intent clearly too.

Top comments (0)