Commit Graph

807 Commits

Author SHA1 Message Date
Matthew Meszaros e3355a0321 feat: link the blog from the site navigation
Blog joins the header nav (desktop and mobile pick it up from the shared
nav array) and the footer Company column, with a small RSS link in the
footer bottom bar.
2026-06-10 17:15:17 +02:00
Matthew Meszaros 0edc1d4f67 feat: publish the blog RSS feed
Description-only feed at /blog/rss.xml (full-content RSS cannot render
MDX components), excluding drafts unconditionally, plus an autodiscovery
link in the global head. The feed is the subscription: no newsletter.
2026-06-10 17:15:17 +02:00
Matthew Meszaros 67f773cced feat: add a newsroom-style blog index with search and topic pages
Compact header, then a cover-image card grid with topic tabs, client-side
search and batched load-more. Every card is server-rendered; search and
load-more only toggle visibility, so crawlers and no-JS readers see the
full archive. Posts without a cover image get deterministic generated sky
art seeded from the slug. Tags get their own filtered pages.
2026-06-10 17:15:17 +02:00
Matthew Meszaros bd51ef40ff feat: add the blog post page
Article shell with a sticky meta bar carrying reading progress, a right
rail (chapter scroll-spy built from server-rendered heading ids, post
facts, neighbors), prev/next cards and BlogPosting JSON-LD with real
publish dates. MDX posts can embed the Callout component.
2026-06-10 17:14:57 +02:00
Matthew Meszaros 8221c28cc3 feat: share one article typography between learn and the blog
Extracts the Learn layout's arbitrary-variant prose blob into a single
.article-prose class, registered in @layer components so page-level
utilities can still override it. Fixes the invalid counter-reset syntax
that rendered every ordered-list item as 00., adds table styles, hover
heading anchors and a reading-progress bar.
2026-06-10 17:14:57 +02:00
Matthew Meszaros db832fa896 feat: add blog content collection on the Astro 5 content layer
Posts are markdown/MDX files under src/content/blog with a zod-validated
schema (title, description, pubDate, tags, optional cover, draft). All
listing surfaces read through getPublishedPosts() so draft filtering has
a single owner. @astrojs/mdx is pinned to ^4.x: the npm latest (v6)
requires Astro 6 and would break this tree.
2026-06-10 17:14:57 +02:00
Matthew Meszaros 0e23a6f8f8 Merge pull request #41 from warmbly/feature/remove-roadmap-page
feat: remove roadmap page and ground changelog in real history
2026-06-09 18:05:12 +02:00
Matthew Meszaros 9e7fc7f5e8 feat: source changelog from real merged pull requests at build time
Replace the hand-maintained changelog entries with a build-time fetch of the
real merged pull requests on warmbly/warmbly. PRs (not commits) are the unit,
so each entry is one shippable change rather than one of many commits.

src/lib/changelog.ts fetches closed PRs into main from the GitHub REST API,
keeps the merged ones, strips conventional-commit prefixes, derives the tag
from the type, and pulls the body from the PR's Summary bullets. Marketing-site
and pure-infra PRs are filtered by type, title pattern, and a skip-changelog
label, all configurable in one place. Results are cached per build and fall
back to a curated list if the API is unreachable, so the build never breaks.

The changelog page and the homepage ChangelogShowcase both consume this data
and link each entry to its pull request. Set GITHUB_TOKEN at build to lift the
unauthenticated rate limit; it is optional for the public repo.
2026-06-09 15:58:57 +00:00
Matthew Meszaros e9ef1ebfb8 feat: remove roadmap page and ground changelog in real history
Delete the public roadmap page and every reference to it (footer, open-source
showcase, about, changelog, trust). The roadmap was built from seeded,
fabricated items.

Rebuild the changelog from the real git history. The previous entries were
self-described seeded fabrications and contradicted the codebase (claiming
SAML SSO and BYOK shipped, which they have not). There are no releases, tags,
or CHANGELOG.md, so the commit log is the source of truth. Group the work into
a handful of milestone entries rather than one per release, mirror them on the
homepage changelog showcase, and drop the invented version numbers.

Fix the broken links the old page carried: the dead /changelog/feed.xml RSS
feed and the non-existent CHANGELOG.md now point at the real commit history.
Relabel the trust page's 'roadmap' posture state to 'planned' so SOC 2 and
ISO 27001 stay honestly marked as not yet in place.
2026-06-09 10:03:18 +00:00
Matthew Meszaros 0de56352db Merge pull request #40 from warmbly/feature/integration-implementation-thorugh-dashboard
feat: improve automation action flows
2026-06-09 11:05:08 +02:00
Matthew Meszaros 59a0205e33 feat: surface automation delete conflicts
Show the backend conflict message when deleting an automation fails because campaign run-automation steps still reference it.
2026-06-09 10:57:21 +02:00
Matthew Meszaros 599e359381 feat: improve automation builder actions
Add the run-another-automation native action to the builder, richer action visuals, task assignment fields, disabled-target warnings, and unsaved-change tracking for the automation editor.
2026-06-09 10:57:16 +02:00
Matthew Meszaros 9f90259a80 feat: add icons to select menus
Allow select options to render leading glyphs and let full-width selects match their trigger width through the popover menu.
2026-06-09 10:57:11 +02:00
Matthew Meszaros 0ee199e6ce feat: support team task assignment in campaigns
Use the shared assignee/team picker in campaign action steps, persist task_assigned_team_id, and make run-automation campaign steps surface disabled and trigger-mismatch warnings.
2026-06-09 10:57:07 +02:00
Matthew Meszaros b19a87c235 feat: add task assignee team picker
Introduce a shared dashboard picker that can target the fallback owner, a member, or an entire team while emitting user and team ids separately.
2026-06-09 10:57:03 +02:00
Matthew Meszaros 5954ac53c2 feat: add automation execution safeguards
Support chained automation execution from native actions, guard automation recursion depth, carry idempotency context through campaign-launched automations, allow team task assignment in backend action execution, and reject deletes while campaign steps still reference an automation.
2026-06-09 10:56:56 +02:00
Matthew Meszaros 0eaebbf963 Merge pull request #39 from warmbly/feature/integrations-page-redesign
feat: redesign integrations page
2026-06-09 10:31:24 +02:00
Matthew Meszaros 7ea238c99a feat: redesign integrations page 2026-06-09 08:05:26 +00:00
Matthew Meszaros 5ada3a4164 Merge pull request #38 from warmbly/feature/crm-page-redesign
feat: redesign CRM page
2026-06-09 09:27:31 +02:00
Matthew Meszaros a24771f0af feat: redesign CRM page
Refresh the marketing CRM page with a fuller product walkthrough, live pipeline mock, attribution details, task views, contact suppression, data model coverage, CRM sync, and updated FAQ/CTA copy.
2026-06-09 07:08:21 +00:00
Matthew Meszaros 3236ffc459 feat: expand product docs and automation references
Restructure the docs navigation into product-focused pages, add automation expression reference content, and refresh related template and personalization surfaces.
2026-06-09 09:07:56 +02:00
Matthew Meszaros 4ae68492de Merge pull request #36 from warmbly/feature/campaigns-redesign
feat: redesign campaigns page
2026-06-09 08:18:09 +02:00
Matthew Meszaros 85fd815c0a Merge pull request #37 from warmbly/feature/analytics-page-redesign
feat: redesign analytics page
2026-06-09 08:17:57 +02:00
Matthew Meszaros a5c8a42a06 feat: redesign analytics page
Refresh the analytics marketing page around actionable deliverability metrics, realtime dashboard behavior, export surfaces, and a share-card mock that mirrors the product UI.
2026-06-09 05:13:23 +00:00
Matthew Meszaros eed7fd31c8 feat: redesign campaigns page
Refresh the campaigns landing page around the visual sequence builder, branching logic, A/B variants, sender pool distribution, and updated safety defaults. Add the icon paths needed by the new page sections.
2026-06-09 06:18:04 +02:00
Matthew Meszaros 0eb596d2b5 Merge pull request #35 from warmbly/feature/redesign-unibox
feat: redesign unified inbox page
2026-06-09 05:40:18 +02:00
Matthew Meszaros 021f9a6cab feat: redesign unified inbox page
Refresh the marketing page for the unified inbox with a product-shaped walkthrough of reply classification, triage scopes, fan-out, contact context, sync behavior, and CTA copy.
2026-06-08 16:36:20 +00:00
Matthew Meszaros c1e1748e93 Merge pull request #34 from warmbly/feature/redesign-sales-teams-page
feat: redesign sales teams use case page
2026-06-08 17:41:28 +02:00
Matthew Meszaros 334f1ff9cb feat: merge main into sales teams page branch
Resolve the sales page hero headline conflict after bringing the branch up to date with main.
2026-06-08 15:27:38 +00:00
Matthew Meszaros 59178c9cf5 feat: polish sales teams page interactions
Updates the FAQ icon, CTA copy, and fan-out reveal styling for the redesigned sales teams page.
2026-06-08 14:50:53 +00:00
Matthew Meszaros ff8e73ec8f feat: redesign sales teams use case page
Reworks the sales teams use case page around per-rep mailboxes, ownership, mailbox limits, routing rules, plaintext outbound, CRM sync, and reply fan-out.
2026-06-08 14:50:43 +00:00
Matthew Meszaros e80b7ff8bc Merge pull request #32 from warmbly/feature/foundraising-marketing-page
feat: update fundraising marketing page
2026-06-08 15:30:05 +02:00
Matthew Meszaros 41e8a5c492 feat: merge main into fundraising page branch 2026-06-08 15:14:38 +02:00
Matthew Meszaros 3a0ae72883 Merge pull request #33 from warmbly/feature/recruits-page-redesign
feat: redesign recruiter use case page
2026-06-08 15:12:22 +02:00
Matthew Meszaros a3ab4a0eba feat: polish recruiter faq and cta 2026-06-08 13:08:35 +00:00
Matthew Meszaros 7472dc8fe2 feat: add recruiter opt out suppression view 2026-06-08 13:08:25 +00:00
Matthew Meszaros 9f0dbe7970 feat: show recruiter plain text and template previews 2026-06-08 13:08:08 +00:00
Matthew Meszaros e253ab3125 feat: add recruiter sending limits and cadence 2026-06-08 13:07:50 +00:00
Matthew Meszaros 4f9300490c feat: compare recruiter mailbox ownership 2026-06-08 13:07:35 +00:00
Matthew Meszaros 2941b27df1 feat: add recruiter mailbox origin section 2026-06-08 13:07:26 +00:00
Matthew Meszaros 2dee735243 feat: restructure recruiter page content data 2026-06-08 13:07:08 +00:00
Matthew Meszaros 53e607f3c5 feat: update recruiter hero messaging 2026-06-08 13:06:46 +00:00
Matthew Meszaros b259bccca6 feat: show fundraising campaign flow 2026-06-08 15:06:41 +02:00
Matthew Meszaros 839aaf1642 feat: refresh fundraising hero copy 2026-06-08 15:06:28 +02:00
Matthew Meszaros af78bf4d56 feat: refine deliverability tabs
Updates the deliverability range and metric segmented controls to use the lighter dashboard tab treatment.
2026-06-08 15:06:03 +02:00
Matthew Meszaros fb7e7fcb27 feat: sharpen fundraising trap copy 2026-06-08 15:06:03 +02:00
Matthew Meszaros 5e7bec1f24 feat: prevent app flash
Hides the root until the first rendered frame so the dashboard does not briefly show unstyled content during startup.
2026-06-08 15:05:47 +02:00
Matthew Meszaros b83dc8ac14 feat: edit automation expressions
Adds frontend model support and builder controls for free-form automation condition expressions.
2026-06-08 15:05:43 +02:00
Matthew Meszaros b909f238ad feat: preview rendered sequences
Connects sequence preview to the server render path and surfaces template parse or unresolved-token issues in the composer.
2026-06-08 15:05:39 +02:00
Matthew Meszaros 9d41619ba9 feat: add template preview client
Adds typed frontend API access for rendering campaign templates through the server preview endpoint.
2026-06-08 15:05:34 +02:00