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. */