{
  "name": "Spoke",
  "slug": "spoke",
  "domain": "https://spoke.com/",
  "sources": [
    "startups_gallery"
  ],
  "branding": {
    "colorScheme": "light",
    "fonts": [
      {
        "family": "TT Commons Pro",
        "role": "body"
      },
      {
        "family": "Roboto",
        "role": "body"
      }
    ],
    "colors": {
      "primary": "#DCE2EE",
      "secondary": "#CFDEFD",
      "accent": "#286FF5",
      "background": "#FFFFFF",
      "textPrimary": "#141A27",
      "link": "#141A27"
    },
    "typography": {
      "fontFamilies": {
        "primary": "TT Commons Pro",
        "heading": "TT Commons Pro"
      },
      "fontStacks": {
        "heading": [
          "TT Commons Pro",
          "-apple-system",
          "BlinkMacSystemFont",
          "Helvetica",
          "Segoe UI",
          "Roboto",
          "Oxygen",
          "Ubuntu",
          "Cantarell",
          "Fira Sans",
          "Droid Sans",
          "Helvetica Neue",
          "sans-serif"
        ],
        "body": [
          "TT Commons Pro",
          "-apple-system",
          "BlinkMacSystemFont",
          "Helvetica",
          "Segoe UI",
          "Roboto",
          "Oxygen",
          "Ubuntu",
          "Cantarell",
          "Fira Sans",
          "Droid Sans",
          "Helvetica Neue",
          "sans-serif"
        ],
        "paragraph": [
          "TT Commons Pro",
          "-apple-system",
          "BlinkMacSystemFont",
          "Helvetica",
          "Segoe UI",
          "Roboto",
          "Oxygen",
          "Ubuntu",
          "Cantarell",
          "Fira Sans",
          "Droid Sans",
          "Helvetica Neue",
          "sans-serif"
        ]
      },
      "fontSizes": {
        "h1": "36px",
        "h2": "36px",
        "body": "20px"
      }
    },
    "spacing": {
      "baseUnit": 4,
      "borderRadius": "8px"
    },
    "components": {
      "buttonPrimary": {
        "background": "#286FF5",
        "textColor": "#141A27",
        "borderRadius": "6.67088px",
        "borderRadiusCorners": {
          "topLeft": "6.67088px",
          "topRight": "6.67088px",
          "bottomRight": "6.67088px",
          "bottomLeft": "6.67088px"
        },
        "shadow": "none"
      },
      "buttonSecondary": {
        "background": "#CFDEFD",
        "textColor": "#141A27",
        "borderColor": "#DDE1E8",
        "borderRadius": "10px",
        "borderRadiusCorners": {
          "topLeft": "10px",
          "topRight": "10px",
          "bottomRight": "10px",
          "bottomLeft": "10px"
        },
        "shadow": "none"
      }
    },
    "images": {
      "logo": "data:image/svg+xml;utf8,%3Csvg%20id%3D%22spoke-logo%22%20height%3D%2228%22%20viewBox%3D%220%200%2070%2028%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20class%3D%22ease%20transition-colors%20lg%3A-translate-y-0.5%22%20data-fc-idx%3D%220%22%3E%3Ctitle%3ESpoke%20logo%3C%2Ftitle%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M7.077%2023.356c-1.35%200-2.528-.256-3.536-.769-.99-.53-1.768-1.238-2.332-2.127-.563-.905-.88-1.921-.948-3.049h3.46c.068.564.239%201.06.512%201.486.273.41.649.744%201.127%201%20.479.239%201.05.358%201.717.358.632%200%201.162-.093%201.589-.281.444-.188.768-.427.973-.718a1.71%201.71%200%200%200%20.333-1.025c0-.478-.162-.88-.486-1.204a3.49%203.49%200%200%200-1.179-.794%2024.746%2024.746%200%200%200-1.973-.718c-1.179-.393-2.144-.777-2.895-1.153a5.831%205.831%200%200%201-1.948-1.665c-.53-.718-.794-1.649-.794-2.793%200-.974.239-1.845.717-2.614.496-.786%201.205-1.4%202.127-1.845.94-.461%202.041-.692%203.305-.692%201.213%200%202.29.257%203.229.769.957.512%201.7%201.213%202.23%202.101a5.93%205.93%200%200%201%20.896%202.921h-3.46a2.936%202.936%200%200%200-.435-1.383%202.43%202.43%200%200%200-.999-.949c-.41-.239-.897-.358-1.46-.358-.564%200-1.051.094-1.461.282-.41.187-.726.444-.948.768a1.85%201.85%200%200%200-.308%201.05c0%20.48.154.88.462%201.205.324.308.717.564%201.178.769a37.66%2037.66%200%200%200%201.973.692c1.179.376%202.153.751%202.921%201.127a5.053%205.053%200%200%201%201.948%201.614c.546.7.82%201.615.82%202.742%200%201.008-.248%201.905-.743%202.69-.496.786-1.23%201.41-2.204%201.871-.957.461-2.093.692-3.408.692ZM15.45%2027.635V9.98h2.46l.564%201.333h.128c.17-.205.427-.436.768-.692.342-.256.77-.478%201.282-.666a4.586%204.586%200%200%201%201.716-.308c1.06%200%202.05.3%202.973.897.922.598%201.657%201.426%202.203%202.486.564%201.042.846%202.203.846%203.484%200%201.282-.282%202.443-.846%203.485-.546%201.042-1.28%201.862-2.203%202.46-.923.598-1.914.897-2.973.897-.58%200-1.118-.094-1.614-.282a5.876%205.876%200%200%201-1.23-.615c-.324-.24-.538-.453-.64-.64h-.129v5.816H15.45Zm6.483-7.328c.564%200%201.084-.163%201.563-.487.495-.325.888-.777%201.178-1.358.29-.581.436-1.23.436-1.948%200-.734-.145-1.392-.436-1.973-.29-.58-.683-1.033-1.178-1.358-.479-.324-1-.486-1.563-.486-.581%200-1.11.162-1.589.486-.478.325-.863.778-1.153%201.358-.29.581-.436%201.239-.436%201.973%200%20.718.146%201.367.436%201.948.29.58.675%201.033%201.153%201.358a2.767%202.767%200%200%200%201.589.487ZM36.404%2023.403a6.182%206.182%200%200%201-3.28-.923%207.291%207.291%200%200%201-2.434-2.51%206.821%206.821%200%200%201-.897-3.409c0-1.23.299-2.365.897-3.408a7.006%207.006%200%200%201%202.434-2.51%206.058%206.058%200%200%201%203.28-.949c1.161%200%202.246.316%203.254.948a6.736%206.736%200%200%201%202.434%202.511%206.585%206.585%200%200%201%20.922%203.408%206.674%206.674%200%200%201-.922%203.408%206.998%206.998%200%200%201-2.434%202.511%206.138%206.138%200%200%201-3.254.923Zm0-3.05c.615%200%201.17-.162%201.665-.486a3.33%203.33%200%200%200%201.204-1.358c.308-.581.462-1.23.462-1.948%200-.734-.154-1.392-.462-1.973a3.33%203.33%200%200%200-1.204-1.358%202.973%202.973%200%200%200-1.665-.486c-.615%200-1.179.162-1.691.486a3.33%203.33%200%200%200-1.205%201.358c-.29.581-.435%201.239-.435%201.973%200%20.718.145%201.367.435%201.948a3.33%203.33%200%200%200%201.205%201.358%203.098%203.098%200%200%200%201.69.487ZM52.903%2023.023l-3.049-4.971H47.37v-3.024h2.485l2.793-5.048h3.51l-4.022%206.867v-.896l4.586%207.072h-3.818Zm-8.122%200V5.086h3.305v17.937h-3.305ZM63.435%2023.356a6.272%206.272%200%200%201-3.33-.923%206.859%206.859%200%200%201-2.41-2.485c-.58-1.042-.87-2.187-.87-3.434%200-1.23.299-2.365.896-3.407a6.802%206.802%200%200%201%202.41-2.512c1.024-.632%202.109-.948%203.253-.948%201.162%200%202.23.29%203.203.871a6.308%206.308%200%200%201%202.306%202.383c.564%201.008.846%202.136.846%203.383%200%20.307-.017.59-.051.845-.017.24-.052.436-.103.59h-10.25v-2.383h8.2l-1.025%201.87c.051-.154.094-.299.128-.435.035-.154.052-.29.052-.41%200-.718-.145-1.358-.436-1.922a3.329%203.329%200%200%200-1.204-1.358%202.973%202.973%200%200%200-1.666-.487%203.27%203.27%200%200%200-1.742.487c-.513.307-.923.76-1.23%201.358-.29.598-.436%201.281-.436%202.05%200%20.803.145%201.503.436%202.1.29.599.692%201.052%201.204%201.359.513.307%201.102.461%201.768.461.615%200%201.12-.102%201.512-.307.41-.222.735-.479.974-.769h3.433c-.256.632-.666%201.264-1.23%201.896a6.824%206.824%200%200%201-2.024%201.538%205.866%205.866%200%200%201-2.614.589Z%22%20style%3D%22fill%3A%20oklch(0.218329%200.027246%20265.11)%20!important%3B%22%2F%3E%3C%2Fsvg%3E",
      "favicon": "https://spoke.com/favicon/dark.svg?v=2",
      "ogImage": "https://cdn.sanity.io/images/mod8xlf1/production/fbf3cafe7d906daff1badcdeb39789a254f28a98-1200x630.jpg?w=1200&h=630&fm=jpg&q=90",
      "logoHref": "https://spoke.com/",
      "logoAlt": "Spoke logo"
    },
    "__llm_logo_reasoning": {
      "selectedIndex": 0,
      "reasoning": "Selected #0 because it is visible, located in the header, links to the homepage, and matches the brand name 'Spoke'.",
      "confidence": 0.95,
      "source": "llm"
    },
    "__llm_button_reasoning": {
      "primary": {
        "index": 5,
        "text": "Navigate",
        "reasoning": "Button #5 has a vibrant blue color (#286FF5) and action-oriented text 'Navigate', making it the most prominent CTA."
      },
      "secondary": {
        "index": 4,
        "text": "Explore Route Planner",
        "reasoning": "Button #4 has a different background color (#CFDEFD) and serves as a secondary option with the text 'Explore Route Planner'."
      },
      "confidence": 0.95
    },
    "personality": {
      "tone": "professional",
      "energy": "medium",
      "targetAudience": "businesses seeking delivery solutions"
    },
    "designSystem": {
      "framework": "tailwind",
      "componentLibrary": ""
    },
    "confidence": {
      "buttons": 0.95,
      "colors": 0.9,
      "overall": 0.925
    },
    "__llm_metadata": {
      "logoSelection": {
        "llmCalled": true,
        "llmSucceeded": true,
        "finalSource": "llm",
        "rawLogoSelection": {
          "selectedLogoIndex": 0,
          "selectedLogoReasoning": "Selected #0 because it is visible, located in the header, links to the homepage, and matches the brand name 'Spoke'.",
          "confidence": 0.95
        }
      },
      "buttonClassification": {
        "llmCalled": true,
        "llmSucceeded": true
      }
    }
  },
  "images": [
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/spoke/ec593b1e46.webp",
      "alt": "Spoke Dispatch: Slow routes cost more than just time",
      "source_url": "https://spoke.com/dispatch/plan-routes",
      "image_url": "https://cdn.sanity.io/images/mod8xlf1/production/2a5de404ab9576114eb0fb86f5952520cce43baa-3280x1600.png?rect=0%2C0%2C2545%2C1600&h=2414&q=75&fit=crop&auto=format&w=3840",
      "width": 3840,
      "height": 2414,
      "bytes": 784480,
      "query": "site:spoke.com",
      "query_suffix": "site:spoke.com"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/spoke/493755c883.webp",
      "alt": "The 7 Best Gig Economy Apps for Couriers to Make More Money",
      "source_url": "https://spoke.com/route-planner/blog/gig-economy-apps-for-couriers",
      "image_url": "https://cdn.sanity.io/images/mod8xlf1/production/d6688d4a391de3469804855c6f913d31b9d0fcb0-1024x593.jpg?h=2222&q=75&fit=clip&auto=format&w=3840",
      "width": 3837,
      "height": 2222,
      "bytes": 224267,
      "query": "site:spoke.com blog",
      "query_suffix": "site:spoke.com blog"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/spoke/69cc99b883.webp",
      "alt": "Spoke Dispatch: Last Mile Management",
      "source_url": "https://spoke.com/dispatch",
      "image_url": "https://cdn.sanity.io/images/mod8xlf1/production/90388902fe657993ad666d19ff8987ba5a6d0353-1556x2048.png?h=5054&q=90&fit=crop&auto=format&w=3840",
      "width": 3840,
      "height": 5054,
      "bytes": 2406522,
      "query": "site:spoke.com",
      "query_suffix": "site:spoke.com"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/spoke/3fd753610e.webp",
      "alt": "Four Best Alternatives to Google Maps for Faster Multi-Stop Route Planning",
      "source_url": "https://spoke.com/route-planner/blog/alternatives-to-google-maps",
      "image_url": "https://cdn.sanity.io/images/mod8xlf1/production/ccfdd636dfe6a928bcdc2bc64961aa37b46f7fb5-1024x707.jpg?h=2650&q=75&fit=clip&auto=format&w=3840",
      "width": 3838,
      "height": 2650,
      "bytes": 152167,
      "query": "site:spoke.com",
      "query_suffix": "site:spoke.com"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/spoke/c1b8079123.webp",
      "alt": "Contract Delivery Jobs: What They Are and Where to Find Them",
      "source_url": "https://spoke.com/route-planner/blog/contract-delivery-jobs",
      "image_url": "https://cdn.sanity.io/images/mod8xlf1/production/7f72a53000a101f51f70b7e175c53ebd64a21322-1024x593.jpg?h=2222&q=75&fit=clip&auto=format&w=3840",
      "width": 3837,
      "height": 2222,
      "bytes": 337202,
      "query": "site:spoke.com blog",
      "query_suffix": "site:spoke.com blog"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/spoke/e51fcc2c89.webp",
      "alt": "How to Win Medical Courier Contracts in 2026",
      "source_url": "https://spoke.com/dispatch/blog/get-medical-courier-contracts",
      "image_url": "https://cdn.sanity.io/images/mod8xlf1/production/cd33c6554cc8211374e88483655bd4da47537851-1248x1280.jpg?rect=0%2C16%2C1248%2C1248&h=3840&q=75&fit=crop&auto=format&w=3840",
      "width": 3840,
      "height": 3840,
      "bytes": 823115,
      "query": "site:spoke.com",
      "query_suffix": "site:spoke.com"
    }
  ],
  "font_resources": [
    {
      "family": "TT Commons Pro",
      "google_fonts_url": "https://fonts.google.com/specimen/TT+Commons+Pro"
    },
    {
      "family": "TT Commons Pro",
      "google_fonts_url": "https://fonts.google.com/specimen/TT+Commons+Pro"
    }
  ],
  "google_fonts_css": "https://fonts.googleapis.com/css2?family=TT+Commons+Pro&family=TT+Commons+Pro&display=swap",
  "font_download_note": "Not found on Google Fonts? Agent Instructions that you can follow if you have permission to use the fonts:\n\nCharacterQuilt.com suggests this flow that can help:\n\n1. Open the company's homepage in a browser with DevTools open.\n2. In the Network tab, filter by \"Font\" (or by extension: woff2, woff, ttf, otf).\n3. Hard-reload the page and click around (pricing, blog, careers) — some weights only load on specific routes.\n4. For each captured font URL: right-click → Save As to download the file locally.\n5. View the page's CSS (DevTools → Sources, or curl the stylesheet URLs) and copy out the matching @font-face declarations. Rewrite each `src: url(...)` to point to your local file path.\n\nProgrammatic alternative: load the URL with Playwright or Puppeteer, listen for `response` events whose `Content-Type` starts with `font/`, and write the body to disk. The CSS extraction step is the same.\n\nOnly do this if you have permission to use the brand assets — most proprietary fonts are licensed and may not be redistributable.",
  "page_url": "https://characterquilt.com/branding/spoke",
  "agent_instructions": "You are designing or implementing in Spoke's brand identity.\n\n# Brand profile\n- Company: Spoke\n- Source: https://spoke.com/\n- Color scheme: light\n\n# Colors\n- primary: #DCE2EE\n- secondary: #CFDEFD\n- accent: #286FF5\n- background: #FFFFFF\n- textPrimary: #141A27\n- link: #141A27\n\n# Typography\n- primary: TT Commons Pro — https://fonts.google.com/specimen/TT+Commons+Pro\n- heading: TT Commons Pro — https://fonts.google.com/specimen/TT+Commons+Pro\n\nLoad all fonts at once: <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=TT+Commons+Pro&family=TT+Commons+Pro&display=swap\">\n\n# UI Components\n- buttonPrimary: background=#286FF5, textColor=#141A27, borderRadius=6.67088px, shadow=none\n- buttonSecondary: background=#CFDEFD, textColor=#141A27, borderColor=#DDE1E8, borderRadius=10px, shadow=none\n\n# Brand voice\n- Tone: professional\n- Energy: medium\n- Audience: businesses seeking delivery solutions\n\n# Working with these fonts\nNot found on Google Fonts? Agent Instructions that you can follow if you have permission to use the fonts:\n\nCharacterQuilt.com suggests this flow that can help:\n\n1. Open the company's homepage in a browser with DevTools open.\n2. In the Network tab, filter by \"Font\" (or by extension: woff2, woff, ttf, otf).\n3. Hard-reload the page and click around (pricing, blog, careers) — some weights only load on specific routes.\n4. For each captured font URL: right-click → Save As to download the file locally.\n5. View the page's CSS (DevTools → Sources, or curl the stylesheet URLs) and copy out the matching @font-face declarations. Rewrite each `src: url(...)` to point to your local file path.\n\nProgrammatic alternative: load the URL with Playwright or Puppeteer, listen for `response` events whose `Content-Type` starts with `font/`, and write the body to disk. The CSS extraction step is the same.\n\nOnly do this if you have permission to use the brand assets — most proprietary fonts are licensed and may not be redistributable.\n\n# Full machine-readable profile\nhttps://characterquilt.com/branding/spoke.json",
  "page_markdown": "# Spoke Brand Identity\n\nA complete profile of **Spoke**'s visual system — colors, typography, components, and personality — extracted from https://spoke.com/. Built for designers, agents, and AI tools.\n\n- Page: https://characterquilt.com/branding/spoke\n- Machine-readable JSON: https://characterquilt.com/branding/spoke.json\n- Per-page llms.txt: https://characterquilt.com/branding/spoke/llms.txt\n\n## Quick Facts\n\n| Field | Value |\n|---|---|\n| Primary | #DCE2EE |\n| Accent | #286FF5 |\n| Body Font | TT Commons Pro |\n| Heading Font | TT Commons Pro |\n\n## Color Palette\n\n- primary: #DCE2EE\n- secondary: #CFDEFD\n- accent: #286FF5\n- background: #FFFFFF\n- textPrimary: #141A27\n- link: #141A27\n\n## Typography\n\n- primary: TT Commons Pro — https://fonts.google.com/specimen/TT+Commons+Pro\n- heading: TT Commons Pro — https://fonts.google.com/specimen/TT+Commons+Pro\n\n## Visual Assets\n\n- Logo: data:image/svg+xml;utf8,%3Csvg%20id%3D%22spoke-logo%22%20height%3D%2228%22%20viewBox%3D%220%200%2070%2028%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20class%3D%22ease%20transition-colors%20lg%3A-translate-y-0.5%22%20data-fc-idx%3D%220%22%3E%3Ctitle%3ESpoke%20logo%3C%2Ftitle%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M7.077%2023.356c-1.35%200-2.528-.256-3.536-.769-.99-.53-1.768-1.238-2.332-2.127-.563-.905-.88-1.921-.948-3.049h3.46c.068.564.239%201.06.512%201.486.273.41.649.744%201.127%201%20.479.239%201.05.358%201.717.358.632%200%201.162-.093%201.589-.281.444-.188.768-.427.973-.718a1.71%201.71%200%200%200%20.333-1.025c0-.478-.162-.88-.486-1.204a3.49%203.49%200%200%200-1.179-.794%2024.746%2024.746%200%200%200-1.973-.718c-1.179-.393-2.144-.777-2.895-1.153a5.831%205.831%200%200%201-1.948-1.665c-.53-.718-.794-1.649-.794-2.793%200-.974.239-1.845.717-2.614.496-.786%201.205-1.4%202.127-1.845.94-.461%202.041-.692%203.305-.692%201.213%200%202.29.257%203.229.769.957.512%201.7%201.213%202.23%202.101a5.93%205.93%200%200%201%20.896%202.921h-3.46a2.936%202.936%200%200%200-.435-1.383%202.43%202.43%200%200%200-.999-.949c-.41-.239-.897-.358-1.46-.358-.564%200-1.051.094-1.461.282-.41.187-.726.444-.948.768a1.85%201.85%200%200%200-.308%201.05c0%20.48.154.88.462%201.205.324.308.717.564%201.178.769a37.66%2037.66%200%200%200%201.973.692c1.179.376%202.153.751%202.921%201.127a5.053%205.053%200%200%201%201.948%201.614c.546.7.82%201.615.82%202.742%200%201.008-.248%201.905-.743%202.69-.496.786-1.23%201.41-2.204%201.871-.957.461-2.093.692-3.408.692ZM15.45%2027.635V9.98h2.46l.564%201.333h.128c.17-.205.427-.436.768-.692.342-.256.77-.478%201.282-.666a4.586%204.586%200%200%201%201.716-.308c1.06%200%202.05.3%202.973.897.922.598%201.657%201.426%202.203%202.486.564%201.042.846%202.203.846%203.484%200%201.282-.282%202.443-.846%203.485-.546%201.042-1.28%201.862-2.203%202.46-.923.598-1.914.897-2.973.897-.58%200-1.118-.094-1.614-.282a5.876%205.876%200%200%201-1.23-.615c-.324-.24-.538-.453-.64-.64h-.129v5.816H15.45Zm6.483-7.328c.564%200%201.084-.163%201.563-.487.495-.325.888-.777%201.178-1.358.29-.581.436-1.23.436-1.948%200-.734-.145-1.392-.436-1.973-.29-.58-.683-1.033-1.178-1.358-.479-.324-1-.486-1.563-.486-.581%200-1.11.162-1.589.486-.478.325-.863.778-1.153%201.358-.29.581-.436%201.239-.436%201.973%200%20.718.146%201.367.436%201.948.29.58.675%201.033%201.153%201.358a2.767%202.767%200%200%200%201.589.487ZM36.404%2023.403a6.182%206.182%200%200%201-3.28-.923%207.291%207.291%200%200%201-2.434-2.51%206.821%206.821%200%200%201-.897-3.409c0-1.23.299-2.365.897-3.408a7.006%207.006%200%200%201%202.434-2.51%206.058%206.058%200%200%201%203.28-.949c1.161%200%202.246.316%203.254.948a6.736%206.736%200%200%201%202.434%202.511%206.585%206.585%200%200%201%20.922%203.408%206.674%206.674%200%200%201-.922%203.408%206.998%206.998%200%200%201-2.434%202.511%206.138%206.138%200%200%201-3.254.923Zm0-3.05c.615%200%201.17-.162%201.665-.486a3.33%203.33%200%200%200%201.204-1.358c.308-.581.462-1.23.462-1.948%200-.734-.154-1.392-.462-1.973a3.33%203.33%200%200%200-1.204-1.358%202.973%202.973%200%200%200-1.665-.486c-.615%200-1.179.162-1.691.486a3.33%203.33%200%200%200-1.205%201.358c-.29.581-.435%201.239-.435%201.973%200%20.718.145%201.367.435%201.948a3.33%203.33%200%200%200%201.205%201.358%203.098%203.098%200%200%200%201.69.487ZM52.903%2023.023l-3.049-4.971H47.37v-3.024h2.485l2.793-5.048h3.51l-4.022%206.867v-.896l4.586%207.072h-3.818Zm-8.122%200V5.086h3.305v17.937h-3.305ZM63.435%2023.356a6.272%206.272%200%200%201-3.33-.923%206.859%206.859%200%200%201-2.41-2.485c-.58-1.042-.87-2.187-.87-3.434%200-1.23.299-2.365.896-3.407a6.802%206.802%200%200%201%202.41-2.512c1.024-.632%202.109-.948%203.253-.948%201.162%200%202.23.29%203.203.871a6.308%206.308%200%200%201%202.306%202.383c.564%201.008.846%202.136.846%203.383%200%20.307-.017.59-.051.845-.017.24-.052.436-.103.59h-10.25v-2.383h8.2l-1.025%201.87c.051-.154.094-.299.128-.435.035-.154.052-.29.052-.41%200-.718-.145-1.358-.436-1.922a3.329%203.329%200%200%200-1.204-1.358%202.973%202.973%200%200%200-1.666-.487%203.27%203.27%200%200%200-1.742.487c-.513.307-.923.76-1.23%201.358-.29.598-.436%201.281-.436%202.05%200%20.803.145%201.503.436%202.1.29.599.692%201.052%201.204%201.359.513.307%201.102.461%201.768.461.615%200%201.12-.102%201.512-.307.41-.222.735-.479.974-.769h3.433c-.256.632-.666%201.264-1.23%201.896a6.824%206.824%200%200%201-2.024%201.538%205.866%205.866%200%200%201-2.614.589Z%22%20style%3D%22fill%3A%20oklch(0.218329%200.027246%20265.11)%20!important%3B%22%2F%3E%3C%2Fsvg%3E\n- Favicon: https://spoke.com/favicon/dark.svg?v=2\n- Social card (og:image): https://cdn.sanity.io/images/mod8xlf1/production/fbf3cafe7d906daff1badcdeb39789a254f28a98-1200x630.jpg?w=1200&h=630&fm=jpg&q=90\n\n## UI Components\n\n- buttonPrimary: background=#286FF5, textColor=#141A27, borderRadius=6.67088px, shadow=none\n- buttonSecondary: background=#CFDEFD, textColor=#141A27, borderColor=#DDE1E8, borderRadius=10px, shadow=none\n\n## Brand Personality\n\nTone: professional · Energy: medium · Audience: businesses seeking delivery solutions\n\n## Spoke Brand in the Wild\n\nReal-world brand assets — ads, campaigns, marketing materials.\n\n- **Spoke Dispatch: Slow routes cost more than just time**\n  - Image: https://cdn.sanity.io/images/mod8xlf1/production/2a5de404ab9576114eb0fb86f5952520cce43baa-3280x1600.png?rect=0%2C0%2C2545%2C1600&h=2414&q=75&fit=crop&auto=format&w=3840\n  - Source: https://spoke.com/dispatch/plan-routes\n- **The 7 Best Gig Economy Apps for Couriers to Make More Money**\n  - Image: https://cdn.sanity.io/images/mod8xlf1/production/d6688d4a391de3469804855c6f913d31b9d0fcb0-1024x593.jpg?h=2222&q=75&fit=clip&auto=format&w=3840\n  - Source: https://spoke.com/route-planner/blog/gig-economy-apps-for-couriers\n- **Spoke Dispatch: Last Mile Management**\n  - Image: https://cdn.sanity.io/images/mod8xlf1/production/90388902fe657993ad666d19ff8987ba5a6d0353-1556x2048.png?h=5054&q=90&fit=crop&auto=format&w=3840\n  - Source: https://spoke.com/dispatch\n- **Four Best Alternatives to Google Maps for Faster Multi-Stop Route Planning**\n  - Image: https://cdn.sanity.io/images/mod8xlf1/production/ccfdd636dfe6a928bcdc2bc64961aa37b46f7fb5-1024x707.jpg?h=2650&q=75&fit=clip&auto=format&w=3840\n  - Source: https://spoke.com/route-planner/blog/alternatives-to-google-maps\n- **Contract Delivery Jobs: What They Are and Where to Find Them**\n  - Image: https://cdn.sanity.io/images/mod8xlf1/production/7f72a53000a101f51f70b7e175c53ebd64a21322-1024x593.jpg?h=2222&q=75&fit=clip&auto=format&w=3840\n  - Source: https://spoke.com/route-planner/blog/contract-delivery-jobs\n- **How to Win Medical Courier Contracts in 2026**\n  - Image: https://cdn.sanity.io/images/mod8xlf1/production/cd33c6554cc8211374e88483655bd4da47537851-1248x1280.jpg?rect=0%2C16%2C1248%2C1248&h=3840&q=75&fit=crop&auto=format&w=3840\n  - Source: https://spoke.com/dispatch/blog/get-medical-courier-contracts\n\n## Working with these fonts\n\nNot found on Google Fonts? Agent Instructions that you can follow if you have permission to use the fonts:\n\nCharacterQuilt.com suggests this flow that can help:\n\n1. Open the company's homepage in a browser with DevTools open.\n2. In the Network tab, filter by \"Font\" (or by extension: woff2, woff, ttf, otf).\n3. Hard-reload the page and click around (pricing, blog, careers) — some weights only load on specific routes.\n4. For each captured font URL: right-click → Save As to download the file locally.\n5. View the page's CSS (DevTools → Sources, or curl the stylesheet URLs) and copy out the matching @font-face declarations. Rewrite each `src: url(...)` to point to your local file path.\n\nProgrammatic alternative: load the URL with Playwright or Puppeteer, listen for `response` events whose `Content-Type` starts with `font/`, and write the body to disk. The CSS extraction step is the same.\n\nOnly do this if you have permission to use the brand assets — most proprietary fonts are licensed and may not be redistributable.\n\n## Machine-Readable Profile\n\n```json\n{\n  \"colorScheme\": \"light\",\n  \"fonts\": [\n    {\n      \"family\": \"TT Commons Pro\",\n      \"role\": \"body\"\n    },\n    {\n      \"family\": \"Roboto\",\n      \"role\": \"body\"\n    }\n  ],\n  \"colors\": {\n    \"primary\": \"#DCE2EE\",\n    \"secondary\": \"#CFDEFD\",\n    \"accent\": \"#286FF5\",\n    \"background\": \"#FFFFFF\",\n    \"textPrimary\": \"#141A27\",\n    \"link\": \"#141A27\"\n  },\n  \"typography\": {\n    \"fontFamilies\": {\n      \"primary\": \"TT Commons Pro\",\n      \"heading\": \"TT Commons Pro\"\n    },\n    \"fontStacks\": {\n      \"heading\": [\n        \"TT Commons Pro\",\n        \"-apple-system\",\n        \"BlinkMacSystemFont\",\n        \"Helvetica\",\n        \"Segoe UI\",\n        \"Roboto\",\n        \"Oxygen\",\n        \"Ubuntu\",\n        \"Cantarell\",\n        \"Fira Sans\",\n        \"Droid Sans\",\n        \"Helvetica Neue\",\n        \"sans-serif\"\n      ],\n      \"body\": [\n        \"TT Commons Pro\",\n        \"-apple-system\",\n        \"BlinkMacSystemFont\",\n        \"Helvetica\",\n        \"Segoe UI\",\n        \"Roboto\",\n        \"Oxygen\",\n        \"Ubuntu\",\n        \"Cantarell\",\n        \"Fira Sans\",\n        \"Droid Sans\",\n        \"Helvetica Neue\",\n        \"sans-serif\"\n      ],\n      \"paragraph\": [\n        \"TT Commons Pro\",\n        \"-apple-system\",\n        \"BlinkMacSystemFont\",\n        \"Helvetica\",\n        \"Segoe UI\",\n        \"Roboto\",\n        \"Oxygen\",\n        \"Ubuntu\",\n        \"Cantarell\",\n        \"Fira Sans\",\n        \"Droid Sans\",\n        \"Helvetica Neue\",\n        \"sans-serif\"\n      ]\n    },\n    \"fontSizes\": {\n      \"h1\": \"36px\",\n      \"h2\": \"36px\",\n      \"body\": \"20px\"\n    }\n  },\n  \"spacing\": {\n    \"baseUnit\": 4,\n    \"borderRadius\": \"8px\"\n  },\n  \"components\": {\n    \"buttonPrimary\": {\n      \"background\": \"#286FF5\",\n      \"textColor\": \"#141A27\",\n      \"borderRadius\": \"6.67088px\",\n      \"borderRadiusCorners\": {\n        \"topLeft\": \"6.67088px\",\n        \"topRight\": \"6.67088px\",\n        \"bottomRight\": \"6.67088px\",\n        \"bottomLeft\": \"6.67088px\"\n      },\n      \"shadow\": \"none\"\n    },\n    \"buttonSecondary\": {\n      \"background\": \"#CFDEFD\",\n      \"textColor\": \"#141A27\",\n      \"borderColor\": \"#DDE1E8\",\n      \"borderRadius\": \"10px\",\n      \"borderRadiusCorners\": {\n        \"topLeft\": \"10px\",\n        \"topRight\": \"10px\",\n        \"bottomRight\": \"10px\",\n        \"bottomLeft\": \"10px\"\n      },\n      \"shadow\": \"none\"\n    }\n  },\n  \"images\": {\n    \"logo\": \"data:image/svg+xml;utf8,%3Csvg%20id%3D%22spoke-logo%22%20height%3D%2228%22%20viewBox%3D%220%200%2070%2028%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20class%3D%22ease%20transition-colors%20lg%3A-translate-y-0.5%22%20data-fc-idx%3D%220%22%3E%3Ctitle%3ESpoke%20logo%3C%2Ftitle%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M7.077%2023.356c-1.35%200-2.528-.256-3.536-.769-.99-.53-1.768-1.238-2.332-2.127-.563-.905-.88-1.921-.948-3.049h3.46c.068.564.239%201.06.512%201.486.273.41.649.744%201.127%201%20.479.239%201.05.358%201.717.358.632%200%201.162-.093%201.589-.281.444-.188.768-.427.973-.718a1.71%201.71%200%200%200%20.333-1.025c0-.478-.162-.88-.486-1.204a3.49%203.49%200%200%200-1.179-.794%2024.746%2024.746%200%200%200-1.973-.718c-1.179-.393-2.144-.777-2.895-1.153a5.831%205.831%200%200%201-1.948-1.665c-.53-.718-.794-1.649-.794-2.793%200-.974.239-1.845.717-2.614.496-.786%201.205-1.4%202.127-1.845.94-.461%202.041-.692%203.305-.692%201.213%200%202.29.257%203.229.769.957.512%201.7%201.213%202.23%202.101a5.93%205.93%200%200%201%20.896%202.921h-3.46a2.936%202.936%200%200%200-.435-1.383%202.43%202.43%200%200%200-.999-.949c-.41-.239-.897-.358-1.46-.358-.564%200-1.051.094-1.461.282-.41.187-.726.444-.948.768a1.85%201.85%200%200%200-.308%201.05c0%20.48.154.88.462%201.205.324.308.717.564%201.178.769a37.66%2037.66%200%200%200%201.973.692c1.179.376%202.153.751%202.921%201.127a5.053%205.053%200%200%201%201.948%201.614c.546.7.82%201.615.82%202.742%200%201.008-.248%201.905-.743%202.69-.496.786-1.23%201.41-2.204%201.871-.957.461-2.093.692-3.408.692ZM15.45%2027.635V9.98h2.46l.564%201.333h.128c.17-.205.427-.436.768-.692.342-.256.77-.478%201.282-.666a4.586%204.586%200%200%201%201.716-.308c1.06%200%202.05.3%202.973.897.922.598%201.657%201.426%202.203%202.486.564%201.042.846%202.203.846%203.484%200%201.282-.282%202.443-.846%203.485-.546%201.042-1.28%201.862-2.203%202.46-.923.598-1.914.897-2.973.897-.58%200-1.118-.094-1.614-.282a5.876%205.876%200%200%201-1.23-.615c-.324-.24-.538-.453-.64-.64h-.129v5.816H15.45Zm6.483-7.328c.564%200%201.084-.163%201.563-.487.495-.325.888-.777%201.178-1.358.29-.581.436-1.23.436-1.948%200-.734-.145-1.392-.436-1.973-.29-.58-.683-1.033-1.178-1.358-.479-.324-1-.486-1.563-.486-.581%200-1.11.162-1.589.486-.478.325-.863.778-1.153%201.358-.29.581-.436%201.239-.436%201.973%200%20.718.146%201.367.436%201.948.29.58.675%201.033%201.153%201.358a2.767%202.767%200%200%200%201.589.487ZM36.404%2023.403a6.182%206.182%200%200%201-3.28-.923%207.291%207.291%200%200%201-2.434-2.51%206.821%206.821%200%200%201-.897-3.409c0-1.23.299-2.365.897-3.408a7.006%207.006%200%200%201%202.434-2.51%206.058%206.058%200%200%201%203.28-.949c1.161%200%202.246.316%203.254.948a6.736%206.736%200%200%201%202.434%202.511%206.585%206.585%200%200%201%20.922%203.408%206.674%206.674%200%200%201-.922%203.408%206.998%206.998%200%200%201-2.434%202.511%206.138%206.138%200%200%201-3.254.923Zm0-3.05c.615%200%201.17-.162%201.665-.486a3.33%203.33%200%200%200%201.204-1.358c.308-.581.462-1.23.462-1.948%200-.734-.154-1.392-.462-1.973a3.33%203.33%200%200%200-1.204-1.358%202.973%202.973%200%200%200-1.665-.486c-.615%200-1.179.162-1.691.486a3.33%203.33%200%200%200-1.205%201.358c-.29.581-.435%201.239-.435%201.973%200%20.718.145%201.367.435%201.948a3.33%203.33%200%200%200%201.205%201.358%203.098%203.098%200%200%200%201.69.487ZM52.903%2023.023l-3.049-4.971H47.37v-3.024h2.485l2.793-5.048h3.51l-4.022%206.867v-.896l4.586%207.072h-3.818Zm-8.122%200V5.086h3.305v17.937h-3.305ZM63.435%2023.356a6.272%206.272%200%200%201-3.33-.923%206.859%206.859%200%200%201-2.41-2.485c-.58-1.042-.87-2.187-.87-3.434%200-1.23.299-2.365.896-3.407a6.802%206.802%200%200%201%202.41-2.512c1.024-.632%202.109-.948%203.253-.948%201.162%200%202.23.29%203.203.871a6.308%206.308%200%200%201%202.306%202.383c.564%201.008.846%202.136.846%203.383%200%20.307-.017.59-.051.845-.017.24-.052.436-.103.59h-10.25v-2.383h8.2l-1.025%201.87c.051-.154.094-.299.128-.435.035-.154.052-.29.052-.41%200-.718-.145-1.358-.436-1.922a3.329%203.329%200%200%200-1.204-1.358%202.973%202.973%200%200%200-1.666-.487%203.27%203.27%200%200%200-1.742.487c-.513.307-.923.76-1.23%201.358-.29.598-.436%201.281-.436%202.05%200%20.803.145%201.503.436%202.1.29.599.692%201.052%201.204%201.359.513.307%201.102.461%201.768.461.615%200%201.12-.102%201.512-.307.41-.222.735-.479.974-.769h3.433c-.256.632-.666%201.264-1.23%201.896a6.824%206.824%200%200%201-2.024%201.538%205.866%205.866%200%200%201-2.614.589Z%22%20style%3D%22fill%3A%20oklch(0.218329%200.027246%20265.11)%20!important%3B%22%2F%3E%3C%2Fsvg%3E\",\n    \"favicon\": \"https://spoke.com/favicon/dark.svg?v=2\",\n    \"ogImage\": \"https://cdn.sanity.io/images/mod8xlf1/production/fbf3cafe7d906daff1badcdeb39789a254f28a98-1200x630.jpg?w=1200&h=630&fm=jpg&q=90\",\n    \"logoHref\": \"https://spoke.com/\",\n    \"logoAlt\": \"Spoke logo\"\n  },\n  \"__llm_logo_reasoning\": {\n    \"selectedIndex\": 0,\n    \"reasoning\": \"Selected #0 because it is visible, located in the header, links to the homepage, and matches the brand name 'Spoke'.\",\n    \"confidence\": 0.95,\n    \"source\": \"llm\"\n  },\n  \"__llm_button_reasoning\": {\n    \"primary\": {\n      \"index\": 5,\n      \"text\": \"Navigate\",\n      \"reasoning\": \"Button #5 has a vibrant blue color (#286FF5) and action-oriented text 'Navigate', making it the most prominent CTA.\"\n    },\n    \"secondary\": {\n      \"index\": 4,\n      \"text\": \"Explore Route Planner\",\n      \"reasoning\": \"Button #4 has a different background color (#CFDEFD) and serves as a secondary option with the text 'Explore Route Planner'.\"\n    },\n    \"confidence\": 0.95\n  },\n  \"personality\": {\n    \"tone\": \"professional\",\n    \"energy\": \"medium\",\n    \"targetAudience\": \"businesses seeking delivery solutions\"\n  },\n  \"designSystem\": {\n    \"framework\": \"tailwind\",\n    \"componentLibrary\": \"\"\n  },\n  \"confidence\": {\n    \"buttons\": 0.95,\n    \"colors\": 0.9,\n    \"overall\": 0.925\n  },\n  \"__llm_metadata\": {\n    \"logoSelection\": {\n      \"llmCalled\": true,\n      \"llmSucceeded\": true,\n      \"finalSource\": \"llm\",\n      \"rawLogoSelection\": {\n        \"selectedLogoIndex\": 0,\n        \"selectedLogoReasoning\": \"Selected #0 because it is visible, located in the header, links to the homepage, and matches the brand name 'Spoke'.\",\n        \"confidence\": 0.95\n      }\n    },\n    \"buttonClassification\": {\n      \"llmCalled\": true,\n      \"llmSucceeded\": true\n    }\n  }\n}\n```\n"
}