РазработкаВсё, что мы создаём, в одном репозитории.

Все продукты, сайты, библиотеки и инструменты NoirSystems живут в одном монорепозитории: один клон, один набор инструментов, один CI. Эта страница показывает его в цифрах.

Репозиторий
в цифрах

Посчитано по основной ветке. Учитываются только непустые строки исходного кода, без lock-файлов, результатов сборки и вендорного кода.

0

проектов

0

языков программирования

0

коммитов

0

отслеживаемых файлов

0+

строк кода

Тридцать проектов,
пять директорий

Каждая директория отвечает за что-то одно, а проект лежит в той, что описывает его суть.

 

  • 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

    внутренних проектов, не показанных здесь

На чём
это написано

Строки кода по языкам во всём репозитории.

Строки кода по языкам во всём репозитории.
ЯзыкСтроки кода
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
Другие
17 952, C++, SQL, Dart, Swift

В графенет рёбер

Nx видит тридцать проектов и ни одной зависимости между ними. Это измеренное состояние, и мы его сохраняем: ни один продукт не импортирует код другого продукта.

Оставить граф несвязным. Не создавать рёбра искусственно, чтобы он был похож на монорепозиторий.

ADR-0002, принят 20 сентября 2026 года

Единственная настоящая связь: протокол

Sunflow общается с Flokzy по HTTP: версионированный протокол, тестовая фикстура и очередь исходящих доставок. Обмен по сети между двумя программами не является импортом, поэтому граф по праву её не рисует.

Что даёт один репозиторий

  • Один клон
  • Одна настройка инструментов
  • Один CI
  • Одно место для поиска

Четыре правила,
на которых всё держится

  • Продукты не импортируют друг друга

    Продукт может использовать libs/ и собственный код. С другими продуктами он общается через API, контракт событий или сгенерированный клиент.

  • Место в libs/ нужно заслужить

    Код переезжает в libs/, когда его уже использует второй продукт из другой области. Общей свалки кода у нас нет.

  • Каждый проект сам ставит зависимости

    У каждого проекта свой пакетный менеджер и свой lock-файл. В корне устанавливается Nx и больше ничего.

  • Секреты не попадают в репозиторий

    Файлы окружения, ключи и хранилища ключей git игнорирует, а при каждом push вся история проверяется на утечки.

Семь команд
на тридцать проектов

Названия задач одинаковы во всех проектах, что бы ни работало под капотом: Gradle, Go, pnpm, Maven или pytest.

Одни и те же таргеты везде

  • build
  • test
  • lint
  • typecheck
  • format
  • dev
  • e2e
  • integration-test
  • package
  • deploy
  • pnpm bootstrap# тулчейны, установка, git-хуки, проверка окружения
  • pnpm env:check# что не так с этой машиной и как это исправить
  • pnpm projects# что есть в репозитории
  • pnpm graph# как всё связано
  • pnpm affected# линтер, проверка типов, тесты и сборка, только для изменённого
  • pnpm check# границы зависимостей и контракт структуры
  • npx nx run <project>:<target># один проект, одна задача

Один пайплайн
на каждый push

CI запускает те же скрипты, что и вы на своей машине, и только для проектов, которые затронуло изменение.

  1. Поиск секретов

    gitleaks проверяет всю историю, но сначала контрольный тест доказывает, что он находит подложенный ключ.

    gitleaks git .
  2. Тулчейны

    mise устанавливает точные версии, закреплённые в mise.toml.

    mise install
  3. Границы

    pnpm check сначала подкладывает заведомо плохую зависимость, поэтому чистый результат значит, что правила действительно сработали.

    pnpm check
  4. Затронутые проекты

    Nx определяет, какие проекты затрагивает изменение.

    nx show projects --affected
  5. Установка

    Зависимости устанавливают только затронутые проекты.

    pnpm install:affected
  6. Проверка

    Линтер, проверка типов, тесты и сборка, по три проекта одновременно.

    pnpm affected --parallel=3

Хотите работатьс этим кодом?

Открытых вакансий сейчас нет, но инициативные отклики мы читаем. Расскажите, над каким продуктом хотите работать.