Skip to content

A launch campaign, and a README that says only what the code does - #22

Merged
JFrusher merged 10 commits into
mainfrom
claude/wedding-planner-growth-campaign-jgaxwz
Oct 1, 2026
Merged

JFrusher merged 10 commits into
mainfrom
claude/wedding-planner-growth-campaign-jgaxwz

Conversation

@JFrusher

Copy link
Copy Markdown
Owner

New: marketing/STRATEGY.md (audiences, positioning, channels, and the
claims left out because the code contradicts them), copy for Hacker News,
three subreddits and social, and a landing page whose demos run the same
rules as the tools. ROADMAP.md summarises what is built and what is open.

CONTRIBUTION.md becomes CONTRIBUTING.md, the name GitHub looks for, and
now matches CI: there is no lint script, Node 20+ per engines, and the
clone command no longer carries a Markdown link inside a code block.

The README keeps its substance and corrects one claim: guest-link keys
are stored with the wedding (wedding_shares.share_key), so the host is
not unable to read them, as it used to say.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01SpxmMJ4774qNgK5ue28S27

New: marketing/STRATEGY.md (audiences, positioning, channels, and the
claims left out because the code contradicts them), copy for Hacker News,
three subreddits and social, and a landing page whose demos run the same
rules as the tools. ROADMAP.md summarises what is built and what is open.

CONTRIBUTION.md becomes CONTRIBUTING.md, the name GitHub looks for, and
now matches CI: there is no lint script, Node 20+ per engines, and the
clone command no longer carries a Markdown link inside a code block.

The README keeps its substance and corrects one claim: guest-link keys
are stored with the wedding (wedding_shares.share_key), so the host is
not unable to read them, as it used to say.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SpxmMJ4774qNgK5ue28S27
The daily sweep has deleted account weddings unwritten for 24 months since
the guest link moved onto the account, and the Privacy Policy says so.
Subsystem I still read "not started", and ROADMAP.md copied it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SpxmMJ4774qNgK5ue28S27
marketing/assets/ holds what the launch copy needs, all captured from the
guided tour's example wedding: every page at 2x, three captioned clips
(seating a guest to her place card, moving the ceremony, the Binder on a
phone) as GIF and MP4, and framed images sized for GitHub's social
preview, link cards, heroes, square carousels and a story cover. The
scripts that made them are in pipeline/, so the set can be made again
when the UI changes.

The README and landing page now show the real thing in place of their
placeholders.

Recording it showed a place card keeps its table from the last "Use the
room", not the room as it stands, so the copy that said seating a guest
updates her card now says what the app does: one click puts every table
number on the cards.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SpxmMJ4774qNgK5ue28S27
@vercel

vercel Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
trousseau-suite Ready Ready Preview Oct 1, 2026 6:53am UTC

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Several privacy and roadmap claims contradict the implementation, and the landing page has unresolved accessibility issues.

Review effort: Balanced
Findings: 22 Low severity

Open (22)

And 2 more that still need to be addressed.

What changed in this PR

Adds a launch campaign, refreshed contributor documentation, and reproducible marketing assets aligned with Trousseau’s implemented features.

Changes:

  • Rewrites the README and contributor guidance.
  • Adds launch strategy, channel-specific copy, and a standalone landing page.
  • Adds asset-generation pipelines and updates roadmap status.
File Description
ROADMAP.md Adds a contributor-facing roadmap.
README.md Reframes product, setup, privacy, and architecture documentation.
marketing/​STRATEGY.md Defines positioning, audiences, channels, and claim constraints.
marketing/​landing-page/​index.html Adds an interactive marketing landing page.
marketing/​copy/​social-media.md Adds social threads and video scripts.
marketing/​copy/​reddit-posts.md Adds community-specific launch posts.
marketing/​copy/​hacker-news.md Adds Show HN copy and prepared responses.
marketing/​assets/​README.md Documents generated marketing assets.
marketing/​assets/​pipeline/​stills.mjs Captures application screenshots.
marketing/​assets/​pipeline/​scene-seat-to-card.mjs Records the seating-to-card demo.
marketing/​assets/​pipeline/​scene-ceremony-moves.mjs Records the timeline demo.
marketing/​assets/​pipeline/​scene-binder.mjs Records the mobile Binder demo.
marketing/​assets/​pipeline/​render.mjs Renders composed marketing pages.
marketing/​assets/​pipeline/​recorder.mjs Implements frame recording and pointers.
marketing/​assets/​pipeline/​phone.py Frames Binder recordings as phone media.
marketing/​assets/​pipeline/​montage.py Produces still-image montages.
marketing/​assets/​pipeline/​lib.mjs Provides shared Playwright setup.
marketing/​assets/​pipeline/​encode.py Encodes GIF and MP4 assets.
marketing/​assets/​pipeline/​edit.py Applies camera movement and captions.
marketing/​assets/​pipeline/​compose.py Composes branded static images.
marketing/​assets/​pipeline/​.gitignore Excludes generated pipeline files.
docs/​PRODUCT-ROADMAP.md Marks account-wedding retention as built.
CONTRIBUTION.md Removes the incorrectly named guide.
CONTRIBUTING.md Adds comprehensive contributor guidance.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread CONTRIBUTING.md
Comment thread CONTRIBUTING.md Outdated
Comment thread CONTRIBUTING.md
Comment thread README.md Outdated
Comment thread ROADMAP.md
Comment thread marketing/landing-page/index.html Outdated
Comment thread marketing/landing-page/index.html Outdated
Comment thread marketing/landing-page/index.html Outdated
Comment thread marketing/landing-page/index.html
Comment thread marketing/landing-page/index.html Outdated
Clarify data handling policy regarding guest data.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
JFrusher and others added 6 commits October 1, 2026 07:48
Clarify the purpose of the checks to run before a pull request.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Clarified self-hosting benefits and removed mention of analytics.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Updated the second list item to clarify guest data handling and added details about account sync and privacy policy.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Updated the description of the page visit counting feature to clarify that a copy hosted off Vercel does not count visits.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Refactor tab navigation logic to improve accessibility and keyboard support.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Several public claims conflict with the implementation or licence, and the landing page has unresolved accessibility and deployment issues.

Review effort: Balanced
Findings: 12 Low severity

Open (12)
Resolved since last review (10)
Previously missed (11)

In code that hasn't changed since last review

Medium severity Clarify that wedding data stays in the browser

marketing/​copy/​hacker-news.md:33

“Nothing leaves your browser” contradicts the later disclosure that the hosted app sends route-only page views to Vercel Analytics. Say that no wedding data is uploaded instead.

Medium severity Replace Tailwind CDN with a precompiled stylesheet

marketing/​landing-page/​index.html:14

This page is intended for production publishing, but the Tailwind CDN script generates styles in the browser and makes every render depend on a third-party runtime. Precompile a static stylesheet instead so the landing page remains styled under CSP/ad blockers and CDN outages.

Medium severity Expose action warnings as screen-reader live regions

marketing/​landing-page/​index.html:129

These warnings appear only after a button action, but the element is not a live region, so screen-reader users are not told that a table is full or that a keep-apart rule was violated.

This issue also appears on line 151 of the same file.

Medium severity Increase table text contrast to meet accessibility requirements

marketing/​landing-page/​index.html:135

The 12px gold table text has only about 3.03:1 contrast against paper, below the 4.5:1 requirement for normal-sized text. Use the darker brass colour already used by the application.

Medium severity Add aria-valuetext for the displayed range time

marketing/​landing-page/​index.html:148

The native range exposes values such as 840 to assistive technology rather than the displayed 14:00. Add and update aria-valuetext whenever renderDay changes the displayed time so the control announces a meaningful clock value.

Medium severity Increase light-theme value text contrast

marketing/​landing-page/​index.html:169

The 14px gold value has only about 3.21:1 contrast on the white panel, below the 4.5:1 requirement for normal-sized text. Use a darker light-theme colour while retaining a bright dark-theme value.

Medium severity Expose the selected guest with a pressed state

marketing/​landing-page/​index.html:345

The selected guest is indicated only by border colour. Expose the pressed state so a screen-reader user can tell which guest will be assigned when they choose a table.

Low severity Qualify no-outbound-data claim when Sentry is configured

marketing/​STRATEGY.md:29

The final sentence is false when a self-hoster configures a Sentry DSN: this same row says that deployment will send error reports. Qualify the no-outbound-data claim with the Sentry configuration.

This issue also appears on line 246 of the same file.

Low severity Correct the capture scale description

marketing/​assets/​README.md:45

The scale description is inaccurate as well as ungrammatical: desktop captures are 2×, but stills.mjs creates phone captures with scale: 3, which is why 390×844 becomes 1170×2532.

Low severity Do not attribute permanent free pricing to the AGPL

marketing/​copy/​reddit-posts.md:113

Open-source licensing does not guarantee that the hosted service will remain free or prevent future paid tiers; the AGPL only imposes source-sharing obligations. Keep the pricing statement as a project commitment rather than attributing permanence to the licence.

Low severity Present free pricing as a project commitment

marketing/​landing-page/​index.html:247

The AGPL guarantees source availability for hosted modified versions; it does not require zero pricing or prevent a paid tier. Present “free forever” as the project's pledge rather than something written into the licence.

@JFrusher
JFrusher merged commit 798309a into main Oct 1, 2026
9 of 11 checks passed
@JFrusher
JFrusher deleted the claude/wedding-planner-growth-campaign-jgaxwz branch October 1, 2026 07:00

This branch was successfully deployed

1 active deployment
Preview — daaed4d1 Deployed Oct 1, 2026 by vercel[bot]
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.

3 participants