BetterHelperjs is a full-stack TypeScript framework with its own JSX runtime, file-based router, nested layouts, loaders, and SSR by Rigby Foundation. The base package has no mandatory runtime dependencies (prod deps = 0).
Original idea and base: newHelper-js by MIOBOMB.
npm install
npm run check
npm run test
npm run build
npm run dev # starts the test SSR site from ./siteCreate a new Vite + SSR project:
npx better-helperjs create my-appOptions:
--pm npm|pnpm|yarn|bun--no-install--force
The test SSR site is now a separate package: site/package.json.
npm --prefix site install
npm --prefix site run dev
npm --prefix site run build
npm --prefix site run startWhere pages are:
site/src/layout.tsxsite/src/pages/index.tsxsite/src/pages/about.tsxsite/src/pages/docs/[slug].tsxsite/src/pages/404.tsx
- JSX runtime:
better-helperjs/jsx-runtime,better-helperjs/jsx-dev-runtime,better-helperjs/jsx - Hooks:
useState,useReducer,useEffect,useMemo,useCallback,useReffrombetter-helperjs/jsx - Context API:
createContext,useContextfrombetter-helperjs/jsx - Router core:
better-helperjs/router - File-based router helpers:
better-helperjs/router/file-based - State helpers:
better-helperjs/core(createCounterRenderState,serializeState, ...)
- Nested layouts:
pages/layout.tsx,pages/docs/layout.tsx, ... - Route loader:
export function loader(ctx) { ... }, data available asctx.data - Error entities:
pages/error.tsx(global),export const errorBoundary = ...(route-level) - Not Found entities:
pages/404.tsxorpages/not-found.tsx notFound()helper for loader/component scenarios- SPA links:
<Link href=\"/route\" />frombetter-helperjs/router - Dev SSR server (
better-helperjs/ssr/site-server) requiresvitein the application project.
hydrateMode: 'full'— standard hydration of the entire applicationhydrateMode: 'none'— no-hydration SSR (pure HTML without client entry)hydrateMode: 'islands'— partial hydration via islands (defineIsland,hydrateIslands)- SSR streaming helpers:
renderWithRouterStream,createHtmlChunkStream,streamToNodeResponse
After npm run build, dist/vite/better-helper.iife.js (target: es2015) is additionally built to include the framework in legacy browsers via a plain <script>.
These APIs are kept for compatibility and will be removed in 3.2.0:
lang._(...)lazy._(...)link._cmdlink._i