# The AHA Stack > Astro (output: 'server') + htmx 4 + Alpine.js 3. The server renders HTML, htmx swaps fragments into the page, Alpine handles small pieces of client-only UI state. No JSON API, no frontend build step, no React/Vue/Svelte. Start with the skill file. It is the complete set of rules for building with the stack, written for coding agents: which library does what, how Astro partials work, what changed in htmx 4, the htmx/Alpine split, D1 on Cloudflare, and common mistakes. ## For agents - [AHA stack skill](https://ahastack.dev/skill.md): the full ruleset. Install with `npx skills add flaviocopes/ahastack.dev@aha-stack` or copy into your skills folder. - [The AHA stack for AI agents](https://ahastack.dev/aha/7-ai-agents/): how to install the skill and a short AGENTS.md snippet. ## The stack - [The stack overview](https://ahastack.dev/aha/1-stack-overview/): what the three pieces do and how they fit. - [Astro](https://ahastack.dev/aha/2-astro/): server rendering, pages, partials. - [htmx](https://ahastack.dev/aha/3-htmx/): HTML over the wire, requests from any element. - [Alpine.js](https://ahastack.dev/aha/4-alpine/): client-side UI state in HTML attributes. - [What's changed since 2024](https://ahastack.dev/aha/6-whats-changed/): htmx 4, Astro 5 to 7, what to update. - [Conclusion](https://ahastack.dev/aha/5-conclusion/) ## Examples - [A little example](https://ahastack.dev/examples/1-first/): a counter, from an empty Astro project to a Cloudflare deploy. - [Adding Alpine](https://ahastack.dev/examples/alpine/): where Alpine fits next to htmx. - [The example from the Hypermedia Systems book](https://ahastack.dev/examples/2-contacts/) - [Other resources](https://ahastack.dev/examples/3-other-resources/) - [Live demos](https://demo.ahastack.dev): 18 small working apps. Counter, active search, todos, validation, lazy loading, infinite scroll, sortable table, tabs, presence, progress bar, guestbook, optimistic UI, modal, cascading selects, bulk actions, error handling, boosted navigation, Alpine only. - [Demo source code](https://github.com/flaviocopes/ahastack.dev/tree/main/demo/): every demo is a few `.astro` files. ## Concepts - [How we got here](https://ahastack.dev/concepts/how-we-got-here/) - [HTML first](https://ahastack.dev/concepts/html-first/) - [Simplicity](https://ahastack.dev/concepts/simplicity/) ## FAQ - [Why?](https://ahastack.dev/faq/0/) - [Will it work in the real world?](https://ahastack.dev/faq/1/) - [Does it scale?](https://ahastack.dev/faq/2/) - [Isn't this too simple?](https://ahastack.dev/faq/3/) - [Why Astro?](https://ahastack.dev/faq/4/) - [What about mobile apps?](https://ahastack.dev/faq/5/) - [Is this just AJAX?](https://ahastack.dev/faq/6/) ## Comparisons - [Comparison with a JS SPA app](https://ahastack.dev/comparisons/compare-spa/) - [Comparison with a Web 1.0 app](https://ahastack.dev/comparisons/compare-web-1/) - [Is this like Hotwire or Livewire?](https://ahastack.dev/comparisons/similar-things/) ## Optional - [Astro docs](https://docs.astro.build) - [htmx docs](https://htmx.org/docs/) - [Alpine.js docs](https://alpinejs.dev) - [AHA Stack Masterclass](https://flaviocopes.com/courses/aha-stack/)