{"id":27327,"library":"radka","title":"Radka","description":"Radka (v0.5.1) is a Node.js-based static site generator that uses JSX without React. It transpiles JSX pages to static HTML, supporting dynamic routing inspired by Next.js (e.g., `pet/[type].page.jsx`). Under the hood, it bundles Babel, PayPal's JSX Pragmatic, Turbolinks, and Parcel. Unlike Gatsby or Next.js, Radka avoids React's client-side state management, relying on vanilla CSS and JavaScript. It uses file-based routing in `src/pages/` and outputs to a `site/` folder. The project appears to be experimental with low release cadence (last update likely in 2019).","status":"maintenance","version":"0.5.1","language":"javascript","source_language":"en","source_url":"https://github.com/apiel/radka","tags":["javascript","generator","website","static","static-site","static-site-generator","ssg","jsx"],"install":[{"cmd":"npm install radka","lang":"bash","label":"npm"},{"cmd":"yarn add radka","lang":"bash","label":"yarn"},{"cmd":"pnpm add radka","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core JSX transpilation dependency","package":"babel","optional":false},{"reason":"Bundling and dev server","package":"parcel","optional":false},{"reason":"Client-side navigation enhancement","package":"turbolinks","optional":false}],"imports":[{"note":"jsx is required in every JSX file for transpilation; do not import React.","wrong":"import React from 'react'; import { jsx } from 'radka'","symbol":"jsx","correct":"import { jsx } from 'radka'"},{"note":"page is a named export, not default. Used to wrap page components.","wrong":"import page from 'radka'","symbol":"page","correct":"import { page } from 'radka'"},{"note":"Import component for injecting scripts/styles; case-sensitive.","wrong":"import Import from 'radka'","symbol":"Import","correct":"import { Import } from 'radka'"}],"quickstart":{"code":"mkdir radka-site && cd radka-site\nnpm init -y\nnpm install radka --save-dev\nmkdir -p src/pages\ncat > src/pages/index.page.jsx << 'EOF'\nimport { jsx, page } from 'radka';\n\nfunction Main() {\n  return (\n    <div>\n      <h1>Main page</h1>\n      <p>Welcome to Radka!</p>\n    </div>\n  );\n}\n\nexport default page(Main);\nEOF\nnpx radka\nnpx radka server","lang":"javascript","description":"Creates a new Radka project with one page, generates static HTML, and starts a dev server."},"warnings":[{"fix":"Consider using modern SSG alternatives like Eleventy or Astro.","message":"Radka relies on outdated dependencies (Babel 6, Parcel 1, Turbolinks) which may have security issues.","severity":"deprecated","affected_versions":">=0.0.0"},{"fix":"Use './index.script' for .js files.","message":"Import paths for scripts must omit file extension (e.g., './index.script' not './index.script.js').","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Ensure filenames use brackets for dynamic segments.","message":"Dynamic route parameters are defined in the filename (e.g., '[type].page.jsx') and passed as props.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Always use <Import /> with capital I.","message":"The 'Import' tag is capital-sensitive; using 'import' (lowercase) will fail silently.","severity":"gotcha","affected_versions":">=0.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run 'npm install' in the project root to install all dependencies.","cause":"Missing Babel dependency automatically installed by Radka.","error":"Error: Cannot find module '@babel/core'"},{"fix":"Add 'import { jsx } from 'radka';' at the top of the file.","cause":"Forgetting to import { jsx } from 'radka' in JSX file.","error":"Uncaught ReferenceError: jsx is not defined"},{"fix":"Use 'import { page } from 'radka';' (named import).","cause":"Incorrect import syntax (e.g., default import instead of named).","error":"Error: Export 'page' (imported as 'page') was not found in 'radka'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}