What is index97?

A Bun-native web framework built on one idea: the web platform is already good enough.

index97 gives you file-based routing, a simple template engine, layouts with named slots, server-side includes, and hot reload — all wired together with zero configuration. If you know HTML, CSS, and JavaScript, you already know most of index97.

The name. index97 evokes the era when building for the web meant an index.html file and a text editor. That simplicity was a feature, not a limitation.

Quick orientation

ConceptHow it works
RoutingEvery file in your pages directory is a route. The filename becomes the URL path.
Pages.phtml files are server-rendered templates. Pair with a .js file to provide data.
Handlers.js files export named functions (GET, POST, DELETE…) that handle HTTP requests.
Layouts_layout.html wraps pages automatically. index97 walks up directories to find one.
Markdown.md files are rendered as pages, with YAML front matter populating layout slots.
Dynamic routes[param].js files match URL segments. Access via req.params.param.

Start here

  • Quick Start — get a server running in under 5 minutes
  • Philosophy — understand the "why" behind every decision
  • Architecture — how all the pieces fit together
  • Features — full reference of everything index97 provides
  • Composing apps — run multiple apps on one port with no proxy

Requirements

  • Bun v1.0 or later
  • That's it.