← back to Designerrepresentatives

views/public/home.ejs

101 lines

<%- include('../partials/head', { title }) %>
<%- include('../partials/header') %>

<main class="home">
  <section class="hero">
    <div class="wrap">
      <p class="kicker">Independent agencies · Trade-only · Textile · Wallcovering · Contract</p>
      <h1>Behind every line designers spec,<br>there's an independent rep doing the work.</h1>
      <p class="lede">
        A directory of the sales agencies that bring textile, wallcovering, and
        contract collections from manufacturer to showroom floor — listed by
        territory, by vertical, and by the lines they actually carry.
      </p>
      <div class="hero-cta">
        <a class="btn primary" href="/reps">Browse the directory</a>
        <a class="btn ghost"   href="/claim">List your agency</a>
      </div>
    </div>
  </section>

  <section class="section">
    <div class="wrap">
      <div class="section-head">
        <h2>Recently added</h2>
        <a class="muted" href="/reps">View all reps →</a>
      </div>

      <%- include('../partials/grid-controls', { total, sortKey }) %>

      <div class="rep-grid" data-rep-grid>
        <% reps.slice(0, 24).forEach(function (r) { %>
          <article class="rep-card">
            <header>
              <h3><a href="/reps/<%= r.slug %>"><%= r.agency %></a></h3>
              <p class="muted"><%= r.name %><% if (r.city) { %> · <%= r.city %><% } %></p>
            </header>
            <% if (r.lines && r.lines.length) { %>
              <p class="lines"><strong>Lines:</strong> <%= r.lines.join(', ') %></p>
            <% } %>
            <% if (r.territories && r.territories.length) { %>
              <p class="territories"><strong>Territory:</strong> <%= r.territories.join(' · ') %></p>
            <% } %>
            <% if (r.vertical && r.vertical.length) { %>
              <ul class="tags">
                <% r.vertical.forEach(function (v) { %><li><%= v %></li><% }) %>
              </ul>
            <% } %>
          </article>
        <% }); %>
      </div>
    </div>
  </section>

  <section class="section">
    <div class="wrap">
      <div class="section-head">
        <h2>What an independent rep actually does</h2>
        <p class="muted small">A short explainer for designers new to the trade side.</p>
      </div>
      <div class="role-grid">
        <article class="role-card">
          <span class="role-num">01</span>
          <h3>Carries the line</h3>
          <p>An independent rep agency contracts directly with the manufacturer — Schumacher, Holland &amp; Sherry, Maharam, Arc-Com — to show, sample, and sell their collection inside a defined territory. The agency invests in the sample library, the appointments, and the trade relationships the line depends on.</p>
        </article>
        <article class="role-card">
          <span class="role-num">02</span>
          <h3>Owns the territory</h3>
          <p>Lines are carved up by region — Pacific Northwest, Mid-Atlantic, Texas/Oklahoma, So-Cal. The rep listed for your area is the rep that line trusts for your zip code. There is usually exactly one independent agency per line, per territory, by design.</p>
        </article>
        <article class="role-card">
          <span class="role-num">03</span>
          <h3>Services the project</h3>
          <p>From the moment a designer specs a fabric or wallcovering, the rep books the showroom presentation, expedites memo samples, walks claims through, and stays on lead-times. The brand answers to the rep; the rep answers to you.</p>
        </article>
      </div>
    </div>
  </section>

  <section class="section alt">
    <div class="wrap two-col">
      <div>
        <h2>How designers use this directory</h2>
        <ol class="prose">
          <li><strong>Find the rep, not the brand.</strong> When you spec a line, the independent rep is who actually services your project — sample logistics, lead-time, claims, in-showroom presentations.</li>
          <li><strong>Filter by territory + vertical.</strong> A residential rep in CA will not have the same showrooms as a healthcare rep in TX.</li>
          <li><strong>Reach out directly.</strong> Each listing links to the agency's own contact page. We do not gate intros.</li>
        </ol>
      </div>
      <div>
        <h2>For rep agencies</h2>
        <p>If your agency is listed and you want to claim or update your profile — or you'd like to be added — use the <a href="/claim">listing form</a>. Listings are free.</p>
        <p class="muted">We do not sell rep contact data. We do not run paid placement.</p>
      </div>
    </div>
  </section>
</main>

<%- include('../partials/footer') %>
<script src="/js/grid-controls.js" defer></script>