• Dockerfile: bump Gunicorn workers to 4 for concurrent request handling
• server.py:
- Load SMTP credentials once at startup
- Wrap send_confirmation_email in a daemon Thread for “fire-and-forget” delivery
- Replace print() with structured app.logger.error() on failure
- Add before_request/after_request hooks to log per-request durations
- Use context manager for SMTP_SSL connections (auto-close)
- Simplify route JSON responses and HTTP methods declarations
- Retain existing DB logic but recommend low DB connect_timeouts
- Ensure Flask binds on 0.0.0.0 in development
These changes eliminate request blocking on email I/O, expose request latencies in logs, and improve overall concurrency.
- Redesign landing page with contemporary gradient backgrounds and glassmorphism
- Add 3D phone mockup with floating animation and interactive stats display
- Implement modern navigation with blur backdrop and smooth scroll effects
- Update feature cards with icons, hover animations, and improved typography
- Integrate countdown timer into hero CTA section with glassmorphic styling
- Add responsive email signup form with enhanced validation
- Modernize newsletters listing page with card-based grid layout
- Add empty state design with call-to-action for newsletter subscription
- Implement smooth loading animations and hover effects for newsletter cards
- Update navigation consistency across all pages
- Redesign newsletter detail page with professional article layout
- Add reading metadata display (date, reading time, author, tags)
- Enhance content typography with proper heading hierarchy and styling
- Implement share functionality with Web Share API and clipboard fallback
- Add print-optimized styles and action buttons
- Improve mobile reading experience with responsive design
- Establish consistent design system with CSS custom properties
- Use CSS Grid and Flexbox for modern, flexible layouts
- Add comprehensive mobile responsiveness (320px to desktop)
- Implement smooth animations and micro-interactions throughout
- Maintain accessibility with semantic HTML and proper contrast ratios
- Preserve all existing Flask template functionality and JavaScript features
Breaking changes: Complete visual redesign requires updated asset references
Performance: Optimized CSS with efficient animations and modern layout techniques
* Created a newsletters table and added insertion logic during newsletter send.
* Added a /newsletters route to display a list of sent newsletters.
* Implemented a /newsletter/<int:newsletter_id> route for detailed view.
* Developed new templates with navigation, including unsubscribe links.
* Enhanced front-end styling and layout for newsletter pages.