feat: remote without fixed office hours, said on the freelance page
The site said "available during European business hours". That is not how the owner works: he works from wherever he is and plans his own time; meetings can be arranged, all-day availability cannot. The freelance page now says so in its booking section, and the homepage answer on how to reach him no longer promises business hours. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -241,6 +241,14 @@ export default async function FreelancePage({ params }: Props) {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Reveal>
|
</Reveal>
|
||||||
|
<Reveal>
|
||||||
|
<div className="mt-12 border-t border-slate-900 pt-6 md:mt-20">
|
||||||
|
<h3 className="m-0 font-sans text-2xl font-bold tracking-tight text-slate-900 md:text-4xl">
|
||||||
|
{booking.remote.title}
|
||||||
|
</h3>
|
||||||
|
<p className={`${BODY} mt-4 max-w-3xl`}>{booking.remote.text}</p>
|
||||||
|
</div>
|
||||||
|
</Reveal>
|
||||||
</Block>
|
</Block>
|
||||||
|
|
||||||
<Block
|
<Block
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ Status note: sections 3 to 6 describe the site as built. Sections 2 and 9 are ke
|
|||||||
- **Never mention AI as my own tool.** How I work is none of the client's business: no "AI-built", "AI-accelerated", "AI-code rescue", no FAQ about AI tools. The one exception is the automation service, where AI steps are part of what the client gets (sorting, summarising, reading documents).
|
- **Never mention AI as my own tool.** How I work is none of the client's business: no "AI-built", "AI-accelerated", "AI-code rescue", no FAQ about AI tools. The one exception is the automation service, where AI steps are part of what the client gets (sorting, summarising, reading documents).
|
||||||
- **Modest and factual.** No promises I have not made (response times, weekly updates, start dates, search ranking). Only state what the owner confirmed. No superlatives.
|
- **Modest and factual.** No promises I have not made (response times, weekly updates, start dates, search ranking). Only state what the owner confirmed. No superlatives.
|
||||||
- **No internal method vocabulary** on client-facing pages: no specs, TDD, mutation testing, coverage, pull requests. Translate into what the client gets: changes do not break things, predictable cost.
|
- **No internal method vocabulary** on client-facing pages: no specs, TDD, mutation testing, coverage, pull requests. Translate into what the client gets: changes do not break things, predictable cost.
|
||||||
- Do not say: "everything", "fullstack for anyone", "vibe coding". No location or tax talk; say "remote, available during European business hours".
|
- Do not say: "everything", "fullstack for anyone", "vibe coding". No location or tax talk; say "remote". Not "available during European business hours" (owner, 2026-10-05): he works as a digital nomad without fixed hours; meetings can be arranged, all-day availability cannot. This is said on the freelance page only.
|
||||||
- Pick the visitor up: introduce me first, then let them choose their need (developer for a product, make an app reliable, just a website), then explain for that need what they get, how it runs, what it costs.
|
- Pick the visitor up: introduce me first, then let them choose their need (developer for a product, make an app reliable, just a website), then explain for that need what they get, how it runs, what it costs.
|
||||||
- Language (owner decision, 2026-10-04): German is the main language at the root, English lives under `/en`. The language is detected from the browser and can be switched in the header. The videos and their post texts exist in both languages too (`apps/video/src/content/videos.ts`).
|
- Language (owner decision, 2026-10-04): German is the main language at the root, English lives under `/en`. The language is detected from the browser and can be switched in the header. The videos and their post texts exist in both languages too (`apps/video/src/content/videos.ts`).
|
||||||
|
|
||||||
|
|||||||
@@ -585,6 +585,10 @@ export const de: Content = {
|
|||||||
"Einzelne Tage buche ich nicht",
|
"Einzelne Tage buche ich nicht",
|
||||||
],
|
],
|
||||||
cta: "Verfügbarkeit anfragen",
|
cta: "Verfügbarkeit anfragen",
|
||||||
|
remote: {
|
||||||
|
title: "Remote, ohne feste Bürozeiten",
|
||||||
|
text: "Ich arbeite ortsunabhängig und teile mir die Zeit selbst ein. Für Meetings mit Ihrem Team bin ich nach Absprache da. Eine durchgehende Erreichbarkeit über den ganzen Tag gibt es nicht; dafür arbeite ich in der übrigen Zeit ungestört an Ihrem Projekt.",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
teaser: {
|
teaser: {
|
||||||
title: "Sie entwickeln selbst oder leiten ein Team?",
|
title: "Sie entwickeln selbst oder leiten ein Team?",
|
||||||
@@ -802,7 +806,7 @@ export const de: Content = {
|
|||||||
{
|
{
|
||||||
question: "Wie erreiche ich Sie?",
|
question: "Wie erreiche ich Sie?",
|
||||||
answer:
|
answer:
|
||||||
"Per E-Mail oder Videocall. Ich arbeite remote und bin zu europäischen Geschäftszeiten erreichbar.",
|
"Per E-Mail oder Videocall. Ich arbeite remote; einen Termin vereinbaren wir so, dass er für Sie passt.",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -572,6 +572,10 @@ export const en: Content = {
|
|||||||
"I do not book single days",
|
"I do not book single days",
|
||||||
],
|
],
|
||||||
cta: "Ask about availability",
|
cta: "Ask about availability",
|
||||||
|
remote: {
|
||||||
|
title: "Remote, without fixed office hours",
|
||||||
|
text: "I work from wherever I am and plan my own time. For meetings with your team I am there by arrangement. I am not reachable all day long; in return I work on your project undisturbed the rest of the time.",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
teaser: {
|
teaser: {
|
||||||
title: "You develop yourself or lead a team?",
|
title: "You develop yourself or lead a team?",
|
||||||
@@ -782,7 +786,7 @@ export const en: Content = {
|
|||||||
{
|
{
|
||||||
question: "How do I reach you?",
|
question: "How do I reach you?",
|
||||||
answer:
|
answer:
|
||||||
"By email or video call. I work remotely and am available during European business hours.",
|
"By email or video call. I work remotely; we agree on a time that suits you.",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -279,6 +279,8 @@ export type Content = {
|
|||||||
readonly example: PathPrice;
|
readonly example: PathPrice;
|
||||||
readonly terms: readonly string[];
|
readonly terms: readonly string[];
|
||||||
readonly cta: string;
|
readonly cta: string;
|
||||||
|
/** Where and when the owner works: remote, no fixed hours, meetings by arrangement. */
|
||||||
|
readonly remote: TitledText;
|
||||||
};
|
};
|
||||||
/** The pointer to this page on the homepage. */
|
/** The pointer to this page on the homepage. */
|
||||||
readonly teaser: TitledText & { readonly cta: string };
|
readonly teaser: TitledText & { readonly cta: string };
|
||||||
|
|||||||
Reference in New Issue
Block a user