Skip to content

feat: add cross-library email benchmark suite#14

Open
farrelaby wants to merge 1 commit into
Akin01:mainfrom
farrelaby:feat/add-cross-library-benchmark
Open

feat: add cross-library email benchmark suite#14
farrelaby wants to merge 1 commit into
Akin01:mainfrom
farrelaby:feat/add-cross-library-benchmark

Conversation

@farrelaby

Copy link
Copy Markdown
Contributor

Add benchmarks/cross-library/ comparing solid-email against jsx-email, react-email, and mjml-react using custom timing (performance.now), memory tracking, and HTML conformance validation.

Results (marketing email template, 50 iter x 10 runs):

  • solid-email compileSync: 17 us (58k ops/s) — 159x faster than react-email
  • solid-email renderSync: 1.25 ms (799 ops/s) — 2.2x faster than react-email
  • react-email render: 2.74 ms (366 ops/s), 26.4 MB heap
  • All libraries produce 100% conformance

Also:

  • Pinned tsx to ^4.22.4 for cross-library bench (4.21.0 has JSX resolution issues on Node v24)
  • Excluded benchmarks/*/results/ from biome lint
  • Fixed lint issues across copied benchmark files

Summary

Verification

Checklist

  • Tests or examples cover the changed behavior.
  • Types were checked without suppressions.
  • Public API changes are reflected in docs or examples.

Add benchmarks/cross-library/ comparing solid-email against jsx-email,
react-email, and mjml-react using custom timing (performance.now),
memory tracking, and HTML conformance validation.

Results (marketing email template, 50 iter x 10 runs):
- solid-email compileSync: 17 us (58k ops/s) — 159x faster than react-email
- solid-email renderSync: 1.25 ms (799 ops/s) — 2.2x faster than react-email
- react-email render: 2.74 ms (366 ops/s), 26.4 MB heap
- All libraries produce 100% conformance

Also:
- Pinned tsx to ^4.22.4 for cross-library bench (4.21.0 has JSX resolution issues on Node v24)
- Excluded benchmarks/*/results/ from biome lint
- Fixed lint issues across copied benchmark files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant