Note
You need Deno 2.5 or later. This repo is only about DVE (server-side templates).
- Routes = files. One file in routes becomes one URL. No config.
- DVE templates. Server-side views with variables, conditionals, loops, partials.
- Shared layout. Head, nav, footer as partials. Reuse everywhere.
- Static assets. CSS and images in public folder, served at /assets.
- Deno only. No Node or bundler. UI from Bootstrap CDN.
Clone and run:
git clone https://github.com/NeaByteLab/Deserve-VE.git
cd Deserve-VE
deno installRun the server:
deno task startOpen http://localhost:8000. All pages are server-rendered with DVE.
Development (watch):
deno task devRestarts when main.ts or routes/ change. For view/CSS changes, refresh the browser.
Deserve-VE/
├── main.ts # Router, routesDir, viewsDir, static
├── deno.json # Tasks, imports
├── deno.lock # Lockfile
├── public/
│ └── css/
│ └── style.css # Sticky footer + overrides
├── routes/
│ ├── index.ts # Home
│ ├── about.ts # About (conditional content)
│ ├── dashboard.ts # Stats, table, list (complex DVE)
│ ├── items.ts # List with #each
│ └── hello.ts # Minimal DVE
└── views/
├── home.dve
├── about.dve
├── dashboard.dve
├── items.dve
├── hello.dve
└── partials/
├── head.dve # Meta, title, CSS
├── header.dve # Navbar
└── footer.dve # Copyright (year from route)
| Page | DVE use |
|---|---|
| Home | Variables, partials |
| About | {{#if showExtra}} |
| Items | {{#each items as item}}, @index |
| Dashboard | Multiple #each, #if, nested data |
| Hello | Single variable |
Templates use Bootstrap 5 (CDN) for layout and components; narrative copy is lorem ipsum.
| Task | Description |
|---|---|
deno task start |
Run server (no watch) |
deno task dev |
Run server with file watch |
- Deserve (JSR) — HTTP server, file-based routing, DVE rendering, static middleware
- Deserve docs — Router, views,
ctx.render(), static
This project is licensed under the MIT license. See the LICENSE file for details.
