Skip to content

OpenConceptLab/ocl_online#299 | Banner: subscription dates (Nov 1 / Dec 1 grace period), "Learn more" and "See pricing" - #59

Merged
paynejd merged 1 commit into
mainfrom
OpenConceptLab/ocl_online#299-subscription-banner
Oct 1, 2026
Merged

paynejd merged 1 commit into
mainfrom
OpenConceptLab/ocl_online#299-subscription-banner

Conversation

@paynejd

@paynejd paynejd commented Oct 1, 2026

Copy link
Copy Markdown
Member

Linked Issue

Refs OpenConceptLab/ocl_online#299

Summary

Replaces the TBv3 public-preview announcement with the subscription-dates banner that openconceptlab.org shows from today.

  • New announcement id subscription-dates-2026-10 (the same id as the community site), so the banner shows again to everyone who dismissed the preview one.
  • Copy (en/es/zh): "Subscriptions open November 1." / "Existing accounts using premium features have a grace period until December 1."
  • Two links after the text, separated by " · ", both opening in a new tab as before:
    • "Learn more" → the letter to the OCL community (utm_campaign=subscription_dates)
    • "See pricing" → openconceptlab.org/pricing (utm_campaign=subscription_dates)
  • TBV3_ANNOUNCEMENT_URL is replaced by TBV3_ANNOUNCEMENT_LETTER_URL and TBV3_ANNOUNCEMENT_PRICING_URL in src/common/constants.js. The banner was the old constant's only user.
  • announcement.link_label stays "Learn more" (es "Más información", zh "了解更多"). "See pricing" is a new announcement.pricing_label key (es "Ver precios", zh "查看价格").
  • Each link has whiteSpace: 'nowrap', so a label never breaks in the middle on narrow screens.

The banner doesn't record GA events, and this PR doesn't add any.

Test Plan

  • ESLint, run the way PR checks run it: ./node_modules/eslint/bin/eslint.js --ext .jsx,.js src/ passes
  • The start-prod.sh secret-shaped-variable check from the workflow passes
  • Production webpack build compiles. The only warnings are the existing bundle-size ones.
  • Served the build locally. At 375px the banner wraps onto three lines, neither label breaks, and the app bar sits below the banner (the --announcement-height var tracks it). At 1280px it fits on one line.
  • Both links point at the URLs above, with target="_blank" and rel="noopener noreferrer"
  • Reviewer: someone who dismissed the preview banner should see this one again after deploy

Notes

Don't merge until Jon's go; production deploy is manual.

🤖 Generated with Claude Code

https://claude.ai/code/session_019j2N6BFoNmA32L2DHKZV41

…ec 1 grace period), "Learn more" and "See pricing"

New announcement id, so the banner shows again to everyone who dismissed
the preview one. Two links now, the letter and the pricing page, each kept
on one line on narrow screens. "See pricing" is a new pricing_label key in
en/es/zh; link_label stays "Learn more".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019j2N6BFoNmA32L2DHKZV41
@paynejd paynejd self-assigned this Oct 1, 2026

@paynejd paynejd left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Codex adversarial review, pass 1 (codex-cli 0.159.2, commit 294f9c8)

Read-only. Posted verbatim. The destination pages it couldn't reach from its sandbox return 200 (checked after today's openconceptlab.org deploy).


Clean—no actionable findings in git diff origin/main...HEAD.

Checked stable keys, both links and unbroken labels, dismissal with the new ID, accessible labels, external-link safety, es/zh meaning and dates, URL paths, and tbv3 UTM tags. No stale references to the renamed constant remain.

Targeted ESLint, syntax parsing, locale JSON checks, and diff whitespace checks passed. No files modified.

Limitations: no full build or browser test; live destination pages could not be verified.

@paynejd
paynejd merged commit 8a2c1fe into main Oct 1, 2026
2 checks passed
@paynejd
paynejd deleted the OpenConceptLab/ocl_online#299-subscription-banner branch October 1, 2026 21:01
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.

1 participant