{"meta":{"name":"FindSoftware","page":"https://findsoftware.frbit.cloud/tropical/","markdown":"https://findsoftware.frbit.cloud/tropical.md","license":"https://creativecommons.org/licenses/by/4.0/","attribution":"FindSoftware, CC BY 4.0","note":"Attributes are recorded, never scored. An absent field means unknown, never zero and never bad."},"record":{"id":"tropical","name":"Tropical","urls":{"home":"https://tropical.js.org","repository":"https://github.com/bensmithett/tropical","docs":"https://tropical.js.org/docs/"},"category":["ssg"],"description":"Static site generator built with React and Vite that prerenders pages to HTML, with opt-in browser JavaScript through islands.","maintainer":"Ben Smithett","maintainerType":"individual","firstRelease":2020,"hosting":["static"],"language":"javascript","runtime":["node"],"runtimeMin":"node 16","basedOn":["react"],"contentStore":["flat-file"],"templating":"jsx","runsAs":["static"],"renderingModes":["static"],"installMethod":"GitHub template repository, then install dependencies with yarn or npm","licenseModel":"open-source","license":"MIT","currentMajor":"11","latestReleaseDate":"2022-09-06T00:00:00.000Z","githubStargazers":173,"contributors":2,"packagistDownloads":null,"checkedAt":"2026-10-23T00:00:00.000Z","addedAt":"2026-10-23T00:00:00.000Z","sources":[{"field":"urls","url":"https://tropical.js.org/","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"urls","url":"https://tropical.js.org/docs/","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"urls","url":"https://api.github.com/repos/bensmithett/tropical","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"maintainer","url":"https://github.com/bensmithett/tropical/blob/main/LICENSE","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"language","url":"https://api.github.com/repos/bensmithett/tropical","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"category","url":"https://tropical.js.org/","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"basedOn","url":"https://tropical.js.org/","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"runtime","url":"https://github.com/bensmithett/tropical/blob/v11.4.2/package.json","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"runtimeMin","url":"https://github.com/bensmithett/tropical/blob/v11.4.2/package.json","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"templating","url":"https://tropical.js.org/docs/pages","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"contentStore","url":"https://tropical.js.org/docs/pages","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"installMethod","url":"https://tropical.js.org/docs/","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"renderingModes","url":"https://tropical.js.org/docs/","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"runsAs","url":"https://tropical.js.org/docs/","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"license","url":"https://api.github.com/repos/bensmithett/tropical","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"licenseModel","url":"https://github.com/bensmithett/tropical/blob/main/LICENSE","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"firstRelease","url":"https://api.github.com/repos/bensmithett/tropical/releases","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"currentMajor","url":"https://api.github.com/repos/bensmithett/tropical/releases","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"latestReleaseDate","url":"https://api.github.com/repos/bensmithett/tropical/releases","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"githubStargazers","url":"https://api.github.com/repos/bensmithett/tropical","checkedAt":"2026-10-23T00:00:00.000Z"},{"field":"contributors","url":"https://api.github.com/repos/bensmithett/tropical/contributors","checkedAt":"2026-10-23T00:00:00.000Z"}],"status":"stub","ai":"authored"},"prose":"Tropical is a static site generator that ships as a GitHub template repository. A new site starts as a copy of the template, and its pages are MDX or JSX files in `src/pages`. The build renders them to HTML with React, using Vite for the build.\n\nComponents render to HTML with no browser JavaScript by default. Interactive parts are added as islands with the `tropical-islands` package: a component wrapped in `Island` is hydrated in the browser through `src/entry-client.jsx`. A site can also attach plain JavaScript or another library to the server-rendered HTML instead.\n\n## Worth knowing\n\nThe template has no package version to upgrade in place. Each release publishes guides for updating dependencies and conventions, so a site keeps its own copy of the code and applies those changes itself."}