Skip to content
@henryj-dev

henryj-dev

henryj-dev — describe it once, apply it safely, roll it back

Tools for running systems, built so the risky change is the hard one to make by accident.

Repositories TypeScript License Apache-2.0 PRs Welcome


Philosophy · About · Projects · Also here · Contributions · Get involved



English · 한국어


Most of what we work on starts the same way: something important is configured by hand, on a box, and the only record of why it looks like that is the person who did it. These projects turn that into something you can read, review, and undo.

Whatever the subject, they take the same shape — you declare the state you want, the tool shows you what will change, and it applies that change in a way you can back out of.

About

mack-erel

Henry Jang (장효찬) · @mack-erel

Backend / infrastructure engineer. This org is where the tools above land once they're finished enough for a README, a license, and a build badge — smaller scripts and day-to-day experiments stay on the personal account until one of them earns a spot here.

Email Blog LinkedIn GitHub

Day job
PHP MySQL

Side projects (what's below)
TypeScript JavaScript Cloudflare Workers SvelteKit

GitHub contribution graph

How things here are built

Principle What it means
Desired state, not commands You declare what should be true. Reconciliation is the tool's job, and it only ever touches what it manages.
Plan before apply Every change is previewable. You see the impact before anything moves.
Safe by construction Rollback timers, commit/confirm, verification after the change lands. The move that breaks things is hard to make by accident.
Equal-power surfaces GUI, API, and CLI are the same product. Nothing is only clickable, nothing is only scriptable.
Light on dependencies Few moving parts, boring stacks, and no runtime you have to adopt to get value.
Open by default Apache-2.0, public issue trackers, and READMEs that admit what is not finished yet.

Projects

parallax
build TypeScript Apache-2.0

Split-horizon DNS control plane — one desired state for internal DNS and Cloudflare

barycenter
build TypeScript Apache-2.0

A control plane for nginx — HTTP, TCP, and UDP reverse proxying and load balancing

heliopause
build TypeScript Apache-2.0

A host firewall you can't lock yourself out of — declarative nftables with auto-rollback

lodestar
build TypeScript MIT

An open-source identity provider — one SvelteKit app, deployable to Cloudflare Workers or Node; OIDC, SAML 2.0, WebAuthn/Passkey, TOTP, LDAP

ionosphere
build TypeScript MIT

A mail server built from scratch — SMTP, IMAP, POP3, JMAP, ManageSieve, LMTP, zero runtime dependencies

More are on their way here. Each repository's own README is the source of truth for what it does and how finished it is.

→ Browse all repositories

Also here

Smaller, standalone tools that don't need a control plane of their own:

d1-jdbc
build Java MIT

A JDBC driver for Cloudflare D1 — zero-dependency, REST API or self-deployed Worker proxy

whois2rdap
build TypeScript MIT

Converts WHOIS responses into RFC 9083 RDAP-shaped JSON

Upstream contributions

Work in other people's projects, kept here as forks — merged unless noted otherwise:

RepositoryPull requests

cloudflare/workers-sdk
fork

  • #14712: miniflare — support connect() on remote VPC Network bindings in local dev
  • #14900: miniflare — support remote Hyperdrive bindings in local dev (open)

soulduse/ai-token-monitor
fork

  • #189: Grok 4.6 pricing, SuperGrok credits, Linux/Windows support
  • #181: Price and aggregate gateway-rewritten model IDs correctly
  • #180: Add Kiro provider with credit-based usage tracking
  • #179: Call the Kiro API directly instead of shelling out to kiro-cli
  • #154: Tolerate null resets_at in OAuth usage response
  • #143: Add Kiro CLI as an API-key-based translation provider

AnimMouse/wgcf-connector
fork

  • #10: Default IPv4 address prefix /12/32 (rely on AllowedIPs for routing)

dbmail/dbmail
fork

  • #348: Update RPM spec files for dbmail, libsieve, and libzdb
· · ·

Getting involved

Issues and pull requests are welcome on any repository. If you are running one of these in anger and something is missing, an issue describing your setup is more useful than a feature request in the abstract.

Apache-2.0 licensed · all repositories

Popular repositories Loading

  1. contribute_dbmail_dbmail contribute_dbmail_dbmail Public

    Forked from dbmail/dbmail

    DBMail: fast and scalable email services

    C

  2. lodestar lodestar Public

    TypeScript

  3. contribute_AnimMouse_wgcf-connector contribute_AnimMouse_wgcf-connector Public

    Forked from AnimMouse/wgcf-connector

    WARP Connector WireGuard configuration extractor

    Shell

  4. whois2rdap whois2rdap Public

    TypeScript

  5. contribute_soulduse_ai-token-monitor contribute_soulduse_ai-token-monitor Public

    Forked from soulduse/ai-token-monitor

    macOS menu bar app for tracking Claude Code token usage and costs

    TypeScript

  6. d1-jdbc d1-jdbc Public

    JDBC driver for Cloudflare D1 — zero-dependency, dual transport (REST API / self-deployed Worker proxy)

    Java

Repositories

Showing 10 of 11 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…