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.
Kostenlose Erstberatung
Lassen Sie uns über Ihr Projekt sprechen. Unverbindlich und kostenfrei.
Beratungstermin buchenOnur 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