Files
mintel.me/apps/web/app/(site)/privacy/page.tsx
T
mmintelandClaude Opus 5.5 fa40fefe2f feat: rebuild mintel.me as a single-page freelance site
The site now presents one freelance developer on one page: hero, introduction,
four typical cases (developer for a product, make an app reliable, automate a
process, a website) with what you get, how it runs and what it costs, a
process automation section, technology and project fit, how I work, two live
references, questions and contact.

- Hero and closing headline are drawn from running binary digits.
- Each case explains its four steps with an animated drawing; the automation
  section shows example workflows with work travelling between systems; a
  pipeline run shows what a test catches before a release.
- Contact is one email address, kept in parts and assembled in the browser so
  it never appears in the page source (src/domain/email.ts, spec first).
- Imprint and privacy pages added.
- The old site (blog, case studies, contact form, fixed-price pages, video
  rendering and related scripts) is removed. Its URLs redirect to the homepage.
- The deploy smoke test checks the legal pages and the redirects instead of
  the removed case study.
- Dev scripts use docker compose v2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 22:33:06 +02:00

98 lines
3.7 KiB
TypeScript

import type { Metadata } from "next";
import { EmailLink } from "@/src/components/EmailLink";
import { LegalPage, LegalSection } from "@/src/components/LegalPage";
import { OWNER } from "@/src/content/site";
export const metadata: Metadata = {
title: "Privacy",
description: "How mintel.me handles personal data.",
alternates: { canonical: "/privacy" },
robots: { index: false, follow: true },
};
const LINK = "font-bold text-slate-900 underline-offset-4 hover:underline";
export default function PrivacyPage() {
return (
<LegalPage title="Privacy">
<LegalSection heading="Who is responsible">
<p>
{OWNER.name}, {OWNER.street}, {OWNER.city}, {OWNER.country}.
<br />
Email: <EmailLink className={LINK} />
</p>
</LegalSection>
<LegalSection heading="In short">
<p>
This website sets no cookies, shows no advertising and includes no
content from third parties. Fonts and images are served from this
website itself.
</p>
</LegalSection>
<LegalSection heading="Server logs">
<p>
When you open a page, the server processes technical data that your
browser sends: your IP address, the time, the page requested and the
browser type. This is necessary to deliver the website and to keep it
secure. The legal basis is my legitimate interest in running the
website (Article 6(1)(f) GDPR).
</p>
</LegalSection>
<LegalSection heading="Visitor statistics">
<p>
I count page views with Umami, which I run on my own server. It works
without cookies and does not create profiles of individual visitors.
The data is not passed on to third parties. The legal basis is my
legitimate interest in understanding how the website is used (Article
6(1)(f) GDPR).
</p>
</LegalSection>
<LegalSection heading="Error reports">
<p>
If something on this website fails technically, an error report is
sent to an error tracking service that I run on my own server. It
contains technical details such as the page, the browser and the error
message. Sessions are not recorded. The legal basis is my legitimate
interest in a working website (Article 6(1)(f) GDPR).
</p>
</LegalSection>
<LegalSection heading="Storage in your browser">
<p>
If loading a page fails, the website stores a timestamp in your
browser&apos;s session storage so that it reloads only once. It is
deleted when you close the tab and is not sent anywhere.
</p>
</LegalSection>
<LegalSection heading="When you write to me">
<p>
If you send me an email, I process what you write and your address in
order to answer you and, if it comes to that, to prepare a contract
(Article 6(1)(b) GDPR). I keep the correspondence for as long as it is
needed for that purpose or as the law requires.
</p>
</LegalSection>
<LegalSection heading="Your rights">
<p>You have the right to:</p>
<ul>
<li>ask what data I hold about you</li>
<li>have incorrect data corrected</li>
<li>have your data deleted or its processing restricted</li>
<li>object to processing that is based on legitimate interest</li>
<li>receive your data in a portable format</li>
<li>complain to a data protection supervisory authority</li>
</ul>
<p>
To use any of these rights, write to <EmailLink className={LINK} />.
</p>
</LegalSection>
</LegalPage>
);
}