{
  "spec_version": 2,
  "extractor_version": "0.2.0",
  "url": "https://twenty.com/",
  "final_url": "https://twenty.com/",
  "slug": "twenty.com",
  "captured_at": "2026-11-12T15:13:54.731Z",
  "title": "Twenty | #1 Open Source CRM",
  "meta": {
    "description": "The #1 Open Source CRM for modern teams. Modular, scalable, and built to fit your business.",
    "og_image": "https://twenty.com/images/og/default.png",
    "og_title": "Twenty | #1 Open Source CRM",
    "lang": "en"
  },
  "capture": {
    "variants": [
      {
        "name": "desktop-light",
        "width": 1440,
        "height": 900,
        "scheme": "light",
        "page_height": 12691,
        "full": "screens/desktop-light-full.png",
        "fold": "screens/desktop-light-fold.png"
      },
      {
        "name": "desktop-dark",
        "width": 1440,
        "height": 900,
        "scheme": "dark",
        "page_height": 12691,
        "full": "screens/desktop-dark-full.png",
        "fold": "screens/desktop-dark-fold.png"
      },
      {
        "name": "mobile-light",
        "width": 390,
        "height": 844,
        "scheme": "light",
        "page_height": 14065,
        "full": "screens/mobile-light-full.png",
        "fold": "screens/mobile-light-fold.png"
      },
      {
        "name": "mobile-dark",
        "width": 390,
        "height": 844,
        "scheme": "dark",
        "page_height": 14065,
        "full": "screens/mobile-dark-full.png",
        "fold": "screens/mobile-dark-fold.png"
      }
    ],
    "status": 200,
    "warnings": [],
    "element_count": 2341,
    "render_quality": {
      "status": "ok",
      "reasons": [],
      "screenshot": "partial",
      "screenshot_reasons": [
        "screenshot has a 2073px blank band at y=3813 (content in the DOM was not painted, likely scroll-triggered)"
      ]
    },
    "worker_os": "macos"
  },
  "color": {
    "scheme": "light",
    "palette": [
      {
        "hex": "#F4F4F4",
        "oklch": [
          0.967,
          0,
          0
        ],
        "role": "bg",
        "area": 0.3875,
        "uses": {
          "bg": 0.999,
          "text": 0,
          "border": 0.001,
          "fill": 0
        },
        "css": "color(display-p3 0.976 0.976 0.976)",
        "css_var": "--color-neutral",
        "variants": [
          "#F9F9F9",
          "#F7F7F7",
          "#F1F1F1",
          "#F5F9FD",
          "#EEF4F1",
          "#EDF2FE"
        ]
      },
      {
        "hex": "#FFFFFF",
        "oklch": [
          1,
          0,
          180
        ],
        "role": "surface",
        "area": 0.3312,
        "uses": {
          "bg": 0.983,
          "text": 0.016,
          "border": 0,
          "fill": 0.001
        },
        "css": "color(display-p3 1 1 1)",
        "css_var": "--surface",
        "variants": [
          "#FCFCFC",
          "#FEFEFD"
        ]
      },
      {
        "hex": "#1C1C1C",
        "oklch": [
          0.226,
          0,
          0
        ],
        "role": "text",
        "area": 0.2342,
        "uses": {
          "bg": 0.77,
          "text": 0.229,
          "border": 0,
          "fill": 0.001
        },
        "css_var": "--ink",
        "variants": [
          "#1F1F1F"
        ]
      },
      {
        "hex": "#F5F3F099",
        "oklch": [
          0.965,
          0.005,
          78.3
        ],
        "role": "other",
        "area": 0.0111,
        "uses": {
          "bg": 0,
          "text": 0,
          "border": 0,
          "fill": 1
        },
        "on_bg": "#F5F3F2"
      },
      {
        "hex": "#FFFFFF66",
        "oklch": [
          1,
          0,
          0
        ],
        "role": "border",
        "area": 0.0098,
        "uses": {
          "bg": 0,
          "text": 0.959,
          "border": 0.041,
          "fill": 0
        },
        "css_var": "--color-white-40",
        "on_bg": "#F8F8F8"
      },
      {
        "hex": "#1C1C1C0D",
        "oklch": [
          0.226,
          0,
          0
        ],
        "role": "other",
        "area": 0.0098,
        "uses": {
          "bg": 0.982,
          "text": 0,
          "border": 0.018,
          "fill": 0
        },
        "css_var": "--color-black-5",
        "on_bg": "#E9E9E9",
        "variants": [
          "#1C1C1C1A"
        ]
      },
      {
        "hex": "#1C1C1C99",
        "oklch": [
          0.226,
          0,
          0
        ],
        "role": "muted",
        "area": 0.0057,
        "uses": {
          "bg": 0,
          "text": 0.999,
          "border": 0,
          "fill": 0.001
        },
        "css_var": "--ink-muted",
        "on_bg": "#727272"
      },
      {
        "hex": "#0000000A",
        "oklch": [
          0,
          0,
          0
        ],
        "role": "other",
        "area": 0.004,
        "uses": {
          "bg": 0.978,
          "text": 0,
          "border": 0.022,
          "fill": 0
        },
        "css": "color(display-p3 0 0 0 / 0.078)",
        "on_bg": "#EAEAEA",
        "variants": [
          "#00000014",
          "#0000000D",
          "#0000000F"
        ]
      },
      {
        "hex": "#333333",
        "oklch": [
          0.321,
          0,
          0
        ],
        "role": "other",
        "area": 0.0027,
        "uses": {
          "bg": 0.242,
          "text": 0.736,
          "border": 0.003,
          "fill": 0.019
        },
        "css": "color(display-p3 0.2 0.2 0.2)",
        "css_var": "--color-black-hover"
      }
    ],
    "roles": {
      "bg": "#F4F4F4",
      "text": "#1C1C1C",
      "muted": "#1C1C1C99",
      "surface": "#FFFFFF",
      "accent": "#1C1C1C",
      "border": "#FFFFFF66"
    },
    "accent_strategy": "monochrome",
    "contrast": {
      "text_on_bg": 15.49,
      "muted_on_bg": 4.35,
      "accent_on_bg": 15.49
    },
    "gradients": [
      "radial-gradient(80% 60% at 50% 40%, rgba(245, 243, 240, 0.6) 0%, rgba(0, 0, 0, 0) 70%)"
    ],
    "dark_mode": {
      "responds_to_prefers_color_scheme": false
    },
    "declared_accents": [],
    "accent_detail": {
      "method": "cta-monochrome",
      "cta": "#1C1C1C",
      "candidates": [
        {
          "hex": "#4A38F5",
          "css_var": "--color-blue",
          "controls": 0,
          "links": 0,
          "text": 1,
          "elements": 9,
          "fills": 14,
          "area": 0.00009,
          "score": 19,
          "strong": false
        },
        {
          "hex": "#2F7468",
          "controls": 0,
          "links": 0,
          "text": 0,
          "elements": 0,
          "fills": 0,
          "area": 0.00005,
          "score": 6,
          "strong": false
        },
        {
          "hex": "#18794E",
          "controls": 0,
          "links": 0,
          "text": 0,
          "elements": 0,
          "fills": 0,
          "area": 0.00005,
          "score": 6,
          "strong": false
        },
        {
          "hex": "#1961ED",
          "controls": 0,
          "links": 0,
          "text": 0,
          "elements": 0,
          "fills": 0,
          "area": 0.00005,
          "score": 5.9,
          "strong": false
        },
        {
          "hex": "#FFF6A5",
          "controls": 0,
          "links": 0,
          "text": 0,
          "elements": 0,
          "fills": 0,
          "area": 0.00004,
          "score": 5.8,
          "strong": false
        },
        {
          "hex": "#8250DF",
          "controls": 0,
          "links": 0,
          "text": 0,
          "elements": 0,
          "fills": 0,
          "area": 0.00004,
          "score": 5.7,
          "strong": false
        }
      ]
    },
    "highlights": [
      {
        "hex": "#4A38F5",
        "css_var": "--color-blue",
        "elements": 23
      }
    ]
  },
  "type": {
    "families": [
      {
        "family": "Host Grotesk",
        "css_family": "hostGrotesk",
        "role": "display",
        "roles": [
          "display"
        ],
        "weights": [
          300,
          400,
          500
        ],
        "share": 0.538,
        "kind": "webfont",
        "classification": "sans",
        "foundry": null,
        "stack": "hostGrotesk, \"hostGrotesk Fallback\", sans-serif",
        "files": [
          "https://twenty.com/_next/static/media/host_grotesk_latin_variable-s.p.15va9ht5r_l-h.woff2?dpl=dpl-d541bd49-41871719543-1"
        ],
        "internal_names": [
          "Host Grotesk Light"
        ]
      },
      {
        "family": "Aleo",
        "css_family": "aleo",
        "role": "other",
        "roles": [
          "other"
        ],
        "weights": [
          300
        ],
        "share": 0.261,
        "kind": "webfont",
        "classification": "serif",
        "foundry": null,
        "stack": "aleo, \"aleo Fallback\", serif",
        "files": [
          "https://twenty.com/_next/static/media/aleo_latin_300-s.p.0g17h05gubla7.woff2?dpl=dpl-d541bd49-41871719543-1"
        ],
        "internal_names": [
          "Aleo Light",
          "Host Grotesk Light"
        ]
      },
      {
        "family": "Inter",
        "css_family": "inter",
        "role": "body",
        "roles": [
          "body"
        ],
        "weights": [
          400,
          500
        ],
        "share": 0.16,
        "kind": "webfont",
        "classification": "sans",
        "foundry": null,
        "stack": "inter, \"inter Fallback\", sans-serif",
        "files": [
          "https://twenty.com/_next/static/media/inter_latin_400-s.p.2h4gfjtuiqdh0.woff2?dpl=dpl-d541bd49-41871719543-1",
          "https://twenty.com/_next/static/media/inter_latin_500-s.p.0q2yue2unru1q.woff2?dpl=dpl-d541bd49-41871719543-1",
          "https://twenty.com/_next/static/media/inter_latin_600-s.p.0tb8ku2pttcmt.woff2?dpl=dpl-d541bd49-41871719543-1"
        ],
        "internal_names": [
          "Inter Medium",
          "Inter SemiBold",
          "Inter"
        ]
      },
      {
        "family": "Menlo",
        "css_family": "Menlo",
        "role": "mono",
        "roles": [
          "mono"
        ],
        "weights": [
          400,
          500
        ],
        "share": 0.03,
        "kind": "system",
        "classification": "mono",
        "stack": "\"Geist Mono\", \"SF Mono\", ui-monospace, Menlo, Monaco, Consolas, monospace",
        "resolved_on": "macos",
        "internal_names": [
          "Menlo"
        ]
      },
      {
        "family": "Azeret Mono",
        "css_family": "azeretMono",
        "role": "other",
        "roles": [
          "other"
        ],
        "weights": [
          400,
          500
        ],
        "share": 0.012,
        "kind": "webfont",
        "classification": "mono",
        "foundry": null,
        "stack": "azeretMono, \"azeretMono Fallback\", monospace",
        "files": [
          "https://twenty.com/_next/static/media/azeret_mono_latin_variable-s.p.0a44lh6y-zj1x.woff2?dpl=dpl-d541bd49-41871719543-1"
        ],
        "internal_names": [
          "Azeret Mono Thin"
        ]
      }
    ],
    "declared_unused": [
      {
        "family": "vt323",
        "css_family": "vt323",
        "face_status": "unloaded",
        "css_mentions": 2
      }
    ],
    "scale_px": [
      11,
      12,
      13,
      16,
      18,
      22,
      32,
      48,
      60,
      80
    ],
    "ratio": 1.308,
    "body_size": 16,
    "root_size": 16,
    "line_height": 1.55,
    "display_size": 60,
    "tracking_display": "-0.02em",
    "case": "sentence",
    "styles": [
      {
        "name": "display",
        "family": "Aleo",
        "size_px": 60,
        "weight": 300,
        "line_height": 1.1,
        "letter_spacing_em": -0.02,
        "sample": "Build your Enterprise CRM"
      },
      {
        "name": "title",
        "family": "Host Grotesk",
        "size_px": 22,
        "weight": 500,
        "line_height": 1.273,
        "letter_spacing_em": 0,
        "sample": "Familiar, modern interface"
      },
      {
        "name": "body",
        "family": "Host Grotesk",
        "size_px": 16,
        "weight": 400,
        "line_height": 1.55,
        "letter_spacing_em": 0,
        "sample": "Twenty gives technical teams the buildin"
      },
      {
        "name": "body-sm",
        "family": "Inter",
        "size_px": 13,
        "weight": 400,
        "line_height": null,
        "letter_spacing_em": 0,
        "sample": "anthropic.com"
      },
      {
        "name": "mono",
        "family": "Menlo",
        "size_px": 12,
        "weight": 400,
        "line_height": null,
        "letter_spacing_em": 0,
        "sample": "1"
      }
    ],
    "mobile": {
      "body_size": 16,
      "display_size": 40
    }
  },
  "space": {
    "scale_px": [
      2,
      3,
      3.5,
      4,
      5.5,
      6,
      8,
      10,
      12,
      16,
      20,
      24,
      40
    ],
    "base": 4,
    "base_fit": 0.87,
    "density": 0.093,
    "section_padding_px": 24
  },
  "shape": {
    "radii_px": [
      2,
      3,
      4,
      9999
    ],
    "dominant_radius": 4,
    "border_usage": "hairline",
    "border_width_px": 1
  },
  "depth": {
    "shadows": [
      "rgba(0, 0, 0, 0.08) 0px 0px 3.677px 0px, rgba(0, 0, 0, 0.04) 0px 1.839px 3.677px 0px",
      "rgba(0, 0, 0, 0.2) 0px 10px 64px 0px",
      "rgba(255, 255, 255, 0.65) 0px 1px 0px 0px inset",
      "rgba(0, 0, 0, 0.04) 0px 0px 1px 0px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px",
      "rgba(0, 0, 0, 0.12) 0px 1px 2px 0px"
    ],
    "style": "subtle"
  },
  "layout": {
    "container_px": 1360,
    "columns": 7,
    "hero": "centered-over-media",
    "nav": "top-sticky",
    "page_height_px": 12691,
    "section_count": 10
  },
  "motion": {
    "transitions": 197,
    "easing": "ease",
    "durations_ms": [
      140,
      180,
      200,
      300
    ],
    "animations": [
      "tableHeaderAppear-h1tkdw5w",
      "tableRowAppear-dswo5q4",
      "promptTextSwap-pmfr1z5",
      "fingerTap-f1rrrcot"
    ]
  },
  "components": {
    "button-primary": {
      "backgroundColor": "#1C1C1C",
      "textColor": "#FFFFFF",
      "rounded": "0px",
      "padding": "0px 16px",
      "height": "32px",
      "fontFamily": "Azeret Mono",
      "fontSize": "12px",
      "fontWeight": 500,
      "sample": "Get started"
    },
    "button-secondary": {
      "textColor": "#09090BEB",
      "rounded": "6px",
      "padding": "0px 8px",
      "height": "24px",
      "fontFamily": "Inter",
      "fontSize": "13px",
      "fontWeight": 500,
      "border": "1px solid #09090B0F",
      "shadow": "rgba(0, 0, 0, 0.04) 0px 0px 1px 0px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px",
      "sample": "AI Chat"
    },
    "card": {
      "rounded": "4px",
      "padding": "0px",
      "count": 3,
      "border": "1px solid #1C1C1C33"
    }
  },
  "imagery": {
    "media_share": 0.29,
    "dominant_colors": [
      {
        "hex": "#F1F1F1",
        "share": 0.585
      },
      {
        "hex": "#424242",
        "share": 0.199
      },
      {
        "hex": "#DBD7F3",
        "share": 0.092
      },
      {
        "hex": "#1B1B1B",
        "share": 0.045
      },
      {
        "hex": "#B5AEF3",
        "share": 0.032
      }
    ],
    "has_photography": null,
    "has_illustration": null
  },
  "stack": [
    "next.js",
    "shadcn/ui",
    "cloudflare"
  ],
  "sections": [
    {
      "index": 0,
      "kind": "nav",
      "kind_source": "dom",
      "confidence": 0.9,
      "bbox": {
        "x": 0,
        "y": 0,
        "w": 1440,
        "h": 64
      },
      "bg": "#F4F4F4",
      "crop": "img/section-00-nav.webp"
    },
    {
      "index": 1,
      "kind": "hero",
      "kind_source": "dom",
      "confidence": 0.7,
      "bbox": {
        "x": -328,
        "y": 0,
        "w": 2096,
        "h": 1213
      },
      "bg": "#F4F4F4",
      "crop": "img/section-01-hero.webp"
    },
    {
      "index": 2,
      "kind": "logos",
      "kind_source": "dom",
      "confidence": 0.8,
      "bbox": {
        "x": 0,
        "y": 1173,
        "w": 1440,
        "h": 201
      },
      "bg": "#FFFFFF",
      "crop": "img/section-02-logos.webp"
    },
    {
      "index": 3,
      "kind": "features",
      "kind_source": "dom",
      "confidence": 0.5,
      "bbox": {
        "x": 40,
        "y": 1374,
        "w": 1360,
        "h": 660
      },
      "heading": "A custom CRM gives your org an edge, comes with",
      "bg": "#FFFFFF",
      "crop": "img/section-03-features.webp"
    },
    {
      "index": 4,
      "kind": "feature-detail",
      "kind_source": "dom",
      "confidence": 0.45,
      "bbox": {
        "x": 40,
        "y": 2034,
        "w": 1360,
        "h": 2819
      },
      "heading": "Assemble, iterate and adapt a robust CRM,",
      "bg": "#FFFFFF",
      "crop": null
    },
    {
      "index": 5,
      "kind": "content",
      "kind_source": "dom",
      "confidence": 0.3,
      "bbox": {
        "x": 40,
        "y": 4853,
        "w": 660,
        "h": 900
      },
      "bg": "#F4F4F4",
      "crop": "img/section-05-content.webp"
    },
    {
      "index": 6,
      "kind": "features",
      "kind_source": "dom",
      "confidence": 0.5,
      "bbox": {
        "x": 40,
        "y": 5753,
        "w": 1360,
        "h": 1028
      },
      "heading": "Make your GTM team happy with",
      "bg": "#FFFFFF",
      "crop": "img/section-06-features.webp"
    },
    {
      "index": 7,
      "kind": "feature-detail",
      "kind_source": "dom",
      "confidence": 0.45,
      "bbox": {
        "x": 40,
        "y": 6781,
        "w": 1360,
        "h": 2584
      },
      "heading": "Dev teams power company-wide",
      "bg": "#F4F4F4",
      "crop": "img/section-07-feature-detail.webp"
    },
    {
      "index": 8,
      "kind": "logos",
      "kind_source": "dom",
      "confidence": 0.8,
      "bbox": {
        "x": 0,
        "y": 9365,
        "w": 1440,
        "h": 2082
      },
      "bg": "#F4F4F4",
      "crop": "img/section-08-logos.webp"
    },
    {
      "index": 9,
      "kind": "features",
      "kind_source": "dom",
      "confidence": 0.5,
      "bbox": {
        "x": 0,
        "y": 10692,
        "w": 1440,
        "h": 1999
      },
      "heading": "What does Twenty cost?",
      "bg": "#1C1C1C",
      "crop": "img/section-09-features.webp"
    }
  ],
  "images": {
    "manifest": "img/manifest.json",
    "count": 13
  },
  "review": {
    "threshold": 0.7,
    "needs_review": [
      "color.accent_strategy",
      "layout.columns",
      "layout.hero",
      "layout.section_count",
      "sections[].kind",
      "space.section_padding_px"
    ],
    "vision": "not-run"
  },
  "provenance": {
    "color.roles.bg": {
      "source": "dom",
      "confidence": 0.95
    },
    "color.roles.text": {
      "source": "dom",
      "confidence": 0.92
    },
    "color.roles.muted": {
      "source": "dom",
      "confidence": 0.82
    },
    "color.roles.surface": {
      "source": "dom",
      "confidence": 0.78
    },
    "color.roles.border": {
      "source": "dom",
      "confidence": 0.75
    },
    "color.roles.accent": {
      "source": "dom",
      "confidence": 0.72,
      "note": "monochrome page; fill of the primary button; sparse chromatic highlights: #4A38F5"
    },
    "color.accent_strategy": {
      "source": "dom",
      "confidence": 0.6,
      "note": "hue count over chromatic colors; product mockups rendered in the DOM inflate it",
      "needs_review": true
    },
    "color.palette": {
      "source": "dom",
      "confidence": 0.9
    },
    "color.declared_accents": {
      "source": "dom",
      "confidence": 0.95
    },
    "color.dark_mode": {
      "source": "dom",
      "confidence": 0.9
    },
    "color.contrast": {
      "source": "dom",
      "confidence": 0.9
    },
    "color.gradients": {
      "source": "dom",
      "confidence": 0.85
    },
    "type.families": {
      "source": "dom",
      "confidence": 0.95,
      "note": "named from the @font-face rule that rendered (CDP platform fonts)"
    },
    "type.families[].roles": {
      "source": "dom",
      "confidence": 0.85
    },
    "type.declared_unused": {
      "source": "dom",
      "confidence": 0.95
    },
    "type.scale_px": {
      "source": "dom",
      "confidence": 0.9
    },
    "type.body_size": {
      "source": "dom",
      "confidence": 0.85
    },
    "type.display_size": {
      "source": "dom",
      "confidence": 0.85
    },
    "type.styles": {
      "source": "dom",
      "confidence": 0.8
    },
    "type.ratio": {
      "source": "dom",
      "confidence": 0.7,
      "note": "geometric fit over the scale above body size"
    },
    "type.case": {
      "source": "dom",
      "confidence": 0.75
    },
    "type.line_height": {
      "source": "dom",
      "confidence": 0.85
    },
    "type.tracking_display": {
      "source": "dom",
      "confidence": 0.85
    },
    "space.base": {
      "source": "dom",
      "confidence": 0.89,
      "note": "share of paddings/margins/gaps on the base: 0.87"
    },
    "space.scale_px": {
      "source": "dom",
      "confidence": 0.85
    },
    "space.section_padding_px": {
      "source": "dom",
      "confidence": 0.65,
      "needs_review": true
    },
    "space.density": {
      "source": "dom",
      "confidence": 0.85
    },
    "shape.radii_px": {
      "source": "dom",
      "confidence": 0.88
    },
    "shape.dominant_radius": {
      "source": "dom",
      "confidence": 0.8
    },
    "shape.border_usage": {
      "source": "dom",
      "confidence": 0.8
    },
    "depth.shadows": {
      "source": "dom",
      "confidence": 0.9
    },
    "depth.style": {
      "source": "dom",
      "confidence": 0.75
    },
    "layout.container_px": {
      "source": "dom",
      "confidence": 0.8
    },
    "layout.columns": {
      "source": "dom",
      "confidence": 0.6,
      "note": "most common grid track count; layout grids and card grids are not separated",
      "needs_review": true
    },
    "layout.nav": {
      "source": "dom",
      "confidence": 0.78
    },
    "layout.hero": {
      "source": "dom",
      "confidence": 0.6,
      "note": "geometric heuristic over the h1 and nearby media",
      "needs_review": true
    },
    "layout.section_count": {
      "source": "dom",
      "confidence": 0.6,
      "needs_review": true
    },
    "motion": {
      "source": "dom",
      "confidence": 0.8
    },
    "components": {
      "source": "dom",
      "confidence": 0.78
    },
    "stack": {
      "source": "dom",
      "confidence": 0.85,
      "note": "globals, script URLs and response headers"
    },
    "meta": {
      "source": "dom",
      "confidence": 0.99
    },
    "sections[].bbox": {
      "source": "dom",
      "confidence": 0.8
    },
    "sections[].kind": {
      "source": "dom",
      "confidence": 0.59,
      "note": "class-name and content-count heuristics; per-section confidence in sections[].confidence",
      "needs_review": true
    },
    "imagery.media_share": {
      "source": "dom",
      "confidence": 0.8
    },
    "imagery.dominant_colors": {
      "source": "pixels",
      "confidence": 0.7,
      "note": "clustered screenshot pixels inside media boxes (approximate, OKLab ΔE 0.06 clusters)"
    }
  }
}