РозробкаОдин репозиторій для всього, що ми створюємо.

Усі продукти, сайти, бібліотеки й інструменти NoirSystems живуть в одному монорепозиторії: одне клонування, один набір інструментів, один CI. А ця сторінка показує цей репозиторій у цифрах.

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

Пораховано в гілці main. Рядки коду тут означають непорожні рядки вихідного коду без 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

Хочете працюватиз цим кодом?

Відкритих вакансій зараз немає, але ініціативні заявки ми читаємо. Напишіть, над яким продуктом хочете працювати.