A modern, Deno-first framework for building and benchmarking SSR (Server-Side Rendering) web applications with React and Preact. Vino is intentionally minimal, with a small codebase and little "magic"—designed to be understandable, maintainable, and robust for the next decade of personal and professional projects.
NOTE: This project is in early development. The API and features may change as we refine the framework.
Vino was created to avoid the complexity and churn of large frameworks. It aims to:
- Stay small and readable—so you can understand and change anything.
- Use modern, stable tools (Deno, Vite, Hono, React, Preact).
- Provide just enough structure for SSR, hydration, and benchmarking, without hiding how things work.
- Be a foundation you can trust for years, not a moving target.
- SSR for React & Preact: Out-of-the-box support for both React and Preact with optimized build and hydration flows.
- Vite-based Build: Uses Vite for fast builds and modern DX.
- Deno Native: All code and tooling run natively on Deno.
- Hono Integration: Uses the Hono web framework for routing and serving.
- Unified Benchmarking: Easily benchmark all examples and get structured results.
Each example (React, Preact) is a standalone SSR app. To build and run:
cd examples/react
# or cd examples/preact
deno task build
# To start the server:
deno task start
# To run in development mode:
deno task devVisit http://localhost:8000 to see the app.
From the project root:
deno task benchThis will:
- Build all examples
- Start each server and run
wrkagainst it - Collect and write results to
bench/results.json
Example output:
// Macbook Pro M1 Max, Deno 2.3.6
{
"timestamp": "2025-06-16T14:22:59.889Z",
"results": [
{
"example": "react",
"requests_per_sec": 56671.95,
"transfer_per_sec": "50.59MB",
"latency": "32.65ms"
},
{
"example": "preact",
"requests_per_sec": 58308.04,
"transfer_per_sec": "32.86MB",
"latency": "31.34ms"
}
]
}- SSR Adapters: The
vino/directory provides SSR adapters for React and Preact, handling both server and client hydration. - Build System: Uses Vite (via Deno) for fast, modern builds. See each example's
vite.config.ts. - Benchmarking: The
bench/mod.tsscript builds, runs, and benchmarks each example, parsingwrkoutput to JSON.
- Add new examples by creating a new folder in
examples/and updating theexamplesarray inbench/mod.ts. - Use your own Vite plugins or modify the SSR adapters as needed.
- All code is TypeScript and Deno native.
- Uses Deno tasks for build/start/dev/bench.
- See each example's
deno.jsonfor tasks and dependencies.
This project is licensed under the MIT License. See the LICENSE file for details.