Ana içeriğe geç
Algow
← Blog
Stack · 12 Apr 2026 · 7 min

Tailwind v4 + Vite + Alpine: a small but enough stack

You can build modern web without React. This site is the manifesto: 6 Vite chunks, 27 KB admin JS, 90 KB homepage. What we chose, what we rejected.

i
ilyassaltay
Algow

Modern web dev is an endless tool debate. React or Vue? Next or Remix? Most of the time the real question should be: what do I actually need for this page?

Algow's own site is one answer. Stack: Tailwind v4 + Vite 6 + Vanilla JS + Alpine 3 + PHP 8.3. As minimal as possible.

What we rejected

React / Next.js. Content-heavy corporate site. 40-80 KB framework bundle + hydration + layers of abstraction. In return: a "Get a quote" button and two mobile menus.

Tailwind v3. V4's CSS-first config solves PostCSS pain, cuts CSS output 30%, native container queries. Migration took an hour.

jQuery / old plugin ecosystems. 2026. querySelector, fetch, IntersectionObserver are native and 0 KB.

Utility libraries. Array.prototype.groupBy is native. Intl.DateTimeFormat handles 90% of date-fns. Write 10 lines in src/utils/.

What we kept

Alpine.js (12 KB). Not a React alternative — just reactive x-data, x-show, @click right in HTML.

<nav x-data="{ open: false }">
  <button @click="open = !open">☰</button>
  <div x-show="open" x-transition>...</div>
</nav>

Vite 6. 0.3s dev start, 50ms HMR, 0.6s prod build. 6 chunks.

Lenis (8 KB). Smooth scroll with consistent easing. Small luxury, adds character.

Motion One (12 KB). Staggered reveals. Replaceable with @keyframes but more manageable.

Where we're unsure

Parsedown vs CommonMark PHP for richer markdown features. Hostinger MariaDB vs self-managed MySQL for backups. Alpine scaling limits — Vue 3 composition API if we outgrow it; not React again.

Lessons

  • Bundle obsession isn't value. 90 KB HTML + 27 KB JS + 54 KB CSS, 35 KB gzipped. Loads in 0.8s on 3G. Enough.
  • Framework ecosystems outweigh projects. 70% of the build is framework tooling.
  • PHP is modern. Enums, named arguments, readonly classes, match expressions. "PHP is old" is wrong in 2026.
  • SSR wins for content sites. Hydration cost, bundle size, first paint — always better server-rendered.

Closing

This stack might change in three years. No decision is forever. But right now, for this project, the simplest solution is also the fastest. We don't add complexity until need demands it.

Not a manifesto — a reminder. What matters before how.

Share

Want to chat?

If you have thoughts or questions on this piece, reach out.