History

Development of minista began in 2021 as a tool for creating pages with React JSX and delivering clean HTML.

The aim was to bring the familiar JSX and editor completion used with Next.js to static HTML development, while retaining control over the names, structure, and readability of the delivered files.

Table of Contents

v0: Writing HTML with JSX

First Commit: 2021/03/21
minista

minista Logo (v0 ~ v2)

The first minista packaged a system that combined React's renderToStaticMarkup() with webpack to export static HTML from JSX.

It managed pages and shared elements as React components and output the resulting files as standard HTML.

v1: Practical use and challenges

Release: 2022/01/15

The simple, extensible setup came into use in real website projects. However, in v0 and v1, webpack startup became slower as projects grew, sometimes taking more than ten seconds toward the end of development.

Each project required a function to convert pages to HTML, and components could not import CSS. Generating pages from API data and supporting Markdown were also challenges, leading to a redesign.

v2: Vite and esbuild

Release: 2022/04/12

minista was rebuilt from scratch, replacing webpack with Vite and esbuild. Vite powered the development server and esbuild generated production static HTML, improving startup and build speed.

develop:v1-latest

9.1715s

develop:v2.0.0

0.6006s(-93.45%)

build:v1-latest

10.7899s

build:v2.0.0

5.9628s(-44.74%)

Example: { pages: 15, components: 38, css: 101KB, js: 319KB }

Page authoring was also refined, with data fetching and route generation through getStaticData(), plus Markdown and MDX support. v2.4 added Partial Hydration for running React in part of a page, and v2.7 added full-text search that runs entirely in the browser.

v3: Align development and build

Release: 2023/03/31
minista

minista Logo (v3)

The source code was rewritten while retaining the basic usage. Development displayed static HTML instead of an SPA, making previews closer to production. Production builds also moved from esbuild to Vite.

Features supporting HTML production and delivery were added, including image optimization, asset entry declarations, delivery page lists, and ZIP archive generation.

v4: Vite plugins

Release: 2026/03/15

minista Logo (v4 ~)

minista integrated with Rolldown-based Vite and changed to providing all features as Vite plugins. Add the plugins you need to vite.config.ts.

Islands replaced the previous Partial Hydration feature. Add client:* to any JSX component to run it with React, with support for props and loading timing.

v5: Simplify setup and build

Release: In development

A major refactor and additional features preserve the familiar development experience.

Central management of routes, pages, and assets through the Project Graph and asynchronous library loading made builds up to about 67% faster. Comparing v4.0.11 and v5 across six playgrounds with identical source and configuration reduced clean build times by up to 67.0%.

build:v4.0.11

702.98ms

build:v5

233.88ms(-66.73%)

2026/10/05: _default playground / clean build / median of 3 runs / Node.js v26.10.0 / macOS arm64

Using a Map for search dictionary lookups made search JSON index generation up to about 77 times faster. With synthetic data containing 1,000 pages and 10,000 vocabulary entries, the time decreased by about 98.7%. This measurement compares v5 before and after optimization and excludes DOM parsing and JSON serialization.

index:Before Map

5012.39ms

index:After Map

65.39ms(-98.70%)

2026/10/05: 1,000 pages / 10,000 vocabulary entries / 1,001,000 tokens / median of 3 runs / Node.js v26.10.0 / macOS arm64

Other refinements include editing html, head, and body through Layout, applying base to public paths, passing serializable values to Islands, and supporting multiple search outputs in pluginSearch.

The documentation site also became multilingual, making its content more accessible to English-speaking users.

APIs and settings in older articles apply to those versions. For current instructions, see Getting started.