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>
24 lines
643 B
TypeScript
24 lines
643 B
TypeScript
import { ImageResponse } from "next/og";
|
|
import { OGImageTemplate } from "../../src/components/OGImageTemplate";
|
|
import { getOgFonts, OG_IMAGE_SIZE } from "../../src/lib/og-helper";
|
|
|
|
export const size = OG_IMAGE_SIZE;
|
|
export const contentType = "image/png";
|
|
export const runtime = "nodejs";
|
|
|
|
export default async function Image() {
|
|
const fonts = await getOgFonts();
|
|
|
|
return new ImageResponse(
|
|
<OGImageTemplate
|
|
title="Marc Mintel"
|
|
description="Freelance developer. I build web apps, interfaces and websites."
|
|
label="Web apps and websites"
|
|
/>,
|
|
{
|
|
...OG_IMAGE_SIZE,
|
|
fonts: fonts as any,
|
|
},
|
|
);
|
|
}
|