diff --git a/apps/web/app/[locale]/freelance/page.tsx b/apps/web/app/[locale]/freelance/page.tsx
index 56a3f07..c9e6737 100644
--- a/apps/web/app/[locale]/freelance/page.tsx
+++ b/apps/web/app/[locale]/freelance/page.tsx
@@ -2,6 +2,7 @@ import type { Metadata } from "next";
import { DecodeText } from "@/src/components/bits/DecodeText";
import { Block } from "@/src/components/home/Block";
import { ClosingCta } from "@/src/components/home/ClosingCta";
+import { Faq } from "@/src/components/home/Faq";
import { BitAura } from "@/src/components/bits/BitAura";
import { PathPicker } from "@/src/components/home/PathPicker";
import { TopicButton } from "@/src/components/home/TopicButton";
@@ -239,6 +240,21 @@ export default async function FreelancePage({ params }: Props) {
+
+ {freelance.faq.title.lead}{" "}
+ {freelance.faq.title.rest}
+ >
+ }
+ >
+
+
+
+
+
);
diff --git a/apps/web/src/content/de.ts b/apps/web/src/content/de.ts
index e89c946..32ed4ce 100644
--- a/apps/web/src/content/de.ts
+++ b/apps/web/src/content/de.ts
@@ -513,6 +513,32 @@ export const de: Content = {
intro:
"Diese Seite ist für alle, die selbst entwickeln oder ein Team leiten: für welche Projekte ich passe, womit ich arbeite und wie ich Änderungen absichere, bevor sie live gehen.",
pipelineLabel: "Absicherung",
+ faq: {
+ title: { lead: "Gut zu wissen,", rest: "bevor Sie buchen." },
+ items: [
+ {
+ question: "Wie lange sind wir gebunden?",
+ answer:
+ "Projektarbeit wird nach Aufwand abgerechnet. Beide Seiten können mit zwei Wochen Frist zum Monatsende kündigen.",
+ },
+ {
+ question:
+ "Können Sie mit unserem bestehenden Team und Code arbeiten?",
+ answer:
+ "Ja. Ich habe jahrelang in Agenturen und Produktteams gearbeitet, der Einstieg in ein bestehendes Projekt ist mir vertraut.",
+ },
+ {
+ question: "Wem gehört der Code?",
+ answer:
+ "Ihnen. Code und Design gehören Ihnen, und Sie können beides an einen anderen Entwickler übergeben.",
+ },
+ {
+ question: "Was machen Sie nicht?",
+ answer:
+ "Mobile Apps für die App-Stores, Windows-Software und den Betrieb Ihrer Server. Wenn Ihr Projekt das braucht, sage ich das im ersten Gespräch.",
+ },
+ ],
+ },
cases: { lead: "Wofür Teams mich buchen.", rest: "Zwei typische Fälle." },
booking: {
label: "Buchung",
@@ -731,9 +757,9 @@ export const de: Content = {
"Nein. Ich erkläre in verständlicher Sprache, was ich tue, und Sie können jederzeit nachfragen. Code müssen Sie nicht lesen.",
},
{
- question: "Wie lange bin ich gebunden?",
+ question: "Was kostet das?",
answer:
- "Projektarbeit wird nach Aufwand abgerechnet. Beide Seiten können mit zwei Wochen Frist zum Monatsende kündigen.",
+ "Das hängt davon ab, was Sie brauchen. Nach einem kurzen Gespräch bekommen Sie ein schriftliches Angebot. Ich fange erst an, wenn Sie zugestimmt haben.",
},
{
question: "Wem gehört, was Sie bauen?",
@@ -741,20 +767,15 @@ export const de: Content = {
"Ihnen. Code und Design gehören Ihnen, und Sie können beides an einen anderen Entwickler übergeben.",
},
{
- question: "Können Sie mit unserem bestehenden Team und Code arbeiten?",
+ question: "Wer kümmert sich danach um die Website?",
answer:
- "Ja. Ich habe jahrelang in Agenturen und Produktteams gearbeitet, der Einstieg in ein bestehendes Projekt ist mir vertraut.",
+ "Ich, wenn Sie das möchten. Hosting und kleine Änderungen danach kosten einen monatlichen Betrag, den wir vor dem Start vereinbaren. E-Mail-Postfächer bleiben bei Ihrem Anbieter.",
},
{
question: "Wie erreiche ich Sie?",
answer:
"Per E-Mail oder Videocall. Ich arbeite remote und bin zu europäischen Geschäftszeiten erreichbar.",
},
- {
- question: "Was machen Sie nicht?",
- answer:
- "Mobile Apps für die App-Stores, Windows-Software und den Betrieb Ihrer Server. Wenn Ihr Projekt das braucht, sage ich das im ersten Gespräch.",
- },
],
},
contact: {
diff --git a/apps/web/src/content/en.ts b/apps/web/src/content/en.ts
index 5c85665..fce618d 100644
--- a/apps/web/src/content/en.ts
+++ b/apps/web/src/content/en.ts
@@ -501,6 +501,31 @@ export const en: Content = {
intro:
"This page is for people who develop themselves or lead a team: which projects I am right for, what I work with, and how I secure changes before they go live.",
pipelineLabel: "Safeguards",
+ faq: {
+ title: { lead: "Good to know", rest: "before you book." },
+ items: [
+ {
+ question: "How long are we committed?",
+ answer:
+ "Project work is billed by effort. Either side can end it with two weeks notice to the end of a month.",
+ },
+ {
+ question: "Can you work with our existing team and code?",
+ answer:
+ "Yes. I worked in agencies and product teams for years, so joining an existing project is familiar to me.",
+ },
+ {
+ question: "Who owns the code?",
+ answer:
+ "You do. Code and design belong to you, and you can hand them to another developer.",
+ },
+ {
+ question: "What do you not do?",
+ answer:
+ "Mobile apps for the app stores, Windows software and running your servers. If your project needs those, I say so in the first call.",
+ },
+ ],
+ },
cases: { lead: "What teams book me for.", rest: "Two typical cases." },
booking: {
label: "Booking",
@@ -712,9 +737,9 @@ export const en: Content = {
"No. I explain what I am doing in plain language, and you can ask at any time. You do not need to read code.",
},
{
- question: "How long am I committed?",
+ question: "What does it cost?",
answer:
- "Project work is billed by effort. Either side can end it with two weeks notice to the end of a month.",
+ "That depends on what you need. After a short call you get a written offer. I only start once you have agreed.",
},
{
question: "Who owns what you build?",
@@ -722,20 +747,15 @@ export const en: Content = {
"You do. Code and design belong to you, and you can hand them to another developer.",
},
{
- question: "Can you work with our existing team and code?",
+ question: "Who looks after the website afterwards?",
answer:
- "Yes. I worked in agencies and product teams for years, so joining an existing project is familiar to me.",
+ "I do, if you want that. Hosting and small changes afterwards cost a monthly fee that we agree on before we start. Email inboxes stay with your provider.",
},
{
question: "How do I reach you?",
answer:
"By email or video call. I work remotely and am available during European business hours.",
},
- {
- question: "What do you not do?",
- answer:
- "Mobile apps for the app stores, Windows software and running your servers. If your project needs those, I say so in the first call.",
- },
],
},
contact: {
diff --git a/apps/web/src/content/types.ts b/apps/web/src/content/types.ts
index e4721eb..b836b4d 100644
--- a/apps/web/src/content/types.ts
+++ b/apps/web/src/content/types.ts
@@ -252,6 +252,11 @@ export type Content = {
readonly title: SplitTitle;
readonly intro: string;
readonly pipelineLabel: string;
+ /** The questions of teams that book by the hour. The homepage has its own. */
+ readonly faq: {
+ readonly title: SplitTitle;
+ readonly items: readonly FaqItem[];
+ };
/** Headline over the cases teams book the owner for. */
readonly cases: SplitTitle;
/** How the owner is booked as a developer: by the month, not by the day. */