← back to Stars of Design
starsofdesign: JSON-LD Person schema on /clients/:slug (DW client tier) — name + jobTitle + homeLocation + worksFor→Organization. Mirrors firm/designer pattern. Preserves PII rule (city/state only, no street).
044e06cc5288355813301471a2dcf8af34cb0a45 · 2026-05-12 18:41:09 -0700 · Steve Abrams
Files touched
Diff
commit 044e06cc5288355813301471a2dcf8af34cb0a45
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Tue May 12 18:41:09 2026 -0700
starsofdesign: JSON-LD Person schema on /clients/:slug (DW client tier) — name + jobTitle + homeLocation + worksFor→Organization. Mirrors firm/designer pattern. Preserves PII rule (city/state only, no street).
---
routes/public.js | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/routes/public.js b/routes/public.js
index 0d4f8e1..b43af5d 100644
--- a/routes/public.js
+++ b/routes/public.js
@@ -134,10 +134,34 @@ router.get('/clients/:slug', async (req, res, next) => {
}
const c = await clientsLib.getClient(slug);
if (!c) return res.status(404).render('public/404', { title: 'Not found — Stars of Design' });
+ // JSON-LD Person schema for the DW client tier. Firm affiliation, if
+ // known, becomes worksFor → Organization. Memory rule: city + state
+ // only, never street/zip/phone — schema mirrors that exactly.
+ const json_ld = {
+ '@context': 'https://schema.org',
+ '@type': 'Person',
+ name: c.full_name,
+ url: `https://starsofdesign.com/clients/${c.slug || slug}`,
+ jobTitle: c.role || 'Interior Designer',
+ ...(c.city || c.state ? {
+ homeLocation: {
+ '@type': 'Place',
+ name: [c.city, c.state].filter(Boolean).join(', '),
+ }
+ } : {}),
+ ...(c.firm ? {
+ worksFor: {
+ '@type': 'Organization',
+ name: c.firm.name,
+ ...(c.firm.slug ? { url: `https://starsofdesign.com/firms/${c.firm.slug}` } : {}),
+ }
+ } : {}),
+ };
res.render('public/dwclient', {
title: `${c.full_name} — DW Client Designer | Stars of Design`,
meta_desc_override: `${c.full_name}${c.firm ? ' · ' + c.firm.name : ''}${c.city ? ' · ' + c.city : ''}${c.state ? ', ' + c.state : ''}. Active Designer Wallcoverings client.`,
profile: c,
+ json_ld,
});
} catch (e) { next(e); }
});
← 113ac14 starsofdesign: JSON-LD schema — Organization on /firms/:slug
·
back to Stars of Design
·
starsofdesign: home page — WebSite + Organization JSON-LD wi 7348d91 →