Skip to content
NorscodeNorscode

One tool from idea to production

ArticleBy the Norscode project

nc check, nc run and nc serve are the same tool all the way — from the first line to the service running in production.

One tool, three commands nc check validates nc run runs nc serve in production

Most languages let you assemble a tool belt over time: one thing to check the code, another to run it, a third to package it for production. Norscode brings it together in one.

Three commands, the same tool

nc check reads the code and tells you if something is wrong before you run it — types that don't match, functions that are missing. nc run runs the program. nc serve starts it as a web service. It's the same nc all the way, from the first line you write to the service running in production.

Why it matters

A single tool means one thing to install, one thing to learn, and one thing to keep updated. You're spared cobbling together a build chain of independent parts that each have their own version and their own quirks. The beginner doesn't meet a wall of setup before the first program runs; the experienced developer is spared maintaining that wall.

From check to production

A typical workflow is short: write the code, run nc check until it's clean, nc run to try it, and nc serve when it's meant to take traffic. The same tool follows you all the way — no translation between the "development tool" and the "production tool", because it's the same one.

Simplicity in the tool isn't a lack of power. It's removing everything that isn't needed, so what remains is easy to trust.

A typical working day

Here's what the flow looks like in practice. You write a bit of code and run nc check to catch typos and types that don't match — it takes a moment and spares you discovering the error in the middle of a run. If it looks good, you run nc run to try the program. And when it's meant to take real traffic, you swap run for serve. Same file, same tool, three steps.

What you're spared

In many other environments these are three different tools — one for checking, a build chain for packaging, and something separate for running in production. Each of them has its own configuration, its own version and its own quirks, and a large part of the setup in a project goes into getting them to play together. With one tool, that layer disappears entirely.

Simple isn't the same as small

That nc is one tool doesn't mean it can do little. It validates with full type checking, runs with capability control, and serves real HTTP. The point isn't to remove power, but to remove everything that isn't needed, so what remains is easy to trust and easy to remember.

Related

Back to the overview