Skip to content

cameronapak/freedom-stack-v3

Repository files navigation

Freedom Stack v3

A no-build stack built upon Web Standards that feels freeing and can be deployed anywhere.

And for those interested, this stack should work well with AI agents, enabling you to vibe code.

banner

Important

This README is a work in progress and will improve over time.

Uses

  • Bun - Mostly used for the package manager, but we can use it for the runtime
  • Hono + Hono JSX - Fast, lightweight, built on Web Standards. Support for any JavaScript runtime.
  • Datastar - Hypermedia backend and front-end framework (takes the best of HTMX and Alpine.js)
  • Basecoat - Shadcn UI-like component CSS library without the need for React
  • UnoCSS - Runtime-build alternative to TailwindCSS
  • Bknd - Comprehensive backend SDK with auth, db, and Admin UI

How To

To install dependencies:

bun install

To run:

bun run dev

Resources

Why a new version?

Let's take a stroll down memory lane.

I built the first version of Freedom Stack while learning full-stack web dev. I wanted to help others who were hungry to create have the tools to make their dream a reality.

Freedom Stack v1: Astro, Astro DB, HTMX, Alpine.js, Better Auth, DaisyUI + TailwindCSS. I used it for a bunch of web apps, including the homescreen of the Wisephone II.

It's wild to see the postive reception people have had for Freedom Stack.

Over time, I'd learned in the field. AI coding improved dramatically. I saw what made Freedom Stack great and where it fell short. So I built Freedom Stack v2.

v2 was built upon Astro, Alpine.js + Alpine AJAX, TailwindCSS v4 + Basecoat UI, and Bknd.

The truth is I only built one app with v2 (a skateboard deck designer). It remains a work in progress. Honestly, I think v2 was really about exploring Bknd, which gives you db, auth, storage, plugins, and workflows in a single package.

I'm a huge believer in Bknd because it fulfills what I wanted from day one:

"A stack that's powerful like Ruby on Rails ('The One Person Framework'), but with the ease and 'vanilla' web dev feel of Astro."

So... why v3, another version?

One word: bloat.

For the past couple years, I've loved working with Val.Town. Think CodePen but instantly deployed, no devops headaches. Val.Town taught me to love the Hono web framework and the no-build lifestyle.

I was using Alpine.js in Astro with client-side bundling to do too much on the client. Codebases bloated quickly. Late in 2025, because of bloat and slowness, I converted a Freedom Stack app to React + Tanstack Router, going full SPA. (aside: Anything Tanstack makes using React actually enjoyable.)

One more thing. Alpine.js and HTMX are different libraries. You have to glue them together. When I found Datastar through this talk by Delaney Gillilan, it became the solution to my Alpine.js and HTMX woes.

The Tao of Datastar states that: "Most state should live in the backend. Since the frontend is exposed to the user, the backend should be the source of truth for your application state." That's what's known as HATEOAS (Hypermedia as the Engine of Application State). And after years of building, I believe it.

So v3 is no-build, no-bundle. It forces me to keep state on the backend where it belongs. It works with Val.Town. It works anywhere, because it's built on Web Standards.

Freedom Stack v3 is simpler. Lighter. Deployable anywhere.

And that feels freeing.

Welcome to Freedom Stack v3!

— from Cameron Pak

About

A no-build stack built upon Web Standards that feels freeing and can be deployed anywhere.

Topics

Resources

License

Stars

Watchers

Forks