feat: rebrand all external-facing content from Hyprnote to Char#3937
feat: rebrand all external-facing content from Hyprnote to Char#3937ComputelessComputer merged 15 commits intomainfrom
Conversation
…ter, and desktop onboarding Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
✅ Deploy Preview for hyprnote ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for hyprnote-storybook canceled.
|
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
…s website content and components Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
…text Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
| { | ||
| title: "Spread the Word", | ||
| description: "Share Hyprnote with your network and community", | ||
| description: "Share Char with your network and community", |
There was a problem hiding this comment.
🟡 Twitter share intent URL still contains old "Hyprnote" brand name
The "Spread the Word" contribution item in opensource.tsx was updated at line 821 to say "Share Char with your network and community", but the adjacent Twitter share link at apps/web/src/routes/_view/opensource.tsx:823 was not updated and still reads:
https://twitter.com/intent/tweet?text=Check%20out%20Hyprnote%20-%20open%20source%20AI%20meeting%20notes%20that%20run%20locally!%20https://hyprnote.com
Detailed explanation of the inconsistency
When a user clicks "Share on X" from the open source page, the pre-filled tweet text will say "Check out Hyprnote" even though the product is now branded as "Char". The description right above it correctly says "Share Char with your network and community" but the actual shared content promotes the old brand name. This creates a confusing user experience where the button label and the resulting tweet content are inconsistent.
Impact: Users sharing the product on X/Twitter will broadcast the old brand name "Hyprnote" instead of "Char", undermining the rebrand effort.
Prompt for agents
In apps/web/src/routes/_view/opensource.tsx, update line 823 to change the Twitter share intent URL text from 'Check%20out%20Hyprnote' to 'Check%20out%20Char'. The full link should be updated to: https://twitter.com/intent/tweet?text=Check%20out%20Char%20-%20open%20source%20AI%20meeting%20notes%20that%20run%20locally!%20https://hyprnote.com
Was this helpful? React with 👍 or 👎 to provide feedback.
… + Char branding) Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
…ger.devin.ai/proxy/github.com/fastrepl/hyprnote into devin/1770949170-logo-to-char-text
| const CATEGORIES = [ | ||
| "Case Study", | ||
| "Hyprnote Weekly", | ||
| "Char Weekly", |
There was a problem hiding this comment.
🔴 Blog category "Char Weekly" mismatches admin page's "Hyprnote Weekly", breaking article creation
The blog index CATEGORIES constant was renamed from "Hyprnote Weekly" to "Char Weekly" (line 12), and the content-collections schema (content-collections.ts:98) was also updated to "Char Weekly". However, the admin collections page at apps/web/src/routes/admin/collections/index.tsx was not updated — it still defines "Hyprnote Weekly" in both its own CATEGORIES array (line 1979) and in a hardcoded <option> element (line 2203).
Root Cause and Impact
The content-collections schema at apps/web/content-collections.ts:94-99 now uses a zod enum that includes "Char Weekly" but not "Hyprnote Weekly". When an admin creates a new article via the admin UI and selects the "Hyprnote Weekly" category, the article will fail schema validation because "Hyprnote Weekly" is no longer a valid enum value.
Additionally, even if validation were bypassed, articles tagged "Hyprnote Weekly" would not appear under the "Char Weekly" filter on the public blog index page (apps/web/src/routes/_view/blog/index.tsx:86), since filtering uses strict string equality: a.category === selectedCategory.
Impact: Admins cannot create new "Weekly" category articles through the admin UI without manually editing the category value.
Prompt for agents
Update the admin collections page at apps/web/src/routes/admin/collections/index.tsx to match the rebranded category name. Change "Hyprnote Weekly" to "Char Weekly" in two places: 1) The CATEGORIES constant array at line 1979. 2) The hardcoded <option> element at line 2203 (both the value attribute and display text).
Was this helpful? React with 👍 or 👎 to provide feedback.
Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
| beforeLoad: () => { | ||
| throw redirect({ | ||
| href: "https://x.com/tryhyprnote", | ||
| href: "https://x.com/getcharnotes", |
There was a problem hiding this comment.
🟡 X/Twitter redirect changed to new handle but twitter:site meta tags still reference old handle
The /x redirect was changed from https://x.com/tryhyprnote to https://x.com/getcharnotes, indicating the X/Twitter account was renamed. However, the twitter:site and twitter:creator meta tags in __root.tsx:47-48 and changelog/$slug.tsx:65-66 still reference @tryhyprnote.
Detailed Explanation
The x.tsx redirect (line 6) was updated to point to the new X handle @getcharnotes, but the Twitter Card meta tags throughout the site were not updated:
apps/web/src/routes/__root.tsx:47:{ name: "twitter:site", content: "@tryhyprnote" }apps/web/src/routes/__root.tsx:48:{ name: "twitter:creator", content: "@tryhyprnote" }apps/web/src/routes/_view/changelog/$slug.tsx:65-66: same@tryhyprnotereferences
If the X account was actually renamed to @getcharnotes, then twitter:site and twitter:creator now point to a non-existent or incorrect handle. Twitter/X uses these meta tags to attribute shared content to the site owner's account. With the wrong handle, shared links will lose proper attribution on the platform.
Impact: Twitter Cards for all pages will reference the wrong/old X handle, losing proper social media attribution for the rebranded account.
Prompt for agents
Update the twitter:site and twitter:creator meta tags to match the new X handle. In apps/web/src/routes/__root.tsx lines 47-48, change content from "@tryhyprnote" to "@getcharnotes" (or whatever the correct new handle is). Also update the same meta tags in apps/web/src/routes/_view/changelog/$slug.tsx lines 65-66.
Was this helpful? React with 👍 or 👎 to provide feedback.
Summary
Comprehensive rebrand of all external-facing website content, desktop onboarding, and generated assets from "Hyprnote" to "Char". Uses "Fastrepl, Inc" in legal docs (already present in existing legal content).
Changes:
header.tsx): Swapped<img>logo for plain "Char" text; updated "Why Hyprnote" nav links → "Why Char"footer.tsx): Swapped<Image>component for "Char" text withfont-semibold text-2xl font-serif; updated aria-labels and alt textonboarding/index.tsx): "Welcome to Hyprnote" → "Welcome to Char"__root.tsx): Updated defaultTITLEandDESCRIPTIONconstantsnetlify/edge-functions/og.tsx): "Hyprnote." → "Char." in changelog/blog templates; updated headerText for docs, handbook, templates, shortcuts/company/charnotes; YouTube redirect updated to@charnotesvisual.spec.ts): Updated homepage title assertion from/Hyprnote/to/Char/Intentionally preserved:
hyprnote.comURLs (domain references)fastrepl/hyprnoteGitHub repo referencesdiscord.gg/Hyprnote)/r/Hyprnote/)isHyprnoteUrl,HyprnoteIcon, etc.)/api/images/hyprnote/...)routeTree.gen.ts(auto-generated)com.hyprnote.Char)Review & Testing Checklist for Human
admin/route.tsxhas double-branding bug: Title is"Char Admin - Char"and description is"Char admin for Hyprnote.". Both need manual fixing — should likely be"Admin - Char"and"Char admin."respectively."Improve model selection when using hyprnote cloud"→"Char cloud"and"Fix hardcoded hyprnote path"→"Char path". These are factual descriptions of past releases — confirm rewriting history is intended or revert./company/charnotesand YouTube@charnotes— confirm these accounts exist before merging.\bHyprnote\b→Charreplacement touched ~77 source files and ~60 content files. Visually verify home, pricing, about, download, why-hyprnote, blog, and docs on the Netlify preview.Verification steps:
/og?type=changelog&version=0.5.0,/og?type=docs&title=Test§ion=Guide,/og?type=blog&title=Test&author=John+Jeong&date=2025-01-01Recommended test plan:
/og?...endpointsNotes