← 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 & 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>