newsletter logo 200px174bc2c
sync Postmark suppressions bidirectionally062e0f9
newsletter logo 420px widthcf436e1
remove unsubscribe text from newsletter template (handled by Postmark)eb73554
newsletter header logo 320px width8f50598
improve newsletter template + add /unsubscribe page30df23b
remove broken headers references from sed migration73d8d9a
increase DB connection pool from 5 to 20 for production scale0e0683e
subscription billing security + grace period + renewal creditscbad859
revert auth to localStorage authToken + global fetch interceptor6b01f69
restore Bearer auth fallback for all fetch callsb2d141a
server crash — AuditService methods outside class + bad import30ad01d
remove duplicate AuditLog model causing server crash0acbb3a
S3 encryption at rest + audit log systemece298e
S3 versioning + automated daily backup scriptcef2939
increase free storage limit from 100MB to 500MB23e394b
CSRF protection, magic byte validation, error sanitizationd1de3ed
migrate auth from localStorage to httpOnly cookies64f6d2a
fix critical vulnerabilitiesd7fbe36
active sheet tab — border-bottom onlyfd3e646
green border on active sheet tabe1d036c
rename and delete sheet tabs in Spreadsheetsb90d6c4
reduce document auto-save debounce to 300ms91d5e8b
document auto-save stale closure + faster save (800ms)9e8fc71
extract document object from API response on create03973ac
mount BusinessBlogRoutes on /businesses prefix instead of /45ae411
add *.google.ch to CSP (Swiss Google domain for ads)d733188
TOS modal button — light green bg with black text621110c
propagate tosAcceptedAt to frontend user context522773c
update CSP to allow S3 storage and Google Ads domainsaf386d6
update devlog7c4fc67
S3 sync status indicator with 3-state cloud icons04bbdfd
update devlog96089be
auto-sync all media to S3 with cloud status indicator202d407
add S3 storage (Infomaniak Swiss Backup) + legal terms modal6df4740
update devloga6363d0
add 4 new landing page templates (Portfolio, Fitness, Real Estate, Online Course)e9aa1eb
Landing Pages — aggregate stats, SEO score panel590eb32
Landing Pages — show error feedback for all failed operations7211d65