Skip to content

Email builder: dark mode, per-user SMTP, conditional blocks, sample autogen#4

Merged
foxzi merged 11 commits into
mainfrom
feature/email-builder
May 12, 2026
Merged

Email builder: dark mode, per-user SMTP, conditional blocks, sample autogen#4
foxzi merged 11 commits into
mainfrom
feature/email-builder

Conversation

@yonardr
Copy link
Copy Markdown
Collaborator

@yonardr yonardr commented May 5, 2026

Summary

  • iOS Mail dark mode: designed dark variant in wrapper.html, off-by-one hex to dodge auto-invert, one-shot startup migration rebuilds stored templates on wrapper changes.
  • Per-user SMTP: AES-256-GCM encrypted credentials, test-page UI to pick between built-in and user SMTP, no relay-able overrides.
  • Conditional block rendering: optional condition per block ref, wrapped as {{if .X}}…{{end}} at render time.
  • Sample data autogen: JSON skeleton from template HTML with nested paths and balance-aware ranges.
  • Block builder: per-block appearance (radius/padding/bg), per-template container settings (top/bottom radius, transparent, page bg), inline contentEditable on canvas, order-items redesigned with Order.Sections[] for dynamic group names.
  • Migrations: SQLite <3.35-safe DROP COLUMN, nested-key backfill in RenderHTML.
  • Removed: views/template_edit.html, views/template_new.html — builder is the single editing surface now.

@yonardr yonardr force-pushed the feature/email-builder branch 3 times, most recently from 7be4d8f to 092c746 Compare May 12, 2026 12:50
Rustem added 11 commits May 12, 2026 15:53
Safe HTML/text template rendering with variable substitution,
used by builder, worker, and test-send flows.
AES-GCM encryption for storing SMTP passwords securely.
Supports explicit key or derivation from session secret.
Direct SMTP client supporting STARTTLS, SSL/TLS, and plain connections
for sending test emails via user-configured SMTP servers.
Add template_block_refs and user_smtp_servers tables.
Add columns for block appearance, container styling, and conditional blocks.
Add block appearance fields (border_radius, padding, background),
template container options, block refs with conditions, and UserSMTPServer model.
Block repo: appearance fields scan/update.
Template repo: block refs CRUD, container options.
New UserSMTPRepository for per-user SMTP server management.
Add auth.encryption_key to config for SMTP password encryption.
Wire cipher and UserSMTPRepository into Handlers struct.
Add block preview, inline editing, and appearance controls (border radius,
padding, background). New block rebuild logic for template recomposition.
Users can add, edit, test, and delete their own SMTP servers
for sending test emails directly without going through Sendry MTA.
Dark mode support in builder. Conditional block visibility (if/endif).
Auto-generate sample data from template variables. Remove legacy
template_edit and template_new views in favor of unified builder flow.
Register new routes (block preview/appearance, SMTP management, builder edit).
Add wrapper rebuild migration on server startup.
Switch worker to use template rendering engine instead of inline regex.
@yonardr yonardr force-pushed the feature/email-builder branch from 092c746 to 2b52b3d Compare May 12, 2026 12:56
@foxzi foxzi merged commit 62e6ba2 into main May 12, 2026
5 checks passed
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.

2 participants