Elements travel between pages.
Add mira-morph to a title or image and it animates into its match on the next page. Back plays it in reverse.
An open source static site framework. Write Markdown, ship plain HTML that loads fast, animates between pages, and reads as well to agents as it does to people.
Add mira-morph to a title or image and it animates into its match on the next page. Back plays it in reverse.
Links prefetch on hover and prerender on press, so the next page is usually already there.
Add .md to any URL. Agents get clean text with a canonical link; people get the designed page.
A theme, type scale, and components come with every project. Change them in mira.config.json.
mira build writes one folder of plain HTML, Markdown, and assets. Name your hosts in mira.config.json and each build writes their own config, so headers, clean URLs, the 404 page, and redirects behave the same on all of them. Firebase, Render, Azure, and Deno Deploy are covered too.
Run mira mcp and any MCP client can list, search, and read every page, rebuilt fresh for each call. Add it to a client with npx @miraframework/mira mcp. Every page also has a Markdown twin, and each build writes llms.txt and a JSON search index.
$ mira mcp --root . serving over stdio tools/list list_pages every URL and title read_page one page as Markdown search best matches, with snippets
Shared elements morph between pages with one attribute. Back plays the motion in reverse.
mira-morph
Frontmatter is checked against a schema and fails with the exact file and line.
collections
Broken links, missing assets, and duplicate URLs stop the build, not the reader.
mira build
A build time index and a search box that loads only on pages that use it.
<mira-search>
Every page carries a content security policy built from hashes of its own code.
sha256
Build and runtime errors open on the page with the source line and a copy button.
mira dev
A page over its size budget fails the build. The runtime is about 1 KB gzipped, against a hard 2 KB limit.
page_kb
Links prefetch on hover and prerender on press, so the next page is ready first.
Speculation Rules
mira migrate moves a Next.js, Astro, Hugo, Jekyll, Docusaurus, Gatsby, Eleventy, or VitePress site into a new Mira project. It reads the old site without running any of it, keeps every URL with redirects, and lists anything that needs a person, with the file and line.
$ mira migrate ./docusaurus ./site from Docusaurus pages 10 blog entries 4 static files 8 redirects 4 to review 1 migrated to ./site, and it builds: 17 pages