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-1143

8.3.3 Design — motir-marketing landing (motir.co): THREE entry doors (idea hero · import existing · start free) + descriptive blocks

Done
Description

Type: design · Executor: coding_agent · Repo: motir-marketing. The targetRepo pin is deliberately NOT set yet: at approve, resolveAuthoredTargetRepoInProject (motir-core/lib/workItems/dispatchRepo.ts:181) validates a pin against the workspace's connected repositories, and motir-marketing is not one of them (gh repo list moooon-B-V → motir-core, motir-ai, motir-meta, motir-gateway, nextjs-prisma-vercel-starter; 2026-08-26). Pin it the moment MOTIR-1455 provisions and connects the repo.

▶ AMENDED 2026-08-28 by motir run MOTIR-1143, criterion 1 — evidence below. The first criterion asked for three files "sharing a basename: landing.design-notes.md + landing.mock.html + landing.png". The note's name has been corrected to design-notes.md, and the "shared basename" clause narrowed to the mock and the export, because the design-result publisher cannot see a note named the other way:

// motir-core/scripts/upload-design-assets.mjs — classifyDesignPath
if (filePath.endsWith('.mock.html')) return 'mock';
if (filePath.endsWith('.png')) return 'image';
if (path.basename(filePath) === NOTES_BASENAME) return 'note';   // 'design-notes.md'
return null;

The mock and the export match on SUFFIX; the note matches on exact basename. So landing.design-notes.md classifies as null, lands in ignored, and is never published — while its two siblings publish normally. The card would have received the pictures and none of the words, silently, under a green check.

It is also the convention motir-core already follows: measured on origin/main, 44 areas carry design-notes.md and exactly one does not (design/org-admin/create-workspace.design-notes.md — whose note has therefore never published either). The area's note is design-notes.md; the mock and the export share the per-surface basename, exactly as onboarding-entrance.mock.html + onboarding-entrance.png + design-notes.md do.

The classifier defect and the stranded file are MOTIR-3750, together with the second reason this card produced no design result: motir-marketing runs no publish lane at all.

▶ SWEPT 2026-08-26. The 2026-06-30 8.3 replan corrected this card's TITLE and never touched its BODY, so until now it still described building the landing at motir-core's app/page.tsx and asserted three things that are false on origin/main:

  • "app/page.tsx is a bare placeholder (an <h1>Motir</h1> + a 'view design tokens →' link)" — it is a session-aware redirect (/home when signed in, else /sign-in), rewritten by MOTIR-1457 and amended by MOTIR-3367. It renders no marketing surface at all.
  • "the supposed 7.3.14 public front-door subtask DOES NOT EXIST" — 7.3.14 IS MOTIR-1022, it is done, and it is already wired relates_to on MOTIR-656. Its markup is readable at 37ee7c97^.
  • "8.3 OWNS the marketing landing page" in motir-core — the landing moved to the standalone motir-marketing repo (motir.co) in that same replan.

What to design

The WHOLE motir.co landing, as the public front door for all THREE onboarding journeys. This asset is the routing contract MOTIR-1152 builds to. Every door is a cross-origin hand-off into motir-core; the marketing site draws no connect / import / chat UI of its own.

#doorwho it is forwhere it goes
1Idea hero (PRIMARY) — one full-width "describe what you want to build" boxstarting fresh, wants AI planningPOST the idea to the pre-auth draft API (MOTIR-1458) → motir-core/sign-in?draft=<id> → the shipped /onboarding entrance pre-fills it in its CARRIED panel (MOTIR-1462)
2Import an existing project (SECONDARY) — repo · Jira · Linearalready has a codebase or a trackermotir-core/sign-in?intent=import → the /onboarding existing branch → 7.15 / 7.17
3Start free — just the tracker (TERTIARY, NEW) — the non-AI doorwants Motir as a project-management tool, no AI planningmotir-core/sign-up?intent=tracker → the 8.2 team first-run (MOTIR-655)

Door 3 is what this sweep adds, and it is the gap the pass found. MOTIR-655 is Motir's non-AI tracker onboarding, and no surface anywhere routed into it from the public web — the landing drew two doors for three journeys, so a visitor who wants the PM tool would have to already know that the app's sign-up URL exists.

Draw door 3 as genuinely TERTIARY — a nav "Start free" plus one line beneath the hero — not as a third co-equal card. motir-core/design/onboarding-entrance/design-notes.md (2026-07-01) records the rung-1 evidence for that hierarchy: idea-first products (Lovable, Bolt, v0, Replit, Firebase Studio) lead with ONE prompt and demote every other path; Vercel/Railway's two co-equal cards are the pattern for SOURCE pickers, not idea entrances; Linear and Jira put the equivalent "start free" in the nav.

Visual continuity is a constraint, not a nicety. A visitor who types on motir.co and lands in motir-core must not see two products, so the hero continues the entrance's exact vocabulary: the Sparkles eyebrow chip on --el-tint-lavender, the serif headline, the idea Card + textarea + ArrowRight primary Button. Those tokens reach this repo through the shared design-system package (MOTIR-1456).

Blocks to draw: top bar (the 8.3.1 brand lockup + nav: Explore · Docs · Sign in · Start free) · the hero (headline, lede, idea box, and the two secondary door rows) · descriptive feature blocks (the three pillars — AI planning, project management, agent orchestration — plus the open-core framing) · social proof / directory badges (fed by 8.3.9) · footer. Responsive mobile → desktop; states for the idea box (empty, typing, submitting, submit-failed).

Boundary — this card renders NOTHING. Every criterion below is discharged in the three asset files: one repository, one pull request, no application code. The rendered page is MOTIR-1152, a separate card already blocked_by this one, so the design and the implementation cannot arrive on one approval. Noted because validate_work_item reports a likely-self-blocking-design shape advisory on criterion 3 — it reads "a nav entry and a line under the hero" as a rendered surface, where the criterion is about what the MOCK draws.

Acceptance criteria

  • THREE files under design/marketing/ in motir-marketing: the area note design-notes.md, plus landing.mock.html + landing.png sharing the per-surface basename (full-page Playwright chromium export, light theme, deviceScaleFactor: 2). The note is design-notes.md, not landing.design-notes.md — see the amendment at the top of this card; the publisher's classifier matches the note on exact basename, and 44 of motir-core's 45 areas already use it. The mock renders the full responsive page from real --el-* colour tokens + element-semantic shape tokens, never raw Tailwind colours or radii.
  • The notes name ALL THREE doors in the table shape above — each with its exact cross-origin target URL and the motir-core surface it lands on — so the landing's routing is buildable from this asset alone.
  • The mock draws door 3 as tertiary (a nav entry + a single line under the hero), not as a third co-equal hero card, and the notes cite the idea-first grounding for that hierarchy.
  • The hero reuses the entrance's vocabulary (Sparkles chip on --el-tint-lavender, serif headline, idea Card + textarea + ArrowRight primary Button), and the notes name each composing primitive with its token role.
  • The notes' ACCESS PATH section draws every entrance to this page and every exit from it, and states explicitly that no connect / import / chat UI is drawn here (owned by 7.15 / 7.17 / 7.3).
  • The idea box's empty / typing / submitting / submit-failed states are drawn — a cross-origin POST can fail, and a hero that only draws the happy path leaves the failure to be improvised.
  • a11y: one <h1>, correct heading order, alt text on all imagery, visible focus, not-colour-alone. AA holds in light AND dark.

Context refs

  • MOTIR-1152 — the build that consumes this asset · MOTIR-1144 — the copy this layout holds
  • MOTIR-1455 — provisions the repo this asset lives in (itself blocked on the ADR MOTIR-2854, which decides where motir.co runs)
  • MOTIR-1456 — the shared design-system package the mock's tokens come from · MOTIR-1139 — the brand lockup (done)
  • MOTIR-655 — the tracker first-run that door 3 lands in
  • MOTIR-3743 — this repository is not connected to Motir · MOTIR-3750 — it runs no design-result publish lane, and the note's basename was invisible to the classifier
  • EVIDENCE, not deliverables — these files live in motir-core and this card changes none of them: design/onboarding-entrance/design-notes.md (the entrance this hero hands off to; its Mirror grounding section is the idea-first evidence and its Designed against shipped reality section records the hero's relocation) · app/page.tsx (the redirect that replaced the old landing) · app/(auth)/sign-in/page.tsx (reads ?draft) · app/(public)/explore/_components/ExploreTopBar.tsx, ExploreFooter.tsx (the public chrome patterns to stay consistent with)