How I built errno.help - and what broke along the way
说明与用途
errno.help 将常用开发工具整合到一个网页应用中,提供客户端处理和安全的服务器请求,提升工作效率与信任度。
问题
Developers repeatedly use multiple online tools for CIDR math, JWT decoding, hashing, etc., leading to fragmented workflows and trust concerns.
结果
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.
工作流
- 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).
证据
Nothing you paste into the JWT decoder ever leaves your machine
The GeoIP service rejected our credentials.
rate limiting keyed on X-Forwarded-For can be trivially bypassed
- 记录日期: 2026-09-22T02:00:46.947Z