This website requires JavaScript.
Explore
Help
Sign In
starred
/
warmbly
Watch
1
Star
0
Fork
0
mirror of
https://github.com/warmbly/warmbly.git
synced
2026-09-05 16:02:48 +00:00
Code
Issues
Packages
Projects
Releases
Wiki
Activity
Files
32d2bdfb8154d7df07e1ab84d2d0ba77bc86a55e
warmbly
/
site
/
src
T
History
Matthew Meszaros
5eb92c601c
feat: give every campaign email a working opt-out: a reply-to-opt-out line by default or an unsubscribe link (workspace setting under Settings > Sending with a per-campaign override and a {{.UnsubscribeLink}} variable), signed per-recipient unsubscribe links served on the API origin so the List-Unsubscribe header no longer points at a dead warmbly.com page, a confirm page on GET with RFC 8058 one-click on POST and a resubscribe button, reply opt-out detection through the whole-word compliance lexicon with quoted history stripped, a first-class suppression list (Contacts tab, GET/POST/DELETE /suppressions with address and domain entries, audited removal, contact drawer action), the contact Subscribed flag enforced in campaign routing, migration 000122 with a shared recipient_suppressed() predicate, and docs for all of it
2026-09-03 01:52:40 -07:00
..
components
feat: let the footer's bottom row wrap on phones instead of forcing GitHub, Discord, RSS and Open source onto one line that pushed the page wider than the screen and made iOS Safari scale the whole layout, and clip horizontal overflow at the html and body level so no single overflowing element can widen the page again
2026-09-02 09:13:28 -07:00
content
/blog
feat: remove the free trial: a new hosted workspace starts on the free plan with no time limit, may hold up to 10 mailboxes (connected directly or through a linked self-hosted instance) and warm them in the free pool, and everything else (campaigns, inbox, contacts, CRM, integrations, API keys, audit) sits behind a Starter lock in the sidebar and a SubscriptionGate overlay until a plan is active; the pool-link allowance now counts every mailbox in the workspace, and the marketing site and guide say free workspace instead of 14-day trial
2026-08-29 08:34:22 -07:00
layouts
feat: register the app shell's visibility observer under reduced motion too so an off-screen shell still pauses its animations while only the counter ticker stays off, and read the ?noshell, ?noanim and ?nogl phone diagnostics as query parameter names through URLSearchParams instead of matching the raw query string
2026-09-02 09:00:29 -07:00
lib
feat: rebuild the index page product visuals 1/1 with the dashboard for issue
#268
: every feature section renders the real app shell (AppShellMock with the live sidebar counts) inside a browser window hung from a corner, a shared demo cursor engine (lib/cursor.ts + DemoCursor) walks element anchors instead of guessed coordinates, the campaign builder opens its step editor as the 320px spring side sheet and portals the ⌘J caret assistant over the whole window, analytics, integrations, developers and CRM use a new wide FeatureSection mode that fits the full 1280px window by width so centred dialogs read as centred, forms, form builder and hosted form mocks replace the AI assistant mock, the hero gets a grain backdrop (@paper-design/shaders) and a three-point free to self-host / 10 mailboxes / no card line instead of the long pricing paragraph, the How we differ section is removed, and a Discord glyph linking to dc.warmbly.com is added to the header, mobile menu and footer
2026-09-02 05:53:04 -07:00
pages
feat: give every campaign email a working opt-out: a reply-to-opt-out line by default or an unsubscribe link (workspace setting under Settings > Sending with a per-campaign override and a {{.UnsubscribeLink}} variable), signed per-recipient unsubscribe links served on the API origin so the List-Unsubscribe header no longer points at a dead warmbly.com page, a confirm page on GET with RFC 8058 one-click on POST and a resubscribe button, reply opt-out detection through the whole-word compliance lexicon with quoted history stripped, a first-class suppression list (Contacts tab, GET/POST/DELETE /suppressions with address and domain entries, audited removal, contact drawer action), the contact Subscribed flag enforced in campaign routing, migration 000122 with a shared recipient_suppressed() predicate, and docs for all of it
2026-09-03 01:52:40 -07:00
styles
feat: let the footer's bottom row wrap on phones instead of forcing GitHub, Discord, RSS and Open source onto one line that pushed the page wider than the screen and made iOS Safari scale the whole layout, and clip horizontal overflow at the html and body level so no single overflowing element can widen the page again
2026-09-02 09:13:28 -07:00
content.config.ts
feat: add blog content collection on the Astro 5 content layer
2026-06-10 17:14:57 +02:00