Nordcraft is a free, open source website builders project written in TypeScript and released under Apache-2.0. It has 489 GitHub stars, 45 forks and 184 open issues, and was last pushed yesterday. On this registry it ranks #8 of 9 tracked projects in Website Builders, with 5 head-to-head comparisons available.

What is Nordcraft?

What it is

Nordcraft is a monorepo that holds the packages used internally by the Nordcraft framework, a tool for building web applications with server-side rendering, branching, version control, and components. The repository is written in TypeScript and published under the Apache-2.0 license, with packages released to npm under the @nordcraft scope. It lives in the JavaScript and TypeScript ecosystem, and it is developed with the bun runtime and package manager. The project homepage is nordcraft.com, and community discussion happens through Discord, BlueSky, YouTube, and LinkedIn.

The concrete problem the repository addresses is fragmentation of a proprietary engine. Nordcraft has announced a move toward becoming fully open source, and this repository is the vehicle for that effort. Its goal is to progressively move more code out of the closed product and into public packages, eventually making it possible to self host a Nordcraft application. At present the repository exists mainly to supply the framework's own build and runtime needs rather than to serve external consumers.

Key capabilities

  • The core package holds shared logic that every other package depends on.
  • The runtime package contains the logic for hydrating, running, and updating a Nordcraft application in the browser.
  • The ssr package holds part of the server-side rendering logic, and is the package receiving most updates while server rendering code is migrated.
  • The std-lib package provides all builtin formulas and actions used by the runtime and during server-side rendering.
  • The search package holds issue rules and search functionality for traversing a Nordcraft project, and powers the issue panel in the Nordcraft editor inside a web worker.
  • A CSS parser package powers the style panel in the Nordcraft editor.
  • Packages are released to npm automatically after a version bump in the root package.json is merged via pull request.

Who uses it and how

  • The Nordcraft framework itself consumes all of the packages internally, so the primary consumer is the framework rather than third-party applications.
  • Contributors developing locally run bun run link in the repository root, which applies bun link to every package for local consumption.
  • The hono example is described as the best current way to test the packages.
  • People reporting bugs or proposing features open issues and pull requests, and the maintainers state that the repository is actively monitored.
  • Documentation contributors work in a separate documentation repository and can open issues there for errors or omissions.

Getting started

Install dependencies with bun install, check types with bun typecheck, lint with bun lint, and build all packages with bun run build. For local consumption of the packages, run bun run link from the repository root.

When to use it — and when not to

The README states plainly that the project is in development and is not yet ready for other applications to consume, so

project readme (upstream, from github) — read inline

Nordcraft

Create highly performant web apps with SSR, branching, version control, components, and much more! Visit nordcraft.com to learn more.

Discord | BlueSky | YouTube | LinkedIn

Test status Release status

Introduction

This repository holds different packages that are used internally by the Nordcraft framework. The packages that are currently available are:

  • core 👈 holds core (shared) logic used by the other packages
  • runtime 👈 includes logic for hydrating/running/updating a Nordcraft application on the front-end
  • ssr 👈 holds part of the server-side rendering logic
  • lib 👈 holds all builtin formulas and actions used by the runtime and during ssr
  • search 👈 holds all issue rules and search functionality for traversing a Nordcraft project. This powers the issue panel in the Nordcraft editor in a web worker atm
  • [css-parser] the CSS parser used in the Nordcraft editor to power the style panel

Requirements

Install using bun by running bun install

Commands

  • Install: bun install
  • Lint: bun lint
  • Check types: bun typecheck
  • Build: bun run build <-- builds all packages

Status

While we consume all packages internally in the Nordcraft framework, this project is currently in development and is not yet ready for other applications to consume.

Plan

As announced in July '24, Nordcraft is in the process of going fully open source. The goal is to move more and more code into this repository and make it possible to self host a Nordcraft application.

We're currently working on moving more of the server-side rendering logic into this repository. This means that most updates are going to be in the ssr package for the time being.

Dependencies

The dependencies between the packages are as follows:

  • core is a dependency for all other packages
  • ssr is a dependency for search
  • std-lib is a dependency for runtime and ssr

Releases

We use GitHub releases and release to npm atm, which is where we consume packages from internally.

To release a new version to npm:

  1. Update the version in the root package.json file
  2. Create a PR
  3. Once the PR is merged, it will automatically release all packages to npm

Contributing

If you find a bug or have an idea for a new feature, please open an issue. We also welcome pull requests. We are actively monitoring this repository.

If you have any questions, feel free to ask them in our Discord or reach out by e-mail

Local development

To consume all packages locally, it's useful to run bun run link in the root of the repository. This will use bun link on all packages in the repository.

Other than that, the best way to test atm is to use the hono example.

Documentation

The Nordcraft docs are open source.

If you'd like to contribute to the documentation, view all open issues on GitHub, or open an issue if you find something wrong or missing.

View the Nordcraft official documentation.

Frequently asked questions

Is Nordcraft free to use?

Nordcraft is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Nordcraft do?

Craft AAA web apps that delight your users

What is Nordcraft written in?

Nordcraft is primarily written in TypeScript. Its source is publicly available at https://github.com/nordcraftengine/nordcraft, and it has 489 GitHub stars.