From 03cf4f9a86ed4a7b031cf1572ef642071ed9f919 Mon Sep 17 00:00:00 2001 From: Sean O'Connor Date: Fri, 26 Jun 2026 17:14:34 -0400 Subject: [PATCH] Add solution-landscape page and "Where we fit" section New /landscape page maps the competitive field by category (with named examples and the gap each leaves), an AlignCare callout, and the combined job no incumbent owns. Add a compact, competitor-free "Where we fit" section to the executive summary linking to it, and a Landscape nav item. Co-Authored-By: Claude Opus 4.8 --- .../(marketing)/executive-summary/page.tsx | 47 +++++ src/app/(marketing)/landscape/page.tsx | 160 ++++++++++++++++++ src/components/site-header.tsx | 3 +- 3 files changed, 209 insertions(+), 1 deletion(-) create mode 100644 src/app/(marketing)/landscape/page.tsx diff --git a/src/app/(marketing)/executive-summary/page.tsx b/src/app/(marketing)/executive-summary/page.tsx index c24081f..e306764 100644 --- a/src/app/(marketing)/executive-summary/page.tsx +++ b/src/app/(marketing)/executive-summary/page.tsx @@ -2,13 +2,17 @@ import type { CSSProperties } from "react"; import type { Metadata } from "next"; import Image from "next/image"; +import Link from "next/link"; +import { ArrowRight } from "lucide-react"; import { MedscribeLogo } from "~/components/medscribe-logo"; import { PhoneMockup } from "~/components/phone-mockup"; import { PrintButton } from "~/components/print-button"; import { SectionLabel } from "~/components/section-label"; +import { Badge } from "~/components/ui/badge"; import { Card, + CardContent, CardDescription, CardHeader, CardTitle, @@ -190,6 +194,49 @@ export default function ExecutiveSummaryPage() { + {/* Where we fit */} +
+ Where we fit +

+ The field is full of slices. +

+

+ Visit recorders, medication apps, record vaults, emergency IDs, and + caregiver tools each solve one part of the problem. None keeps a + private, patient-owned record current day to day and ready to hand + over in a crisis. +

+
+ {[ + "Visit recorders", + "Medication apps", + "Record vaults", + "Emergency IDs", + "Caregiver tools", + ].map((slice) => ( + + {slice} + + ))} +
+ + +

+ Medscribe connects the daily loop to the emergency handoff: one + private record that stays current through normal use and is ready + when the system does not know the patient. +

+
+
+ + See the full landscape + + +
+ {/* Under the hood */}
Under the hood diff --git a/src/app/(marketing)/landscape/page.tsx b/src/app/(marketing)/landscape/page.tsx new file mode 100644 index 0000000..d11da21 --- /dev/null +++ b/src/app/(marketing)/landscape/page.tsx @@ -0,0 +1,160 @@ +import type { Metadata } from "next"; + +import { SectionLabel } from "~/components/section-label"; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from "~/components/ui/card"; + +export const metadata: Metadata = { + title: "Solution Landscape", + description: + "How the medical-context space is divided today, and the combined job no existing product owns.", +}; + +const INTRO = + "The space is crowded. Visit recorders, medication apps, health-record vaults, emergency IDs, and caregiver tools all exist and are improving. But each owns one slice. None owns the whole job: a private, patient-owned medical context that stays current through daily use and is ready to hand over in a crisis."; + +const categories = [ + { + category: "Patient AI visit notetakers", + examples: "Kin, AlignCare, Emilia, PatientScribe, Medcorder", + gap: "Capture and summarize the visit, but the summary is the product. It is not turned into an emergency-ready record a family can hand over.", + }, + { + category: "Medication trackers", + examples: "Medisafe, MyTherapy, Dosecast", + gap: "Know the pill list and reminders, but never heard the visit. No grounded understanding of why a medication is on the list or what changed.", + }, + { + category: "Personal health records", + examples: "KeepMD, Available Health, Replicoo, Guava, DrOwl", + gap: "Store and aggregate documents, but are passive. Nothing keeps them current, and a broad PHR is undifferentiated.", + }, + { + category: "Emergency IDs and QR cards", + examples: "Apple Medical ID, MedicAlert, tenderID, Epic Share Everywhere", + gap: "A static snapshot with no daily maintenance loop, so the card is only as accurate as the last manual edit.", + }, + { + category: "Caregiver coordination", + examples: "Innerhive, Alula, Connected Caregiver, Caring Village", + gap: "Tend toward tasks, calendars, and messaging. They coordinate people, not the integrity of the medical context itself.", + }, + { + category: "Provider-side scribes", + examples: "Abridge, Nuance DAX, Suki", + gap: "Built for the clinician's chart and billing, in clinical language. Not for the patient or the family carrying context across systems.", + }, +]; + +const bundle = [ + "Patient- and caregiver-owned mobile app", + "On-device visit transcription", + "Medication OCR and intake tracking", + "Facts-first medication Q&A grounded in trusted drug data", + "Current medications and visit context fused into one local record", + "An emergency “know me” handoff", + "Caregiver sharing designed for complex-care families", + "End-to-end encrypted, peer-to-peer sharing as a core architecture", +]; + +export default function LandscapePage() { + return ( +
+ {/* Hero */} +
+ Solution landscape +

+ The field, and the gap +

+

+ {INTRO} +

+
+ + {/* Category map */} +
+
+ Who owns which slice +

+ Six categories, each solving part of it +

+
+
+ {categories.map((item) => ( + + + {item.category} +

+ {item.examples} +

+ {item.gap} +
+
+ ))} +
+
+ + {/* Closest competitor */} +
+ The closest direct competitor + + +

+ AlignCare matches the consumer bundle on paper: visit recording, + summaries, an AI assistant, medication reminders and logging, + documents, and caregiver sharing. It is real competition, not a + strawman. +

+

+ The openings it leaves: its app-store disclosures indicate cloud + collection and tracking rather than on-device processing; it has no + first-class emergency handoff for a patient who cannot explain + themselves; and its medication answers are not described as + deterministic, on-device, facts-first rendering. Those are + Medscribe's wedges. +

+
+
+
+ + {/* The unowned bundle */} +
+
+ What no one owns as one bundle +

+ The combined job is the opening +

+

+ Each box above has partial substitutes. No single incumbent unites + all of this into one private, patient-owned record: +

+
+ + +
    + {bundle.map((point) => ( +
  • + + {point} +
  • + ))} +
+
+
+

+ That intersection, the daily maintenance loop that keeps an + emergency-ready record current and private by architecture, is the lane + Medscribe is built to own. +

+
+
+ ); +} diff --git a/src/components/site-header.tsx b/src/components/site-header.tsx index c1da9b4..992fbbb 100644 --- a/src/components/site-header.tsx +++ b/src/components/site-header.tsx @@ -1,7 +1,7 @@ "use client"; import { useState } from "react"; -import { FileText, Home, Menu, X } from "lucide-react"; +import { FileText, Home, Layers, Menu, X } from "lucide-react"; import Link from "next/link"; import { usePathname } from "next/navigation"; @@ -11,6 +11,7 @@ import { cn } from "~/lib/utils"; const navLinks = [ { href: "/", label: "About", icon: Home }, { href: "/executive-summary", label: "Summary", icon: FileText }, + { href: "/landscape", label: "Landscape", icon: Layers }, ]; export function SiteHeader() {