MotirBuilding in public
MOTIR · moooon
onMotir
You’re viewing a public project. Anyone can view it — no account needed. Sign in to submit, upvote, or comment on requests.View-only — you can’t edit work items
MOTIR-982

6.16 Public Overview tagline 140-char limit too short for Motir's own 149-char tagline — can't save

Done
Description

Symptom. On the public project page Overview, the hero tagline cannot hold Motir's own intended tagline — the editor blocks anything over 140 characters, so the canonical line

"Vibe your whole project. Bring an idea — Motir's three AI layers plan it, track it, and ship it, end to end. You're looking at Motir, built in Motir."

(149 chars) can't be entered or saved.

Repro. Public page → Overview → admin in-place edit → paste/type the tagline above → the textarea hard-stops at 140 chars (the trailing ", built in Motir." is dropped); pasting the full string then saving would also 422.

Root cause (verified 2026-06-16, rung 2). PUBLIC_TAGLINE_MAX_LENGTH = 140 (lib/publicProjects/limits.ts:15), enforced twice:

  • ClientmaxLength={PUBLIC_TAGLINE_MAX_LENGTH} on the tagline input (app/(public)/_components/PublicOverviewEditor.tsx:359), which prevents typing/pasting past 140.
  • ServerprojectsService.updatePublicOverview throws ProjectTaglineTooLongError when trimmed.length > PUBLIC_TAGLINE_MAX_LENGTH (lib/services/projectsService.ts:735; lib/projects/errors.ts:54PROJECT_TAGLINE_TOO_LONG).

140 (a tweet-era limit) is too short for the product's own hero tagline (149) — the limit blocks the canonical content it's meant to hold.

Candidate fix (for triage, not pre-decided). Raise PUBLIC_TAGLINE_MAX_LENGTH to comfortably fit the intended tagline (e.g. 160–200; mirror: GitHub repo description ≈ 350, Linear/Notion page descriptions are not this tight) — a single const that flows to both the client maxLength and the server guard. Then VERIFY the PublicOverviewHero layout (PublicOverviewHero.tsx:48) still renders cleanly at the longer length (wrap/clamp), and update the two limit tests that assert at PUBLIC_TAGLINE_MAX_LENGTH + 1 (tests/project-details-service.test.ts:444, tests/publicProjects/publicOverviewEdit.test.ts:106). Alternatively, if 140 is to stay, the long pitch belongs in the hero BODY, not the tagline — but the report is that the tagline itself should hold it.

Acceptance criteria

  • An admin can enter and save the 149-char Motir tagline above on the public Overview; it renders correctly in the hero.
  • Client + server agree on the (new) limit via the single PUBLIC_TAGLINE_MAX_LENGTH const; the hero layout holds at max length.
  • The two + 1 boundary tests track the new value.

Context refs

  • lib/publicProjects/limits.ts:15 (the const), lib/services/projectsService.ts:734-738, lib/projects/errors.ts:50-54
  • app/(public)/_components/PublicOverviewEditor.tsx:359 (client maxLength), app/(public)/_components/PublicOverviewHero.tsx:48 (render)
  • tests/project-details-service.test.ts:444, tests/publicProjects/publicOverviewEdit.test.ts:106