Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


bundlephobia bundlephobia codecov

Lazy forgojs components ready for SSR and chunk preloading


import lazy, { Suspense } from "forgo-lazy";

const LazyComponent = lazy(() => import("./lazy-component"));

const App = () => ({
  render: () => (
    <Suspense fallback={() => "Loading..."}>
      <LazyComponent title="It's that easy :D" />

Development Commands

  • yarn build: Build the library and generate TS types.
  • yarn dev: Start Jest in watch mode.
  • yarn test: Single test pass.
  • yarn format: Format the code using prettier.

CI Workflow

Feature Branch PR

Create a feature branch off of the main branch, make your changes and use git cz to commit your changes. To get started with commitizen check out

Creating a PR will run lint, and test CI, along with attempting to publish a pre-release of your changes. A pre-release package will only be published if the following conditions are met:

  • Your PR updates the package.json version
  • Version is not already published
  • Your updated version matches {SEMVER}-pr.{PR_NUMBER}-{VERSION}

For example, 1.2.3-pr.23-0 would represent the first prerelease version of PR 12 that would attempt to be published by the CI pipeline. If the version already exists, publish will be skipped until the prerelease version has been updated again to 1.2.3-pr.23-1. Please note that a deployment will not occur if the PR number in your semver does not match your PR number.

Production Release

Merging your PR to main will not trigger a release, instead it will open or update a PR that contains relevant changelog updates since the last production release.

This PR acts as a queue of work that will be release in the next deployment, as well as manages bumping the semantic version to the appropriate new version based on the commit messages.

Once you are ready to release, just merge this auto-generated PR back to main and a release will be triggered for the new version number.

Beta Release

Simply bump the version on main to match {SEMVER}-beta.{VERSION} and it will automatically be tagged as a beta and deployed.