EngineeringOne repository for everything we build.

Every NoirSystems product, website, library and tool lives in one monorepo: one clone, one toolchain, one CI. This page is that repository, measured.

The repository
in numbers

Counted on the main branch. Lines are non-blank lines of source code, without lockfiles, build output or vendored code.

0

projects

0

programming languages

0

commits

0

tracked files

0+

lines of code

Thirty projects,
five directories

Each directory means one thing, and a project lives in the one that says what it is.

 

  • flokzy

    products/flokzy

    • TypeScript
    • Kotlin
  • sunflow

    products/sunflow

    • Go
    • TypeScript
  • crypto-ide

    products/crypto-ide

    • TypeScript
  • lavender

    products/lavender

    • Rust
    • TypeScript
  • kvbnews

    products/kvbnews

    • Go
    • TypeScript
    • Python
  • drukko

    products/drukko

    • TypeScript
  • noir-app

    products/noir-app

    • TypeScript
  • noirwallet

    products/noirwallet

    • TypeScript
  • pikajuoksu

    products/pikajuoksu

    • TypeScript
  • pikajuoksu-server

    products/pikajuoksu-server

    • TypeScript
  • levonne

    products/levonne

    • Go
    • Dart
  • foldtools

    products/foldtools

    • Kotlin
    • Swift
  • noir-bots

    products/noir-bots

    • Python
  • flokzyweb

    products/flokzyweb

    • TypeScript
  • etat

    products/etat

    • Java
    • Python
  • bookdiscord

    products/bookdiscord

    • JavaScript
  • noirsystems-site

    web/noirsystems-site

    • TypeScript
  • noir-bzh

    web/noir-bzh

    • TypeScript
  • redstone-site

    web/redstone-site

    • TypeScript
  • xandra-css

    libs/xandra-css

    • CSS
    • JavaScript
  • pikajuoksu-core

    libs/pikajuoksu-core

    • TypeScript
  • gitcom

    tools/gitcom

    • Python
  • gity

    tools/gity

    • JavaScript
  • migration

    tools/migration

    • Shell
    • Python
  • gopolars

    research/gopolars

    • Go
  • +5

    internal projects, not listed here

What it is
written in

Lines of code by language, across the whole repository.

Lines of code by language, across the whole repository.
LanguageLines of code
TypeScript
372,597
Kotlin
75,395
Go
65,277
Python
44,834
Rust
44,535
Java
24,050
JavaScript
23,939
CSS
21,831
Shell
11,234
Other
17,952, C++, SQL, Dart, Swift

The graphhas no edges

Nx sees thirty projects and no dependencies between them. That is the measured state, and we keep it that way: no product imports code from another product.

Leave the graph disconnected. Do not manufacture edges to make it look like a monorepo.

ADR-0002, accepted on 20 September 2026

The one real link is a protocol

Sunflow talks to Flokzy over HTTP, with a versioned protocol, a test fixture and a delivery outbox. Two programs talking over the network are not an import, so the graph is right not to draw it.

What one repository buys

  • One clone
  • One toolchain setup
  • One CI
  • One place to search

Four rules
that hold it together

  • No product imports another

    A product may use libs/ and its own code. Products talk to each other through an API, an event contract or a generated client.

  • libs/ is earned

    Code moves into libs/ when a second product, in a different area, already uses it. There is no shared dumping ground.

  • Every project owns its install

    Each project keeps its own package manager and lockfile. The root installs Nx and nothing else.

  • Secrets stay out

    Environment files, keys and keystores are ignored by git, and every push scans the whole history for leaks.

Seven commands
for thirty projects

Task names are the same in every project, whatever runs underneath: Gradle, Go, pnpm, Maven or pytest.

The same targets everywhere

  • build
  • test
  • lint
  • typecheck
  • format
  • dev
  • e2e
  • integration-test
  • package
  • deploy
  • pnpm bootstrap# toolchains, install, git hooks, health check
  • pnpm env:check# what is wrong with this machine, and the fix
  • pnpm projects# what exists
  • pnpm graph# how it fits together
  • pnpm affected# lint, typecheck, test and build, only what changed
  • pnpm check# dependency boundaries and the structure contract
  • npx nx run <project>:<target># one project, one task

Every push,
one pipeline

CI runs the same scripts you run on your machine, and only for the projects the change touched.

  1. Secret scan

    gitleaks scans the full history, after a control test proves it catches a planted key.

    gitleaks git .
  2. Toolchains

    mise installs the exact versions pinned in mise.toml.

    mise install
  3. Boundaries

    pnpm check first plants a known bad dependency, so a clean result means the rules really ran.

    pnpm check
  4. Affected

    Nx works out which projects the change touches.

    nx show projects --affected
  5. Install

    Only the affected projects install their dependencies.

    pnpm install:affected
  6. Verify

    Lint, typecheck, test and build, three projects at a time.

    pnpm affected --parallel=3

Want to workin it?

No open roles are listed right now, but open applications are read. Tell us which product you want to work on.