← back to Stars of Design
starsofdesign: GET /privacy + /terms — minimal legal pages (no-collect privacy notice, public-data terms, editorial-only liability). Mirrors asim. Linked from footer + sitemap. Closes parity gap.
00a2a605b222cf6d634d368e5b26145da0f25559 · 2026-05-12 19:42:05 -0700 · Steve Abrams
Files touched
M routes/public.jsM views/partials/footer.ejsA views/public/privacy.ejsA views/public/terms.ejs
Diff
commit 00a2a605b222cf6d634d368e5b26145da0f25559
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Tue May 12 19:42:05 2026 -0700
starsofdesign: GET /privacy + /terms — minimal legal pages (no-collect privacy notice, public-data terms, editorial-only liability). Mirrors asim. Linked from footer + sitemap. Closes parity gap.
---
routes/public.js | 16 +++++++++++++++
views/partials/footer.ejs | 3 ++-
views/public/privacy.ejs | 46 ++++++++++++++++++++++++++++++++++++++++++
views/public/terms.ejs | 51 +++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 115 insertions(+), 1 deletion(-)
diff --git a/routes/public.js b/routes/public.js
index 766bad6..6740630 100644
--- a/routes/public.js
+++ b/routes/public.js
@@ -419,6 +419,20 @@ router.get('/submit', (req, res) => {
res.render('public/submit', { title: 'Submit a designer — Stars of Design' });
});
+router.get('/privacy', (req, res) => {
+ res.render('public/privacy', {
+ title: 'Privacy — Stars of Design',
+ meta_desc_override: 'Stars of Design privacy notice — no accounts, no identifying cookies, anonymous like/comment, city+state only (no street addresses).',
+ });
+});
+
+router.get('/terms', (req, res) => {
+ res.render('public/terms', {
+ title: 'Terms of use — Stars of Design',
+ meta_desc_override: 'Stars of Design terms of use — editorial directory, public-data sourcing, user submissions, claim your profile, liability.',
+ });
+});
+
router.get('/sitemap.xml', async (req, res, next) => {
try {
const base = 'https://starsofdesign.com';
@@ -437,6 +451,8 @@ router.get('/sitemap.xml', async (req, res, next) => {
{ loc: `${base}/videos`, priority: '0.8', changefreq: 'weekly' },
{ loc: `${base}/about`, priority: '0.5', changefreq: 'monthly' },
{ loc: `${base}/submit`, priority: '0.4', changefreq: 'monthly' },
+ { loc: `${base}/privacy`, priority: '0.3', changefreq: 'yearly' },
+ { loc: `${base}/terms`, priority: '0.3', changefreq: 'yearly' },
...all.map((d) => ({
loc: `${base}/designers/${d.slug}`,
priority: '0.8',
diff --git a/views/partials/footer.ejs b/views/partials/footer.ejs
index 047a5c9..a2a75ec 100644
--- a/views/partials/footer.ejs
+++ b/views/partials/footer.ejs
@@ -28,7 +28,8 @@
<p>
<a href="/designers">All designers</a><br>
<a href="/submit">Submit a designer</a><br>
- <a href="/about">About this directory</a>
+ <a href="/about">About this directory</a><br>
+ <a href="/privacy">Privacy</a> · <a href="/terms">Terms</a>
</p>
</div>
</div>
diff --git a/views/public/privacy.ejs b/views/public/privacy.ejs
new file mode 100644
index 0000000..bd85618
--- /dev/null
+++ b/views/public/privacy.ejs
@@ -0,0 +1,46 @@
+<%- include('../partials/head', { title }) %>
+<%- include('../partials/header') %>
+
+<main class="privacy-page">
+ <section class="section">
+ <div class="wrap narrow">
+ <h1>Privacy</h1>
+ <p class="lede">Last updated 2026-05-12.</p>
+
+ <h2>What we collect</h2>
+ <p>
+ Stars of Design does not require an account, does not store identifying
+ cookies, and does not collect personal data beyond what server logs
+ naturally record (IP address, user-agent, request path) for security
+ and abuse mitigation. Comments on the /feed surface accept an anonymous
+ ID we set in your browser; no email or identifying info is required to
+ comment or like.
+ </p>
+
+ <h2>Designer + firm profiles</h2>
+ <p>
+ Designer and firm profiles are built from publicly available material:
+ published interviews, shelter-magazine features, the designer's own
+ studio site. We surface city + state only — never street addresses,
+ zip codes, or phone numbers. If your profile contains information
+ you'd like removed or corrected, email
+ <a href="mailto:info@starsofdesign.com">info@starsofdesign.com</a>.
+ </p>
+
+ <h2>Third-party services</h2>
+ <p>
+ Anonymous usage analytics (Google Analytics 4 with IP anonymization)
+ for aggregate traffic patterns. Embedded fonts via Google Fonts.
+ </p>
+
+ <h2>Contact</h2>
+ <p>
+ Questions, data takedown requests, profile updates:
+ <a href="mailto:info@starsofdesign.com">info@starsofdesign.com</a> or
+ <a href="tel:+18883734564">888-373-4564</a>.
+ </p>
+ </div>
+ </section>
+</main>
+
+<%- include('../partials/footer') %>
diff --git a/views/public/terms.ejs b/views/public/terms.ejs
new file mode 100644
index 0000000..aa6c8c3
--- /dev/null
+++ b/views/public/terms.ejs
@@ -0,0 +1,51 @@
+<%- include('../partials/head', { title }) %>
+<%- include('../partials/header') %>
+
+<main class="terms-page">
+ <section class="section">
+ <div class="wrap narrow">
+ <h1>Terms of use</h1>
+ <p class="lede">Last updated 2026-05-12.</p>
+
+ <h2>Editorial directory</h2>
+ <p>
+ Stars of Design is an editorial profile directory. Designers do not pay
+ for placement, and there is no sponsored or paid-promotion tier. We
+ make no warranty as to the accuracy or completeness of any profile.
+ </p>
+
+ <h2>Public-data sourcing</h2>
+ <p>
+ Designer and firm profiles are sourced from publicly available
+ material: interviews, shelter-magazine features, the designer's own
+ site. We do not reproduce copyrighted imagery. If a profile uses an
+ image you hold rights to in error, <a href="mailto:info@starsofdesign.com">contact us</a>
+ for immediate removal.
+ </p>
+
+ <h2>User submissions</h2>
+ <p>
+ Comments and likes are subject to a basic spam filter and moderation.
+ Anonymous IDs are set in your browser to enable like/unlike toggles
+ and rate-limiting; no identifying info is collected.
+ </p>
+
+ <h2>Claim your profile</h2>
+ <p>
+ Designers and firms may claim their profile via the
+ <a href="/submit">submission form</a> and request edits, additions,
+ or removal at any time.
+ </p>
+
+ <h2>Liability</h2>
+ <p>
+ The site is provided as-is. Stars of Design is published by Designer
+ Wallcoverings and exists to surface working designers — there is no
+ commercial transaction here. Vendor or studio links route to the
+ respective third party under their terms.
+ </p>
+ </div>
+ </section>
+</main>
+
+<%- include('../partials/footer') %>
← ed2f2d8 starsofdesign: BreadcrumbList JSON-LD across all 3 detail pa
·
back to Stars of Design
·
starsofdesign: smoke test harness — test/smoke.js (zero deps 9d16cb3 →