设计师与前端开发者

客户

Dana Koshanian — 整骨医生 D.O

角色

设计师与前端开发者

技术栈

Vite, React 18, TypeScript, Framer Motion, CSS

日期

2026

01

挑战

医疗从业者常常满足于通用的 Doctolib 资料或模板化网站,这会削弱信任感。挑战在于打造一个既专业又有人情味的网站——让焦虑的患者感到安心,清晰传达在特定领域(磨牙、焦虑)的专长,并在不显得推销的前提下促进预约。

02

解决方案

我端到端设计并开发了该网站,采用 Vite + React + TypeScript,使用 Framer Motion 实现微妙的显示动画。排版将 Fraunces(编辑衬线字体)与 Inter(实用无衬线字体)结合,基于奶油色与赤陶色的调色板。专题页面(焦虑、磨牙)提供深度 SEO 覆盖,而浮动的 Doctolib CTA 和电话悬浮按钮让移动端用户一触即可预约。部署在 Vercel 上,含 sitemap.xml、robots.txt 和 OG 图。

typescript
// Client-side meta + JSON-LD injection for a Vite SPA
export function useDocumentMeta({ title, description, canonical, jsonLd }: Meta) {
  useEffect(() => {
    const previousTitle = document.title;
    document.title = title;
    setMetaContent('meta[name="description"]', description);
    setMetaContent('meta[property="og:title"]', title);
    setMetaContent('meta[property="og:description"]', description);
    if (canonical) {
      setCanonical(canonical);
      setMetaContent('meta[property="og:url"]', canonical);
    }

    let script: HTMLScriptElement | null = null;
    if (jsonLd) {
      script = document.createElement('script');
      script.type = 'application/ld+json';
      script.textContent = JSON.stringify(jsonLd);
      document.head.appendChild(script);
    }

    return () => {
      document.title = previousTitle;
      if (script?.parentNode) script.parentNode.removeChild(script);
    };
  }, [title, description, canonical, jsonLd]);
}

为 Vite SPA 按路由注入 SEO meta 和 Schema.org JSON-LD — 每个专题页面都有自己的 canonical、OG 标签和 LocalBusiness 结构化数据

Gallery image 1
Gallery image 2
Gallery image 3
Gallery image 4

下一个项目

SEO LVMH

SEO / 分析