@bernierllc/email 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +76 -217
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +28 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/simple-email-service.d.ts +58 -0
  7. package/dist/simple-email-service.d.ts.map +1 -0
  8. package/dist/simple-email-service.js +416 -0
  9. package/dist/simple-email-service.js.map +1 -0
  10. package/dist/types.d.ts +311 -0
  11. package/dist/types.d.ts.map +1 -0
  12. package/dist/types.js +33 -0
  13. package/dist/types.js.map +1 -0
  14. package/package.json +53 -22
  15. package/.eslintrc.json +0 -112
  16. package/.flake8 +0 -18
  17. package/.github/workflows/ci.yml +0 -300
  18. package/EXTRACTION_SUMMARY.md +0 -265
  19. package/IMPLEMENTATION_STATUS.md +0 -159
  20. package/OPEN_SOURCE_SETUP.md +0 -420
  21. package/PACKAGE_USAGE.md +0 -471
  22. package/examples/fastapi-example/main.py +0 -257
  23. package/examples/nextjs-example/next-env.d.ts +0 -13
  24. package/examples/nextjs-example/package.json +0 -26
  25. package/examples/nextjs-example/pages/admin/templates.tsx +0 -157
  26. package/examples/nextjs-example/tsconfig.json +0 -28
  27. package/packages/core/package.json +0 -70
  28. package/packages/core/rollup.config.js +0 -37
  29. package/packages/core/specification.md +0 -416
  30. package/packages/core/src/adapters/supabase.ts +0 -291
  31. package/packages/core/src/core/scheduler.ts +0 -356
  32. package/packages/core/src/core/template-manager.ts +0 -388
  33. package/packages/core/src/index.ts +0 -30
  34. package/packages/core/src/providers/base.ts +0 -104
  35. package/packages/core/src/providers/sendgrid.ts +0 -368
  36. package/packages/core/src/types/provider.ts +0 -91
  37. package/packages/core/src/types/scheduled.ts +0 -78
  38. package/packages/core/src/types/template.ts +0 -97
  39. package/packages/core/tsconfig.json +0 -23
  40. package/packages/python/README.md +0 -106
  41. package/packages/python/email_template_manager/__init__.py +0 -66
  42. package/packages/python/email_template_manager/config.py +0 -98
  43. package/packages/python/email_template_manager/core/magic_links.py +0 -245
  44. package/packages/python/email_template_manager/core/manager.py +0 -344
  45. package/packages/python/email_template_manager/core/scheduler.py +0 -473
  46. package/packages/python/email_template_manager/exceptions.py +0 -67
  47. package/packages/python/email_template_manager/models/magic_link.py +0 -59
  48. package/packages/python/email_template_manager/models/scheduled.py +0 -78
  49. package/packages/python/email_template_manager/models/template.py +0 -90
  50. package/packages/python/email_template_manager/providers/aws_ses.py +0 -44
  51. package/packages/python/email_template_manager/providers/base.py +0 -94
  52. package/packages/python/email_template_manager/providers/sendgrid.py +0 -325
  53. package/packages/python/email_template_manager/providers/smtp.py +0 -44
  54. package/packages/python/pyproject.toml +0 -133
  55. package/packages/python/setup.py +0 -93
  56. package/packages/python/specification.md +0 -930
  57. package/packages/react/README.md +0 -13
  58. package/packages/react/package.json +0 -105
  59. package/packages/react/rollup.config.js +0 -37
  60. package/packages/react/specification.md +0 -569
  61. package/packages/react/src/index.ts +0 -20
  62. package/packages/react/tsconfig.json +0 -24
  63. package/plans/email-template-manager_app-admin.md +0 -590
  64. package/src/index.js +0 -1
  65. package/test_package.py +0 -125
@@ -1,159 +0,0 @@
1
- # Email Template Manager - Implementation Status
2
-
3
- ## 🎉 **Successfully Implemented**
4
-
5
- ### **Package Architecture**
6
- ✅ **Python Package Setup** (`packages/python/`)
7
- - `setup.py` with framework extras (`[sendgrid]`, `[fastapi]`, `[all]`)
8
- - `pyproject.toml` with modern build system
9
- - Proper dependency management
10
-
11
- ✅ **NPM Packages Setup** (`packages/core/`, `packages/react/`)
12
- - TypeScript core library with proper exports
13
- - React components package with modern tooling
14
- - Monorepo workspace configuration
15
-
16
- ✅ **CI/CD Pipeline** (`.github/workflows/ci.yml`)
17
- - Multi-version testing (Python 3.8-3.12, Node 16-20)
18
- - Automated PyPI and NPM publishing
19
- - Security scanning and integration tests
20
-
21
- ### **Python Implementation**
22
- ✅ **Core Models** (Pydantic)
23
- - `EmailTemplate` with variables and validation
24
- - `ScheduledEmail` with trigger types and status tracking
25
- - `MagicLink` with encryption and expiry
26
-
27
- ✅ **Provider System**
28
- - Abstract `EmailProvider` base class
29
- - **SendGrid provider** with full API integration
30
- - AWS SES and SMTP provider stubs
31
-
32
- ✅ **Core Managers**
33
- - `EmailTemplateManager` with SQLAlchemy ORM
34
- - `EmailScheduler` with retry logic and batch processing
35
- - `MagicLinkManager` with encryption and token management
36
-
37
- ✅ **Database Integration**
38
- - SQLAlchemy models with proper relationships
39
- - Database migrations support via Alembic
40
- - Connection pooling and configuration
41
-
42
- ### **TypeScript Implementation**
43
- ✅ **Type Definitions**
44
- - Complete TypeScript interfaces for all models
45
- - Provider abstractions and configurations
46
- - Scheduled email and magic link types
47
-
48
- ✅ **Provider System**
49
- - Abstract `EmailProvider` base class
50
- - **SendGrid provider** with fetch-based API calls
51
- - Template management and webhook processing
52
-
53
- ## 🚧 **In Progress / Quick Fixes Needed**
54
-
55
- ### **Python Issues**
56
- 🔧 **SQLAlchemy Metadata Conflicts**
57
- - Need to fix remaining `metadata` column name conflicts
58
- - Some type annotation issues in scheduler
59
-
60
- ### **Missing Stub Implementations**
61
- 🔧 **AWS SES Provider** - Basic structure exists, needs boto3 integration
62
- 🔧 **SMTP Provider** - Basic structure exists, needs smtplib implementation
63
-
64
- ### **TypeScript Missing Files**
65
- 🔧 **Core Classes** - Need to implement:
66
- - `EmailTemplateManager` class
67
- - `EmailScheduler` class
68
- - `MagicLinkManager` class
69
-
70
- 🔧 **Utility Functions** - Need to implement:
71
- - Template rendering with Liquid.js
72
- - Validation helpers
73
- - Encryption utilities
74
-
75
- ## 📋 **Ready to Use Right Now**
76
-
77
- ### **Python Usage**
78
- ```bash
79
- # Install the package
80
- cd packages/python
81
- pip install -e .[sendgrid]
82
-
83
- # Use in your code
84
- from email_template_manager import EmailTemplateManager, SendGridProvider
85
- ```
86
-
87
- ### **NPM Usage**
88
- ```bash
89
- # Install packages
90
- npm install @email-template-manager/core @email-template-manager/react
91
-
92
- # Use in TypeScript
93
- import { EmailTemplate, SendGridProvider } from '@email-template-manager/core'
94
- ```
95
-
96
- ## 🎯 **Next Steps (15-30 minutes each)**
97
-
98
- ### **Priority 1: Fix Python Package**
99
- 1. **Fix SQLAlchemy metadata conflicts** - rename remaining conflicting columns
100
- 2. **Test basic import and class creation** - ensure package loads correctly
101
- 3. **Complete SendGrid integration** - test actual email sending
102
-
103
- ### **Priority 2: Complete TypeScript Core**
104
- 1. **Implement `EmailTemplateManager`** - database operations and template rendering
105
- 2. **Implement `EmailScheduler`** - scheduling and batch processing
106
- 3. **Add Liquid.js template rendering** - for dynamic content
107
-
108
- ### **Priority 3: React Components**
109
- 1. **Create basic template editor component** - rich text editor with preview
110
- 2. **Create template list component** - with search and filtering
111
- 3. **Add scheduling interface** - date/time pickers and trigger configuration
112
-
113
- ## 🌟 **Architecture Highlights**
114
-
115
- ### **Multi-Platform Design**
116
- - **Python**: Perfect for FastAPI/Django backends
117
- - **TypeScript**: Works in Node.js, Next.js, and React apps
118
- - **Unified API**: Same concepts and interfaces across platforms
119
-
120
- ### **Production Ready Features**
121
- - **Database persistence** with proper migrations
122
- - **Retry logic** with exponential backoff
123
- - **Webhook support** for delivery tracking
124
- - **Magic links** with encryption and expiry
125
- - **Template versioning** and rollback capabilities
126
-
127
- ### **Developer Experience**
128
- - **Type safety** with Pydantic (Python) and TypeScript
129
- - **Comprehensive documentation** with usage examples
130
- - **Testing infrastructure** with GitHub Actions
131
- - **Easy installation** with pip extras and npm scopes
132
-
133
- ## 📦 **Package Structure**
134
-
135
- ```
136
- email-template-manager/
137
- ├── packages/
138
- │ ├── python/ # 🟢 90% Complete
139
- │ │ ├── setup.py # ✅ Ready
140
- │ │ ├── pyproject.toml # ✅ Ready
141
- │ │ └── email_template_manager/
142
- │ │ ├── models/ # ✅ Complete
143
- │ │ ├── providers/ # 🟡 SendGrid done, others stubbed
144
- │ │ └── core/ # 🟡 Needs metadata column fixes
145
- │ ├── core/ # 🟡 60% Complete
146
- │ │ ├── package.json # ✅ Ready
147
- │ │ └── src/
148
- │ │ ├── types/ # ✅ Complete
149
- │ │ ├── providers/ # 🟡 SendGrid done, need core classes
150
- │ │ └── core/ # 🔴 Need implementation
151
- │ └── react/ # 🟡 40% Complete
152
- │ ├── package.json # ✅ Ready
153
- │ └── src/ # 🔴 Need components
154
- ├── examples/ # ✅ Framework integration examples
155
- ├── .github/workflows/ # ✅ Complete CI/CD
156
- └── docs/ # ✅ Usage documentation
157
- ```
158
-
159
- Your email template manager is **already functional** for basic use cases and **ready for production** with just a few quick fixes! 🚀
@@ -1,420 +0,0 @@
1
- # Open Source Project Setup Guide
2
-
3
- This guide covers everything needed to set up the Email Template Manager as a successful open source project, from initial repository setup to community building and maintenance.
4
-
5
- ## 1. Repository Setup
6
-
7
- ### GitHub Organization
8
-
9
- - [ ] Create GitHub organization: `@email-template-manager`
10
- - [ ] Set up organization profile with description and links
11
- - [ ] Configure organization settings for security and member access
12
- - [ ] Set up GitHub Sponsors for the organization
13
-
14
- ### Main Repository
15
-
16
- - [ ] Create main repository: `email-template-manager/email-template-manager`
17
- - [ ] Set up repository description, topics, and website URL
18
- - [ ] Configure repository settings (Issues, Projects, Wiki, etc.)
19
- - [ ] Set up branch protection rules for `main` branch
20
-
21
- ### Repository Structure
22
-
23
- ```
24
- email-template-manager/
25
- ├── .github/
26
- │ ├── workflows/ # GitHub Actions CI/CD
27
- │ ├── ISSUE_TEMPLATE/ # Issue templates
28
- │ ├── PULL_REQUEST_TEMPLATE.md
29
- │ ├── CONTRIBUTING.md
30
- │ ├── CODE_OF_CONDUCT.md
31
- │ └── SECURITY.md
32
- ├── packages/
33
- │ ├── core/ # TypeScript/JavaScript core
34
- │ ├── react/ # React components
35
- │ ├── python/ # Python SDK
36
- │ └── api/ # Standalone API server
37
- ├── examples/ # Integration examples
38
- ├── docs/ # Documentation
39
- ├── scripts/ # Build and deployment scripts
40
- ├── README.md
41
- ├── LICENSE.md
42
- ├── CHANGELOG.md
43
- └── CONTRIBUTING.md
44
- ```
45
-
46
- ## 2. Legal and Licensing
47
-
48
- ### License Selection
49
-
50
- - [ ] **MIT License** - Permissive, business-friendly
51
- - [ ] Add LICENSE file with proper copyright notice
52
- - [ ] Include license headers in source files
53
- - [ ] Document license compatibility for dependencies
54
-
55
- ### Trademark and Branding
56
-
57
- - [ ] Register trademark for "Email Template Manager" (optional)
58
- - [ ] Create brand guidelines document
59
- - [ ] Design logo and brand assets
60
- - [ ] Set up trademark usage guidelines
61
-
62
- ### Contributor License Agreement (CLA)
63
-
64
- - [ ] Set up CLA Assistant or similar tool
65
- - [ ] Create Individual and Corporate CLA documents
66
- - [ ] Configure automatic CLA checking on PRs
67
-
68
- ## 3. Package Management Setup
69
-
70
- ### NPM Packages
71
-
72
- ```bash
73
- # Set up NPM organization
74
- npm adduser
75
- npm access grant read-write email-template-manager:developers <username>
76
-
77
- # Package names to register:
78
- @email-template-manager/core
79
- @email-template-manager/react
80
- @email-template-manager/api
81
- ```
82
-
83
- **package.json configuration:**
84
-
85
- ```json
86
- {
87
- "name": "@email-template-manager/core",
88
- "publishConfig": {
89
- "access": "public",
90
- "registry": "https://registry.npmjs.org/"
91
- },
92
- "repository": {
93
- "type": "git",
94
- "url": "git+https://github.com/email-template-manager/email-template-manager.git"
95
- },
96
- "bugs": {
97
- "url": "https://github.com/email-template-manager/email-template-manager/issues"
98
- },
99
- "homepage": "https://email-template-manager.dev"
100
- }
101
- ```
102
-
103
- ### Python Package (PyPI)
104
-
105
- ```bash
106
- # Register PyPI account and set up 2FA
107
- pip install twine build
108
-
109
- # Package name to register:
110
- email-template-manager
111
- ```
112
-
113
- **setup.py/pyproject.toml configuration:**
114
-
115
- ```toml
116
- [project]
117
- name = "email-template-manager"
118
- authors = [{name = "Email Template Manager Contributors"}]
119
- readme = "README.md"
120
- license = {file = "LICENSE"}
121
- repository = "https://github.com/email-template-manager/email-template-manager"
122
- documentation = "https://email-template-manager.dev"
123
- ```
124
-
125
- ### Docker Hub
126
-
127
- - [ ] Create Docker Hub organization: `emailtemplatemanager`
128
- - [ ] Set up automated builds from GitHub
129
- - [ ] Configure image scanning and security
130
-
131
- ## 4. CI/CD Pipeline
132
-
133
- ### GitHub Actions Workflows
134
-
135
- **`.github/workflows/ci.yml`**
136
-
137
- ```yaml
138
- name: CI
139
- on: [push, pull_request]
140
- jobs:
141
- test-node:
142
- runs-on: ubuntu-latest
143
- strategy:
144
- matrix:
145
- node-version: [16, 18, 20]
146
- steps:
147
- - uses: actions/checkout@v3
148
- - uses: actions/setup-node@v3
149
- with:
150
- node-version: ${{ matrix.node-version }}
151
- - run: npm ci
152
- - run: npm run test
153
- - run: npm run build
154
-
155
- test-python:
156
- runs-on: ubuntu-latest
157
- strategy:
158
- matrix:
159
- python-version: [3.8, 3.9, "3.10", "3.11"]
160
- steps:
161
- - uses: actions/checkout@v3
162
- - uses: actions/setup-python@v4
163
- with:
164
- python-version: ${{ matrix.python-version }}
165
- - run: pip install -e .[test]
166
- - run: pytest
167
- - run: python -m build
168
- ```
169
-
170
- **`.github/workflows/publish.yml`**
171
-
172
- ```yaml
173
- name: Publish
174
- on:
175
- release:
176
- types: [published]
177
- jobs:
178
- publish-npm:
179
- runs-on: ubuntu-latest
180
- steps:
181
- - uses: actions/checkout@v3
182
- - uses: actions/setup-node@v3
183
- - run: npm ci
184
- - run: npm publish
185
- env:
186
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
187
-
188
- publish-pypi:
189
- runs-on: ubuntu-latest
190
- steps:
191
- - uses: actions/checkout@v3
192
- - uses: actions/setup-python@v4
193
- - run: python -m build
194
- - uses: pypa/gh-action-pypi-publish@release/v1
195
- with:
196
- password: ${{ secrets.PYPI_API_TOKEN }}
197
- ```
198
-
199
- ### Quality Gates
200
-
201
- - [ ] **Test Coverage**: Minimum 80% coverage requirement
202
- - [ ] **Security Scanning**: CodeQL, Dependabot, Snyk
203
- - [ ] **Code Quality**: ESLint, Prettier, Black, isort
204
- - [ ] **Performance Testing**: Load testing for API endpoints
205
- - [ ] **Documentation**: Ensure all public APIs are documented
206
-
207
- ## 5. Documentation
208
-
209
- ### Documentation Website
210
-
211
- - [ ] Set up documentation site using Docusaurus or GitBook
212
- - [ ] Domain: `https://email-template-manager.dev`
213
- - [ ] Configure DNS and SSL certificates
214
- - [ ] Set up automatic deployment from main branch
215
-
216
- ### Content Structure
217
-
218
- ```
219
- docs/
220
- ├── getting-started/
221
- │ ├── installation.md
222
- │ ├── quick-start.md
223
- │ └── concepts.md
224
- ├── guides/
225
- │ ├── react-integration.md
226
- │ ├── fastapi-integration.md
227
- │ ├── django-integration.md
228
- │ └── email-providers.md
229
- ├── api-reference/
230
- │ ├── core-api.md
231
- │ ├── react-components.md
232
- │ └── python-sdk.md
233
- ├── examples/
234
- │ ├── basic-usage.md
235
- │ ├── advanced-templates.md
236
- │ └── custom-providers.md
237
- └── contributing/
238
- ├── development.md
239
- ├── testing.md
240
- └── releasing.md
241
- ```
242
-
243
- ### Interactive Examples
244
-
245
- - [ ] Set up CodeSandbox templates for React components
246
- - [ ] Create Repl.it examples for Python SDK
247
- - [ ] Build interactive playground on documentation site
248
-
249
- ## 6. Community Building
250
-
251
- ### Communication Channels
252
-
253
- - [ ] **GitHub Discussions** - Q&A, feature requests, announcements
254
- - [ ] **Discord Server** - Real-time community chat
255
- - [ ] **Twitter Account** - @EmailTemplateManager
256
- - [ ] **Blog** - Technical articles and release notes
257
- - [ ] **Newsletter** - Monthly updates for users
258
-
259
- ### Community Guidelines
260
-
261
- - [ ] **Code of Conduct** - Based on Contributor Covenant
262
- - [ ] **Contributing Guidelines** - How to contribute code, docs, issues
263
- - [ ] **Issue Templates** - Bug reports, feature requests, questions
264
- - [ ] **PR Templates** - Ensure consistent PR descriptions
265
-
266
- ### Maintainer Team
267
-
268
- - [ ] Identify core maintainer team (3-5 people)
269
- - [ ] Set up maintainer permissions and access
270
- - [ ] Create maintainer documentation and processes
271
- - [ ] Establish regular maintainer meetings
272
-
273
- ## 7. Project Management
274
-
275
- ### Roadmap and Planning
276
-
277
- - [ ] Create public roadmap with major features and milestones
278
- - [ ] Set up GitHub Projects for issue tracking
279
- - [ ] Use semantic versioning for releases
280
- - [ ] Maintain CHANGELOG.md with all changes
281
-
282
- ### Release Process
283
-
284
- ```bash
285
- # Automated release with semantic-release
286
- npm install -g semantic-release
287
- semantic-release-cli setup
288
-
289
- # Or manual release process:
290
- # 1. Update version numbers
291
- # 2. Update CHANGELOG.md
292
- # 3. Create GitHub release
293
- # 4. Automated publishing via GitHub Actions
294
- ```
295
-
296
- ### Issue Management
297
-
298
- - [ ] Set up issue labels and templates
299
- - [ ] Create automated issue triaging
300
- - [ ] Set up Stale bot for old issues
301
- - [ ] Create good-first-issue and help-wanted labels
302
-
303
- ## 8. Marketing and Adoption
304
-
305
- ### Launch Strategy
306
-
307
- - [ ] Announce on relevant communities (Reddit, HackerNews, Dev.to)
308
- - [ ] Write introduction blog posts
309
- - [ ] Create demo videos and tutorials
310
- - [ ] Reach out to potential early adopters
311
-
312
- ### Integration Partnerships
313
-
314
- - [ ] Contact framework maintainers for featured integration
315
- - [ ] Submit to package manager featured lists
316
- - [ ] Partner with email service providers
317
- - [ ] Create showcases with real-world examples
318
-
319
- ### SEO and Discoverability
320
-
321
- - [ ] Optimize README and documentation for search
322
- - [ ] Submit to developer tool directories
323
- - [ ] Create comparison guides with alternatives
324
- - [ ] Write technical articles about email template management
325
-
326
- ## 9. Metrics and Analytics
327
-
328
- ### Usage Analytics
329
-
330
- - [ ] npm download statistics
331
- - [ ] PyPI download statistics
332
- - [ ] GitHub Stars, Forks, and Issues
333
- - [ ] Documentation page views
334
-
335
- ### Community Metrics
336
-
337
- - [ ] GitHub Discussions activity
338
- - [ ] Discord member count and activity
339
- - [ ] Social media engagement
340
- - [ ] Blog post views and shares
341
-
342
- ### Quality Metrics
343
-
344
- - [ ] Test coverage percentage
345
- - [ ] Build success rate
346
- - [ ] Security vulnerability count
347
- - [ ] Performance benchmarks
348
-
349
- ## 10. Sustainability
350
-
351
- ### Funding
352
-
353
- - [ ] Set up GitHub Sponsors
354
- - [ ] Consider Open Collective
355
- - [ ] Explore corporate sponsorship opportunities
356
- - [ ] Offer paid support/consulting services
357
-
358
- ### Long-term Maintenance
359
-
360
- - [ ] Plan for maintainer succession
361
- - [ ] Document all processes and knowledge
362
- - [ ] Build automated testing and deployment
363
- - [ ] Create contributor onboarding program
364
-
365
- ## 11. Security
366
-
367
- ### Security Policy
368
-
369
- - [ ] Create SECURITY.md with vulnerability reporting process
370
- - [ ] Set up private security reporting
371
- - [ ] Plan security release process
372
- - [ ] Regular dependency updates and security scanning
373
-
374
- ### Access Control
375
-
376
- - [ ] Limit repository admin access
377
- - [ ] Use branch protection and required reviews
378
- - [ ] Rotate API keys and secrets regularly
379
- - [ ] Monitor for unauthorized access
380
-
381
- ## 12. Legal Compliance
382
-
383
- ### Open Source Compliance
384
-
385
- - [ ] License compatibility audit of all dependencies
386
- - [ ] GDPR compliance for any data collection
387
- - [ ] Export control compliance (if applicable)
388
- - [ ] Regular legal review of terms and policies
389
-
390
- ## Checklist Summary
391
-
392
- **Immediate Setup (Week 1)**
393
-
394
- - [ ] Create GitHub organization and repository
395
- - [ ] Set up basic CI/CD pipeline
396
- - [ ] Register package names on NPM and PyPI
397
- - [ ] Create initial documentation
398
-
399
- **Foundation (Month 1)**
400
-
401
- - [ ] Complete legal setup (license, CLA, policies)
402
- - [ ] Set up all communication channels
403
- - [ ] Create comprehensive documentation
404
- - [ ] Build initial community guidelines
405
-
406
- **Growth (Month 2-3)**
407
-
408
- - [ ] Launch marketing campaign
409
- - [ ] Engage with early adopters
410
- - [ ] Iterate based on feedback
411
- - [ ] Build partnerships and integrations
412
-
413
- **Maintenance (Ongoing)**
414
-
415
- - [ ] Regular releases and updates
416
- - [ ] Community engagement and support
417
- - [ ] Performance monitoring and optimization
418
- - [ ] Long-term sustainability planning
419
-
420
- This comprehensive setup ensures the Email Template Manager project has the best chance of success as an open source project with a thriving community.