User-facing strings renamed Mike -> Helix Tribune; identifiers left alone

saratpediredla-level5 renamed the product across 15 files, but only where end users see it. Code identifiers - `mikeApi`, `MikeChat`, `MikeIcon`, `MikeMessage`, package names - are unchanged by design, keeping the diff small and future upstream merges cleaner.

branding

The rename touches page <title> tags, OG/Twitter card metadata, metadataBase, the global-error title, the sidebar header and site logo href, placeholder text in tabular and workflow prompt fields, model-settings copy, the support-form description, and the README and CLAUDE.md product descriptions. Domains swap from mikeoss.com/app.mikeoss.com to tribune.helix.levelfive.studio.

Two less-obvious locations also changed: the LLM system prompts in backend/src/lib/chatTools.ts and backend/src/routes/tabular.ts now read "You are Helix Tribune, ..." so the assistant introduces itself correctly. And the DOCX tracked-changes author label in backend/src/lib/docxTrackedChanges.ts defaults to "Helix Tribune" - this is what Word shows as the revision author when the assistant proposes edits.

The commit explicitly preserves every identifier: mikeApi, MikeChat, MikeIcon, the package names, docstrings in backend/schema.sql, and the upstream references in the README "fork of" line and infra/UPSTREAM.md. The reason is stated in the commit message - renaming identifiers is churn with no benefit, and the upstream references should still point at willchen96/mike. Confining the delta to visible strings means future merges from upstream won't generate conflicts in source code, only in the small set of copy strings.

26 additions, 26 deletions across 15 files. No logic changed.

So what No value to pull upstream - this is fork branding. Useful as a template if you're forking willchen96/mike for your own product: the 15-file surface is the right scope for a user-facing rename, and preserving identifiers is the pattern worth copying.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

1 commit from LevelFive-Studio/helix-tribune, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
c80a9233 brand: rename product Mike -> Helix Tribune (user-facing strings only) Sarat Pediredla 2026-05-15 ↗ GitHub
commit body
Identifiers (mikeApi, MikeChat, MikeIcon, MikeMessage, package names,
backend/db/storage docstrings) intentionally still reference "mike" -
that's the upstream project name and renaming them across the codebase
would be churn without benefit. This commit renames only what an end
user can see:

- Page <title>, OpenGraph, Twitter card, and metadataBase URL in
  frontend/src/app/layout.tsx
- Global error <title>, sidebar header, site-logo text + landing href
- Tabular and workflow column-prompt placeholders, model-settings
  copy, support form "question" description
- LLM system prompts ("You are Mike, ...") in chatTools.ts and
  routes/tabular.ts so the assistant introduces itself correctly
- DOCX tracked-changes author label so edited documents show
  "Helix Tribune" as the change author in Word
- Backend startup log line
- README heading + product description + website link
- CLAUDE.md product description (with a note that identifiers stay)

Domain refs `mikeoss.com` / `app.mikeoss.com` are replaced with
`tribune.helix.levelfive.studio` everywhere they're user-facing. The
upstream-repo references (`mikeoss/mike`, `willchen96/mike`) in
infra/UPSTREAM.md and the README's "fork of" line are deliberately
left alone - they correctly point at the upstream we forked from.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-436.md from inside the repo you want the changes in.

⬇ Download capture-thread-436.md