leanforge://home
~/leanforge — 80x24

LeanForge Software

Software has forgotten how small it can be.

We build native desktop and terminal tools with FLTK and ncurses — no browser runtime, no virtual machine, no framework tax. Just a binary that starts when you run it and gets out of the way.

$ file flxwidgets_demo
flxwidgets_demo: ELF 64-bit executable, statically linked
$ ls -la flxwidgets_demo
-rwxr-xr-x 1 dev dev 184320 flxwidgets_demo
$

Engineering principles

Five rules we don't break, in the order we check them.

  1. Compile to machine code, not to a runtime. If your "app" needs an interpreter installed first, it isn't finished.

  2. A widget toolkit ships in kilobytes, not gigabytes. Static-link it, strip it, and it should still fit on media from 1998.

  3. The terminal is a first-class interface. Not a fallback for when the GUI didn't ship in time.

  4. If it needs a GPU to render a button, it isn't ready. Rasterizing text at 60fps is not a design requirement.

  5. Dependencies are liabilities. Count them. Every shared library is something that can break, go unmaintained, or vanish from the registry.

Products

Two product lines. Both compile down to a single native binary.

GUI toolkit

flxWidgets

A component library for FLTK, built the way Delphi's VCL was built: fast to compile, fast to run, no license server, no subscription. Drop-in widgets for forms, log viewers, and instrument panels.

Static library size~340 KB
Runtime dependencies0
PlatformsLinux · Windows · BSD
ToolchainGCC · MSYS2 UCRT64
Terminal suite

Console Tools

Full-featured ncurses applications for systems where a desktop environment is a luxury you can't afford — edge devices, headless boards, and machines running over a serial line.

Binary size (typical)< 100 KB
Runtime dependencieslibncurses
PlatformsLinux · ARM (BeagleBone) · BSD
Minimum terminal80×24, 16 colors

What "no bloat" costs the other guy

A hello-world window, three ways. Same task, very different bill.

Illustrative comparison — hello-world GUI app
ToolkitBinary sizeRAM at idleDependencies
flxWidgets (FLTK, static) ~180 KB ~4 MB 0
Qt (dynamic link) ~1.2 MB ~28 MB ~15 shared libs
Electron ~90 MB ~180 MB Chromium + Node.js

Figures are representative orders of magnitude from common public benchmarks of each toolkit, not a single controlled test on identical hardware — your mileage will vary by platform, compiler flags, and how much you strip.

Get it

Source-available. No installer, no telemetry, no account required.

git clone https://github.com/leanforge/flxwidgets.git