Nach dem erfolgreichen Launch unserer Rechner Zentrale fragten wir uns: Welches Problem können wir als nächstes lösen? Die Antwort wurde zur Vorlagen-Zentrale – einer Plattform für Lebensläufe, Kündigungen und E-Rechnungen. In dieser Case Study teilen wir unseren kompletten Entwicklungsprozess.
Phase 1: Die Idee finden
Marktanalyse
Wir starteten mit einer systematischen Keyword-Recherche:
| Keyword | Monatl. Suchen | Wettbewerb |
|---|---|---|
| lebenslauf vorlage | 165.000 | Hoch |
| kündigung schreiben | 90.000 | Mittel |
| rechnung schreiben | 74.000 | Mittel |
| e-rechnung erstellen | 12.000 | Niedrig |
| mietvertrag vorlage | 40.000 | Mittel |
Insight: Über 300.000 monatliche Suchen im Vorlagen-Bereich – mit Potenzial für eine Privacy-First-Lösung.
Wettbewerbsanalyse
Die bestehenden Anbieter hatten Schwächen:
- Datenschutz: Upload auf Server, Registrierungspflicht
- Kosten: Versteckte Gebühren, Abo-Modelle
- Qualität: Veraltete Designs, Word-Dokumente aus 2010
- E-Rechnung: Kein Anbieter bot kostenlosen ZUGFeRD-Generator
Unsere Differenzierung
Wir definierten drei Kernprinzipien:
- 100% clientseitig – Keine Daten verlassen den Browser
- Kostenlos nutzbar – Keine Registrierung, keine versteckten Kosten
- Modern & aktuell – Zeitgemäße Designs, aktuelle Gesetze (E-Rechnung 2026)
Phase 2: UX Research & Design
User Personas
Wir identifizierten drei Hauptzielgruppen:
Persona 1: Lisa, 26, Berufseinsteigerin
- Sucht: Modernen Lebenslauf ohne Word-Kenntnisse
- Pain Point: Keine Zeit für komplizierte Software
- Ziel: In 10 Minuten zum fertigen PDF
Persona 2: Thomas, 42, Freelancer
- Sucht: Schnelle Rechnungserstellung
- Pain Point: E-Rechnungspflicht 2026 verstehen
- Ziel: Gesetzeskonforme Rechnungen ohne Buchhaltungssoftware
Persona 3: Maria, 35, Wechselwillige
- Sucht: Kündigungsvorlage für Fitnessstudio
- Pain Point: Rechtssichere Formulierungen
- Ziel: Kündigung in 2 Minuten fertig
User Flows
Für jeden Generator definierten wir optimale Flows:
Lebenslauf-Generator:
1. Design wählen (3 Optionen)
2. Persönliche Daten eingeben
3. Berufserfahrung hinzufügen
4. Ausbildung hinzufügen
5. Skills & Sprachen
6. Live-Vorschau + PDF-Download
Ziel: < 10 Minuten bis zum fertigen Lebenslauf
Wireframes & Prototyping
Wir skizzierten zunächst low-fidelity Wireframes:
Lebenslauf-Generator:
- Split-Screen: Formular links, Vorschau rechts
- Sticky Preview auf Mobile
- Drag & Drop für Sektionen-Reihenfolge
Kündigungs-Generator:
- Anbieter-Suche mit Autovervollständigung
- Vorausgefüllte Adressen und Fristen
- Ein-Klick-Download
Phase 3: Technische Architektur
Tech-Stack Entscheidung
Nach unseren Erfahrungen mit der Rechner Zentrale wählten wir:
| Komponente | Technologie | Begründung |
|---|---|---|
| Framework | Next.js 16 | Bewährt, SEO-optimiert |
| UI | Tailwind CSS 4 | Konsistent mit anderen Projekten |
| PDF-Generierung | @react-pdf/renderer | Client-side, keine Server-Kosten |
| E-Rechnung | pdf-lib | XML-Embedding für ZUGFeRD |
| Validierung | Zod | Type-safe Form Validation |
| State | React 19 | Native Form Actions |
Architektur-Übersicht
src/
├── app/ # Next.js App Router
│ ├── (generators)/ # Generator-Routen
│ │ ├── page.tsx # Lebenslauf (Homepage)
│ │ ├── bewerbung/ # Anschreiben
│ │ ├── rechnungen/ # Rechnungen + E-Rechnung
│ │ └── kuendigungen/ # Kündigungen
│ └── ratgeber/ # SEO-Content
├── components/
│ ├── generators/ # Generator-Komponenten
│ ├── pdf/ # PDF-Templates
│ └── ui/ # Shared UI
├── lib/
│ ├── e-invoice/ # ZUGFeRD/XRechnung
│ ├── providers/ # Kündigungs-Anbieter
│ └── templates/ # Vorlagen-Daten
└── hooks/ # Custom Hooks
Die PDF-Challenge
Browser-basierte PDF-Generierung ist komplex:
Problem 1: Performance
// Schlecht: PDF bei jedem Keystroke neu rendern
useEffect(() => {
generatePdf(formData)
}, [formData])
// Besser: Debounce + Lazy Loading
const debouncedData = useDebounce(formData, 500)
const [pdfBlob, setPdfBlob] = useState<Blob | null>(null)
useEffect(() => {
const generate = async () => {
const blob = await pdf(<ResumeDocument data={debouncedData} />).toBlob()
setPdfBlob(blob)
}
generate()
}, [debouncedData])Problem 2: Schriften
// Schriften müssen explizit registriert werden
import { Font } from '@react-pdf/renderer'
Font.register({
family: 'Inter',
fonts: [
{ src: '/fonts/Inter-Regular.ttf', fontWeight: 400 },
{ src: '/fonts/Inter-Bold.ttf', fontWeight: 700 },
],
})Problem 3: Live-Vorschau
// PDFViewer für Desktop, Screenshot für Mobile
export function LivePreview({ data, template }) {
const isMobile = useMediaQuery('(max-width: 768px)')
if (isMobile) {
return <PreviewImage data={data} template={template} />
}
return (
<PDFViewer className="w-full h-[600px]">
<ResumeDocument data={data} template={template} />
</PDFViewer>
)
}Phase 4: Feature Development
Lebenslauf-Generator
Drei Designs mit unterschiedlichen Charakteren:
Modern:
- Minimalistisch, viel Whitespace
- Akzentfarbe wählbar
- Ideal für Tech/Kreativ-Berufe
Klassisch:
- Traditionelles Layout
- Zeitlose Typografie
- Ideal für konservative Branchen
Kreativ:
- Sidebar mit Foto
- Grafische Skill-Anzeige
- Ideal für Marketing/Design
// components/pdf/templates/modern.tsx
export function ModernResume({ data }: { data: ResumeData }) {
return (
<Document>
<Page size="A4" style={styles.page}>
{/* Header mit Name und Kontakt */}
<View style={styles.header}>
<Text style={styles.name}>{data.personalInfo.name}</Text>
<Text style={styles.title}>{data.personalInfo.title}</Text>
<View style={styles.contact}>
<Text>{data.personalInfo.email}</Text>
<Text>{data.personalInfo.phone}</Text>
</View>
</View>
{/* Berufserfahrung */}
<View style={styles.section}>
<Text style={styles.sectionTitle}>Berufserfahrung</Text>
{data.experience.map((exp, i) => (
<ExperienceItem key={i} experience={exp} />
))}
</View>
{/* ... weitere Sektionen */}
</Page>
</Document>
)
}Kündigungs-Generator
73 vorausgefüllte Anbieter mit korrekten Adressen und Fristen:
// lib/providers/mobilfunk.ts
export const mobilfunkProviders: Provider[] = [
{
id: 'vodafone',
name: 'Vodafone',
category: 'mobilfunk',
address: {
company: 'Vodafone GmbH',
street: 'Ferdinand-Braun-Platz 1',
zip: '40549',
city: 'Düsseldorf',
},
cancellationPeriod: '3 Monate zum Vertragsende',
minimumTerm: '24 Monate',
hints: [
'Rufnummernmitnahme rechtzeitig beantragen',
'Kündigungsbestätigung aufbewahren',
],
},
// ... 72 weitere Anbieter
]E-Rechnungsgenerator
Das technisch anspruchsvollste Feature:
// lib/e-invoice/generator.ts
export async function generateEInvoice(
invoice: InvoiceData,
format: 'zugferd' | 'xrechnung'
): Promise<Uint8Array> {
// 1. Validierung
const validation = validateInvoice(invoice)
if (!validation.valid) {
throw new ValidationError(validation.errors)
}
// 2. PDF generieren
const pdfComponent = <InvoiceDocument data={invoice} />
const pdfBlob = await pdf(pdfComponent).toBlob()
const pdfBytes = await pdfBlob.arrayBuffer()
// 3. XML erstellen
const xml = format === 'zugferd'
? generateZugferdXml(invoice, invoice.profile)
: generateXRechnungXml(invoice)
// 4. XML in PDF einbetten
const pdfDoc = await PDFDocument.load(pdfBytes)
await embedXml(pdfDoc, xml, format)
// 5. PDF/A-3 Compliance
await setPdfACompliance(pdfDoc)
return pdfDoc.save()
}Phase 5: SEO & Content
Keyword-Strategie
Jede Seite targetet spezifische Keywords:
| Seite | Primary Keyword | Suchvolumen |
|---|---|---|
| / | lebenslauf vorlage | 165K |
| /rechnungen/generator | rechnung schreiben | 74K |
| /rechnungen/e-rechnung | e-rechnung erstellen | 12K |
| /kuendigungen/generator | kündigung schreiben | 90K |
| /kuendigungen/vodafone | vodafone kündigen | 22K |
Ratgeber-Content
SEO-optimierte Artikel zu relevanten Themen:
- "E-Rechnung Guide 2026" – erklärt ZUGFeRD und XRechnung
- "Kündigung schreiben" – rechtliche Grundlagen
- "Lebenslauf Tipps 2026" – aktuelle Best Practices
Strukturierte Daten
Jeder Generator hat passende JSON-LD Schemas:
// components/seo/GeneratorSchema.tsx
export function GeneratorSchema({ generator }: { generator: GeneratorInfo }) {
const schema = {
'@context': 'https://schema.org',
'@type': 'SoftwareApplication',
name: generator.name,
applicationCategory: 'BusinessApplication',
operatingSystem: 'Web Browser',
offers: {
'@type': 'Offer',
price: '0',
priceCurrency: 'EUR',
},
creator: {
'@type': 'Organization',
name: 'HEADON.pro',
url: 'https://headon.pro',
},
}
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
)
}Phase 6: Launch & Learnings
Launch-Checkliste
Vor dem Go-Live:
- Alle Generatoren funktionsfähig
- Mobile-Optimierung getestet
- Lighthouse > 90 auf allen Seiten
- Analytics eingerichtet (Umami)
- Sitemap generiert
- Google Search Console verifiziert
- Social Media Preview-Images
Performance-Ergebnisse
| Metrik | Ziel | Erreicht |
|---|---|---|
| LCP | < 2.5s | 1.2s |
| CLS | < 0.1 | 0.02 |
| INP | < 200ms | 85ms |
| Lighthouse | > 90 | 96 |
Was wir gelernt haben
1. Client-Side PDF ist machbar – mit Kompromissen
Die Browser-basierte PDF-Generierung funktioniert gut, aber:
- Schriften müssen manuell eingebunden werden
- Komplexe Layouts erfordern viel CSS-in-JS
- Live-Vorschau ist performanceintensiv
2. E-Rechnung ist komplexer als gedacht
ZUGFeRD-Konformität erfordert:
- Präzise XML-Struktur nach EN16931
- Korrekte PDF/A-3 Metadaten
- Validierung aller Pflichtfelder
3. SEO für Tools ist anders
Anders als bei Content-Seiten:
- Nutzer wollen sofort loslegen (keine lange Intro)
- CTA muss above-the-fold sein
- FAQ-Sektion für SEO, aber unter dem Tool
4. Privacy ist ein echtes Verkaufsargument
"Keine Datenspeicherung" überzeugt Nutzer:
- Höhere Conversion als Wettbewerber mit Registrierung
- Keine DSGVO-Banner nötig
- Vertrauen durch Transparenz
Nächste Schritte
Die Vorlagen-Zentrale ist live, aber wir entwickeln weiter:
- Mehr Vorlagen: Arbeitszeugnis, Abmahnung, Testament
- Mehr Designs: Zusätzliche Lebenslauf-Templates
- API-Zugang: Für Entwickler und Unternehmen
- Premium-Features: Word-Export, erweiterte Anpassungen
Sie planen eine eigene Web-App? Die Vorlagen-Zentrale zeigt, wie wir komplexe Dokumenten-Anwendungen datenschutzkonform umsetzen. Kontaktieren Sie uns für ein unverbindliches Beratungsgespräch zu Ihrem Projekt.
Onur Cirakoglu ist Gründer und leitender Entwickler von HEADON.pro. Mit über 8 Jahren Erfahrung in der Webentwicklung spezialisiert er sich auf performante Next.js-Anwendungen, React Native Mobile Apps und komplexe Full-Stack-Lösungen. Seine Expertise umfasst moderne JavaScript-Frameworks, Cloud-Architekturen und SEO-optimierte Webanwendungen. Er berät Unternehmen im Main-Tauber-Kreis und darüber hinaus bei ihrer digitalen Transformation.
Expertise
Das könnte Sie auch interessieren
Weitere Artikel zu ähnlichen Themen
DSGVO-konforme Finanz-Web-App | Case Study
Von der Idee zum Launch: Technische Deep-Dive in die Entwicklung der Rechner Zentrale mit 36+ Finanz-Rechnern, Privacy-First-Architektur und SEO-Strategie.
WeiterlesenE-Rechnungspflicht 2026: Der komplette Guide
Ab 2026 sind B2B-Rechnungen in Deutschland elektronisch Pflicht. ZUGFeRD, XRechnung, Leitweg-ID erklärt – plus unsere kostenlose Lösung für die Umstellung.
WeiterlesenProgressive Web Apps (PWA): Guide 2025
Progressive Web Apps (PWA) verstehen: Vorteile gegenüber Native Apps, Service Workers, Offline-Funktionalität und Installation auf dem Homescreen.
Weiterlesen