docs: add privacy page and footer version link
This commit is contained in:
parent
aa2883cb0c
commit
890a9fe041
3 changed files with 104 additions and 0 deletions
|
|
@ -255,6 +255,31 @@ p {
|
||||||
font-size: 14px;
|
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 {
|
.cards {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
||||||
|
|
|
||||||
|
|
@ -13,12 +13,24 @@ export default function RootLayout({
|
||||||
}: {
|
}: {
|
||||||
children: React.ReactNode;
|
children: React.ReactNode;
|
||||||
}) {
|
}) {
|
||||||
|
const version = process.env.NEXT_PUBLIC_VERSION || 'dev';
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<body>
|
<body>
|
||||||
<I18nProvider>
|
<I18nProvider>
|
||||||
<NavBar />
|
<NavBar />
|
||||||
{children}
|
{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>
|
</I18nProvider>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
67
app/privacy/page.tsx
Normal file
67
app/privacy/page.tsx
Normal 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>
|
||||||
|
);
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue