Skip to content
View didrod205's full-sized avatar

    Block or report didrod205

    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.

    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
    didrod205/README.md
    header
    Typing SVG




    ✦ About

    "검색엔진과 사용자, 둘 다 만족하는 웹을 만든다."

    React와 Next.js로 빠르고 검색에 잘 잡히는 웹사이트를 만듭니다 (SEO · AEO · GEO). 그리고 요즘은 한 가지를 깊게 하는 작은 zero-dependency 오픈소스 도구들을 만들어요 — 전부 로컬에서, API 키 없이, 아무것도 업로드하지 않고 도는 것들로.

    constme={role: "Frontend Developer · OSS tool maker",building: "30+ tiny, local-first developer tools",values: ["deterministic","zero-dependency","nothing uploaded"],stack: ["TypeScript","React","Next.js"],}asconst

    ✦ 🔒 Try in your browser — nothing uploaded

    The most convenient dev tools are often websites you paste sensitive data into. I rebuilt four of them to run entirely in your browser.

    🔍 jwtlens

    Decode, audit & verify JWTs — signatures checked with Web Crypto.
    ↳ a local-first jwt.io
    ▶ Live demo

    🛡️ csp-doctor

    Find the XSS holes in a Content-Security-Policy (incl. bypassable CDN hosts).
    ↳ a local CSP Evaluator
    ▶ Live demo

    Redact PII & secrets from a payload — referential-integrity pseudonyms.
    ↳ a local PII redactor
    ▶ Live demo

    Lint Set-Cookie for security (HttpOnly/Secure/SameSite, __Host- prefix rules).
    ↳ a local Set-Cookie checker
    ▶ Live demo


    ✦ Open-source tools

    All TypeScript · zero runtime deps in the core · CLI + library · ESM + CJS · MIT. Each does one thing well, locally.

    🔐 Security & privacyjwtlens · csp-doctor · cookie-doctor (Set-Cookie security) · scrubpii · unspook (invisible / Trojan-Source / homoglyph chars) · envlint (.env secrets & schema) · entropass (password gen + strength) · checkdigit (Luhn / IBAN / ISBN / barcode)

    🌐 Web, SEO & contentaeolint (SEO/AEO + Google rich-result eligibility) · a11ylint (HTML accessibility / WCAG) · maillint (HTML email client compatibility) · docsanity (docs-site health suite) · linklint (doc link & anchor integrity) · readlevel (readability metrics)

    ⚙️ Dev config & CItsconfig-doctor (tsconfig strictness & footguns) · actionbudget (GitHub Actions CI-minute waste) · apilint (OpenAPI quality) · licenselint (license audit + SBOM) · i18nlint (translation files)

    📊 Data & formatsdatalint (CSV/TSV data quality) · nanocsv (tiny CSV parser + CSV↔JSON) · verspec (SemVer toolkit) · pennywise (exact BigInt money math) · spellnum (numbers → words, EN/KO)

    🎨 Color, image & mediaokcolor (OKLab/OKLCH + WCAG) · huebrew (image → palette/theme) · dichroma (color-blindness simulation) · scrubpix (strip image EXIF/GPS — demo) · captionkit (subtitle convert & re-time)

    🧰 Time & utilitiescroniq (cron toolkit) · tempora (human time utils) · calforge (.ics + add-to-calendar links) · fuzzrank (fzf-style fuzzy matcher) · fetchwise (resilient fetch: retries/backoff)


    ✦ Tech Stack


    ✦ Stats

    statstop langs
    streak



    activity graph



    snake

    💖 Sponsor

    Find this useful? Sponsor on GitHub — it keeps these projects maintained.

    Sponsor

    Pinned Loading

    1. oh-my-fableoh-my-fablePublic

      oh-my-fable — Fable 5's way of working a long task (plan first, self-correct, never lose the thread), as a model-agnostic agent harness. The run lives in one serializable RunContext, checkpointed e…

      TypeScript 8 3