hyperwave combines the benefits of traditional server-rendered applications with the flexibility of modern client-side frameworks.
Follow these steps to start developing with hyperwave:
Clone the repository:
git clone https://github.com/tireymorris/hyperwave.git
cd hyperwave
Install dependencies:
bun install
Start the development server:
bun dev
Visit http://localhost:1234
in your browser.
Start editing server.tsx
to see your changes live.
This is the endpoint serving our initial landing page:
app.get("/", ({ html }) =>
html(
<Layout title="hyperwave 🌊">
<section class="flex flex-col gap-8">
<div>
<button
class="bg-blue-100 p-4 text-sm font-bold rounded-md shadow-sm"
hx-get="/instructions"
hx-target="closest div"
_="on click toggle .loading"
>
fetch instructions from <code>/instructions</code>
</button>
</div>
</section>
</Layout>,
),
);
<Layout />
tag, a server-rendered functional component, which takes a title
propGET
request to /instructions
and replace the content of its parent div with the response.Build an executable for your current architecture with bun run build
PORT
environment variable is available if needed (default is 1234)
Note: deploy public/
with the executable, it contains the generated UnoCSS build.
Why bother switching to hyperwave?
Speed / performance benefit
Simplicity
Dev UX benefit
Architectural benefit