Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

How I built errno.help - and what broke along the way

Description and use

errno.help consolidates frequently used developer tools into a single web app, providing client‑side processing and secure server requests, improving workflow efficiency and trust.

Problem

Developers repeatedly use multiple online tools for CIDR math, JWT decoding, hashing, etc., leading to fragmented workflows and trust concerns.

Outcome

errno.help consolidates common IT/dev utilities into a single, client‑side first web app with secure server‑side services, robust rate limiting, and a clean design, improving workflow efficiency and trust.

Workflow

  • 1. Identify core utilities (CIDR, JWT, hash, UUID, YAML⇄JSON, cron, DNS/WHOIS/ASN/GeoIP, Windows error reference, command builders).
  • 2. Implement client‑side logic using native Web APIs (crypto, randomUUID).
  • 3. Add server‑side Next.js API routes for DNS, WHOIS, ASN, GeoIP, port checker, ensuring no client‑side API keys.
  • 4. Configure GeoIP provider: switch from MaxMind to ipinfo.io for easier auth and commercial‑friendly free tier.
  • 5. Implement rate limiting keyed on X‑Forwarded‑For, then adjust to use x‑real‑ip on Vercel and httpOnly cookie IDs elsewhere.
  • 6. Resolve layout issue by moving viewport lock to landing page root instead of global body.
  • 7. Deploy to Vercel, test, iterate.
  • 8. Open‑source under MIT on GitHub.
  • 9. Plan future feature additions (Base64, regex, more command builders).

Evidence

Nothing you paste into the JWT decoder ever leaves your machine

Source

The GeoIP service rejected our credentials.

Source

rate limiting keyed on X-Forwarded-For can be trivially bypassed

Source

  • Record date: 2026-09-22T02:00:46.947Z