{
  "name": "webapp.io",
  "slug": "webapp-io",
  "domain": "https://webapp.io",
  "sources": [
    "yc"
  ],
  "branding": {
    "colorScheme": "dark",
    "fonts": [
      {
        "family": "Inter",
        "role": "body"
      }
    ],
    "colors": {
      "primary": "#7F1D1D",
      "secondary": "#9CA3AF",
      "accent": "#7F1D1D",
      "background": "#151515",
      "textPrimary": "#151515",
      "link": "#FEE2E2"
    },
    "typography": {
      "fontFamilies": {
        "primary": "Inter",
        "heading": "Inter"
      },
      "fontStacks": {
        "heading": [
          "Inter",
          "Helvetica",
          "Arial",
          "sans-serif"
        ],
        "body": [
          "Inter",
          "Helvetica",
          "Arial",
          "sans-serif"
        ],
        "paragraph": [
          "Inter",
          "Helvetica",
          "Arial",
          "sans-serif"
        ]
      },
      "fontSizes": {
        "h1": "60px",
        "h2": "39px",
        "body": "16px"
      }
    },
    "spacing": {
      "baseUnit": 4,
      "borderRadius": "5px"
    },
    "components": {
      "buttonPrimary": {
        "background": "#7F1D1D",
        "textColor": "#FEE2E2",
        "borderRadius": "15px",
        "borderRadiusCorners": {
          "topLeft": "15px",
          "topRight": "15px",
          "bottomRight": "15px",
          "bottomLeft": "15px"
        },
        "shadow": "none"
      },
      "buttonSecondary": {
        "background": "#151515",
        "textColor": "#FFFFFF",
        "borderRadius": "5px",
        "borderRadiusCorners": {
          "topLeft": "5px",
          "topRight": "5px",
          "bottomRight": "5px",
          "bottomLeft": "5px"
        },
        "shadow": "none"
      }
    },
    "images": {
      "logo": "https://webapp.io/logowhitewithtext.svg",
      "favicon": "https://webapp.io/apple-touch-icon.png",
      "ogImage": "https://webapp.io/static/images/opengraph-image.jpg",
      "logoHref": "/"
    },
    "__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 'webapp.io'.",
      "confidence": 0.9,
      "source": "llm"
    },
    "__llm_button_reasoning": {
      "primary": {
        "index": 0,
        "text": "Webapp.io has joined Harness. Read more here.",
        "reasoning": "Button #0 uses the vibrant brand color #7F1D1D, making it stand out as the primary call-to-action. The text 'Webapp.io has joined Harness. Read more here.' suggests an important announcement, aligning with primary CTA characteristics."
      },
      "secondary": {
        "index": 1,
        "text": "Start for free",
        "reasoning": "Button #1, 'Start for free', is a common secondary action with a different background color (#151515) from the primary button. It offers a clear action for users, making it a suitable secondary choice."
      },
      "confidence": 0.95
    },
    "personality": {
      "tone": "modern",
      "energy": "medium",
      "targetAudience": "developers and tech companies"
    },
    "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 'webapp.io'.",
          "confidence": 0.9
        }
      },
      "buttonClassification": {
        "llmCalled": true,
        "llmSucceeded": true
      }
    }
  },
  "images": [
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/webapp-io/850c78f079.webp",
      "alt": "Webapp.io - Better DevOps for modern webapps",
      "source_url": "https://webapp.io/",
      "image_url": "https://webapp.io/static/images/opengraph-image.jpg",
      "width": 2300,
      "height": 1449,
      "bytes": 464196,
      "query": "\"webapp.io\" ad",
      "query_suffix": "\"webapp.io\" ad"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/webapp-io/e28ade638c.webp",
      "alt": "LayerCI has rebranded to webapp.io",
      "source_url": "https://webapp.io/blog/layerci-has-rebranded-to-webapp-io",
      "image_url": "https://webapp.io/blog/content/images/2021/11/New-Logo---webapp.io.png",
      "width": 1267,
      "height": 632,
      "bytes": 20169,
      "query": "\"webapp.io\" ad",
      "query_suffix": "\"webapp.io\" ad"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/webapp-io/e36db8c333.webp",
      "alt": "Really excited to announce that webapp.io has been acquired by harness.io.  Harness is an industry leading DevOps platform, and it's really an amazing  honor to be able to integrate our CI/CD… |",
      "source_url": "https://www.linkedin.com/posts/colinchartier_really-excited-to-announce-that-webappio-activity-7394831196112842753-iMnR",
      "image_url": "https://media.licdn.com/dms/image/v2/D5622AQHBbQqc5b-21Q/feedshare-shrink_2048_1536/B56Zp.3yY8JkA0-/0/1763065145439?e=2147483647&v=beta&t=RS2B7aN2w8xLs0KKVwFMJWpfwvuGB2zpSEPbK2cHLdY",
      "width": 642,
      "height": 403,
      "bytes": 22784,
      "query": "\"webapp.io\" ad",
      "query_suffix": "\"webapp.io\" ad"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/webapp-io/8f52957d95.webp",
      "alt": "Documentation - Webapp.io Documentation",
      "source_url": "https://docs.webapp.io/introduction",
      "image_url": "https://webappio.mintlify.app/mintlify-assets/_next/image?url=%2F_mintlify%2Fapi%2Fog%3Fdivision%3DHome%26title%3DDocumentation%26description%3DExplore%2Bour%2Bguides%2Band%2Bexamples%2Bto%2Bintegrate%2Bwebapp.io%26logoLight%3Dhttps%253A%252F%252Fmintcdn.com%252Fwebappio%252Fs6-eR6DYSUsnelQ0%252Flogo%252Flight.svg%253Ffit%253Dmax%2526auto%253Dformat%2526n%253Ds6-eR6DYSUsnelQ0%2526q%253D85%2526s%253Db9d9cb419c9a72ddc2b1ba4334ff5a9e%26logoDark%3Dhttps%253A%252F%252Fmintcdn.com%252Fwebappio%252Fs6-eR6DYSUsnelQ0%252Flogo%252Fdark.svg%253Ffit%253Dmax%2526auto%253Dformat%2526n%253Ds6-eR6DYSUsnelQ0%2526q%253D85%2526s%253D1e17d76a8119868825c45daa3dcd36b1%26primaryColor%3D%25231038C7%26lightColor%3D%25239CC6F8%26darkColor%3D%2523112B87%26backgroundLight%3D%2523ffffff%26backgroundDark%3D%2523151515&w=1200&q=100",
      "width": 1200,
      "height": 630,
      "bytes": 165448,
      "query": "\"webapp.io\" report",
      "query_suffix": "\"webapp.io\" report"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/webapp-io/87e63f2b4e.webp",
      "alt": "Installation & Tutorial - Webapp.io Documentation",
      "source_url": "https://docs.webapp.io/tutorial",
      "image_url": "https://webapp.io/static/assets/detail-page.png",
      "width": 781,
      "height": 676,
      "bytes": 53672,
      "query": "\"webapp.io\" landing page",
      "query_suffix": "\"webapp.io\" landing page"
    },
    {
      "file": "https://e4p9rs3sldnmtboz.public.blob.vercel-storage.com/webapp-io/8c50cc9884.webp",
      "alt": "Webapp.io alternatives for fast Docker builds and preview environments |  Blog — Northflank",
      "source_url": "https://northflank.com/blog/webapp-io-alternatives-for-fast-docker-builds-and-preview-environments",
      "image_url": "https://assets.northflank.com/Webapp_io_alternatives_0270ac3e7d.png",
      "width": 937,
      "height": 527,
      "bytes": 355358,
      "query": "\"webapp.io\" ad",
      "query_suffix": "\"webapp.io\" ad"
    }
  ],
  "font_resources": [
    {
      "family": "Inter",
      "google_fonts_url": "https://fonts.google.com/specimen/Inter"
    },
    {
      "family": "Inter",
      "google_fonts_url": "https://fonts.google.com/specimen/Inter"
    }
  ],
  "google_fonts_css": "https://fonts.googleapis.com/css2?family=Inter&family=Inter&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/webapp-io",
  "agent_instructions": "You are designing or implementing in webapp.io's brand identity.\n\n# Brand profile\n- Company: webapp.io\n- Source: https://webapp.io\n- Color scheme: dark\n\n# Colors\n- primary: #7F1D1D\n- secondary: #9CA3AF\n- accent: #7F1D1D\n- background: #151515\n- textPrimary: #151515\n- link: #FEE2E2\n\n# Typography\n- primary: Inter — https://fonts.google.com/specimen/Inter\n- heading: Inter — https://fonts.google.com/specimen/Inter\n\nLoad all fonts at once: <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Inter&family=Inter&display=swap\">\n\n# UI Components\n- buttonPrimary: background=#7F1D1D, textColor=#FEE2E2, borderRadius=15px, shadow=none\n- buttonSecondary: background=#151515, textColor=#FFFFFF, borderRadius=5px, shadow=none\n\n# Brand voice\n- Tone: modern\n- Energy: medium\n- Audience: developers and tech companies\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/webapp-io.json",
  "page_markdown": "# webapp.io Brand Identity\n\nA complete profile of **webapp.io**'s visual system — colors, typography, components, and personality — extracted from https://webapp.io. Built for designers, agents, and AI tools.\n\n- Page: https://characterquilt.com/branding/webapp-io\n- Machine-readable JSON: https://characterquilt.com/branding/webapp-io.json\n- Per-page llms.txt: https://characterquilt.com/branding/webapp-io/llms.txt\n\n## Quick Facts\n\n| Field | Value |\n|---|---|\n| Primary | #7F1D1D |\n| Accent | #7F1D1D |\n| Body Font | Inter |\n| Heading Font | Inter |\n\n## Color Palette\n\n- primary: #7F1D1D\n- secondary: #9CA3AF\n- accent: #7F1D1D\n- background: #151515\n- textPrimary: #151515\n- link: #FEE2E2\n\n## Typography\n\n- primary: Inter — https://fonts.google.com/specimen/Inter\n- heading: Inter — https://fonts.google.com/specimen/Inter\n\n## Visual Assets\n\n- Logo: https://webapp.io/logowhitewithtext.svg\n- Favicon: https://webapp.io/apple-touch-icon.png\n- Social card (og:image): https://webapp.io/static/images/opengraph-image.jpg\n\n## UI Components\n\n- buttonPrimary: background=#7F1D1D, textColor=#FEE2E2, borderRadius=15px, shadow=none\n- buttonSecondary: background=#151515, textColor=#FFFFFF, borderRadius=5px, shadow=none\n\n## Brand Personality\n\nTone: modern · Energy: medium · Audience: developers and tech companies\n\n## webapp.io Brand in the Wild\n\nReal-world brand assets — ads, campaigns, marketing materials.\n\n- **Webapp.io - Better DevOps for modern webapps**\n  - Image: https://webapp.io/static/images/opengraph-image.jpg\n  - Source: https://webapp.io/\n- **LayerCI has rebranded to webapp.io**\n  - Image: https://webapp.io/blog/content/images/2021/11/New-Logo---webapp.io.png\n  - Source: https://webapp.io/blog/layerci-has-rebranded-to-webapp-io\n- **Really excited to announce that webapp.io has been acquired by harness.io.  Harness is an industry leading DevOps platform, and it's really an amazing  honor to be able to integrate our CI/CD… |**\n  - Image: https://media.licdn.com/dms/image/v2/D5622AQHBbQqc5b-21Q/feedshare-shrink_2048_1536/B56Zp.3yY8JkA0-/0/1763065145439?e=2147483647&v=beta&t=RS2B7aN2w8xLs0KKVwFMJWpfwvuGB2zpSEPbK2cHLdY\n  - Source: https://www.linkedin.com/posts/colinchartier_really-excited-to-announce-that-webappio-activity-7394831196112842753-iMnR\n- **Documentation - Webapp.io Documentation**\n  - Image: https://webappio.mintlify.app/mintlify-assets/_next/image?url=%2F_mintlify%2Fapi%2Fog%3Fdivision%3DHome%26title%3DDocumentation%26description%3DExplore%2Bour%2Bguides%2Band%2Bexamples%2Bto%2Bintegrate%2Bwebapp.io%26logoLight%3Dhttps%253A%252F%252Fmintcdn.com%252Fwebappio%252Fs6-eR6DYSUsnelQ0%252Flogo%252Flight.svg%253Ffit%253Dmax%2526auto%253Dformat%2526n%253Ds6-eR6DYSUsnelQ0%2526q%253D85%2526s%253Db9d9cb419c9a72ddc2b1ba4334ff5a9e%26logoDark%3Dhttps%253A%252F%252Fmintcdn.com%252Fwebappio%252Fs6-eR6DYSUsnelQ0%252Flogo%252Fdark.svg%253Ffit%253Dmax%2526auto%253Dformat%2526n%253Ds6-eR6DYSUsnelQ0%2526q%253D85%2526s%253D1e17d76a8119868825c45daa3dcd36b1%26primaryColor%3D%25231038C7%26lightColor%3D%25239CC6F8%26darkColor%3D%2523112B87%26backgroundLight%3D%2523ffffff%26backgroundDark%3D%2523151515&w=1200&q=100\n  - Source: https://docs.webapp.io/introduction\n- **Installation & Tutorial - Webapp.io Documentation**\n  - Image: https://webapp.io/static/assets/detail-page.png\n  - Source: https://docs.webapp.io/tutorial\n- **Webapp.io alternatives for fast Docker builds and preview environments |  Blog — Northflank**\n  - Image: https://assets.northflank.com/Webapp_io_alternatives_0270ac3e7d.png\n  - Source: https://northflank.com/blog/webapp-io-alternatives-for-fast-docker-builds-and-preview-environments\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\": \"dark\",\n  \"fonts\": [\n    {\n      \"family\": \"Inter\",\n      \"role\": \"body\"\n    }\n  ],\n  \"colors\": {\n    \"primary\": \"#7F1D1D\",\n    \"secondary\": \"#9CA3AF\",\n    \"accent\": \"#7F1D1D\",\n    \"background\": \"#151515\",\n    \"textPrimary\": \"#151515\",\n    \"link\": \"#FEE2E2\"\n  },\n  \"typography\": {\n    \"fontFamilies\": {\n      \"primary\": \"Inter\",\n      \"heading\": \"Inter\"\n    },\n    \"fontStacks\": {\n      \"heading\": [\n        \"Inter\",\n        \"Helvetica\",\n        \"Arial\",\n        \"sans-serif\"\n      ],\n      \"body\": [\n        \"Inter\",\n        \"Helvetica\",\n        \"Arial\",\n        \"sans-serif\"\n      ],\n      \"paragraph\": [\n        \"Inter\",\n        \"Helvetica\",\n        \"Arial\",\n        \"sans-serif\"\n      ]\n    },\n    \"fontSizes\": {\n      \"h1\": \"60px\",\n      \"h2\": \"39px\",\n      \"body\": \"16px\"\n    }\n  },\n  \"spacing\": {\n    \"baseUnit\": 4,\n    \"borderRadius\": \"5px\"\n  },\n  \"components\": {\n    \"buttonPrimary\": {\n      \"background\": \"#7F1D1D\",\n      \"textColor\": \"#FEE2E2\",\n      \"borderRadius\": \"15px\",\n      \"borderRadiusCorners\": {\n        \"topLeft\": \"15px\",\n        \"topRight\": \"15px\",\n        \"bottomRight\": \"15px\",\n        \"bottomLeft\": \"15px\"\n      },\n      \"shadow\": \"none\"\n    },\n    \"buttonSecondary\": {\n      \"background\": \"#151515\",\n      \"textColor\": \"#FFFFFF\",\n      \"borderRadius\": \"5px\",\n      \"borderRadiusCorners\": {\n        \"topLeft\": \"5px\",\n        \"topRight\": \"5px\",\n        \"bottomRight\": \"5px\",\n        \"bottomLeft\": \"5px\"\n      },\n      \"shadow\": \"none\"\n    }\n  },\n  \"images\": {\n    \"logo\": \"https://webapp.io/logowhitewithtext.svg\",\n    \"favicon\": \"https://webapp.io/apple-touch-icon.png\",\n    \"ogImage\": \"https://webapp.io/static/images/opengraph-image.jpg\",\n    \"logoHref\": \"/\"\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 'webapp.io'.\",\n    \"confidence\": 0.9,\n    \"source\": \"llm\"\n  },\n  \"__llm_button_reasoning\": {\n    \"primary\": {\n      \"index\": 0,\n      \"text\": \"Webapp.io has joined Harness. Read more here.\",\n      \"reasoning\": \"Button #0 uses the vibrant brand color #7F1D1D, making it stand out as the primary call-to-action. The text 'Webapp.io has joined Harness. Read more here.' suggests an important announcement, aligning with primary CTA characteristics.\"\n    },\n    \"secondary\": {\n      \"index\": 1,\n      \"text\": \"Start for free\",\n      \"reasoning\": \"Button #1, 'Start for free', is a common secondary action with a different background color (#151515) from the primary button. It offers a clear action for users, making it a suitable secondary choice.\"\n    },\n    \"confidence\": 0.95\n  },\n  \"personality\": {\n    \"tone\": \"modern\",\n    \"energy\": \"medium\",\n    \"targetAudience\": \"developers and tech companies\"\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 'webapp.io'.\",\n        \"confidence\": 0.9\n      }\n    },\n    \"buttonClassification\": {\n      \"llmCalled\": true,\n      \"llmSucceeded\": true\n    }\n  }\n}\n```\n"
}