ADDEDJun 5, 2026
v1.15.0
Theme architecture
- Layered resolver — sections, snippets, layouts, assets, and locales now live in the platform embed FS by default. Merchants only acquire a DB row when they explicitly edit a file. Platform deploys flow into stock files automatically.
- Lazy install — fresh shops carry only their page graph and design tokens in the DB. Existing shops thinned — 14 installs migrated.
Code editor
- Custom / New / Synced badges in the file tree, plus filter chips (All / Modified / Synced) with live counts.
- Fork-on-edit — stock files open read-only; click "Edit file" (or ⌘E) to confirm the fork.
- Compare with original — inline Monaco diff editor with hide-unchanged-regions.
- Upstream updated banner — amber banner with View diff / Sync upstream when the platform ships a new version of a section you forked.
- Preview button in the toolbar — opens the storefront in a new tab via signed token.
- Sync All upstream — bulk revert any forked files where upstream has changed.
- Smart "Create new section" — modal generates a working scaffold with HTML, five typed settings, and a preset.
Visual editor
- + Add panel aggregates stock embed sections without copying their files into your shop. Forks happen only when you edit code.
- Open in Visual Editor action on templates/*.json from the code editor.
Public site polish
- Working /blog category filters, Category dropdown in admin, unified hero/card layout with rotating gradients.
- Functional /developers sidebar search.
- apps.cartly.pro logo cross-domain link.
Read the Theme Development guide →
ADDEDApr 9, 2026
v1.9.0
Two features that put merchants in control of their deliverability and brand identity: configure your own email provider and attach a custom domain with automatic SSL — all from the admin panel.
Bring Your Own Email
- Provider support — Connect any SMTP server, SendGrid, Resend, Mailgun, or Amazon SES from Settings → Email
- Test Connection — A verification email is sent to your address before credentials are saved, so misconfigured providers are caught immediately
- Encryption at rest — All credentials are encrypted with AES-256-GCM using a platform-managed key; no plain-text secrets in the database
- Onboarding step — Email configuration is now step 4 of the 6-step new-merchant wizard
- Payment guard — Stripe and PayPal activation is blocked until
email_configured = true, ensuring transactional emails work before your first sale
- Graceful failure — Order confirmation emails sent through your provider are non-blocking; delivery errors are logged but never fail the order
Custom Domains
- DNS wizard — The domain setup page shows exact DNS records: an A record pointing to Gcore Anycast
81.28.12.12, or a CNAME to shops.cartly.pro
- Auto-verify — The DNS verification button checks propagation in real time; on success, the domain is immediately registered as a Gcore CDN secondary hostname
- Edge SSL — Let's Encrypt certificates are provisioned automatically at the Gcore edge within seconds of domain verification — no certbot, no manual renewal
- Subdomain auto-registration — Every new shop gets a
yourstore.cartly.pro subdomain registered at signup via an exponential-backoff retry loop (5 attempts, ~30 s window)
- Origin hidden — All storefront traffic flows through Gcore Anycast; the origin IP is never exposed to DNS or end users
Infrastructure
- The entire Cartly platform now runs behind Gcore CDN (resource 965866). Wildcard DNS
*.cartly.pro points to Gcore Anycast 81.28.12.12, giving every merchant shop automatic edge caching and DDoS protection with zero configuration
- Platform transactional email migrated to Zoho Mail (smtp.zoho.com:465)