docs: add privacy page and footer version link

This commit is contained in:
Tero Halla-aho 2025-11-24 22:14:11 +02:00
parent aa2883cb0c
commit 890a9fe041
3 changed files with 104 additions and 0 deletions

View file

@ -255,6 +255,31 @@ p {
font-size: 14px;
}
.site-footer {
padding: 18px 20px 28px;
border-top: 1px solid rgba(148, 163, 184, 0.16);
margin-top: 32px;
}
.footer-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
font-size: 13px;
color: var(--muted);
}
.footer-text code {
font-size: 12px;
}
.privacy-block ul {
margin: 8px 0 0;
padding-left: 18px;
color: #cbd5e1;
}
.cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));

View file

@ -13,12 +13,24 @@ export default function RootLayout({
}: {
children: React.ReactNode;
}) {
const version = process.env.NEXT_PUBLIC_VERSION || 'dev';
return (
<html lang="en">
<body>
<I18nProvider>
<NavBar />
{children}
<footer className="site-footer">
<div className="footer-row">
<span className="footer-text">
<a href="/privacy">Privacy & cookies</a>
</span>
<span className="footer-text">
Version <code>{version}</code>
</span>
</div>
</footer>
</I18nProvider>
</body>
</html>

67
app/privacy/page.tsx Normal file
View file

@ -0,0 +1,67 @@
'use client';
import Link from 'next/link';
export default function PrivacyPage() {
return (
<main className="panel" style={{ maxWidth: 900, margin: '40px auto', display: 'grid', gap: 14 }}>
<div className="breadcrumb">
<Link href="/">Home</Link> / <span>Privacy & cookies</span>
</div>
<h1>Privacy & cookies</h1>
<p style={{ color: '#cbd5e1' }}>Updated: {new Date().toISOString().slice(0, 10)}</p>
<section className="privacy-block">
<h3>What data we collect</h3>
<ul>
<li>Account data: email, password hash, name, phone (optional), role/status.</li>
<li>Listing data: location, contact details, amenities, photos, translations.</li>
<li>Operational logs: minimal request metadata for diagnostics.</li>
</ul>
</section>
<section className="privacy-block">
<h3>How we use your data</h3>
<ul>
<li>To authenticate users and manage sessions.</li>
<li>To publish and moderate listings.</li>
<li>To send transactional email (verification, password reset).</li>
<li>To comply with legal requests or protect the service.</li>
</ul>
</section>
<section className="privacy-block">
<h3>Storage & retention</h3>
<ul>
<li>Data is stored in our Postgres database hosted in the EU.</li>
<li>Backups are retained for disaster recovery; removed accounts/listings may persist in backups for a limited time.</li>
</ul>
</section>
<section className="privacy-block">
<h3>Cookies</h3>
<ul>
<li>We use essential cookies only: a session cookie for login/authentication.</li>
<li>No analytics, marketing, or tracking cookies are used.</li>
</ul>
</section>
<section className="privacy-block">
<h3>Sharing</h3>
<ul>
<li>We do not sell or share personal data with advertisers.</li>
<li>Data may be shared with service providers strictly for running the service (email delivery, hosting).</li>
</ul>
</section>
<section className="privacy-block">
<h3>Your rights</h3>
<ul>
<li>Request access, correction, or deletion of your data.</li>
<li>Withdraw consent for non-essential processing (we currently process only essentials).</li>
<li>Contact support for any privacy questions.</li>
</ul>
</section>
</main>
);
}