Bueno's frontend module provides a complete development experience for building full-stack web applications. It supports multiple frontend frameworks and rendering strategies with zero additional tooling.
Layouts nest automatically based on directory depth.
Islands architecture
Opt individual components into client-side JavaScript while keeping the rest as static HTML:
import { Island } from '@buenojs/bueno/frontend';
function StaticPage() {
return (
<div>
<p>This is static HTML — no JS</p>
<Island component={InteractiveCounter} hydrate="on-visible" />
</div>
);
}
Hydration strategies
Strategy
Description
"immediate"
Hydrate as soon as the page loads
"on-visible"
Hydrate when the component enters the viewport
"on-interaction"
Hydrate on first user interaction (click, hover, focus)
Supported frameworks
Framework
Import
Notes
React
Auto-detected
JSX, hooks, suspense
Vue
Auto-detected
SFC, Composition API
Svelte
Auto-detected
Compiled components
Solid
Auto-detected
Fine-grained reactivity
API routes
Export HTTP method handlers from files in pages/api/:
// pages/api/users.ts
import type { APIRequest, APIResponse } from '@buenojs/bueno/frontend';
export async function GET(req: APIRequest): Promise<APIResponse> {
const users = await db.query('SELECT * FROM users');
return Response.json(users);
}
export async function POST(req: APIRequest): Promise<APIResponse> {
const body = await req.json();
// create user...
return Response.json({ created: true }, { status: 201 });
}
ISR (Incremental Static Regeneration)
Mark pages for background regeneration after a cache period: