You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: implement email contact form with Postmark API (#14)
Add working email contact form with enterprise-grade spam protection:
Backend (Cloudflare Worker):
- POST /api/contact endpoint for form submission
- Cloudflare Turnstile verification (privacy-friendly CAPTCHA)
- Honeypot field for additional bot detection
- Rate limiting: 5 requests/hour/IP using Cloudflare KV
- Postmark API integration for email delivery
- Full input validation with proper error messages
- CORS configuration for allowed origins
Frontend (React):
- Complete form with name, email, message fields
- Turnstile widget integration (@marsidev/react-turnstile)
- Client-side email validation with inline errors
- Loading, success, and error states
- Character counter for message field (5000 char limit)
- Full accessibility support (ARIA, screen reader announcements)
Testing:
- 22 unit tests for ContactEmailForm
- Integration tests with Cypress
- All 182 tests passing
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This roadmap outlines the development plan for Tyler Earls' portfolio website, focusing on performance optimization, modern React tooling, and enhanced user experience. The project has **completed Phase 5 (React Compiler Integration)** and **Phase 6 (CI/CD setup)**, and is now working through **Phase 7 (UI/UX Enhancements)** with 9 open issues.
5
+
This roadmap outlines the development plan for Tyler Earls' portfolio website, focusing on performance optimization, modern React tooling, and enhanced user experience. The project has **completed Phase 5 (React Compiler Integration)** and **Phase 6 (CI/CD setup)**, and is now working through **Phase 7 (UI/UX Enhancements)** with 7 open issues.
6
6
7
-
**Current Focus**: Feature flag infrastructure (#72) complete! Performance optimization sprint done with #61, #62, #63, #11, and #27. Next: Contact form (#14).
7
+
**Current Focus**: Contact form (#14) complete! Feature flag infrastructure (#72) and performance optimization sprint done with #61, #62, #63, #11, and #27. Phase 7 core features complete!
8
8
9
9
---
10
10
@@ -21,7 +21,7 @@ This roadmap outlines the development plan for Tyler Earls' portfolio website, f
21
21
22
22
## Open Issues Summary
23
23
24
-
### Priority Breakdown (8 Total - 6 Completed)
24
+
### Priority Breakdown (7 Total - 7 Completed)
25
25
26
26
#### 🔴 Critical Priority (0 issues)
27
27
@@ -37,14 +37,13 @@ This roadmap outlines the development plan for Tyler Earls' portfolio website, f
37
37
38
38
✅ **#63** - Fix Cumulative Layout Shift (CLS) on Mobile - **COMPLETED Nov 23, 2025**
39
39
40
-
#### 🟢 Medium Priority (1 issue) - Effort: ~8-16 hours
40
+
#### 🟢 Medium Priority (0 issues) - Effort: ~8-16 hours
41
41
42
42
✅ **#11** - Preload Sprite SVG in development and production - **COMPLETED Nov 24, 2025**
43
43
44
44
✅ **#27** - UI - Lazy Load Routes with React Router - **COMPLETED Nov 24, 2025**
45
45
46
-
-**#14** - Add Working Email Contact Form - _~1-2 days_
47
-
- Impact: User engagement and professional contact method
46
+
✅ **#14** - Add Working Email Contact Form - **COMPLETED Dec 7, 2025**
0 commit comments