# Density Labs — The AI Engineering Partner

AI Diagnose and AI Implementation for mid market US companies ($50M to $500M ARR). A written AI transformation roadmap in two weeks, or a full implementation run on The Density Build Method.

<section class="hero">
  <div class="container">
    <div class="hero-content">
      <div class="hero-eyebrow">The AI Engineering Partner for mid market</div>
      <h1 data-strike-after="of shipping " data-strike-text="slides">Ship AI to <span class="accent">production</span>. Ten years of shipping software.</h1>
      <p class="lede">Using <a href="/method/" class="suttle-link">Our Method</a>, the operating system behind a decade of product development.</p>
      <div class="hero-cta">
        <a href="" class="btn-primary">Book a 30 min call</a>
      </div>
    </div>

    <div class="hero-stats">
      <div class="hero-stat">
        <div class="hero-stat-num">96%</div>
        <div class="hero-stat-label">Client retention<br/>Industry avg around 75%</div>
      </div>
      <div class="hero-stat">
        <div class="hero-stat-num">10+</div>
        <div class="hero-stat-label">Years partnered<br/>Mid market US companies</div>
      </div>
      <div class="hero-stat">
        <div class="hero-stat-num">30+</div>
        <div class="hero-stat-label">Senior engineers<br/>shipping in production</div>
      </div>
      <div class="hero-stat">
        <div class="hero-stat-num">12+</div>
        <div class="hero-stat-label">Active engagements<br/>$50M to $500M ARR</div>
      </div>
    </div>
  </div>
</section>

<section class="trust-band">
  <div class="container">
    <div class="trust-inner">
      <div class="trust-logos">
        <span>Ooma · 10 years</span>
        <span class="trust-sep">·</span>
        <span>Remine · 5 years</span>
      </div>
    </div>
  </div>
</section>

<section class="founder" id="founder">
  <div class="container">
    <div class="founder-grid">
      <div class="founder-photo-wrap">
        <img src="" alt="Federico Ramallo, founder of Density Labs" class="founder-photo" />
        <div class="founder-photo-caption">Buenos Aires · Guadalajara · The Americas</div>
      </div>
      <div class="founder-content">
        <div class="section-eyebrow">From the founder</div>
        <h2><a href="https://ramallo.io" target="_blank" rel="noopener" class="suttle-link">Federico Ramallo</a>. <span class="accent">Two decades shipping production software.</span></h2>
        <p class="founder-lede">Founder of Density Labs since 2016. Author of <em><a href="https://ramallo.io/books/the-invisible-distance/" target="_blank" rel="noopener" class="suttle-link">The Invisible Distance</a></em>, the operating system for engineering leaders running distributed teams. Host of <a href="https://prevetted.fm" target="_blank" rel="noopener" class="suttle-link">The PreVetted Podcast</a>, 150 plus conversations with VPs of Engineering, CTOs, and operators on what actually works.</p>
        <p class="founder-body">Density is the working practice behind a decade of partnerships. The method ports to AI. We are applying it now to the next chapter. The book and the podcast are the long form. The firm is the proof.</p>
      </div>
    </div>
  </div>
</section>

<section class="newsletter-band" id="newsletter">
  <div class="container">
    <div class="newsletter-band-inner">
      <div class="newsletter-band-text">
        <div class="newsletter-band-label">Field notes</div>
        <h3 class="newsletter-band-headline">A short monthly note on what's <em>actually shipping</em> in production AI.</h3>
        <p class="newsletter-band-promise">Written for engineering leaders. No filler, no upsells.</p>
      </div>
      <div class="newsletter-band-form">
        <script async src="https://subscribe-forms.beehiiv.com/v3/loader.js" data-beehiiv-form="5e108a54-c680-4e61-8b59-12a79b8e8620"></script>
      </div>
    </div>
  </div>
</section>

<section class="market-reality">
  <div class="container">
    <div class="reality-grid">
      <div class="reality-left">
        <div class="market-eyebrow">The reality</div>
        <h2 class="reality-h2">95% of AI pilots in mid market companies <span class="accent">never make it to production.</span></h2>
        <div class="reality-stat-card">
          <div class="reality-stat-num">$300K</div>
          <p class="reality-stat-text"><strong>All in cost</strong> of a senior US AI engineer hire. Six months to fill the role. Most mid market teams can't absorb this.</p>
        </div>
        <p class="reality-source">MIT NANDA, 2025. Vendor led projects ship at 2x the rate of internal led.</p>
      </div>
      <div class="reality-right">
        <p class="reality-pullquote">The reason isn't the technology. <em>It's the plan.</em></p>
        <p>Most engineering teams have ideas. Most have budget. What they don't have is a written, prioritized plan that survives contact with their actual codebase, data, and team.</p>
        <p>Most providers walk in with a slide deck and a sales motion. We walk in with a fixed scope diagnostic, an honest read on whether AI is the right next move, and a plan you keep regardless of what comes next.</p>
        <p class="reality-close">That's where we start.</p>
      </div>
    </div>
  </div>
</section>

<style>
  /* Density Build Method section */
  .build-method { padding: 120px 0; background: var(--paper-soft); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .bm-header { text-align: center; max-width: 820px; margin: 0 auto 72px; }
  .bm-header .section-eyebrow { justify-content: center; display: inline-flex; }
  .bm-title {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(40px, 5.2vw, 64px);
    line-height: 1.05;
    letter-spacing: -0.03em;
    color: var(--ink);
    margin: 14px 0 18px;
  }
  .bm-title .accent { color: var(--red); }
  .bm-title em { font-style: italic; color: var(--red); font-weight: 800; }
  .bm-sub {
    font-size: 18px;
    line-height: 1.55;
    color: var(--ink-soft);
    max-width: 680px;
    margin: 0 auto;
    font-weight: 300;
  }
  .bm-sub strong { color: var(--ink); font-weight: 600; }

  /* Three options: before / after */
  .bm-options { max-width: 1180px; margin: 0 auto 96px; }
  .bm-options-label {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--ink-muted);
    margin-bottom: 14px;
  }
  .bm-options-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 36px; }
  .bm-options-row.after { grid-template-columns: 1fr 1fr 1fr; }
  .bm-option {
    background: var(--white);
    border: 1px solid var(--line);
    border-left: 4px solid var(--ink-faint);
    border-radius: 8px;
    padding: 24px 28px;
  }
  .bm-option.new { border-left-color: var(--red); background: linear-gradient(180deg, var(--red-soft, rgba(153,27,27,0.06)) 0%, var(--white) 60%); }
  .bm-option-tag {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--ink-muted);
    margin-bottom: 10px;
  }
  .bm-option.new .bm-option-tag { color: var(--red); }
  .bm-option-name {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 22px;
    color: var(--ink);
    margin-bottom: 4px;
    letter-spacing: -0.015em;
  }
  .bm-option-speed {
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ink-muted);
  }
  .bm-options-close {
    text-align: center;
    font-size: 15px;
    color: var(--ink-soft);
    margin-top: 8px;
  }
  .bm-options-close em { color: var(--red); font-style: italic; font-weight: 600; }

  /* Plan / Build / Ship grid */
  .bm-phases-band { max-width: 1200px; margin: 0 auto; }
  .bm-phases-title {
    text-align: center;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(28px, 3.6vw, 40px);
    color: var(--ink);
    margin-bottom: 14px;
    letter-spacing: -0.02em;
  }
  .bm-phases-title .plan { color: #2a7a8a; }
  .bm-phases-title .build { color: var(--red); }
  .bm-phases-title .ship { color: #8a2a6e; }
  .bm-phases-sub {
    text-align: center;
    font-size: 15px;
    color: var(--ink-muted);
    margin-bottom: 48px;
  }
  .bm-phases-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .bm-phase-col {
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 32px 28px;
  }
  .bm-phase-col.plan { border-top: 3px solid #2a7a8a; }
  .bm-phase-col.build { border-top: 3px solid var(--red); }
  .bm-phase-col.ship { border-top: 3px solid #8a2a6e; }
  .bm-phase-col-label {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    margin-bottom: 8px;
    font-weight: 600;
  }
  .bm-phase-col.plan .bm-phase-col-label { color: #2a7a8a; }
  .bm-phase-col.build .bm-phase-col-label { color: var(--red); }
  .bm-phase-col.ship .bm-phase-col-label { color: #8a2a6e; }
  .bm-phase-col-tag {
    font-size: 14px;
    color: var(--ink-soft);
    margin-bottom: 24px;
    font-style: italic;
  }
  .bm-phase-row {
    display: flex;
    align-items: baseline;
    gap: 14px;
    padding: 14px 0;
    border-top: 1px solid var(--line);
  }
  .bm-phase-row:first-of-type { border-top: none; padding-top: 0; }
  .bm-phase-num {
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.12em;
    color: var(--ink-muted);
    min-width: 22px;
    font-weight: 600;
  }
  .bm-phase-name {
    font-family: var(--font-body);
    font-size: 15px;
    color: var(--ink);
    font-weight: 500;
    flex: 1;
  }
  .bm-phase-dur {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--ink-muted);
    letter-spacing: 0.08em;
  }

  /* Total focused work strip */
  .bm-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 36px auto 0;
    padding: 20px 28px;
    background: var(--ink);
    color: var(--white);
    border-radius: 8px;
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
  }
  .bm-total strong { color: var(--red); font-weight: 700; }

  /* PRDs callout */
  .bm-prds {
    max-width: 1180px;
    margin: 96px auto 0;
    background: var(--ink);
    color: var(--white);
    border-radius: 16px;
    padding: 64px 56px;
    border-left: 6px solid var(--red);
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 56px;
    align-items: center;
    position: relative;
    overflow: hidden;
  }
  .bm-prds::before {
    content: '';
    position: absolute;
    top: -100px;
    right: -100px;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(153, 27, 27, 0.18) 0%, transparent 70%);
    pointer-events: none;
  }
  .bm-prds-eyebrow {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--red);
    margin-bottom: 18px;
    position: relative;
    z-index: 2;
  }
  .bm-prds h3 {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(28px, 3.4vw, 40px);
    line-height: 1.1;
    color: var(--white);
    margin-bottom: 20px;
    letter-spacing: -0.025em;
    position: relative;
    z-index: 2;
  }
  .bm-prds h3 em { color: var(--red); font-style: italic; }
  .bm-prds p {
    font-size: 16px;
    line-height: 1.65;
    color: var(--text-on-dark-soft, rgba(255,255,255,0.78));
    margin-bottom: 14px;
    position: relative;
    z-index: 2;
  }
  .bm-prds p strong { color: var(--white); font-weight: 600; }
  .bm-prds-roles {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 28px 28px;
    position: relative;
    z-index: 2;
  }
  .bm-prds-roles-label {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--red);
    margin-bottom: 16px;
  }
  .bm-role-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  }
  .bm-role-row:last-child { border-bottom: none; }
  .bm-role-title {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--white);
    font-weight: 500;
  }
  .bm-role-agent {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--red);
    letter-spacing: 0.08em;
  }

  @media (max-width: 980px) {
    .build-method { padding: 80px 0; }
    .bm-options-row, .bm-options-row.after, .bm-phases-grid { grid-template-columns: 1fr; }
    .bm-prds { grid-template-columns: 1fr; padding: 48px 32px; gap: 32px; }
    .bm-total { flex-direction: column; gap: 12px; text-align: center; }
  }
</style>

<section class="build-method" id="method">
  <div class="container">

    <!-- PLAN · BUILD · SHIP PHASES -->
    <div class="bm-phases-band">

      <div class="bm-header">
        <div class="section-eyebrow">Inside AI Implementation · the build path</div>
        <h2 class="bm-title">The Density <span class="accent">Build Method</span>.</h2>
        <p class="bm-sub"><strong>One path under AI Implementation: building net-new AI products, adapted to mid-market timelines.</strong> Twelve phases across Plan, Build, Ship. Roughly twenty eight days of focused work for an experienced team. When the engagement is integrating AI into an existing system instead of building a new one, we scope a different shape and tell you so on the first call.</p>
      </div>

      <div class="bm-phases-grid">
        <div class="bm-phase-col plan">
          <div class="bm-phase-col-label">Plan · phases 1 to 3</div>
          <div class="bm-phase-col-tag">Spec the product, build the toolkit.</div>
          <div class="bm-phase-row">
            <span class="bm-phase-num">01</span>
            <span class="bm-phase-name">Ideation &amp; validation</span>
            <span class="bm-phase-dur">1 to 2 days</span>
          </div>
          <div class="bm-phase-row">
            <span class="bm-phase-num">02</span>
            <span class="bm-phase-name">Planning &amp; PRDs</span>
            <span class="bm-phase-dur">4 to 5 days</span>
          </div>
          <div class="bm-phase-row">
            <span class="bm-phase-num">03</span>
            <span class="bm-phase-name">Design system</span>
            <span class="bm-phase-dur">~half day</span>
          </div>
        </div>

        <div class="bm-phase-col build">
          <div class="bm-phase-col-label">Build · phases 4 to 8</div>
          <div class="bm-phase-col-tag">Make the engine, connect it, polish it.</div>
          <div class="bm-phase-row">
            <span class="bm-phase-num">04</span>
            <span class="bm-phase-name">Frontend build</span>
            <span class="bm-phase-dur">6 to 8 days</span>
          </div>
          <div class="bm-phase-row">
            <span class="bm-phase-num">05</span>
            <span class="bm-phase-name">Backend</span>
            <span class="bm-phase-dur">1 to 2 days</span>
          </div>
          <div class="bm-phase-row">
            <span class="bm-phase-num">06</span>
            <span class="bm-phase-name">Wireup</span>
            <span class="bm-phase-dur">~1 day</span>
          </div>
          <div class="bm-phase-row">
            <span class="bm-phase-num">07</span>
            <span class="bm-phase-name">Debugging</span>
            <span class="bm-phase-dur">2 to 4 days</span>
          </div>
          <div class="bm-phase-row">
            <span class="bm-phase-num">08</span>
            <span class="bm-phase-name">Polishing</span>
            <span class="bm-phase-dur">1 to 3 days</span>
          </div>
        </div>

        <div class="bm-phase-col ship">
          <div class="bm-phase-col-label">Ship · phases 9 to 12</div>
          <div class="bm-phase-col-tag">Harden it, get it live, keep it alive.</div>
          <div class="bm-phase-row">
            <span class="bm-phase-num">09</span>
            <span class="bm-phase-name">Hardening</span>
            <span class="bm-phase-dur">~1 day</span>
          </div>
          <div class="bm-phase-row">
            <span class="bm-phase-num">10</span>
            <span class="bm-phase-name">Refactor + final debug</span>
            <span class="bm-phase-dur">1 to 3 days</span>
          </div>
          <div class="bm-phase-row">
            <span class="bm-phase-num">11</span>
            <span class="bm-phase-name">Deployment</span>
            <span class="bm-phase-dur">3 to 4 days</span>
          </div>
          <div class="bm-phase-row">
            <span class="bm-phase-num">12</span>
            <span class="bm-phase-name">Maintenance</span>
            <span class="bm-phase-dur">forever</span>
          </div>
        </div>
      </div>

      <div class="bm-total">
        <span>Total focused work · <strong>~28 days</strong></span>
        <span>Calendar time · plan the days, not the hours</span>
      </div>
    </div>

  </div>
</section>

<section class="pricing" id="pricing">
  <div class="container">
    <div class="pricing-header">
      <div class="section-eyebrow">Ways to engage</div>
      <h2 class="section-h2">Two ways in. <span class="accent">One that fits.</span></h2>
      <p class="section-sub" style="margin: 16px auto 0;">Start with AI Diagnose for a written plan, or scope a full Implementation.</p>
    </div>

    <div class="pricing-grid two-cards">

      <div class="price-card featured">
        <div class="price-badge">Start here · founding cohort</div>
        <div class="price-name">AI Diagnose</div>
        <div class="price-tagline">For teams figuring out their AI plan.</div>
        <div class="price-amount"><span class="price-was">$7,500</span><span class="accent">$</span>2,500</div>
        <div class="price-period">Fixed · 2 weeks · founding-cohort price</div>
        <ul class="price-features">
          <li>Written AI diagnostic and roadmap</li>
          <li>Capability and architecture gap analysis</li>
          <li>Implementation plan, prioritized</li>
          <li>Honest read on whether AI is the right next move</li>
          <li>Founder-led for the first cohort. Yours to keep, no obligation.</li>
        </ul>
        <p class="price-note">The standard engagement is $7,500. The first founding cohort pays $2,500, founder-led, in exchange for working with us early.</p>
        <a href="/get-started/diagnostic/" class="price-cta primary">Start AI Diagnose →</a>
      </div>

      <div class="price-card">
        <div class="price-name">AI Implementation</div>
        <div class="price-tagline">Take a plan to production.</div>
        <div class="price-config">As a single <a href="/get-started/ai-engineer/">AI Engineer</a> or an <a href="/get-started/ai-squad/">AI Squad</a>.</div>
        <div class="price-amount" style="font-size: 28px; line-height: 1.4; padding-top: 18px;">Scoped to your roadmap</div>
        <div class="price-period">Built around the plan</div>
        <ul class="price-features">
          <li>Architecture, build, evals, ship</li>
          <li>RAG, agents, MLOps patterns we have run in production</li>
          <li>Weekly working sessions with your team</li>
          <li>Measurable exit criteria each phase</li>
          <li>Outcome focused, not hour focused</li>
        </ul>
        <a href="" class="price-cta secondary">Book a 30 min call →</a>
      </div>

    </div>
    <p class="pricing-microcopy">Each starts with a quick fit check. We confirm we can help before you pay anything.</p>
  </div>
</section>

<section class="final-cta" id="contact">
  <div class="container">
    <h2>Start with <span class="accent">AI Diagnose</span>.</h2>
    <p>Standard $7,500. Founding cohort pays $2,500. Two weeks, a written plan you can act on, yours to keep. No obligation to continue.</p>
    <a href="/get-started/diagnostic/" class="btn-primary">Start AI Diagnose</a>
  </div>
</section>

<script>
  (function () {
    var h1 = document.querySelector('h1[data-strike-after][data-strike-text]');
    if (!h1) return;
    var after = h1.getAttribute('data-strike-after');
    var text = h1.getAttribute('data-strike-text');
    if (!after || !text) return;

    var walker = document.createTreeWalker(h1, NodeFilter.SHOW_TEXT, null);
    var node;
    while ((node = walker.nextNode())) {
      var idx = node.nodeValue.indexOf(after);
      if (idx === -1) continue;
      var splitAt = idx + after.length;
      var tail = node.splitText(splitAt);
      var strike = document.createElement('span');
      strike.className = 'strike';
      strike.setAttribute('aria-hidden', 'true');
      strike.textContent = text;
      node.parentNode.insertBefore(strike, tail);
      node.parentNode.insertBefore(document.createTextNode(' '), tail);
      break;
    }
  })();
</script>
