
Company News
Jerod Santo Joins Socket as Head of Media
Allow myself to introduce... myself.
react-page-lite
Advanced tools
A lightweight React-based static site generator with islands architecture.
Generate static HTML with selective interactivity - JavaScript only where you need it.
npx react-page-lite my-app
cd my-app
npm run buildAndWatch
Then open docs/index.html in your browser.
<Island> wrapperconfig.json1. Create a page (returns full HTML document):
// src/pages/index.tsx
const HomePage = () => (
<html lang="en">
<head>
<title>My Site</title>
<link rel="stylesheet" href="./styles.css" />
</head>
<body>
<h1>Static Content</h1>
</body>
</html>
);
export default HomePage;
2. Add interactivity with islands:
import { Island } from "@/Island";
import { Counter } from "@/components/Counter";
<Island>
<Counter />
</Island>
3. Create interactive components:
// src/components/Counter.tsx
import { useState } from "react";
export function Counter() {
const [count, setCount] = useState(0);
return <button onClick={() => setCount(c => c + 1)}>Count: {count}</button>;
}
Props are automatically serialized for hydration.
src/
├── pages/ # HTML pages (export default function)
│ ├── index.tsx # → docs/index.html
│ └── demo.tsx # → docs/demo.html
├── components/ # Interactive components (auto-discovered)
│ └── Counter.tsx # Example interactive component
└── styles/
└── globals.css # Tailwind input
docs/ # Build output (configurable)
├── index.html # Static HTML
├── demo.html # Demo page
├── styles.css # Processed CSS
└── islandRender.js # Bundled interactive components
_internal/ # Build system
config.json # Configuration file
Configuration (config.json):
{
"outputDir": "docs", // Change to "dist", "build", etc.
"buildOptions": {
"minify": true,
"sourcemap": false
}
}
Perfect for GitHub Pages with "outputDir": "docs".
Build Time:
islandRender.jsRuntime:
Commands:
npm run buildAndWatch - Watch mode (rebuilds on file changes)node _internal/build.js - One-time buildnpm run update-template - Update build system to latest version (safe, never touches your src/)Structure:
.tsx in src/pages/ → generates HTML files.tsx in src/components/ → auto-bundled for islands@/Island, @/components/Counter)Copy the entire output folder to any static host:
# Default output: docs/ folder
cp -r docs/ /your/web/server/
# Or deploy to:
# - GitHub Pages (use outputDir: "docs")
# - Netlify, Vercel, Cloudflare Pages
# - Any CDN or static hosting
Perfect for:
Not for: Apps requiring authentication, databases, or server-side logic.
Get the latest build system improvements without affecting your content:
npm run update-template
What gets updated:
_internal/ - Build system and toolingtailwind.config.js, tsconfig.json, etc.)What's never touched:
src/pages/ - Your pagessrc/components/ - Your componentssrc/styles/ - Your stylesdocs/ or dist/ - Your outputThe update script creates backups automatically. Your content is always safe.
FAQs
Static site generator with islands architecture
We found that react-page-lite demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Allow myself to introduce... myself.

Research
/Security News
A Twitch browser extension on Chrome and Firefox forwards users’ live OAuth session tokens through proxies controlled by a Russian bot service.

Security News
Anthropic found biased reasoning and recklessness drove Claude Mythos 5 to publish malware on PyPI and compromise a security vendor.