Philosophy

Software should be
invisible

These seven principles are immutable. They are the yardstick for every feature, every pull request, every design decision.

01

0% CPU idle & RAM frugality

The foundational rules. If you're not touching the keyboard, FerrisPad is asleep. We strictly reject background noise — indexers, file watchers, or daemons that run without your intent.

0%
CPU when idle

No timers, no polling, no background threads. The event loop sleeps until you act.

~3 MB
RAM at idle

Specialized allocation strategies and active memory management return resources to the OS.

0
Child processes

Single binary, single process. No language servers, no watchers, no hidden daemons.

02

True event-driven design

Features must be reactive, not proactive. Nothing runs in the background unless you asked for it.

Passive aids — yes. Syntax highlighting, line numbers, UI organization (tabs & groups). These respond to what's on screen.

Active processes — no. No LSP, no background code analysis, no constant disk searching. If it runs without you asking, it doesn't belong here.

03

Instant utility

Speed is the primary feature. FerrisPad must open instantly. We reject any architectural change that introduces splash screens, loading delays, or runtime initialization lag.

No splash screen. The window appears with your last session already loaded.

No warmup phase. Highlighting, navigation, and search are instant from the first keystroke.

No degradation at scale. A 2 GB file opens as fast as a 2 KB file.

04

Single self-contained binary

Zero runtime dependencies. While FerrisPad leverages the Rust ecosystem at compile time, the result is a single, auditable executable.

No external runtimes. No Node.js, no Python, no JVM.

Statically linked. Scripting capabilities like Lua are compiled into the binary.

Minimal attack surface. Fewer dependencies means fewer vulnerabilities to audit.

05

Extensions that respect the core

We welcome contributions and plugins, but both must honor the event-driven architecture.

Accepted: passive, reactive features — formatting on save, on-demand transformations.

Rejected: background crawlers, constant indexing, persistent background logic.

Sandboxed by default. No arbitrary file access, no unrestricted commands. User consent required for sensitive operations.

06

Privacy & security are binary

We do not collect telemetry. There are no "anonymous pings" or usage stats. We rely exclusively on active user feedback via GitHub.

Auto-updates are lifecycle events. Check once at launch, then terminate. The 0% CPU rule is preserved.

Memory safety. Rust's ownership model eliminates buffer overflows and use-after-free. We minimize unsafe and treat all external input as untrusted.

07

Digital ergonomics

The editor must "feel" right. We prioritize stability, predictability, and a clean interface that minimizes cognitive load. We focus on features that help you organize your mind, not features that try to "understand" your code.

"Built for speed, reliability, and peace of mind."