Skip to content
Docs
    Menu

    Site code reference

    What isn't supported

    Astro and web-project features that don't work on a Starjay site, and what to do instead.

    Starjay sites are Astro projects, but not every Astro feature is available. This page lists what doesn't work and the alternative for each.

    Not supported What happens Do this instead
    React, Vue, Svelte, Solid and other framework components No framework integration is installed, so they don't render. .tsx and .jsx files are refused as pages. Write .astro components; add behavior with <script>, <details> and <dialog>. See Interactivity.
    New npm packages package.json can't be written, so new packages can't be installed. Write the code in src/lib/, or load a third-party script in a snippet file.
    Config edits (astro.config.mjs, tsconfig.json, package.json) Refused. None; the configuration is managed.
    Middleware (src/middleware.ts) Refused. Use redirects (redirects_modify).
    Server endpoints and API routes Not supported. Use forms for visitor input, and third-party services from the browser.
    Environment variables and secrets There's nowhere to set them, and site code has no access to any. Never put keys in site code. Anything in a page is public.
    Alternative layouts (src/layouts/ other than Base.astro) Refused. Put shared chrome in src/components/layout/; per-page structure goes in the page.
    Editing Base.astro Refused. Use modify_layout for the header and footer, and the snippet files for raw <head> and <body> content.
    Build-time content collections (src/content.config.ts, getCollection) Refused. Use CMS collections with getLiveCollection and getLiveEntry. See Reading CMS content in code.
    Files in public/ Refused. Images go through the image library.
    Astro.rewrite('/404') Fails on the live site. return new Response(null, { status: 404 }).
    Converting Markdown to HTML in code Not supported. Use the <Markdown> component.
    Raw <form> elements Refused. Use the form components.
    Pages under an _ path segment Refused. Choose a path without a leading underscore.
    RSS feeds Not available. None.