{"id":31554596,"url":"https://github.com/adaptive-shield-matrix/email-generator","last_synced_at":"2026-03-07T22:02:16.514Z","repository":{"id":317823072,"uuid":"1068991958","full_name":"adaptive-shield-matrix/email-generator","owner":"adaptive-shield-matrix","description":"A lightweight, self-hostable service for rendering HTML emails with React Email","archived":false,"fork":false,"pushed_at":"2026-01-27T03:41:05.000Z","size":220,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-27T15:57:20.973Z","etag":null,"topics":["bun","cloudflare-workers","email","html-email","react-email","serverless","templates","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adaptive-shield-matrix.png","metadata":{"files":{"readme":"readme.md","changelog":"changelogs/2025-10-12_v0.1.0.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-03T08:26:56.000Z","updated_at":"2026-01-27T03:41:09.000Z","dependencies_parsed_at":"2025-10-30T22:09:42.291Z","dependency_job_id":"d6deb670-a559-4bd4-b69b-ca43fb31122a","html_url":"https://github.com/adaptive-shield-matrix/email-generator","commit_stats":null,"previous_names":["adaptive-shield-matrix/email-generator"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/adaptive-shield-matrix/email-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adaptive-shield-matrix%2Femail-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adaptive-shield-matrix%2Femail-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adaptive-shield-matrix%2Femail-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adaptive-shield-matrix%2Femail-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adaptive-shield-matrix","download_url":"https://codeload.github.com/adaptive-shield-matrix/email-generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adaptive-shield-matrix%2Femail-generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30233429,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T19:01:10.287Z","status":"ssl_error","status_checked_at":"2026-03-07T18:59:58.103Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bun","cloudflare-workers","email","html-email","react-email","serverless","templates","typescript"],"created_at":"2025-10-04T21:10:48.908Z","updated_at":"2026-03-07T22:02:16.497Z","avatar_url":"https://github.com/adaptive-shield-matrix.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📧 Email Generator Microservice\n\nA lightweight, self-hostable service for rendering HTML emails with React Email.\n\n- **Hassle-free \u0026 maintenance-free** – runs entirely on the free tier of Cloudflare Workers.\n- **Simple to use** – perfect for login codes, registration flows, and other transactional emails.\n- **Flexible** – develop locally with a Bun server, then deploy serverlessly with zero configuration.\n- **Clean separation** – does not pollute your project with `react` or `react-email` imports or dependencies.\n\nWhether you need a quick drop-in solution or a fully open-source foundation for your project, this microservice makes email generation easy and reliable.\n\n**Quick Links**\n\n- code - https://github.com/adaptive-shield-matrix/email-generator\n- npm - https://www.npmjs.com/package/@adaptive-sm/email-generator\n- react email docs - https://react.email/docs/getting-started/manual-setup\n\n## Features\n\n- Renders HTML and plain text email templates.\n- Supports internationalization (English and German).\n- Validates input using Valibot schemas.\n- Includes server timing headers for performance monitoring.\n- Endpoints: `/renderEmailTemplate/signUpV1`, `/renderEmailTemplate/signInV1`, and `/renderEmailTemplate/orgInvitationV1`.\n\n## Templates\n\n|                                                                                                        |                                                                                                        |\n| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |\n| **signUpV1** - Sign-up / Registration\u003cbr\u003e![signUpV1](https://f003.backblazeb2.com/file/email-generator-images/signUpV1.jpg) | **signInV1** - Sign-in / Login / Forgot password\u003cbr\u003e![signInV1](https://f003.backblazeb2.com/file/email-generator-images/signInV1.jpg) |\n| **passwordChangeV1** - Change/Reset Password\u003cbr\u003e![passwordChangeV1](https://f003.backblazeb2.com/file/email-generator-images/PasswordChangeV1.jpg) | **emailChangeV1** - Change Email\u003cbr\u003e![EmailChangeV1](https://f003.backblazeb2.com/file/email-generator-images/EmailChangeV1.jpg) |\n| **orgInvitationV1** - Organization invitation\u003cbr\u003e![orgInvitationV1](https://f003.backblazeb2.com/file/email-generator-images/orgInvitationV1.jpg) | |\n\n## Prerequisites\n\n- Node.js (for package management) or Bun.\n- Cloudflare account (for Workers deployment).\n\n## Local Development\n\n1. Clone the repository.\n2. Install dependencies:\n   ```\n   bun install\n   ```\n\n### With Bun Server\n\n- Start the development server:\n\n  ```\n  bun run start\n  ```\n\n  The server runs on `http://localhost:3055` (port configurable via `src/server/serverPortBun.ts`).\n\n- For React Email preview (optional):\n  ```\n  bun run dev\n  ```\n  This starts the preview server at `http://localhost:3055` for template development.\n\n### With Cloudflare Workers\n\n- Start the local Worker development server:\n\n  ```\n  bun run dev:worker\n  ```\n\n  The Worker runs on `http://localhost:8787` (default Wrangler port).\n\n- To test endpoints, send POST requests to:\n  - `http://localhost:8787/renderEmailTemplate/signUpV1`\n  - `http://localhost:8787/renderEmailTemplate/signInV1`\n  - `http://localhost:8787/renderEmailTemplate/orgInvitationV1`\n\n## Testing\n\nRun tests with Bun:\n\n```\nbun run test\n```\n\nOr in watch mode:\n\n```\nbun run test:w\n```\n\nTests cover API rendering for login codes (extend for registration as needed).\n\n## Deployment to Cloudflare Workers\n\n1. **Login to Cloudflare**:\n\n   ```\n   wrangler login\n   ```\n\n2. **Configure Account ID** (if needed, add to `wrangler.toml`):\n\n   ```\n   wrangler whoami\n   ```\n\n   Then update `wrangler.toml` with `account_id = \"your-account-id\"`.\n\n3. **Deploy**:\n\n   ```\n   bun run deploy\n   ```\n\n   (Or `npx wrangler deploy`.)\n\n4. **Monitor**:\n\n   `wrangler tail email-generator-worker`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadaptive-shield-matrix%2Femail-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadaptive-shield-matrix%2Femail-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadaptive-shield-matrix%2Femail-generator/lists"}