Skip to content
View softpython2884's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report softpython2884

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
softpython2884/README.md

  About

I'm NightFury, a French developer, and I run Forge Network (forgenet.fr) — a non-profit association that publishes the projects on this page.

I tend to take a product across its whole stack rather than one layer of it: the database and its isolation model, the API, the interface, then the Debian machine it runs on — nginx, Docker, PM2, certificates, backups. Most of what follows exists because something had to be decided at that level.

const nightFury = {
  role:    ["Full-Stack", "SysAdmin", "Data Eng", "OS Builder"],
  founder: "Forge Network · forgenet.fr",
  stack:   ["TypeScript", "Next.js", "React", "Node", "Dart", "PostgreSQL", "Docker", "Linux"],
  now:     ["Capibara (SaaS suite)", "a custom Linux distro", "a new Grand Projet"],
  learning:"Scala & high-performance JVM systems",
};

  OpenCoperLock  ·  the one you can read

My main open-source project, and the only place where the claims on this page can be checked against the source. Everything after it is private, so start here.

A private cloud for one dedicated machine

A self-hostable Drive — files, folders, quotas, sharing — with three things most "drop a file" tools don't have.

TypeScript Next.js Fastify Prisma PostgreSQL Docker

Quick-Upload opens a temporary drop zone on any device from a code — no login — with optional password, expiry and usage limit. Remote-Upload makes the server fetch a link itself, so a phone on a metered connection never relays the bytes. Hybrid encryption is a choice made per folder: encrypted at rest so the antivirus can still scan the file, or a zero-knowledge vault encrypted in the browser that the server cannot read at all.

Shared Spaces are encrypted server-side only, because a zero-knowledge vault cannot be shared — that trade-off is written in the docs rather than left for you to discover. Same for the rest: background work runs inside the API process to keep a deployment to a single moving part, with Redis/BullMQ documented as the upgrade for horizontal scale instead of required up front.

Antivirus scanning on upload · WebDAV mounting · personal-token REST API · desktop right-click integration · one-click self-update from GitHub · architecture, security policy and a candid threat model in docs/

arch files enc hash license


cost effort

Repo Live


  Flagship Work

Four systems in production. All four are private — client work and products that are sold — so the links go to the live product or the download, and the numbers come from the repositories.

Capibara  ·  private · in production

The software a small company runs its day on: quotes, invoices, accounting, customers, stock, staff, shop — and the website that fronts it.

Next.js React tRPC Prisma PostgreSQL Stripe Docker

Around twenty applications sharing one set of customers, one accounting ledger and one search index, so an invoice, the stock movement behind it and the ticket about it are the same object seen from three places. Each company also gets a public website it edits itself, built from blocks, served from its own domain.

The isolation is structural rather than a filter: every customer gets its own copy of the database schema, so one company's data can't turn up in another's query even if a WHERE clause is forgotten. What it costs is honest to state — a schema change has to be replayed on every customer, which is where the 182 tenant migrations come from, and why a deployment stops instead of running new code against a database that hasn't caught up.

CRM · French invoicing (Factur-X) · Accounting with FEC export · Shop · Inventory · Purchasing · Planning · Support · Projects · HR · Training · Blog · Newsletter · Chat · Wiki & storage

Permissions are re-read from the database on every call rather than trusted from the session · Meilisearch, MinIO, a mail server with webmail, self-hosted video and a Stripe Connect marketplace each run as their own container · Not multi-region and not one database per client: a single Postgres holds them all, and scaling past one machine is a known open problem rather than a solved one.

files loc models migrations tests langs svc


cost effort

Payment, security and compliance code is 11 % of the lines and 29 % of that estimate.

Visit Capibara Forge Network

OPUS  ·  forgenet.fr

The platform Forge Network runs on: client projects and invoicing, server hosting, software licensing and a store.

React Vite Express Prisma PostgreSQL Stripe

OPUS Cloud rents out servers with a console, a web file manager and backups in the browser. A Cloud Box behaves like a small VPS — SSH, a persistent home directory, your own packages — but it isn't a virtual machine: the sandbox refuses the privileges a normal SSH daemon needs, so the box ships its own lightweight root filesystem and SSH server instead. Docker doesn't run inside it and only the home directory survives a rebuild. Both limits are on the page, not discovered after signing up.

Forge Licensing issues the licence keys for the group's software. Every answer is signed, so an application can verify a licence without calling home and a captured answer can't be replayed as a valid one. Elipse RSAI runs on it.

Client workspace with quotes, invoices and instalment plans · certification program (27 tracks × 4 levels × 5 real-project briefs) · store with Stripe checkout and automatic licence delivery · news feed with RSS

models loc routes cert sig


cost effort

Live Console

Marcus  ·  marcusbot.fr

A Discord bot that server owners extend themselves — by drawing what they want, not by writing code.

Discord.js Next.js SQLite Gemini

The usual bot features — 93 commands, levels, moderation with an AI pass, premium tiers — plus a visual editor where a module is a diagram of blocks. Nothing is compiled: the editor saves a graph and one interpreter walks it at runtime, so a server owner can build a ticket system or a role menu without touching a line of TypeScript.

The hard part was never the editor. A button posted in a Discord channel outlives the process that posted it, so every component is written to the database and restored when the bot boots — without that, each restart leaves dead buttons in old messages. That, and the fact that Discord's limits (five buttons a row, five rows a message) have to be enforced in the editor rather than discovered by the user when the message fails to send.

files loc cmd events flows rework


cost effort

Least flattering number on this page, and it stays: 2.07× more lines were written than survive. The visual editor was rebuilt more than once.

Live

Elipse RSAI  ·  private · shipped

A field app for the health referents who follow French nurseries — on the phone, in the car, with no signal and no account.

Flutter Dart SQLite Android Windows

A referent covers 5 to 30 nurseries and owes each one a number of hours set by decree, split by quarter, and has to be able to prove it. Between two visits it gets written on a notepad, or not at all, and reconstructed in December. The app logs a visit in three taps, keeps four counters per nursery, and flags the quarter that is drifting — the quarterly minimum is the one people miss, you can reach the annual total and still be short on three quarters. It then writes the paperwork — visit reports, referral letters, care plans, annual review — as PDFs, offline.

Nothing leaves the device, and that is a consequence rather than a preference. Records naming a child are health data; hosting them in France requires a certification well out of reach for a project this size, so the hosted version was dropped and the server removed entirely. The bill lands on synchronisation: with no server to reconcile against, two devices sync directly over the local wifi, or through an encrypted file on a USB stick when the nursery network keeps them apart — which it often does.

Local database with sensitive fields encrypted · devices paired by QR code and a six-digit code read out loud · PDF engine written in Dart, no network · the only outbound call checks the licence and carries no data about anyone · an expired licence drops the app to read-only and never holds the records hostage

files loc screens tests targets version


cost effort

17k lines of tests against 56k lines of app. The rules that decide whether someone is compliant are kept apart from the interface so they can be tested on their own.

Download


  Where those estimates come from

Project Lines counted Effort Rebuild cost Written / kept
Capibara 430 122 189 person-months ~2.46 M€ 1.14×
Marcus 112 364 67 person-months ~867 k€ 2.07×
OPUS 103 925 53 person-months ~687 k€ 1.39×
Elipse RSAI 83 471 33 person-months ~434 k€ 1.05×
OpenCoperLock 28 147 12 person-months ~155 k€ 1.12×

Not money anyone spent. These estimate what it would cost to rebuild each project from scratch with a senior team at the 2026 French senior rate (~650 €/day) — and they are computed rather than guessed. The script is tools/estimate.py and it runs on any of these repositories.

How. Every file is sorted into a zone — payment, security, compliance, integrations, business logic, interface, data model, infrastructure, tests, docs — and each zone carries its own lines-per-hour rate, because billing code with idempotency, webhooks and reconciliation does not cost what CRUD costs. Git history then adds what was written and later rewritten or thrown away, since abandoned work took the same time, and an overhead factor covers what leaves no file behind: architecture, deployment, operations.

A person-month is one person working full time for one month. It is a unit of effort, not a headcount — 189 person-months is roughly what a team of ~46 delivers in four months.

Two caveats. The productivity assumption sits at the optimistic end of the published 10–20 lines/hour range, so if these figures are wrong they are low rather than high. And on Capibara, payment, security and compliance code is 11 % of the lines but 29 % of the estimate — which is exactly why a flat average would have been worthless here.


  More public repositories

Experiments, tools and weekend builds. Smaller, and that's the point.

A clipboard assistant that stays in the background. A hotkey grabs the selection from whatever application is in front, sends it to Gemini and pastes the answer at the cursor — falling back to another model when a quota runs out.

Python Gemini

Repo

A Minecraft Fabric mod (1.21, Java 21) inspired by Kenshi: capture built as a state machine — free, knocked out, imprisoned, enslaved — with cages, a control scepter, escapes, rebellions, and gamerule switches so it can't be used to grief a server.

Java Fabric

Repo

An older one. A console-style layer for the TV, navigable entirely with an Xbox controller, that launches local games and media — bridged to Windows through a Python hotkey listener.

Next Python

Repo

StreamDeck utilities

Gaming and office setups need different mice and different speakers. Two PowerShell scripts on one key: MouseMode swaps the Windows pointer profile, AudioSwitcher changes the default output and moves every running application onto the new device.

PowerShell

MouseMode AudioSwitcher

Also in the lab

Betty SimuBourse StudyVerse CreepOS OpenMark-Blog Mana-Clash


  Custom Linux distribution  ·  unfinished, nothing to download

The least finished thing on this page, and the only one with no artifact behind it: no installer, no release, no repository yet. The target is a distribution built against the bare kernel — its own window manager, session, package and file managers — rather than a theme over an existing desktop, aiming for Arch-level configurability without Arch-level setup.

It's here because it's where a large share of my time goes, not because it's usable. Treat it as a statement of intent until there's something to install.


  Tech Stack

Languages

TypeScript JavaScript Python Dart Java Scala C++ Bash

Frontend

Next.js React Tailwind Vite Flutter

Backend & Data

Node.js tRPC Express Prisma PostgreSQL MongoDB

Systems & DevOps

Linux Docker Nginx Caddy GitHub Actions Stripe


  What I actually write

TypeScript Dart SQL Prisma Java HTML / CSS Shell Python

Counted across the eight repositories behind this page — 717 526 lines, private ones included. Re-derive it with tools/languages.py. A GitHub language graph would only see the public repos, which is the smaller half.


  Certified

OPUS Certified


Frontend

Backend

DevOps

Systems

Databases

SEO


How to read these scores? Each score (out of 10) measures a concrete ability — not theory learned by heart. It reflects the ability to write clean, maintainable code and to handle a production deployment autonomously. Assessments are carried out and approved by OPUS on the basis of real, delivered projects.


Verifiable at forgenet.fr/verify/OPUS-2026-Z26F2D


  Contact

Forge Email Pro Email Perso

Discord Ko-fi

footer

Pinned Loading

  1. OpenCoperLock OpenCoperLock Public

    open source Drive auto hébergé, dropping et utilisation au quotidien sécurisé

    TypeScript 1

  2. Mana-Clash Mana-Clash Public

    Online tactical card game inspired by MTG and Hearthstone. Build decks, manage mana, play creatures, spells, artifacts, and biomes, and outsmart your opponent in strategic turn‑based combat.

    TypeScript 1

  3. OpenMark-Blog OpenMark-Blog Public

    OpenMark, a modern, "open-source" blogging platform built with a powerful and scalable technology stack. This platform provides a rich-media editing experience, robust user management, and AI-power…

    TypeScript 1

  4. StudyVerse StudyVerse Public

    AI‑augmented learning environment for creating, organizing, and enriching study notes. Features intelligent note‑taking, structured organization, real‑time voice transcription, built‑in AI assistan…

    TypeScript 1

  5. CreepOS CreepOS Public

    Psychological‑horror narrative game set inside a simulated desktop OS. Explore files, hack a dynamic network, survive system corruption, and uncover the truth behind a fragmented AI trapping operat…

    TypeScript 2

  6. Kryptonite-v2 Kryptonite-v2 Public

    Production‑ready Node.js microservice providing clean, reliable, and fully tested cryptography endpoints. Implements classic ciphers (ROT13, Caesar, Vigenère, Polybius) with strict validation, modu…

    TypeScript 1