HackerTrans
トップ新着トレンドコメント過去質問紹介求人

stewartjarod

no profile record

投稿

Lint email HTML for client compatibility using caniemail data. CLI and library

github.com
2 ポイント·投稿者 stewartjarod·3 か月前·0 コメント

React-email-mso: conditional comments for react-email for outlook-safe rendering

github.com
2 ポイント·投稿者 stewartjarod·3 か月前·0 コメント

We graded 200 YC W26 companies on email security – only 23% got an A

wraps.dev
1 ポイント·投稿者 stewartjarod·3 か月前·1 コメント

Guardrail Coding – Fuzzycomputer.com

fuzzycomputer.com
1 ポイント·投稿者 stewartjarod·5 か月前·0 コメント

Show HN: Baseline – enforce team decisions ESLint can't express

github.com
1 ポイント·投稿者 stewartjarod·5 か月前·1 コメント

Show HN: Wraps – AWS SES made usable (templates, broadcasts, + automations)

wraps.dev
6 ポイント·投稿者 stewartjarod·6 か月前·4 コメント

DMARC policy is useless – interactive

wraps.dev
2 ポイント·投稿者 stewartjarod·6 か月前·1 コメント

コメント

stewartjarod
·3 か月前·議論
And if you want a SaaS like experience for your own AWS, there is wraps.dev ;d
stewartjarod
·3 か月前·議論
[dead]
stewartjarod
·5 か月前·議論
ESLint is pass/fail. Every pattern is either an error everywhere or ignored entirely. This makes it useless for the most common real-world scenario: you have hundreds of occurrences of something you want to get rid of, but you can't fix them all at once.

Baseline introduces ratcheting. You set a ceiling on how many times a pattern can appear across your codebase. You migrate some, lower the ceiling. CI blocks any PR that increases the count. The number only goes down.

```toml [[rule]] type = "ratchet" pattern = "legacyFetch(" max_count = 200 ```

Next sprint: 180. Then 150. Eventually 0. This one concept has been the most useful thing in the tool for me -- I've used it to drive migrations on large codebases where the alternative was "ignore the lint rule on 200 files and hope for the best."

Other things it does that ESLint can't: - Path-scoped pattern bans. "no db. in app/*/page.tsx" is one line of TOML. - Dependency bans on package.json, not just source imports. - Proximity rules. "every DELETE needs an orgId within 80 lines." - File presence. Require LICENSE, forbid .env. - Tailwind dark mode + semantic token enforcement.

Rust, single binary, tree-sitter for AST rules, rayon for parallel scanning. TOML config, 8 presets, also runs as an MCP server so AI tools can query the rules.

On crates.io and npm (`npx code-baseline scan`). MIT.

Inspired by Matt Holden's guardrail coding concept [1].

[1]: https://www.fuzzycomputer.com/posts/guardrail-coding
stewartjarod
·5 か月前·議論
LOVELY :D
stewartjarod
·6 か月前·議論
AI bubble pop, when???
stewartjarod
·6 か月前·議論
Thanks! Great questions.

Pulumi updates: Yes, exactly. Pulumi manages infrastructure state and handles diff-based updates. When we ship new features or improvements, users run wraps email upgrade, and Pulumi figures out the minimal changes needed. We also have a versioned metadata system that auto-migrates configs - so if we change how we store deployment info, it upgrades transparently on next run.

Cost tracking: Yes! Every resource we create is tagged with ManagedBy: "wraps-cli" plus service-specific tags (Service: "email", Provider: "vercel", etc.). You can filter by these in AWS Cost Explorer to see exactly what Wraps infrastructure costs.

In practice, the costs are minimal - most users see $0.05-5/mo for the infrastructure itself (DynamoDB, Lambda, SQS). The main cost is just SES usage at $0.10 per 1,000 emails.
stewartjarod
·6 か月前·議論
Automations is a visual workflow builder for multi-step sequences.

Consider:

- Welcome series (signup → 3 emails over a week)

- Cart abandonment (wait for purchase, timeout → reminder)

- Re-engagement (segment-based triggers)

- Multi-channel flows (email + SMS in one workflow)

You can trigger on events, segment changes, or schedules. Use delays, conditions (branch on contact properties), and wait-for-event (pause until X happens or timeout). There's also an AI designer. You describe what you want in plain english, and it generates the workflow.
stewartjarod
·6 か月前·議論
I wanted to make some educational content on what a dmarc policy is for and why people should care about it. Let me know what you think