refactor: restructure

monorepo with apps/ and services/
  directories
This commit is contained in:
Wuesteon 2025-11-26 03:03:24 +01:00
parent 25824ed0ac
commit ff80aeec1f
4062 changed files with 2592 additions and 1278 deletions

View file

@ -0,0 +1,3 @@
# Umami Analytics Configuration (optional)
# PUBLIC_UMAMI_WEBSITE_ID=your-website-id
# PUBLIC_UMAMI_URL=https://your-umami-instance.com/script.js

30
apps/memoro/apps/landing/.gitignore vendored Normal file
View file

@ -0,0 +1,30 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# jetbrains setting folder
.idea/
# Archive folder
.archive/
# Local Netlify folder
.netlify

View file

@ -0,0 +1,112 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
Memoro is a multilingual marketing website built with Astro for an AI-powered conversation documentation and note-taking app. The site supports German (de) as default and English (en) locales.
## Build Commands
```bash
npm run dev # Start development server (localhost:4321)
npm run build # Build production site to ./dist/
npm run preview # Preview production build locally
npm run astro check # Type-check the project. IMPORTANT: Use this after every change!
```
## Architecture
### Tech Stack
- **Framework**: Astro 5.3.0 with static site generation
- **Styling**: Tailwind CSS
- **Content**: MDX support with content collections
- **TypeScript**: Strict mode enabled
### Project Structure
```
src/
├── components/ # Reusable Astro components
├── content/ # Content collections with Zod schemas
│ ├── blog/ # Blog posts (de/en subfolders)
│ ├── team/ # Team member profiles
│ ├── features/ # Feature descriptions
│ ├── guides/ # User guides and tutorials
│ └── ... # Other collections (industries, testimonials, etc.)
├── i18n/ # Internationalization (ui.ts for translations)
├── layouts/ # Page layout templates
├── pages/ # Routes with [lang] dynamic routing
├── styles/ # Global CSS with Tailwind
└── utils/ # Utility functions
```
### Internationalization (i18n)
- **Default locale**: German (de)
- **Supported locales**: German (de), English (en)
- **Routing**: Prefix-based (e.g., /de/blog, /en/blog)
- **Middleware**: Automatically redirects to default locale if missing
- **Translations**: Centralized in `src/i18n/ui.ts`
- **Content**: Organized in language subfolders within collections
### Content Collections
All content uses Zod schemas for validation. Key collections:
- **blog**: Articles with metadata (title, description, pubDate, author, tags)
- **team**: Team profiles with roles and social links
- **features**: Product features with icons and categories
- **guides**: Tutorials with difficulty levels and duration
- **testimonials**: Customer testimonials
- **legal**: Legal pages (privacy, terms, etc.)
Each content type must include:
- `lang` field (either 'de' or 'en')
- Proper frontmatter matching the schema
- MDX content body
### Code Style Guidelines
#### Components
- Use PascalCase for component names (e.g., `BlogCard.astro`)
- Define Props interfaces at the top of component files
- Import order: external libraries first, then project files
#### TypeScript
- Always use Zod schemas for content validation
- Define interfaces for all component props
- Use strict type checking (enabled in tsconfig)
#### CSS
- Use Tailwind CSS utility classes
- Follow kebab-case for custom CSS classes
- Avoid inline styles
#### Error Handling
- Middleware handles 404s and missing locale redirects
- Use optional chaining for potentially undefined values
- Provide fallbacks for missing translations
### Important Implementation Notes
- Static site generation means no server-side runtime
- All content is pre-built at build time
- Dynamic routes use Astro's `getStaticPaths()`
- Sitemap generation includes all locales
- Images stored in `/public/images/` organized by type
### Testing
No test framework is currently configured. Consider manual testing of:
- All language routes
- Content collection validation
- Build process for production
- 404 handling and redirects

View file

@ -0,0 +1,168 @@
# PostHog A/B Testing Setup
Dieses Dokument beschreibt die PostHog-Integration für A/B-Testing auf der Memoro-Website.
## 1. Initiale Einrichtung
### PostHog-Account erstellen
1. Gehe zu [PostHog EU](https://eu.posthog.com)
2. Erstelle einen Account (EU-Region für GDPR-Compliance)
3. Erstelle ein neues Projekt "Memoro Landing"
### Environment-Variablen
Erstelle eine `.env`-Datei basierend auf `.env.example`:
```bash
PUBLIC_POSTHOG_KEY=phc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```
### Testen der Integration
1. Starte den Dev-Server: `npm run dev`
2. Akzeptiere Analytics-Cookies im Cookie-Banner
3. Öffne die Browser-Konsole und prüfe: `window.posthog` sollte verfügbar sein
4. Überprüfe im PostHog-Dashboard, ob Events ankommen
## 2. A/B-Tests erstellen
### Im PostHog-Dashboard
1. Navigiere zu "Feature Flags" → "New Feature Flag"
2. Erstelle ein neues Flag, z.B. `hero-cta-test`
3. Konfiguriere die Varianten:
- Control: Default (kein Wert)
- Variant B: `variant-b`
4. Setze die Rollout-Percentage (z.B. 50/50)
### Im Code implementieren
#### Option 1: Fertige Experiment-Komponente nutzen
```astro
---
import HeroCtaExperiment from '../components/experiments/HeroCtaExperiment.astro';
---
<HeroCtaExperiment />
```
#### Option 2: Custom Implementation
```astro
<div id="my-experiment" data-experiment="my-test">
<!-- Default content -->
</div>
<script>
import { getExperiment, trackEvent } from '../utils/experiments';
const variant = await getExperiment('my-test');
if (variant === 'variant-b') {
// Apply variant B changes
}
</script>
```
## 3. Verfügbare Utilities
### `getExperiment(key)`
Holt die aktuelle Variante für einen Test:
```javascript
const variant = await getExperiment('hero-cta-test');
// Returns: null | 'control' | 'variant-b' | ...
```
### `trackEvent(name, properties)`
Trackt ein Custom Event:
```javascript
trackEvent('button_clicked', {
button_id: 'download-cta',
page: 'home'
});
```
### `trackExperimentConversion(experiment, type)`
Trackt eine Conversion für einen A/B-Test:
```javascript
trackExperimentConversion('hero-cta-test', 'download_click');
```
### `applyExperimentClasses(elementId, experimentKey, variantClasses)`
Wendet CSS-Klassen basierend auf der Variante an:
```javascript
applyExperimentClasses('hero-section', 'hero-test', {
'control': 'bg-blue-500',
'variant-b': 'bg-green-500'
});
```
## 4. Best Practices
### Performance
- PostHog lädt nur nach Cookie-Consent
- Script ist asynchron und blockiert nicht
- Feature Flags werden gecached
### GDPR-Compliance
- Analytics nur mit expliziter Zustimmung
- EU-Server verwenden
- `person_profiles: 'identified_only'` für anonyme Nutzer
### Testing-Strategie
1. **Start klein**: Beginne mit unkritischen Elementen
2. **Messe richtig**: Definiere klare Success-Metriken
3. **Dokumentiere**: Halte Tests und Ergebnisse fest
4. **Iteriere**: Nutze Learnings für neue Tests
## 5. Geplante A/B-Tests
### Phase 1 (Sofort möglich)
- **Hero CTA**: "App herunterladen" vs. "Kostenlos testen"
- **Download Button Position**: Rechts vs. Links in Navigation
- **Testimonial Position**: Oben vs. Unten auf Homepage
### Phase 2 (Nach ersten Learnings)
- **Pricing Layout**: Grid vs. Tabelle
- **Feature-Reihenfolge**: Verschiedene Priorisierungen
- **Formulare**: Anzahl der Felder reduzieren
## 6. Monitoring & Analyse
### PostHog Dashboard
- **Experiments**: Übersicht aller laufenden Tests
- **Feature Flags**: Status und Rollout-Percentage
- **Insights**: Custom Dashboards für Conversions
### Wichtige Metriken
- Conversion Rate (Download-Klicks)
- Bounce Rate pro Variante
- Time on Page
- Scroll-Tiefe
## 7. Troubleshooting
### PostHog lädt nicht
1. Prüfe Cookie-Consent Status
2. Checke Browser-Konsole für Fehler
3. Verifiziere API-Key in `.env`
### Feature Flag gibt null zurück
1. Stelle sicher, dass PostHog geladen ist
2. Prüfe Flag-Name (Case-sensitive!)
3. Checke Rollout-Settings im Dashboard
### Events werden nicht getrackt
1. Öffne Network-Tab und suche nach `posthog.com/e/`
2. Prüfe, ob `autocapture: false` gesetzt ist
3. Nutze `posthog.debug()` für Details
## 8. Migration von Plausible
Aktuell laufen Plausible und PostHog parallel. Nach 2-4 Wochen:
1. Vergleiche Metriken beider Tools
2. Stelle sicher, dass PostHog alle benötigten Daten erfasst
3. Entferne Plausible-Komponente
4. Update Cookie-Consent Beschreibung
5. Entferne Plausible DNS-Prefetch
## Support
Bei Fragen oder Problemen:
- PostHog Docs: https://posthog.com/docs
- Astro + PostHog: https://posthog.com/tutorials/astro-ab-tests

View file

@ -0,0 +1,48 @@
# Astro Starter Kit: Basics
```sh
npm create astro@latest -- --template basics
```
[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/basics)
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/basics)
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/basics/devcontainer.json)
> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
![just-the-basics](https://github.com/withastro/astro/assets/2244813/a0a5533c-a856-4198-8470-2d67b1d7c554)
## 🚀 Project Structure
Inside of your Astro project, you'll see the following folders and files:
```text
/
├── public/
│ └── favicon.svg
├── src/
│ ├── layouts/
│ │ └── Layout.astro
│ └── pages/
│ └── index.astro
└── package.json
```
To learn more about the folder structure of an Astro project, refer to [our guide on project structure](https://docs.astro.build/en/basics/project-structure/).
## 🧞 Commands
All commands are run from the root of the project, from a terminal:
| Command | Action |
| :------------------------ | :----------------------------------------------- |
| `npm install` | Installs dependencies |
| `npm run dev` | Starts local dev server at `localhost:4321` |
| `npm run build` | Build your production site to `./dist/` |
| `npm run preview` | Preview your build locally, before deploying |
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
| `npm run astro -- --help` | Get help using the Astro CLI |
## 👀 Want to learn more?
Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).

View file

@ -0,0 +1,48 @@
import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';
import tailwind from '@astrojs/tailwind';
import sitemap from '@astrojs/sitemap';
import icon from 'astro-icon';
// https://astro.build/config
export default defineConfig({
image: {
service: {
entrypoint: 'astro/assets/services/sharp',
config: {
limitInputPixels: false,
},
},
domains: [],
remotePatterns: [],
},
integrations: [
mdx(),
tailwind(),
sitemap({
i18n: {
defaultLocale: 'de',
locales: {
de: 'de-DE',
en: 'en-US'
}
}
}),
icon({
include: {
mdi: ["*"]
}
})
],
contentCollections: true,
site: 'https://memoro.ai',
output: 'static',
i18n: {
locales: ['de', 'en'],
defaultLocale: 'de',
routing: {
prefixDefaultLocale: true,
redirectToDefaultLocale: false
}
}
});

View file

@ -0,0 +1,15 @@
Texte High Level
Du bist eine begabte Werbetexterin und Copywriterin.
Du hilfst dabei anhand von diesen Guidelines einen Text umzuschreiben:
Memoro Text Guidelines
Die 8 Prinzipien unserer Stimme:
Wir reden nicht um den heißen Brei herum. Wir nutzen kurze, klare, prägnante Sätze.
Wir informieren, und wollen helfen, nichts bewerben oder verkaufen. Mehrwert schaffen wir mit unserer Applikation.
Wir versuchen auf Du oder Sie zu verzichten, mehr wie ein Pressetext zu klingen.
Wir ziehen Vergleiche zu Memoro (Einer App die Gespräche aufzeichnet, aufschreibt und passend zusammenfasst, eine Wissenbibliothek und ein ständiger Assistent, der im Hintergrund bleibt und Zeit schafft und einem den Rücken freihält, die Brandfarbe ist Gelb (wie ein Gedanke) und die Formen sind fließend und rund)
Wir wollen andere mit unseren Gedanken anstecken und sie zum ausprobieren bewegen, Inspiration schaffen.
Wir wollen Partizipation fördern und andere an unserer Entwicklung teilhaben lassen und ihre Ideen und Funktion Wünsche, um für sie das beste Produkt bauen zu können.
Wir wollen Engaging mit unserem Publikum kommunizieren. Nutzen das AIDA Framework (Attention, Intrest, Desire, Action) im Aufbau unserer Texte.
Wir wollen das alle Nutzer alles verstehen, also kommunizieren wir in einfache Sprache: Statt DSGVO konform, sage lieber alle Daten werden sicher in Deutschland gespeichert. Wir reden auch nicht über KI, sondern über die besten Ohren, das intelligente mitschreiben und zusammenfassen etc. Ausserdem nutzen wir keine Worte wie revolutionierend oder ähnliches, wir sind bodenständig und ziehen lieber einen lustigen Vergleich.

View file

@ -0,0 +1,80 @@
# Image Prompts für Blog-Artikel
Diese Datei enthält bewährte Prompt-Vorlagen für die Generierung von Blog-Bildern.
## Blog-Header Icons/Symbole
### Minimale geometrische Symbole (mit transparentem Hintergrund)
**Vorlage für Kommunikation/KI-Themen:**
```
Minimal geometric icon design on transparent background. Two interlocking shapes: a rounded speech bubble (gradient from coral to orange) flowing into a crystalline hexagon (gradient from electric blue to purple). The shapes overlap in the center creating a small overlapping area in vibrant green. Clean vector style, no shadows, no background. Flat design with subtle gradients. Symbol represents human-AI communication. Centered composition, perfect for web use.
```
**Verwendung:** Prompt Engineering, KI-Kommunikation, Chat-Themen
---
### Variationen für andere Themen
**Für Produktivitäts-Themen:**
```
Minimal geometric icon design on transparent background. Three overlapping circles forming a Venn diagram. Left circle: orange gradient. Right circle: blue gradient. Bottom circle: purple gradient. Where all three overlap in the center: bright teal. Clean, minimal, flat design. No text, no decoration. Modern tech logo style.
```
**Für Transformation/Workflow-Themen:**
```
Minimalist vector symbol on transparent background: Single flowing arrow that transforms from organic curved line (warm orange gradient) to geometric angular shape (cool blue-purple gradient). The transformation happens in the middle with a smooth color transition. Ultra simple, modern icon design. No background, clean edges.
```
---
## Anpassungshinweise
- **Farben:** Hauptgradients können angepasst werden (orange/coral → blue/purple ist bewährt)
- **Form:** Grundformen können variiert werden (Kreise, Hexagone, Pfeile, etc.)
- **Stil:** Immer "minimal", "clean", "flat design", "no shadows", "transparent background"
- **Format:** Optimal für Web-Verwendung, zentrierte Komposition
## Bewährte Farbkombinationen
1. **Warm → Cool:** Orange/Coral → Blue/Purple
2. **Energie:** Yellow/Orange → Red/Pink
3. **Natur:** Green/Teal → Blue/Purple
4. **Professional:** Gray/Silver → Blue/Navy
## Technische Spezifikationen
- Format: PNG mit transparentem Hintergrund
- Stil: Flat Design, Vektor-ähnlich
- Schatten: Keine
- Text: Keiner
- Komposition: Zentriert
- Verwendung: Blog-Header, Icon-Elemente
---
## Neue Prompts für "KI als persönlicher Assistent"
### Option 1: Automatisierung-Symbol
```
Minimal geometric icon design on transparent background. Two interlocking gears: left gear organic and rounded (gradient from warm orange to coral), right gear precise and angular (gradient from electric blue to purple). Small floating elements around them representing automated tasks (tiny circles and triangles in teal). Clean vector style, no shadows, no background. Flat design with subtle gradients. Symbol represents automation and AI assistance. Centered composition, perfect for web use.
```
### Option 2: Zeit-Effizienz-Symbol
```
Minimalist vector symbol on transparent background: Clock face transforming into flowing energy streams. Clock portion: gradient from orange to yellow. Energy streams: gradient from blue to purple, flowing outward in elegant curves. Small productivity icons (tiny checklist, envelope, document) floating in the streams in vibrant green. Ultra simple, modern icon design. No background, clean edges.
```
### Option 3: Assistent-Verbindung-Symbol
```
Simple vector icon on transparent background: Central hub (hexagon in blue-purple gradient) connected to four smaller circles representing different tasks. Connections: flowing lines in orange gradient. Each circle different color: orange (meetings), teal (emails), purple (documents), green (tasks). Clean, minimal, flat design. No text, no decoration. Modern tech assistance logo style.
```
---
## Prompt für "KI-gestützte Entscheidungsfindung"
```
Minimal geometric icon design on transparent background. Decision tree visualization: Central diamond shape (gradient from coral to orange) with three branching paths flowing outward. Each path ends in a different geometric shape representing options: circle (blue gradient), triangle (purple gradient), square (teal gradient). The paths are elegant curved lines with subtle glow. Small analytical elements floating around (tiny data points, mini charts) in soft green. Clean vector style, no shadows, no background. Flat design with subtle gradients. Symbol represents AI-supported decision making. Centered composition, perfect for web use.
```

View file

@ -0,0 +1,170 @@
Recording Features
Feature: Perfektes Gehör
Beschreibung: Ein Klick genügt - Memoro hört aufmerksam zu und erfasst jedes Detail deiner Gespräche.
Hauptfunktionen:
Ein-Klick Aufnahme: Memoro ist sofort einsatzbereit, nach Tippen auf den großen runden Aufnahmeknopf.
Intelligentes Hören: Erkennt bis zu 15 verschiedene Sprecher in über 80 Sprachen und Dialekten.
Flexible Aufnahme: Nimm die verschiedensten Gespräche auf: Meetings & Konferenzen, Persönliche Notizen, Interviews & Vorträge, Dokumentation, Beratung
Zuverlässige Technik: Memoro ist komplett Offline-fähig. Jede Aufnahme wird auf deinem Gerät gespeichert und kann aus dem Audioarchiv erneut hochgeladen werden, wenn wieder mit dem Internet verbunden.
Bleibt im Hintergrund: Memoro ist sehr batterie-effizient. Du kannst dein Gerät auch sperren, oder die App wechseln, Memoro bleibt aktiv, ohne abzulenken.
Optionale Standortspeicherung: Wenn in den Einstellungen aktiviert wird, wird zusätzlich automatisch der Standort beim Beenden der Memo gespeichert. Dieser kann dann auf der Karte angesehen werden.
Feature: Aufnahme Sprachen
Beschreibung: Über 80 Sprachen und Dialekte mit automatischer Erkennung.
Hauptfunktionen:
Automatische Spracherkennung: Memoro erkennt automatisch die gesprochene Sprache, aus über 80 verschiedenen Sprachen und Dialekten.
20 Express-Sprachen: Diese Sprachen können in wenigen Sekunden verarbeitet werden und stehen fast unmittelbar zur Verfügung. Wird verwendet bei Aufnahmen bis zu 40 Minuten. Unterstützte Sprachen: Deutsch, Englisch, Französisch, Spanisch, Italienisch, Niederländisch, Polnisch, Schwedisch, Russisch, Portugiesisch, Arabisch, Hindi, Chinesisch, Japanisch, Koreanisch.
80+ Spachen: Mit 60+ Sprachen mit Standard-Transkription (diese braucht mehrere Minuten zur Verarbeitung). Memoro bietet die schnellste und qualitativ hochwertigste, DSGVO konforme Transkription auf dem Markt.
Dialekt-Erkennung: Memoro unterstützt verschiedene Dialekte, um eine möglichst gute Translationsqualität zu gewährleisten. Diese Varianten werden unterstützt: Regionales Deutsch (Deutschland, Österreich, Schweiz), Englisch-Varianten (USA, UK, Australien, Indien), Spanisch-Dialekte (Spanien, Mexiko, Argentinien, Kolumbien), Chinesische Varianten (Mandarin, Kantonesisch, Taiwanesisch)
Mehrsprachige Meetings: Automatischer Sprachenwechsel während der Aufnahme mit mehreren Sprachen, Sprechererkennung behält Sprachzuordnung bei, auch in unterschiedlichen Sprachen.
Spezialisierte Unterstützung: Memoro versteht die verschiedensten Fachsprachen: Medizinische Terminologie, Technisches Vokabular, Juristische Fachsprache, und viele mehr, je nach gewähltem Aufnahme-Blueprint.
Feature: Audio-Archiv
Beschreibung: Ihre persönliche Audioarchiv - alle Aufnahmen sicher gespeichert und jederzeit verfügbar
Hauptfunktionen:
Vollständiger Überblick über alle lokal gespeicherten Aufnahmen
Detaillierte Statistiken über Länge und Dateigröße der Aufnahmen
Einfaches exportieren der Audioaufnahmen, einfach über den Teilen Button im Audioplayer
Hilfreich für Vielnutzer, Projektmanager, Compliance
Feature: Recording Blueprints (Aufnahme Vorlagen)
Beschreibung: Vordefinierte Aufnahmevorlagen für perfekt strukturierte Ergebnisse
Hauptfunktionen:
Etliche Vorlagen für die verschiedensten Anwendungsfälle
Vorlagen für verschiedene Branchen: Von Bildung an Universitäten oder Schulen und Kindergärten, über Pflegedokumentation an Krankenhäusern oder Altersheimen, zu Baubesprechungen von Handwerkern oder Architekten, bis zur Dokumentation von Familiengeschichten. Und etliche weitere spezialisierte Vorlagen und Industrien. Psst: Bald können auch eigene Blueprints erstellt werden.
Feedback Funktion an Memoro, um den Blueprint zu verbessern.
Feature: Audio Upload
Beschreibung: Lade deine Aufnahmen hoch und lass sie automatisch analysieren
Hauptfunktionen:
MP3, WAV und M4A Formate unterstützt
Unbegrenzte Aufnahmelänge
Automatische Transkription
Einstellungen für Datum, Uhrzeit, Sprache und Vorlagen
Sofortige KI-Analyse
Verschlüsselte Übertragung
Sichere Cloud-Speicherung
Organization Features
Feature: Memories
Beschreibung: Entdecke die verschiedenen Analysen, die Memoro von deinen Gesprächen erstellt
Hauptfunktionen:
Explorative Memories: Erkenntnisse: Wichtige Punkte chronologisch zusammengefasst, Zusammenfassung: Automatische Formatierung als Protokoll, Vortrag oder Formular, Artikel: Strukturierte Aufbereitung der Inhalte
Exekutive Memories: Aufgaben: Erfasst Verantwortliche, Deadlines und Status, Termine: Sammelt Datum, Ort und Beschreibung
Feature: Tags zur Organisation
Beschreibung: Sortiere und finde deine Gespräche blitzschnell mit Tags und intelligentem Filter
Hauptfunktionen:
Tag-System mit flexibler Kategorisierung
Eigene Namen, Farbe und Emojis vergeben
Verschiedene Anwendungsfälle für Tags, zum Beispiel für Status Tracking wie “Offen” und “Erledigt”, oder für Themenschwerpunkte wie “Technologie” und “Sport”, oder für Arten von Gesprächen oder Gesprächspartnern.
Mehrere Tags pro Memo: Baue dein eigenes Memo Organisationssystem, und filtere es dynamisch auf der Memos Seite
Feature: Memo-Kombination
Beschreibung: Füge mehrere Memos zu einem umfassenden Dokument zusammen
Hauptfunktionen:
Mehrere Memos in einer neuen Memo kombinieren
Perfekt für mehrteilige Meetings, Geschichten, oder Sammlungen von Informationen.
Stelle deiner kombinierten Memo Fragen oder erstelle neue Memories.
Feature: Mehrsprachig auf allen Ebenen
Memoro unterstützt 24 Sprachen und zwei Dialekte für eine globale Kommunikation
Unterstützte Sprachen:
Europäische Sprachen: Deutsch, Englisch, Französisch, Spanisch, Italienisch, Portugiesisch, Niederländisch, Schwedisch, Polnisch
Osteuropäische: Russisch, Ukrainisch, Tschechisch
Asiatische Sprachen: Hindi, Chinesisch (Mandarin), Japanisch, Koreanisch, Vietnamesisch
Nahost & Afrika: Arabisch, Türkisch, Hebräisch
Feature: Übersetzen
Beschreibung: Überwinde Sprachbarrieren mit automatischer Übersetzung in 24 Sprachen
Hauptfunktionen:
Automatische Übersetzung in 24 Sprachen
Zweisprachige Ansicht
Erhalt des ursprünglichen Kontexts
Erkennt Fachbegriffe
Berücksichtigt kulturelle Nuancen
Sharing Features
Feature: Memos teilen
Beschreibung: Teile deine Gespräche nahtlos über alle deine Apps
Hauptfunktionen:
Teile deine Memo direkt über alle gängigen Kanäle wie Mail, Whatsapp, Telegram oder kopiere sie in ein Dokument
Nutze die Webapp unter web.memoro.ai um deine Inhalte schnell auf dem Computer oder anderen Geräten aufzurufen.
Schnelles kopieren des Transkriptes
Feature in Arbeit: Teilen von Memos in Memoro - gemeinsames Bearbeiten und erweitern der Memo
Customization Features
Feature: Mana Credits System
Beschreibung: Flexibles KI-Credit-System für jeden Bedarf
Vorteile:
- Fair: Zahlen Sie nur für das, was Sie nutzen
- Skalierbar: Verschiedene Pakete für jeden Bedarf
- Transparent: Klare Kostenübersicht
- Flexibel: Monatlich oder jährlich, plus Einmalkäufe
- 33% Rabatt bei Jahresabonnements
Mana-Kosten für Memoro:
- Aufnahme/Transkription: 2 Mana pro Minute (mindestens 10 Mana)
- Frage an Memo stellen: 5 Mana pro Frage
- Neue Memory erstellen: 5 Mana
- Blueprint anwenden: 5 Mana
- Memos kombinieren: 5 Mana pro kombiniertes Memo
Mana-Abonnements:
Mana Tropfen (Kostenlos) - 0 € / Monat:
- 150 Mana Startguthaben
- 5 Mana täglich (max. 150 Mana Guthaben)
- Perfekt zum Ausprobieren
Mana Fluss - 5,99 € / Monat (47,99 € / Jahr):
- 600 Mana Startguthaben
- 20 Mana täglich (max. 1.200 Mana Guthaben)
- Mana verschenken möglich
Mana Strom - 14,99 € / Monat (119,99 € / Jahr):
- 1.500 Mana Startguthaben
- 50 Mana täglich (max. 3.000 Mana Guthaben)
- Mana verschenken möglich
Mana See - 29,99 € / Monat (239,99 € / Jahr):
- 3.000 Mana Startguthaben
- 100 Mana täglich (max. 6.000 Mana Guthaben)
- Mana verschenken möglich
Mana Meer - 49,99 € / Monat (399,99 € / Jahr):
- 5.000 Mana Startguthaben
- 200 Mana täglich (max. 10.000 Mana Guthaben)
- Mana verschenken möglich
Mana-Pakete (Einmalkauf):
- Kleiner Mana Trank: 350 Mana für 4,99 €
- Mittlerer Mana Trank: 700 Mana für 9,99 €
- Großer Mana Trank: 1.400 Mana für 19,99 €
- Riesiger Mana Trank: 2.800 Mana für 39,99 €
Feature: Memoro anpassen
Beschreibung: Passen Sie Memoro perfekt an Ihre Bedürfnisse an
Anpassungsoptionen:
Erscheinungsbild: Dunkel & Hell Modus
Anzeigeelemente Aufnahme Seite: Ein und ausblenden von verschiedenen Elementen auf der Aufnahmeseite
Oberflächensprache (48 verschiedene), Aufnahme Sprache (82 verschiedene Sprachen), Übersetzungssprachen (57 verschiedene Sprachen zum Übersetzen)
Datenschutz & Sicherheit: Standortspeicherung opt-in, Analysedaten opt-out
Feature: Branchenspezifische Anpassung
Beschreibung: Maßgeschneiderte Lösungen für deine Branche mit spezialisierten Vorlagen und Integrationen
Hauptfunktionen:
Spezialisierte Vorlagen für verschiedene Branchen
Systemintegration mit APIs
Individuelle Anpassungen
Spezielle Compliance Lösungen
Branchenlösungen für: Gesundheitswesen, Rechtsberatung, Finanzdienstleistungen, Bildung, Consulting, Immobilien, IT & Software
Analytics Features
Feature: Detaillierte Statistiken
Beschreibung: Umfassende Einblicke in Ihre Produktivität und Nutzungsmuster
Statistik-Features:
Memos-Metriken: Gesamtanzahl, Länge, Wortanzahl, Trends, etc
Aufnahmedauer-Analysen: Gesamtzeit, Durchschnittliche Länge, etc
Wörter-Statistiken: Gesamtwortanzahl, Wörter pro Memo, etc
Erweiterte Analysen: Zeitverteilung, Tag-Analyse, Produktivitätsmuster, etc

View file

@ -0,0 +1,301 @@
# Das ist Memoro
# Memoro App: Revolutionierung der Gesprächsdokumentation und Gedankenerfassung
## 1\. Einführung
Memoro ist eine innovative mobile Anwendung, die darauf abzielt, die Art und Weise, wie Menschen Gespräche dokumentieren und Gedanken festhalten, zu revolutionieren. Entwickelt als Antwort auf die Herausforderungen des manuellen Mitschreibens und der Protokollführung, bietet Memoro eine intuitive Lösung für die automatisierte Erfassung, Transkription und Zusammenfassung von gesprochenen Inhalten.
## 2\. Hauptfunktionen
- **Aufnahme**: Ein zentraler Aufnahmeknopf ermöglicht das einfache Starten und Beenden von Aufnahmen.
- **Transkription**: Memoro transkribiert das Gesprochene Wort für Wort und erkennt dabei verschiedene Sprecher.
- **Zusammenfassung**: Die App fasst den Inhalt automatisch zusammen und extrahiert wichtige Informationen wie Aufgaben, Termine und Erkenntnisse.
- **Mehrsprachigkeit**: Unterstützung von 82 Sprachen bei der Aufnahme und Transkription. 56 Sprachen für die Übersetzung und 48 Sprachen für die App Oberfläche.
## 3\. Besondere Merkmale
- **Einfache Bedienung**: Die App ist intuitiv gestaltet und erfordert minimales Onboarding.
- **Sprachbarrieren überwinden**: Memoro unterstützt die Integration ausländischer Fachkräfte durch mehrsprachige Funktionen.
- **Fokus auf Face-to-Face-Gespräche**: Optimiert für persönliche Interaktionen und Gedankenerfassung.
- **Branchenspezifische Modi**: Anpassbare Modi für verschiedene Berufsgruppen und Anwendungsfälle.
- **Made in Germany**: Entwickelt nach höchsten Sicherheitsstandards mit Datenspeicherung in Deutschland.
## 4\. Zielgruppen und Anwendungsfälle
- **Studierende**: Vorlesungsmitschriften, Brainstorming für Abschlussarbeiten
- **Büroarbeiter**: Meetingprotokolle, E-Mail-Diktate
- **Handwerker**: Materiallisten, Baubesprechungen
- **Pflegekräfte**: Maßnahmenplanung, Dokumentation
- **Marketingexperten**: Interviewführung und \-analyse
- **Kreative**: Ideensammlung und Selbstreflexion
## 5\. Technische Details
- **Plattformen**: iOS (Apple App Store) und Android (Google Play Store)
- **iOS App**: https://apps.apple.com/de/app/memoro/id6451258411
- **Android App**: https://play.google.com/store/apps/details?id=com.memo.beta
- **Desktop-Zugang**: Lesefunktion für aufgenommene Memos
- **Integrationen**: Einfache Übertragung in andere Anwendungen durch Textformat
- **Erklärvideos**:
- **Deutsch**: https://www.youtube.com/watch?v=YTVbhzPY9eI (21.02.2024)
- **Englisch**: https://www.youtube.com/watch?v=bqDx4_V-zZU (21.02.2024)
## 6\. Preismodell
- **Kostenlose Version**: 180 Minuten/Monat, max. 50 Minuten/Aufnahme, 22 Memos/Tag
- **Plus**: 9€/Monat (600 Minuten/Monat, 100 Minuten/Memo)
- **Pro**: 23€/Monat (1800 Minuten/Monat, 200 Minuten/Memo)
- **Ultra**: 42€/Monat (4800 Minuten/Monat, 300 Minuten/Memo)
- 20% Rabatt bei jährlicher Abrechnung
- Sonderkonditionen für Bildungseinrichtungen und gemeinnützige Organisationen
## 7\. Datenschutz und Sicherheit
- DSGVO- und GDPR-konform
- Daten werden ausschließlich in Deutschland gespeichert
- Ende-zu-Ende-Verschlüsselung bei der Übertragung
- Tägliche Backups
- Keine Weitergabe an Dritte
- On-Premise-Lösungen für Unternehmen verfügbar
## 8\. Unternehmenswerte und Vision
- Inklusivität und Barrierefreiheit
- Verbesserung der Kommunikation und des gegenseitigen Verständnisses
- Demokratisierung des Zugangs zu KI-gestützten Dokumentationstools
- Fokus auf Zeitersparnis und effizienteres Arbeiten
## 9\. Erfolgsgeschichten und Statistiken
- 800 aktive Nutzer, davon 100 wöchentliche Nutzer
- Geschätzte Zeitersparnis von 2-6 Stunden pro Woche je nach Branche
- Reduzierung der Dokumentationsarbeit um bis zu 75%
- Erfolgreiche Anwendung bei Abschlussarbeiten und Forschungsprojekten
## 10\. Zukunftspläne und Entwicklung
- Kontinuierliche Verbesserung der Analysen
- Entwicklung neuer branchenspezifischer Modi
- Enge Zusammenarbeit mit Nutzern zur Produktoptimierung
- Anpassung an individuelle Kundenwünsche
## 11\. Kundenservice und Support
- Direkte Unterstützung über [kontakt@memoro.ai](mailto:kontakt@memoro.ai)
- Ausführliche Online-Dokumentation
- Schnelle Reaktion auf Nutzerfeedback und \-probleme
## 12\. Marketing und Kommunikation
- **Kernbotschaften**: Freiheit, Sicherheit, Ruhe, Verständnis
- **Emotionale Assoziationen**: Konzentration auf den Moment, Überwindung von Sprachbarrieren, verbesserte Selbstreflexion
- **Terminologie**:
- "Memoro" \- die App
- "Memos" \- einzelne Aufnahmen oder Analysen
- "Memories" \- Analyseabschnitte (z.B. Erkenntnisse, Termine, Aufgaben)
Memoro positioniert sich als unverzichtbares Tool für effiziente Kommunikation und Dokumentation in einer zunehmend globalisierten und schnelllebigen Arbeitswelt. Durch seine Benutzerfreundlichkeit, Mehrsprachigkeit und branchenübergreifende Anwendbarkeit hat Memoro das Potenzial, die Art und Weise, wie wir Informationen erfassen und verarbeiten, grundlegend zu verändern.
Memoro Mehrwert:
1. Definition und Bedeutung von Mehrwert:
- Mehrwert wird definiert als alle Vorteile und Nutzen, die zusätzlich zu einem Produkt oder einer Dienstleistung entstehen. Dies umfasst nicht nur die Funktionalität eines Produkts oder einer App, sondern auch alle damit verbundenen positiven Auswirkungen.
- Der Mehrwert ist entscheidend für Marketing, Vertrieb, Schaffung von Wettbewerbsvorteilen, Kundenbindung und Rentabilität. Ein Unternehmen, das den Mehrwert seiner Produkte und Dienstleistungen gut kennt und nutzt, kann erfolgreicher agieren.
2. Arten von Mehrwert:
- Mehrwert durch das Produkt selbst: Dies bezieht sich auf die grundlegenden Funktionen und Anwendungen eines Produkts oder einer App. Hier wurde diskutiert, wie ein Produkt spezifische Probleme löst und welche Vorteile es bietet.
- Mehrwert durch Prozesse rund um das Produkt: Dies umfasst die Vorteile, die durch die Nutzung des Produkts entstehen, sowie die Verbindungen und Prozesse, die dadurch optimiert werden.
- Mehrwert durch Personen im Unternehmen: Der Fokus lag auf den Kenntnissen, Erfahrungen und Fähigkeiten der Mitarbeiter, die sie in ihrem Bereich und möglicherweise auch außerhalb davon anbieten können.
- Mehrwert durch den entstehenden Profit für Kunden: Dies bezieht sich auf den finanziellen Gewinn, den Kunden durch die Nutzung eines Produkts erzielen, sowie andere Arten von Mehrwert, die nicht direkt monetär sind.
3. Nutzung und Ergebnisse von Mehrwert:
- Mehr Zeit für die eigentliche Arbeit: Durch die Nutzung des Produkts werden repetitiven und zeitaufwändigen Aufgaben reduziert, wodurch mehr Zeit für die Kernaufgaben bleibt.
- Weniger nervige Arbeit: Insbesondere das Führen von Protokollen wird erleichtert, was oft als unangenehme Pflicht empfunden wird.
- Weniger Missverständnisse und Stress in Gesprächen: Die Verfügbarkeit von Protokollen und Aufzeichnungen führt zu klareren Kommunikationen und weniger Missverständnissen.
- Unmittelbare Verfügbarkeit von Informationen: Protokolle und Aufzeichnungen stehen sofort zur Verfügung, was die Effizienz und Transparenz verbessert.
- Verbesserte Qualität der Arbeit: Durch detailliertere und spezifischere Dokumentationen wird die Arbeitsqualität gesteigert.
4. Erfahrungen und Wissen im Unternehmen:
- Breites Wissen in kreativem Design: Das Unternehmen verfügt über umfangreiche Kenntnisse in Bereichen wie Brand Design, Grafikdesign, UX/UI-Design, Film, Musik und Licht.
- Rapid Prototyping: Die Fähigkeit, schnell Prototypen zu erstellen und zu testen, wurde als eine der Kernkompetenzen hervorgehoben.
- KI-Kompetenzen: Das Unternehmen hat tiefgehende Erfahrungen in der Anwendung und Entwicklung von Künstlicher Intelligenz und weiß, welche Technologien zukunftsträchtig sind und welche vermieden werden sollten.
- Kundennähe und proaktive Zusammenarbeit: Eine enge Zusammenarbeit mit Kunden und die Fähigkeit, sich schnell auf deren Bedürfnisse einzustellen, wurden als besondere Stärken genannt.
- Marktkenntnis: Das Unternehmen kennt den deutschen und Schweizer Markt gut und kann seine Produkte entsprechend anpassen.
5. Vermittlung der Expertise:
- Demos und Workshops: Die Durchführung von Demonstrationen und Workshops, um die Funktionalität und Vorteile des Produkts zu zeigen.
- Nutzung der App als Beispiel: Die App selbst dient als lebendiges Beispiel für die eigenen Kompetenzen.
- Networking und Veranstaltungen: Teilnahme an und Organisation von Events wie Hackathons zur Förderung von Kollaborationen und Innovationsaustausch.
- Webseite und Social Media: Nutzung von Blogs, LinkedIn und anderen Plattformen, um Wissen und Updates zu teilen.
6. Emotionale Aspekte der Nutzung:
- Erleichterung und Sicherheit: Nutzer fühlen sich erleichtert und sicher, da sie wissen, dass wichtige Informationen aufgezeichnet und zugänglich sind.
- Selbstbestimmtheit und Selbstwertgefühl: Die App stärkt das Selbstvertrauen und das Gefühl der Selbstbestimmtheit, da Nutzer ihre Gedanken und Ideen festhalten können.
- Gemeinschaftsgefühl: Die Möglichkeit, Wissen und Informationen zu teilen, fördert ein Gefühl der Verbundenheit und Zusammenarbeit.
- Vorfreude und Motivation: Nutzer freuen sich auf regelmäßige Updates und Verbesserungen, die die App noch nützlicher machen.
- Professionelle Unterstützung: Die App wird als professionelles Tool wahrgenommen, das im Alltag eine wertvolle Unterstützung bietet.
- Ermöglichung und Empowerment: Insbesondere für Nutzer mit sprachlichen oder technischen Einschränkungen bietet die App die Möglichkeit, sich besser auszudrücken und einzubringen.
- Gelassenheit und Ausgeglichenheit: Die Nutzung der App trägt zu einem Gefühl der Ruhe und Ausgeglichenheit bei, da Nutzer wissen, dass wichtige Informationen sicher gespeichert sind.
- Aktivierung und Entdeckungslust: Die Möglichkeit, jederzeit Gedanken und Ideen festzuhalten, motiviert die Nutzer, aktiv zu bleiben und Neues zu entdecken.
# Das Memoro Team
Unser Team besteht aus erfahrenen Experten aus den Bereichen künstliche Intelligenz, Softwareentwicklung, Datensicherheit und Branchenspezialisten. Gemeinsam arbeitet das Team daran, Memoro kontinuierlich zu verbessern und an die Bedürfnisse der Kunden anzupassen.
## Till Schneider
Till Schneider bringt als erfahrener Filmemacher und Mediendesigner eine Fülle von Kreativität und technischem Know-how in das Memoro-Team ein. Mit über einem Jahrzehnt Erfahrung in der digitalen Medienproduktion hat Till eine beeindruckende Karriere aufgebaut, die ihn optimal für seine Rolle bei Memoro qualifiziert.
Tills Expertise erstreckt sich über ein breites Spektrum der digitalen Medienlandschaft. Seine Leidenschaft für innovative Technologien und interaktive Medien spiegelt sich in seiner Arbeit wider. Er hat maßgeblich an der Entwicklung eines interaktiven Film-Tools mitgewirkt, was seine Fähigkeit zur Konzeption und Umsetzung komplexer digitaler Projekte unter Beweis stellt. Diese Erfahrung ist besonders wertvoll für die kontinuierliche Verbesserung und Erweiterung der Memoro-App.
In seiner Karriere hat Till über 80 selbständige Filmproduktionen realisiert, darunter Projekte für namhafte Unternehmen und öffentliche Einrichtungen. Diese Vielseitigkeit in der Projektarbeit hat sein Verständnis für unterschiedliche Kundenbedürfnisse geschärft eine Fähigkeit, die bei der Weiterentwicklung von Memoro von unschätzbarem Wert ist. Seine Erfahrung in der Kundenbetreuung und \-beratung ermöglicht es dem Team, die Anforderungen der Nutzer besser zu verstehen und in die Produktentwicklung einfließen zu lassen.
Tills akademischer Hintergrund in Mediendesign, mit Schwerpunkten in UX/UI Design, Bewegtbild und interaktiven Medien, bildet eine solide Grundlage für die Gestaltung benutzerfreundlicher und ansprechender Interfaces. Seine Bachelorarbeit, die sich mit der Gestaltung einer Lernplattform befasste, zeigt sein Interesse an der Entwicklung von Tools, die das Lernen und die Informationsverarbeitung erleichtern ein Kernaspekt der Mission von Memoro.
Als ehemaliger Geschäftsführer eines kleinen Teams bringt Till wertvolle Führungserfahrung mit. Er versteht die Herausforderungen der Teamkoordination und Projektleitung, was für die agile Entwicklung und das Wachstum von Memoro von großer Bedeutung ist. Seine Fähigkeit, komplexe Projekte von der Konzeption bis zur Umsetzung zu begleiten, trägt wesentlich zur effizienten Realisierung der Unternehmensziele bei.
Tills technische Fähigkeiten umfassen den professionellen Umgang mit verschiedenen Kamerasystemen, fortgeschrittene Kenntnisse in der Postproduktion von Film und Fotografie sowie Expertise in Branding und Corporate Design. Diese vielseitigen Kompetenzen ermöglichen es ihm, bei Memoro in verschiedenen Bereichen wertvolle Beiträge zu leisten, von der visuellen Gestaltung der App bis hin zur Erstellung von Marketingmaterialien.
Mit seiner Kombination aus kreativer Vision, technischem Fachwissen und Führungserfahrung ist Till Schneider eine treibende Kraft hinter der Innovation bei Memoro. Seine Fähigkeit, komplexe Ideen in benutzerfreundliche Lösungen zu übersetzen, macht ihn zu einem unverzichtbaren Mitglied des Teams, das kontinuierlich daran arbeitet, die Memoro-App zu verbessern und an die sich wandelnden Bedürfnisse der Nutzer anzupassen.
## Tobias Müller
Tobias Müller bringt als Full-Stack-Entwickler eine beeindruckende Bandbreite an technischen Fähigkeiten und Projekterfahrungen in das Memoro-Team ein. Mit seinem Hintergrund in Software Engineering und seiner Expertise in modernen Web-Technologien ist er bestens gerüstet, um die technische Entwicklung und Innovation bei Memoro voranzutreiben.
Tobias' Fachkenntnisse umfassen ein breites Spektrum an Programmiersprachen und Frameworks, mit besonderem Fokus auf JavaScript-basierte Technologien wie React.js, Vue.js und Node.js. Diese Expertise ist von unschätzbarem Wert für die Weiterentwicklung und Optimierung der Memoro-App, insbesondere im Hinblick auf Benutzerfreundlichkeit und Leistungsfähigkeit. Seine Erfahrung mit SQL- und NoSQL-Datenbanken ermöglicht es ihm, effiziente und skalierbare Datenlösungen für Memoro zu implementieren, was angesichts der Datenintensität der App von großer Bedeutung ist.
In seiner bisherigen Laufbahn hat Tobias an einer Vielzahl anspruchsvoller Projekte mitgewirkt, die seine Fähigkeit zur Umsetzung komplexer Softwarelösungen unter Beweis stellen. Besonders hervorzuheben ist seine Erfahrung in der Entwicklung von KI-gesteuerten Assistenten und in der Konzeption neuer Software-Architekturen. Diese Kompetenzen sind für Memoro von großem Wert, da sie direkt zur Verbesserung der KI-gestützten Transkriptions- und Zusammenfassungsfunktionen der App beitragen können.
Ein besonderer Mehrwert liegt in Tobias' Erfahrung mit Cloud-Technologien, insbesondere mit Azure und Google Cloud. Diese Expertise ist entscheidend für die Skalierbarkeit und Zuverlässigkeit der Memoro-Infrastruktur. Seine Kenntnisse in Bereichen wie CI/CD-Pipelines und Containerisierung mit Docker tragen dazu bei, die Entwicklungs- und Bereitstellungsprozesse bei Memoro zu optimieren und zu beschleunigen.
Mit seiner Kombination aus technischer Expertise, Projekterfahrung und innovativem Denken ist Tobias Müller hervorragend positioniert, um wesentlich zur technologischen Weiterentwicklung von Memoro beizutragen. Seine Fähigkeit, komplexe technische Herausforderungen zu meistern und dabei stets den Nutzen für den Endanwender im Blick zu behalten, macht ihn zu einem wertvollen Mitglied des Memoro-Teams.
# Aleksandra Vasileva
Aleksandra Vasileva, die von allen Alex genannt wird, bringt eine einzigartige Kombination aus Marketing-Expertise und Medienerfahrung in das Memoro-Team ein. Mit ihrem Hintergrund in Internet und Online Marketing sowie ihrer praktischen Erfahrung in der TV-Produktion ist Alex bestens gerüstet, um Memoros Marktpräsenz zu stärken und die Nutzerkommunikation zu optimieren.
Alex' Studium des Internet und Online Marketings an der Hochschule Ravensburg-Weingarten hat ihr ein solides Fundament in den Bereichen Social Media Marketing, Online Marketing und Projektmanagement im Marketing vermittelt. Diese Kenntnisse sind von unschätzbarem Wert für Memoro, insbesondere wenn es darum geht, die App einem breiteren Publikum zugänglich zu machen und die Nutzerbindung zu erhöhen.
Ihre Erfahrung als Junior TV Production Manager bei Regio TV Bodensee hat Alex' Fähigkeiten in der Content-Erstellung und \-Organisation geschärft. Die Erstellung von Programmlisten und Sendungsinhalten sowie die Organisation von Online-Inhalten mit WordPress sind Kompetenzen, die direkt auf die Content-Strategie von Memoro übertragen werden können. Diese Fähigkeiten sind besonders wertvoll, um die Benutzeroberfläche der App intuitiv und informativ zu gestalten und regelmäßige Updates für die Nutzer zu planen.
Während ihres Praktikums bei Bitzilla GmbH sammelte Alex wertvolle Erfahrungen in der Entwicklung und Umsetzung von Social Media Marketing Kampagnen. Ihre Fähigkeit, Events zu organisieren und Content-Marketing-Pläne zu erstellen, wird Memoro dabei helfen, eine kohärente und ansprechende Online-Präsenz aufzubauen. Die Erstellung von Social Media Inhalten, Beiträgen und Bildern ist eine Kompetenz, die für die Vermarktung von Memoro in verschiedenen digitalen Kanälen von großer Bedeutung ist.
Alex' Verständnis für SEO und professionelles Schreiben für Websites, Apps und Blogs ist ein wesentlicher Vorteil für Memoro. Diese Fähigkeiten können genutzt werden, um die Sichtbarkeit der App in Suchmaschinen zu verbessern und ansprechende, informative Inhalte für potenzielle und bestehende Nutzer zu erstellen.
Ihre Erfahrung in der Usability-Testbegleitung ist besonders wertvoll für Memoro. In Zusammenarbeit mit den Entwicklern kann Alex dazu beitragen, die Benutzerfreundlichkeit der App kontinuierlich zu verbessern und sicherzustellen, dass sie den Bedürfnissen und Erwartungen der Nutzer entspricht.
Alex' mehrsprachige Fähigkeiten sie spricht fließend Bulgarisch, Englisch und Deutsch sind ein großer Vorteil für Memoro, insbesondere im Hinblick auf die internationale Ausrichtung und Expansion des Unternehmens. Ihre Fähigkeit, in verschiedenen Sprachen zu kommunizieren, kann dazu beitragen, Marketingmaterialien und Nutzerkommunikation für verschiedene Märkte zu lokalisieren und anzupassen.
Ihre vielfältigen Interessen, die von Geschichte über Nachhaltigkeit bis hin zu Physik und Astrophysik reichen, verleihen Alex eine breite Perspektive, die bei der Entwicklung von Marketingstrategien für verschiedene Zielgruppen von Vorteil sein kann. Dies ist besonders relevant für Memoro, da die App in verschiedenen Bereichen und von unterschiedlichen Nutzergruppen eingesetzt werden kann.
Mit ihrer Kombination aus theoretischem Wissen und praktischer Erfahrung im digitalen Marketing, gepaart mit ihren Fähigkeiten in der Medienproduktion, ist Alex hervorragend positioniert, um die Marketingbemühungen von Memoro zu leiten und zu optimieren. Ihre Kreativität, ihr technisches Verständnis und ihre kommunikativen Fähigkeiten machen sie zu einem wertvollen Mitglied des Teams, das wesentlich zur Steigerung der Bekanntheit und Attraktivität der Memoro-App beitragen kann.
## Das Umfeld und die Community von Memoro
# Unsere Zielgruppe
# Datenschutz, Sicherheit und Infrastruktur
## Einleitung
Memoro, eine innovative App zur Gesprächsdokumentation und Gedankenerfassung, legt höchsten Wert auf Datenschutz und Sicherheit. Als in Deutschland entwickelte Anwendung erfüllt Memoro die strengsten Qualitäts- und Sicherheitsstandards. Dieses Dokument bietet einen umfassenden Überblick über die Datenschutzpraktiken, Sicherheitsmaßnahmen und die zugrunde liegende Infrastruktur von Memoro.
## Datenschutz
Memoro ist vollständig DSGVO- und GDPR-konform. Das Unternehmen hat strikte Datenschutzrichtlinien implementiert, um die Privatsphäre seiner Nutzer zu schützen. Alle personenbezogenen Daten werden mit größter Sorgfalt behandelt und ausschließlich für die vorgesehenen Zwecke verwendet.
Folgende Datenschutzmaßnahmen sind bei Memoro implementiert:
- Daten werden ausschließlich in Deutschland gespeichert, was eine hohe Datensicherheit und die Einhaltung strenger EU-Datenschutzgesetze gewährleistet.
- Es erfolgt keine Weitergabe von Nutzerdaten an Dritte, es sei denn, dies ist gesetzlich vorgeschrieben oder der Nutzer hat ausdrücklich zugestimmt.
- Nutzer haben volle Kontrolle über ihre Daten und können jederzeit Auskunft, Berichtigung oder Löschung ihrer personenbezogenen Daten verlangen.
## Sicherheit
Die Sicherheit der Nutzerdaten hat bei Memoro oberste Priorität. Das Unternehmen setzt modernste Sicherheitstechnologien ein, um die Integrität und Vertraulichkeit aller gespeicherten und übertragenen Daten zu gewährleisten.
Zu den wichtigsten Sicherheitsmaßnahmen gehören:
- Ende-zu-Ende-Verschlüsselung bei der Datenübertragung, um unbefugten Zugriff zu verhindern.
- Tägliche Backups aller Daten, um Datenverlust zu vermeiden und eine schnelle Wiederherstellung im Notfall zu ermöglichen.
- Strenge Zugriffskontrollen und Berechtigungsmanagement innerhalb des Unternehmens, um sicherzustellen, dass nur autorisiertes Personal Zugang zu sensiblen Daten hat.
- Regelmäßige Sicherheitsaudits und Penetrationstests, um potenzielle Schwachstellen frühzeitig zu erkennen und zu beheben.
Für Unternehmen, die besonders hohe Sicherheitsanforderungen haben, bietet Memoro On-Premise-Lösungen an. Diese ermöglichen es Kunden, die Memoro-Infrastruktur in ihrer eigenen IT-Umgebung zu betreiben und so die volle Kontrolle über ihre Daten zu behalten.
## Infrastruktur
Die technische Infrastruktur von Memoro wurde sorgfältig konzipiert, um höchste Leistung, Skalierbarkeit und Sicherheit zu gewährleisten. Das Unternehmen nutzt eine Kombination aus eigenen Systemen und bewährten Cloud-Diensten, um eine zuverlässige und effiziente Plattform bereitzustellen.
Kernelemente der Memoro-Infrastruktur sind:
- Datenspeicherung: Memoro nutzt die Firebase Cloud (Google Cloud) für die Speicherung von Nutzerdaten, Eingaben, Abrechnungsdaten und Memos (einschließlich Transkripte und Zusammenfassungen). Die Datenbank-Server befinden sich in Frankfurt, Deutschland, was kurze Latenzzeiten für europäische Nutzer und die Einhaltung strenger EU-Datenschutzbestimmungen gewährleistet.
- Audioverarbeitung: Für die Transkription von Audiodateien verwendet Memoro Azure Speech, das ebenfalls in Frankfurt gehostet wird. Dies ermöglicht präzise und schnelle Transkriptionen bei gleichzeitiger Einhaltung der Datenschutzbestimmungen.
- KI-gestützte Analysen: Die Erstellung von Zusammenfassungen wird durch Azure OpenAI unterstützt, das in Paris gehostet wird. Wichtig zu betonen ist, dass die verarbeiteten Daten nicht zum Training der KI-Modelle genutzt werden, was den Schutz der Nutzerinformationen zusätzlich stärkt.
- Anwendungshosting: Die Memoro-App ist sowohl für iOS (über den Apple App Store) als auch für Android (über den Google Play Store) verfügbar. Zusätzlich gibt es einen Desktop-Zugang, der es Nutzern ermöglicht, ihre aufgenommenen Memos zu lesen und zu verwalten.
Die Infrastruktur von Memoro ist so konzipiert, dass sie problemlos skaliert werden kann, um mit dem Wachstum der Nutzerbasis Schritt zu halten. Regelmäßige Leistungsoptimierungen und Kapazitätserweiterungen stellen sicher, dass die App auch bei hoher Auslastung reibungslos funktioniert.
## Datenspeicherung und \-verarbeitung
Memoro verarbeitet verschiedene Arten von Daten, um seinen Nutzern einen umfassenden Service zu bieten. Dazu gehören:
- Sprachaufnahmen
- Transkriptionen der Sprachaufnahmen
- Zusammenfassungen der Transkriptionen
- Nutzungsdaten (z.B. IP-Adresse, Gerätetyp, Betriebssystem)
- Diagnosedaten und Fehlerberichte
Die Speicherdauer dieser Daten ist wie folgt geregelt:
- Nutzungsdaten werden maximal 26 Monate nach der Erfassung aufbewahrt.
- Sprachaufnahmen, Transkriptionen und Zusammenfassungen bleiben für die Dauer des Nutzungsverhältnisses gespeichert und werden spätestens 6 Monate nach Beendigung des Nutzungsverhältnisses gelöscht.
- Diagnosedaten und Fehlerberichte werden maximal 90 Tage nach der Erfassung aufbewahrt.
Bei den verwendeten Azure-Diensten gelten folgende Speicherfristen:
- Azure Speech: Daten werden maximal 31 Tage gespeichert.
- Azure OpenAI: Daten werden maximal 30 Tage gespeichert.
Diese Speicherfristen gewährleisten, dass Memoro seinen Nutzern einen zuverlässigen Service bieten kann, während gleichzeitig der Datenschutz gewahrt bleibt.
## Kontinuierliche Verbesserung und Nutzerfeedback
Memoro legt großen Wert auf die kontinuierliche Verbesserung seiner Dienste. Zu diesem Zweck werden anonymisierte Nutzungsanalysen durchgeführt, die dabei helfen, die App stetig zu optimieren und an die Bedürfnisse der Nutzer anzupassen. Hierbei kommt Google Analytics zum Einsatz, wobei streng darauf geachtet wird, dass keine personenbezogenen Daten in die Analysen einfließen.
Zur Erkennung und Analyse von App-Fehlern nutzt Memoro Firebase Crashlytics. Dies ermöglicht es dem Entwicklungsteam, auftretende Probleme schnell zu identifizieren und zu beheben, was zu einer stabilen und zuverlässigen Nutzererfahrung beiträgt.
Memoro ermutigt seine Nutzer aktiv, Feedback zu geben und Verbesserungsvorschläge einzureichen. Dieses Feedback wird sorgfältig geprüft und fließt in die Weiterentwicklung der App ein. Nutzer können sich jederzeit mit Fragen oder Anliegen an den Kundenservice unter [kontakt@memoro.ai](mailto:kontakt@memoro.ai) wenden.
## Kernbotschaften
Bei der Kommunikation über Memoros Datenschutz, Sicherheit und Infrastruktur sollten folgende Kernbotschaften im Mittelpunkt stehen:
1. **Made in Germany**: Memoro wird vollständig in Deutschland entwickelt und folgt den höchsten Qualitäts- und Sicherheitsstandards. Dies unterstreicht das Engagement für Exzellenz und Vertrauenswürdigkeit.
2. **DSGVO-Konformität**: Memoro erfüllt alle Anforderungen der Datenschutz-Grundverordnung (DSGVO). Dies gewährleistet, dass die Privatsphäre der Nutzer geschützt und ihre Rechte in Bezug auf ihre persönlichen Daten respektiert werden.
3. **Datenspeicherung in Deutschland**: Alle Nutzerdaten werden ausschließlich in deutschen Rechenzentren gespeichert. Dies garantiert die Einhaltung strenger europäischer Datenschutzgesetze und minimiert das Risiko des Zugriffs durch ausländische Behörden.
4. **Ende-zu-Ende-Verschlüsselung**: Memoro verwendet modernste Verschlüsselungstechnologien, um die Sicherheit der Nutzerdaten während der Übertragung zu gewährleisten. Dies schützt vor unbefugtem Zugriff und Datenmissbrauch.
5. **Keine Weitergabe an unbefugte Dritte**: Memoro verpflichtet sich, Nutzerdaten nicht an Dritte weiterzugeben, es sei denn, dies ist gesetzlich vorgeschrieben oder der Nutzer hat ausdrücklich zugestimmt. Dies unterstreicht das Engagement für den Schutz der Privatsphäre der Nutzer.
6. **Transparenz und Kontrolle**: Nutzer haben volle Kontrolle über ihre Daten und können jederzeit Auskunft, Berichtigung oder Löschung ihrer personenbezogenen Daten verlangen. Diese Transparenz fördert das Vertrauen in Memoro.
7. **Kontinuierliche Verbesserung**: Memoro investiert ständig in die Verbesserung seiner Sicherheitsmaßnahmen und Datenschutzpraktiken. Regelmäßige Audits und Updates gewährleisten, dass die App immer auf dem neuesten Stand der Technik ist.
8. **Branchenführende Technologien**: Durch die Nutzung von Azure Speech und Azure OpenAI bietet Memoro fortschrittliche KI-Funktionen, ohne dabei Kompromisse beim Datenschutz einzugehen. Die Daten werden nicht zum Training der KI-Modelle verwendet.
9. **Flexible Lösungen für Unternehmen**: Mit On-Premise-Optionen bietet Memoro auch für Unternehmen mit besonders hohen Sicherheitsanforderungen passende Lösungen. Dies unterstreicht die Anpassungsfähigkeit und das Verständnis für unterschiedliche Sicherheitsbedürfnisse.
10. **Vertrauenswürdiger Partner**: Memoro positioniert sich als vertrauenswürdiger Partner für Einzelpersonen und Unternehmen, der die Bedeutung von Datenschutz und Sicherheit in der digitalen Welt versteht und priorisiert.
Diese Kernbotschaften sollten in allen Kommunikationskanälen konsistent vermittelt werden, sei es in Marketingmaterialien, Kundengesprächen oder bei der Produktpräsentation. Sie unterstreichen Memoros Engagement für Datenschutz, Sicherheit und technologische Innovation und differenzieren das Unternehmen in einem zunehmend wettbewerbsintensiven Markt.
# Memoro Kontakt
Webseite: [https://www.memoro.ai/](https://www.memoro.ai/)
LinkedIn: [https://www.linkedin.com/company/memoroai](https://www.linkedin.com/company/memoroai)
Instagram: [https://www.instagram.com/memoroai/](https://www.instagram.com/memoroai/)
WhatsApp: [+41 79 370 88 99](https://wa.me/41793708899)
Adresse: Reichenaustraße 11a, 78467 Konstanz

View file

@ -0,0 +1,242 @@
# Blueprint-Ideen für das Handwerk - Handwerker (Final)
## Die 4 wichtigsten Blueprints - NUR mit den 8 verfügbaren System-Prompts (ohne Schlüsselpunkte)
---
## 1. Kundengespräch & Angebotserstellung / Customer Meeting & Quote Preparation
**Kategorie**: Handwerk
**Farbe**: #FF6F00
### Beschreibung
**Deutsch**: Dokumentiert Kundenwünsche, technische Anforderungen und Preisabsprachen. Erstellt strukturierte Grundlagen für Angebote und Auftragsbestätigungen.
**English**: Documents customer requirements, technical specifications, and price agreements. Creates structured foundations for quotes and order confirmations.
### Verwendete Prompts (100% VERFÜGBAR)
1. **Kurzzusammenfassung** (Sort Order: 1)
- Prompt ID: `c4009bef-4504-4af7-86f5-f896a2412a0a`
- Memory Title: Kurzzusammenfassung / Executive Summary
- Kompakte Projektübersicht für die Kalkulation
2. **Ausführliche Zusammenfassung** (Sort Order: 2)
- Prompt ID: `4370cb68-d676-4b93-8afd-2fb7c4ad78c4`
- Memory Title: Ausführliche Zusammenfassung / Detailed Summary
- Detaillierte Kundenanforderungen und Leistungsumfang
3. **Aufgaben & Termine** (Sort Order: 3)
- Prompt ID: `7a6cac9a-5a34-4fe5-a8f6-23f8165b0e48`
- Memory Title: Aufgaben & Termine / Tasks & Appointments
- Besichtigungstermine, Lieferzeiten, Fertigstellungsdaten
4. **Offene Fragen** (Sort Order: 4)
- Prompt ID: `c576e875-5a52-4f6a-abb7-0c62c945af78`
- Memory Title: Offene Fragen / Open Questions
- Klärungsbedarf für Material, Technik oder Genehmigungen
---
## 2. Baustellendokumentation & Qualitätssicherung / Site Documentation & Quality Control
**Kategorie**: Handwerk
**Farbe**: #FF6F00
### Beschreibung
**Deutsch**: Erfasst Baufortschritt, Mängel, Abnahmen und wichtige Entscheidungen. Perfekt für Gewährleistung und Nachweise.
**English**: Records construction progress, defects, approvals, and important decisions. Perfect for warranty and documentation.
### Verwendete Prompts (100% VERFÜGBAR)
1. **Kurzzusammenfassung** (Sort Order: 1)
- Prompt ID: `c4009bef-4504-4af7-86f5-f896a2412a0a`
- Memory Title: Kurzzusammenfassung / Executive Summary
- Tagesübersicht Baufortschritt
2. **Ausführliche Zusammenfassung** (Sort Order: 2)
- Prompt ID: `4370cb68-d676-4b93-8afd-2fb7c4ad78c4`
- Memory Title: Ausführliche Zusammenfassung / Detailed Summary
- Detaillierte Tagesprotokolle und Fortschrittsdokumentation
3. **Aufgaben & Termine** (Sort Order: 3)
- Prompt ID: `7a6cac9a-5a34-4fe5-a8f6-23f8165b0e48`
- Memory Title: Aufgaben & Termine / Tasks & Appointments
- Nacharbeiten, Abnahmetermine, Materialbestellungen
4. **Beantwortete Fragen & Antworten** (Sort Order: 4)
- Prompt ID: `47ce3340-e8c6-437c-928d-854c55589491`
- Memory Title: Q&A / Questions & Answers
- Technische Klärungen und Lösungen
---
## 3. Team-Besprechung & Arbeitsplanung / Team Meeting & Work Planning
**Kategorie**: Handwerk
**Farbe**: #FF6F00
### Beschreibung
**Deutsch**: Strukturiert Teambesprechungen, Arbeitseinteilung und Projektkoordination. Dokumentiert Zuständigkeiten und Arbeitsabläufe.
**English**: Structures team meetings, work allocation, and project coordination. Documents responsibilities and workflows.
### Verwendete Prompts (100% VERFÜGBAR)
1. **Kurzzusammenfassung** (Sort Order: 1)
- Prompt ID: `c4009bef-4504-4af7-86f5-f896a2412a0a`
- Memory Title: Kurzzusammenfassung / Executive Summary
- Wochenplanung kompakt
2. **Aufgaben & Termine** (Sort Order: 2)
- Prompt ID: `7a6cac9a-5a34-4fe5-a8f6-23f8165b0e48`
- Memory Title: Aufgaben & Termine / Tasks & Appointments
- Arbeitseinteilung, Deadlines, Materialvorbereitung
3. **Gesammelte Ideen & Vorschläge** (Sort Order: 3)
- Prompt ID: `8cdc89a5-2f76-4d50-a93d-0c177c3e73ab`
- Memory Title: Ideen & Vorschläge / Ideas & Suggestions
- Prozessverbesserungen und Lösungsansätze
4. **Offene Fragen** (Sort Order: 4)
- Prompt ID: `c576e875-5a52-4f6a-abb7-0c62c945af78`
- Memory Title: Offene Fragen / Open Questions
- Klärungsbedarf mit Auftraggeber oder Lieferanten
---
## 4. Fachliche Weiterbildung & Schulungen / Professional Training & Education
**Kategorie**: Handwerk
**Farbe**: #FF6F00
### Beschreibung
**Deutsch**: Dokumentiert Schulungen, neue Techniken und Zertifizierungen. Erstellt Wissensdatenbank für Mitarbeiter und Nachweise für Kunden.
**English**: Documents training, new techniques, and certifications. Creates knowledge base for employees and proof for customers.
### Verwendete Prompts (100% VERFÜGBAR)
1. **Kurzzusammenfassung** (Sort Order: 1)
- Prompt ID: `c4009bef-4504-4af7-86f5-f896a2412a0a`
- Memory Title: Kurzzusammenfassung / Executive Summary
- Schulung auf einen Blick
2. **Ausführliche Zusammenfassung** (Sort Order: 2)
- Prompt ID: `4370cb68-d676-4b93-8afd-2fb7c4ad78c4`
- Memory Title: Ausführliche Zusammenfassung / Detailed Summary
- Vollständige Schulungsdokumentation mit allen Details
3. **Beantwortete Fragen & Antworten** (Sort Order: 3)
- Prompt ID: `47ce3340-e8c6-437c-928d-854c55589491`
- Memory Title: Q&A / Questions & Answers
- Technisches Fachwissen zum Nachschlagen
4. **Blogbeitrag** (Sort Order: 4)
- Prompt ID: `2c6a6e47-1d0c-441f-9449-b5d908bffba2`
- Memory Title: Blogbeitrag / Blog Post
- Für Firmen-Website oder Kundennewsletter
---
## Implementierungsdetails
### JSON-Struktur für Supabase
```json
{
"category_id": "handwerk-category-id",
"blueprints": [
{
"name": {
"de": "Kundengespräch & Angebotserstellung",
"en": "Customer Meeting & Quote Preparation"
},
"description": {
"de": "Dokumentiert Kundenwünsche und erstellt Angebotsgrundlagen",
"en": "Documents customer requirements and creates quote foundations"
},
"prompts": [
"c4009bef-4504-4af7-86f5-f896a2412a0a",
"4370cb68-d676-4b93-8afd-2fb7c4ad78c4",
"7a6cac9a-5a34-4fe5-a8f6-23f8165b0e48",
"c576e875-5a52-4f6a-abb7-0c62c945af78"
]
},
{
"name": {
"de": "Baustellendokumentation & Qualitätssicherung",
"en": "Site Documentation & Quality Control"
},
"description": {
"de": "Erfasst Baufortschritt, Mängel und Abnahmen",
"en": "Records construction progress, defects, and approvals"
},
"prompts": [
"c4009bef-4504-4af7-86f5-f896a2412a0a",
"4370cb68-d676-4b93-8afd-2fb7c4ad78c4",
"7a6cac9a-5a34-4fe5-a8f6-23f8165b0e48",
"47ce3340-e8c6-437c-928d-854c55589491"
]
},
{
"name": {
"de": "Team-Besprechung & Arbeitsplanung",
"en": "Team Meeting & Work Planning"
},
"description": {
"de": "Strukturiert Teambesprechungen und Arbeitseinteilung",
"en": "Structures team meetings and work allocation"
},
"prompts": [
"c4009bef-4504-4af7-86f5-f896a2412a0a",
"7a6cac9a-5a34-4fe5-a8f6-23f8165b0e48",
"8cdc89a5-2f76-4d50-a93d-0c177c3e73ab",
"c576e875-5a52-4f6a-abb7-0c62c945af78"
]
},
{
"name": {
"de": "Fachliche Weiterbildung & Schulungen",
"en": "Professional Training & Education"
},
"description": {
"de": "Dokumentiert Schulungen und neue Techniken",
"en": "Documents training and new techniques"
},
"prompts": [
"c4009bef-4504-4af7-86f5-f896a2412a0a",
"4370cb68-d676-4b93-8afd-2fb7c4ad78c4",
"47ce3340-e8c6-437c-928d-854c55589491",
"2c6a6e47-1d0c-441f-9449-b5d908bffba2"
]
}
]
}
```
## Vorteile dieser finalen Version
### ✅ 100% Kompatibilität
- **NUR die 8 tatsächlich verfügbaren Prompts** werden verwendet (ohne Schlüsselpunkte)
- Keine Phantasie-IDs oder nicht existierende Prompts
- Sofort implementierbar ohne Backend-Änderungen
### ✅ Vollständige Abdeckung
- **Kundenbetreuung**: Von Erstgespräch bis Angebot
- **Projektdokumentation**: Lückenlose Baustellendokumentation
- **Teamorganisation**: Effiziente Arbeitsplanung
- **Qualifikation**: Weiterbildung und Zertifizierungen
### ✅ Praktischer Nutzen für Handwerker
- **Rechtssicherheit**: Dokumentation für Gewährleistung und Beweissicherung
- **Effizienz**: Strukturierte Arbeitsabläufe und klare Zuständigkeiten
- **Qualität**: Systematische Erfassung von Mängeln und Nacharbeiten
- **Kundenbindung**: Professionelle Dokumentation und Kommunikation
- **Wissensmanagement**: Schulungsinhalte und Best Practices im Team teilen
### ✅ Handwerksspezifische Anwendungsfälle
- Mängelprotokolle und Abnahmen
- Materialbestellungen und Liefertermine
- Arbeitszeiten und Leistungserfassung
- Technische Klärungen und Normen
- Kundenwünsche und Änderungen
- Sicherheitsunterweisungen
### ✅ Einfache Implementierung
- Direkt in Supabase einfügbar
- Keine neuen Prompts nötig
- Verwendet bestehende Infrastruktur
- Mehrsprachigkeit bereits integriert (DE, EN, IT, FR, ES)

View file

@ -0,0 +1,244 @@
# Blueprint-Ideen für den Büro-Kontext / Office (Final)
## Die 4 wichtigsten Blueprints - NUR mit den 8 verfügbaren System-Prompts (ohne Schlüsselpunkte)
---
## 1. Meeting-Protokoll & Follow-Up / Meeting Minutes & Follow-Up
**Kategorie**: Büro / Office
**Farbe**: #2196F3
### Beschreibung
**Deutsch**: Erstellt strukturierte Meeting-Protokolle mit Entscheidungen, Aufgaben und Terminen. Perfekt für effiziente Nachbereitung und klare Verantwortlichkeiten.
**English**: Creates structured meeting minutes with decisions, tasks, and deadlines. Perfect for efficient follow-up and clear responsibilities.
### Verwendete Prompts (100% VERFÜGBAR)
1. **Kurzzusammenfassung** (Sort Order: 1)
- Prompt ID: `c4009bef-4504-4af7-86f5-f896a2412a0a`
- Memory Title: Kurzzusammenfassung / Executive Summary
- Meeting-Ergebnisse auf einen Blick
2. **Ausführliche Zusammenfassung** (Sort Order: 2)
- Prompt ID: `4370cb68-d676-4b93-8afd-2fb7c4ad78c4`
- Memory Title: Ausführliche Zusammenfassung / Detailed Summary
- Vollständiges Protokoll mit allen Diskussionspunkten
3. **Aufgaben & Termine** (Sort Order: 3)
- Prompt ID: `7a6cac9a-5a34-4fe5-a8f6-23f8165b0e48`
- Memory Title: Aufgaben & Termine / Tasks & Appointments
- Action Items mit Verantwortlichen und Deadlines
4. **Offene Fragen** (Sort Order: 4)
- Prompt ID: `c576e875-5a52-4f6a-abb7-0c62c945af78`
- Memory Title: Offene Fragen / Open Questions
- Themen für das nächste Meeting
---
## 2. Brainstorming & Ideenentwicklung / Brainstorming & Idea Development
**Kategorie**: Büro / Office
**Farbe**: #2196F3
### Beschreibung
**Deutsch**: Erfasst und strukturiert kreative Sessions, Workshops und Strategieentwicklung. Dokumentiert alle Ideen und priorisiert Umsetzungsschritte.
**English**: Captures and structures creative sessions, workshops, and strategy development. Documents all ideas and prioritizes implementation steps.
### Verwendete Prompts (100% VERFÜGBAR)
1. **Kurzzusammenfassung** (Sort Order: 1)
- Prompt ID: `c4009bef-4504-4af7-86f5-f896a2412a0a`
- Memory Title: Kurzzusammenfassung / Executive Summary
- Session-Ergebnis kompakt
2. **Gesammelte Ideen & Vorschläge** (Sort Order: 2)
- Prompt ID: `8cdc89a5-2f76-4d50-a93d-0c177c3e73ab`
- Memory Title: Ideen & Vorschläge / Ideas & Suggestions
- Alle Konzepte nach Umsetzbarkeit sortiert
3. **Aufgaben & Termine** (Sort Order: 3)
- Prompt ID: `7a6cac9a-5a34-4fe5-a8f6-23f8165b0e48`
- Memory Title: Aufgaben & Termine / Tasks & Appointments
- Nächste Schritte zur Umsetzung
4. **Blogbeitrag** (Sort Order: 4)
- Prompt ID: `2c6a6e47-1d0c-441f-9449-b5d908bffba2`
- Memory Title: Blogbeitrag / Blog Post
- Für internes Wissensmanagement oder Intranet
---
## 3. Projektbesprechung & Statusupdate / Project Meeting & Status Update
**Kategorie**: Büro / Office
**Farbe**: #2196F3
### Beschreibung
**Deutsch**: Dokumentiert Projektfortschritt, Meilensteine und Hindernisse. Ideal für Steering Committees, Sprint Reviews und Stakeholder-Updates.
**English**: Documents project progress, milestones, and obstacles. Ideal for steering committees, sprint reviews, and stakeholder updates.
### Verwendete Prompts (100% VERFÜGBAR)
1. **Kurzzusammenfassung** (Sort Order: 1)
- Prompt ID: `c4009bef-4504-4af7-86f5-f896a2412a0a`
- Memory Title: Kurzzusammenfassung / Executive Summary
- Projektstatus Executive Summary
2. **Ausführliche Zusammenfassung** (Sort Order: 2)
- Prompt ID: `4370cb68-d676-4b93-8afd-2fb7c4ad78c4`
- Memory Title: Ausführliche Zusammenfassung / Detailed Summary
- Detaillierter Fortschrittsbericht
3. **Aufgaben & Termine** (Sort Order: 3)
- Prompt ID: `7a6cac9a-5a34-4fe5-a8f6-23f8165b0e48`
- Memory Title: Aufgaben & Termine / Tasks & Appointments
- Meilensteine und kritische Pfade
4. **Offene Fragen** (Sort Order: 4)
- Prompt ID: `c576e875-5a52-4f6a-abb7-0c62c945af78`
- Memory Title: Offene Fragen / Open Questions
- Risiken und Eskalationsbedarf
---
## 4. Kommunikations-Content / Communication Content
**Kategorie**: Büro / Office
**Farbe**: #2196F3
### Beschreibung
**Deutsch**: Verwandelt Besprechungen und Präsentationen in professionelle Kommunikationsinhalte für verschiedene Kanäle und Zielgruppen.
**English**: Transforms meetings and presentations into professional communication content for various channels and audiences.
### Verwendete Prompts (100% VERFÜGBAR)
1. **Kurzzusammenfassung** (Sort Order: 1)
- Prompt ID: `c4009bef-4504-4af7-86f5-f896a2412a0a`
- Memory Title: Kurzzusammenfassung / Executive Summary
- Management Summary für Führungsebene
2. **Blogbeitrag** (Sort Order: 2)
- Prompt ID: `2c6a6e47-1d0c-441f-9449-b5d908bffba2`
- Memory Title: Blogbeitrag / Blog Post
- Für Intranet oder Unternehmens-Blog
3. **Social Media Posts** (Sort Order: 3)
- Prompt ID: `b2e39e0a-ec1f-4d0e-813d-f1a08493332b`
- Memory Title: Social Media Posts
- LinkedIn, Twitter für Corporate Communications
4. **Ausführliche Zusammenfassung** (Sort Order: 4)
- Prompt ID: `4370cb68-d676-4b93-8afd-2fb7c4ad78c4`
- Memory Title: Ausführliche Zusammenfassung / Detailed Summary
- Hintergrundinformationen für Newsletter
---
## Implementierungsdetails
### JSON-Struktur für Supabase
```json
{
"category_id": "office-category-id",
"blueprints": [
{
"name": {
"de": "Meeting-Protokoll & Follow-Up",
"en": "Meeting Minutes & Follow-Up"
},
"description": {
"de": "Strukturierte Meeting-Protokolle mit Aufgaben und Entscheidungen",
"en": "Structured meeting minutes with tasks and decisions"
},
"prompts": [
"c4009bef-4504-4af7-86f5-f896a2412a0a",
"4370cb68-d676-4b93-8afd-2fb7c4ad78c4",
"7a6cac9a-5a34-4fe5-a8f6-23f8165b0e48",
"c576e875-5a52-4f6a-abb7-0c62c945af78"
]
},
{
"name": {
"de": "Brainstorming & Ideenentwicklung",
"en": "Brainstorming & Idea Development"
},
"description": {
"de": "Erfasst kreative Sessions und priorisiert Umsetzungsschritte",
"en": "Captures creative sessions and prioritizes implementation steps"
},
"prompts": [
"c4009bef-4504-4af7-86f5-f896a2412a0a",
"8cdc89a5-2f76-4d50-a93d-0c177c3e73ab",
"7a6cac9a-5a34-4fe5-a8f6-23f8165b0e48",
"2c6a6e47-1d0c-441f-9449-b5d908bffba2"
]
},
{
"name": {
"de": "Projektbesprechung & Statusupdate",
"en": "Project Meeting & Status Update"
},
"description": {
"de": "Dokumentiert Projektfortschritt und Meilensteine",
"en": "Documents project progress and milestones"
},
"prompts": [
"c4009bef-4504-4af7-86f5-f896a2412a0a",
"4370cb68-d676-4b93-8afd-2fb7c4ad78c4",
"7a6cac9a-5a34-4fe5-a8f6-23f8165b0e48",
"c576e875-5a52-4f6a-abb7-0c62c945af78"
]
},
{
"name": {
"de": "Kommunikations-Content",
"en": "Communication Content"
},
"description": {
"de": "Professionelle Inhalte für verschiedene Kanäle",
"en": "Professional content for various channels"
},
"prompts": [
"c4009bef-4504-4af7-86f5-f896a2412a0a",
"2c6a6e47-1d0c-441f-9449-b5d908bffba2",
"b2e39e0a-ec1f-4d0e-813d-f1a08493332b",
"4370cb68-d676-4b93-8afd-2fb7c4ad78c4"
]
}
]
}
```
## Vorteile dieser finalen Version
### ✅ 100% Kompatibilität
- **NUR die 8 tatsächlich verfügbaren Prompts** werden verwendet (ohne Schlüsselpunkte)
- Keine Phantasie-IDs oder nicht existierende Prompts
- Sofort implementierbar ohne Backend-Änderungen
### ✅ Vollständige Abdeckung
- **Meetings**: Effiziente Protokollierung und Nachverfolgung
- **Innovation**: Strukturierte Ideenentwicklung und Workshops
- **Projektmanagement**: Lückenlose Statusdokumentation
- **Kommunikation**: Multi-Channel Content-Erstellung
### ✅ Praktischer Nutzen für Büro-Mitarbeiter
- **Zeitersparnis**: Automatische Protokollerstellung statt manueller Notizen
- **Klarheit**: Eindeutige Aufgabenverteilung und Verantwortlichkeiten
- **Transparenz**: Nachvollziehbare Entscheidungen und Projektfortschritte
- **Effizienz**: Ein Gespräch, mehrere Outputs (Protokoll, Blog, Social Media)
- **Compliance**: Revisionssichere Dokumentation wichtiger Meetings
### ✅ Büro-spezifische Anwendungsfälle
- Board-Meetings und Vorstandssitzungen
- Agile Sprint Reviews und Retrospektiven
- Kundenpräsentationen und Pitches
- Strategieworkshops und OKR-Planungen
- Team-Meetings und Jour Fixes
- Change Management Kommunikation
- Internal Communications
- Stakeholder Updates
### ✅ Einfache Implementierung
- Direkt in Supabase einfügbar
- Keine neuen Prompts nötig
- Verwendet bestehende Infrastruktur
- Mehrsprachigkeit bereits integriert (DE, EN, IT, FR, ES)

View file

@ -0,0 +1,234 @@
# Blueprint-Ideen für den Universitären Kontext - Studenten (FINAL)
## Die 4 wichtigsten Blueprints - NUR mit den 8 verfügbaren System-Prompts
---
## 1. Vorlesungsanalyse / Lecture Analysis
**Kategorie**: Universität
**Farbe**: #9C27B0
### Beschreibung
**Deutsch**: Umfassende Analyse von Vorlesungen mit automatischer Erstellung von Zusammenfassungen und offenen Fragen für die Prüfungsvorbereitung.
**English**: Comprehensive analysis of lectures with automatic creation of summaries and open questions for exam preparation.
### Verwendete Prompts (100% VERFÜGBAR)
1. **Kurzzusammenfassung** (Sort Order: 1)
- Prompt ID: `c4009bef-4504-4af7-86f5-f896a2412a0a`
- Memory Title: Kurzzusammenfassung / Executive Summary
- Schneller Überblick über die Vorlesung
2. **Ausführliche Zusammenfassung** (Sort Order: 2)
- Prompt ID: `4370cb68-d676-4b93-8afd-2fb7c4ad78c4`
- Memory Title: Ausführliche Zusammenfassung / Detailed Summary
- Detaillierte Nachbereitung
3. **Offene Fragen** (Sort Order: 3)
- Prompt ID: `c576e875-5a52-4f6a-abb7-0c62c945af78`
- Memory Title: Offene Fragen / Open Questions
- Für Sprechstunden und Verständnisfragen
4. **Beantwortete Fragen & Antworten** (Sort Order: 4)
- Prompt ID: `47ce3340-e8c6-437c-928d-854c55589491`
- Memory Title: Q&A / Questions & Answers
- Perfekt für Lernkarten
---
## 2. Seminar & Gruppenarbeit / Seminar & Group Work
**Kategorie**: Universität
**Farbe**: #9C27B0
### Beschreibung
**Deutsch**: Perfekt für Seminardiskussionen und Gruppenarbeiten - erfasst Aufgaben, Ideen und erstellt strukturierte Dokumentation.
**English**: Perfect for seminar discussions and group work - captures tasks, ideas, and creates structured documentation.
### Verwendete Prompts (100% VERFÜGBAR)
1. **Aufgaben & Termine** (Sort Order: 1)
- Prompt ID: `7a6cac9a-5a34-4fe5-a8f6-23f8165b0e48`
- Memory Title: Aufgaben & Termine / Tasks & Appointments
- Mit Verantwortlichkeiten und Deadlines
2. **Gesammelte Ideen & Vorschläge** (Sort Order: 2)
- Prompt ID: `8cdc89a5-2f76-4d50-a93d-0c177c3e73ab`
- Memory Title: Ideen & Vorschläge / Ideas & Suggestions
- Brainstorming und kreative Ansätze
3. **Kurzzusammenfassung** (Sort Order: 3)
- Prompt ID: `c4009bef-4504-4af7-86f5-f896a2412a0a`
- Memory Title: Kurzzusammenfassung / Executive Summary
- Hauptergebnisse der Diskussion
4. **Offene Fragen** (Sort Order: 4)
- Prompt ID: `c576e875-5a52-4f6a-abb7-0c62c945af78`
- Memory Title: Offene Fragen / Open Questions
- Für die nächste Sitzung
---
## 3. Prüfungsvorbereitung / Exam Preparation
**Kategorie**: Universität
**Farbe**: #9C27B0
### Beschreibung
**Deutsch**: Speziell für die intensive Prüfungsvorbereitung - verwandelt Lernmaterial in strukturierte Lernhilfen mit Q&A und Zusammenfassungen.
**English**: Specifically for intensive exam preparation - transforms study material into structured learning aids with Q&A and summaries.
### Verwendete Prompts (100% VERFÜGBAR)
1. **Beantwortete Fragen & Antworten** (Sort Order: 1)
- Prompt ID: `47ce3340-e8c6-437c-928d-854c55589491`
- Memory Title: Q&A / Questions & Answers
- Perfekt für Lernkarten und Selbsttest
2. **Kurzzusammenfassung** (Sort Order: 2)
- Prompt ID: `c4009bef-4504-4af7-86f5-f896a2412a0a`
- Memory Title: Kurzzusammenfassung / Executive Summary
- Schnelle Wiederholung vor der Prüfung
3. **Ausführliche Zusammenfassung** (Sort Order: 3)
- Prompt ID: `4370cb68-d676-4b93-8afd-2fb7c4ad78c4`
- Memory Title: Ausführliche Zusammenfassung / Detailed Summary
- Detailliertes Prüfungsmaterial
4. **Offene Fragen** (Sort Order: 4)
- Prompt ID: `c576e875-5a52-4f6a-abb7-0c62c945af78`
- Memory Title: Offene Fragen / Open Questions
- Identifiziert Wissenslücken
---
## 4. Content-Erstellung für Studienarbeiten / Academic Content Creation
**Kategorie**: Universität
**Farbe**: #9C27B0
### Beschreibung
**Deutsch**: Verwandelt Recherche und Diskussionen in strukturierte Inhalte für Hausarbeiten, Präsentationen und wissenschaftliche Blogs.
**English**: Transforms research and discussions into structured content for term papers, presentations, and academic blogs.
### Verwendete Prompts (100% VERFÜGBAR)
1. **Ausführliche Zusammenfassung** (Sort Order: 1)
- Prompt ID: `4370cb68-d676-4b93-8afd-2fb7c4ad78c4`
- Memory Title: Ausführliche Zusammenfassung / Detailed Summary
- Basis für Literaturarbeit
2. **Blogbeitrag** (Sort Order: 2)
- Prompt ID: `2c6a6e47-1d0c-441f-9449-b5d908bffba2`
- Memory Title: Blogbeitrag / Blog Post
- Für wissenschaftliche Blogs oder Artikel
3. **Social Media Posts** (Sort Order: 3)
- Prompt ID: `b2e39e0a-ec1f-4d0e-813d-f1a08493332b`
- Memory Title: Social Media Posts
- Für akademisches Networking (LinkedIn)
4. **Gesammelte Ideen & Vorschläge** (Sort Order: 4)
- Prompt ID: `8cdc89a5-2f76-4d50-a93d-0c177c3e73ab`
- Memory Title: Ideen & Vorschläge / Ideas & Suggestions
- Kreative Ansätze für Arbeiten
---
## Implementierungsdetails
### JSON-Struktur für Supabase
```json
{
"category_id": "b26c7a49-187d-4429-9dc6-ba55de512a8d",
"blueprints": [
{
"name": {
"de": "Vorlesungsanalyse",
"en": "Lecture Analysis"
},
"description": {
"de": "Umfassende Analyse von Vorlesungen mit Zusammenfassungen und Q&A",
"en": "Comprehensive lecture analysis with summaries and Q&A"
},
"prompts": [
"c4009bef-4504-4af7-86f5-f896a2412a0a",
"4370cb68-d676-4b93-8afd-2fb7c4ad78c4",
"c576e875-5a52-4f6a-abb7-0c62c945af78",
"47ce3340-e8c6-437c-928d-854c55589491"
]
},
{
"name": {
"de": "Seminar & Gruppenarbeit",
"en": "Seminar & Group Work"
},
"description": {
"de": "Erfasst Aufgaben, Ideen und Diskussionsergebnisse",
"en": "Captures tasks, ideas, and discussion results"
},
"prompts": [
"7a6cac9a-5a34-4fe5-a8f6-23f8165b0e48",
"8cdc89a5-2f76-4d50-a93d-0c177c3e73ab",
"c4009bef-4504-4af7-86f5-f896a2412a0a",
"c576e875-5a52-4f6a-abb7-0c62c945af78"
]
},
{
"name": {
"de": "Prüfungsvorbereitung",
"en": "Exam Preparation"
},
"description": {
"de": "Strukturierte Lernhilfen mit Q&A und Zusammenfassungen",
"en": "Structured learning aids with Q&A and summaries"
},
"prompts": [
"47ce3340-e8c6-437c-928d-854c55589491",
"c4009bef-4504-4af7-86f5-f896a2412a0a",
"4370cb68-d676-4b93-8afd-2fb7c4ad78c4",
"c576e875-5a52-4f6a-abb7-0c62c945af78"
]
},
{
"name": {
"de": "Content-Erstellung für Studienarbeiten",
"en": "Academic Content Creation"
},
"description": {
"de": "Strukturierte Inhalte für Hausarbeiten und Präsentationen",
"en": "Structured content for term papers and presentations"
},
"prompts": [
"4370cb68-d676-4b93-8afd-2fb7c4ad78c4",
"2c6a6e47-1d0c-441f-9449-b5d908bffba2",
"b2e39e0a-ec1f-4d0e-813d-f1a08493332b",
"8cdc89a5-2f76-4d50-a93d-0c177c3e73ab"
]
}
]
}
```
## Vorteile dieser finalen Version
### ✅ 100% Kompatibilität
- **NUR die 8 tatsächlich verfügbaren Prompts** werden verwendet
- Keine nicht existierenden Prompts (wie "Schlüsselpunkte")
- Sofort implementierbar ohne Backend-Änderungen
### ✅ Vollständige Abdeckung
- **Vorlesungen**: Nachbereitung und Verständnis
- **Gruppenarbeit**: Organisation und Ideensammlung
- **Prüfungen**: Strukturierte Vorbereitung
- **Wissenschaftliches Schreiben**: Content-Erstellung
### ✅ Praktischer Nutzen
- Jeder Blueprint löst ein reales studentisches Problem
- Sinnvolle Kombination der verfügbaren Prompts
- Mehrsprachigkeit bereits integriert (DE, EN, IT, FR, ES)
### ✅ Einfache Implementierung
- Direkt in Supabase einfügbar
- Keine neuen Prompts nötig
- Verwendet bestehende Infrastruktur
## Wichtiger Hinweis
Der Prompt "Schlüsselpunkte" (ID: 9b411221-6f52-4534-9ea9-dd1904259e8c) existiert NICHT in der Datenbank und wurde in dieser finalen Version komplett entfernt.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,316 @@
# Personas Erstellungs-Guide
## Überblick
Personas sind detaillierte, datenbasierte Profile unserer Zielkunden. Sie helfen uns, Produkt- und Marketing-Entscheidungen aus Kundenperspektive zu treffen.
## Dateistruktur
### Speicherort
```
src/content/_personas/
├── de/ # Deutsche Personas
│ └── [slug].mdx # z.B. handwerksmeister-thomas.mdx
└── en/ # Englische Personas
└── [slug].mdx
```
### Namenskonvention
- Kleinschreibung mit Bindestrichen
- Format: `[rolle]-[vorname].mdx`
- Beispiele:
- `handwerksmeister-thomas.mdx`
- `startup-founder-alex.mdx`
- `projektmanagerin-sabine.mdx`
## Persona-Struktur
### 1. Frontmatter (YAML)
Die Persona-Datei beginnt mit strukturierten Metadaten zwischen `---` Markierungen:
```yaml
---
# PFLICHTFELDER
name: "Thomas Bauer" # Vollständiger Name
title: "Der digitale Handwerksmeister" # Beschreibender Titel
lang: "de" # Sprache (de/en)
# DEMOGRAFISCHE DATEN
demographics:
age: 45 # Alter oder Altersbereich (z.B. "35-45")
gender: "male" # male/female/diverse/unspecified
location: "Augsburg, Deutschland" # Stadt, Land
education: "Meisterbrief" # Bildungsabschluss
income: "75.000-95.000€/Jahr" # Optional: Einkommensspanne
familyStatus: "Verheiratet, 3 Kinder" # Optional: Familienstand
# BERUFLICHES PROFIL
professional:
jobTitle: "Geschäftsführender Elektromeister"
company: "Bauer Elektrotechnik GmbH" # Optional: Firmenname/typ
companySize: "12 Mitarbeiter"
industry: "Handwerk - Elektrotechnik"
experience: "22 Jahre"
responsibilities: # Array von Hauptaufgaben
- "Betriebsführung"
- "Kundenakquise"
teamSize: "11 Mitarbeiter" # Optional
# PSYCHOGRAFISCHE MERKMALE
psychographics:
personality: # Persönlichkeitsmerkmale
- "praktisch"
- "qualitätsbewusst"
values: # Werte und Überzeugungen
- "Handwerksqualität"
- "Zuverlässigkeit"
motivations: # Was treibt die Person an?
- "Betrieb modernisieren"
frustrations: # Pain Points
- "Zu viel Bürokratie"
goals: # Persönliche/berufliche Ziele
- "Digitalisierung vorantreiben"
# VERHALTEN
behavior:
techSavviness: "intermediate" # beginner/intermediate/advanced/expert
workStyle: # Arbeitsweise
- "Früh auf Baustelle"
tools: # Genutzte Tools
- "WhatsApp Business"
communicationPreference: # Kommunikationskanäle
- "Persönlich"
- "WhatsApp"
buyingBehavior: "Braucht Empfehlungen"
informationSources: # Wo informiert sich die Person?
- "Handwerkskammer"
# MEMORO-KONTEXT
memoroContext:
useCase: # Wie würde Memoro genutzt?
- "Baustellenprotokolle"
benefits: # Welche Vorteile sind relevant?
- "Rechtssicherheit"
concerns: # Bedenken/Hindernisse
- "Datenschutz"
features: # Wichtigste Features
- "Offline-Funktion"
priceSensitivity: "medium" # low/medium/high
adoptionLikelihood: "medium" # low/medium/high/very-high
influencers: # Optional: Wer beeinflusst Entscheidung?
- "Andere Handwerker"
# USER STORY
userStory: |
Detaillierte Erzählung eines typischen Arbeitstages...
# SZENARIEN (Optional)
scenarios:
- title: "Baustellenbegehung"
description: "..."
outcome: "..."
# ZITATE (Optional)
quotes:
- "Ich verbringe mehr Zeit mit Papierkram als auf der Baustelle"
# MARKETING
marketing:
segment: "secondary" # primary/secondary/tertiary
channels: # Marketing-Kanäle
- "Handwerkskammer"
messaging: # Kernbotschaften
- "Rechtssicherheit"
contentPreferences: # Content-Formate
- "Praxisberichte"
# META-INFORMATIONEN
status: "active" # draft/active/archived
visibility: "internal" # internal/team/stakeholders
tags:
- "handwerk"
- "b2b"
relatedPersonas: # Optional: Verwandte Personas
- "architekt-claudia"
# ZEITSTEMPEL
createdAt: 2024-12-01T10:00:00Z
lastUpdated: 2024-12-01T10:00:00Z
validatedAt: 2024-11-28T10:00:00Z # Optional
# VERANTWORTLICHKEITEN
owner: "Marketing Team"
contributors: # Optional
- "Vertrieb"
---
```
### 2. Content-Bereich (Markdown)
Nach dem Frontmatter folgt der narrative Teil in Markdown:
```markdown
## Detaillierte Persona-Beschreibung
[Einführender Absatz über die Persona und ihre Bedeutung]
### Kernherausforderungen
1. **Challenge 1**: Beschreibung
2. **Challenge 2**: Beschreibung
### Memoro Value Proposition
[Wie löst Memoro die Probleme dieser Persona?]
### Kommunikationsansatz
[Wie sollten wir diese Persona ansprechen?]
```
## Schritt-für-Schritt Anleitung
### 1. Research & Datensammlung
Bevor du eine Persona erstellst:
- Analysiere vorhandene Kundendaten
- Führe Interviews mit echten Kunden
- Sammle Feedback von Vertrieb und Support
- Recherchiere Branchentrends
### 2. Datei erstellen
```bash
# Neue Persona-Datei anlegen
touch src/content/_personas/de/[rolle]-[name].mdx
```
### 3. Frontmatter ausfüllen
Kopiere die Struktur von einer bestehenden Persona und passe an:
- Alle Pflichtfelder müssen ausgefüllt sein
- Nutze realistische, spezifische Details
- Vermeide Stereotypen
### 4. User Story schreiben
Die User Story sollte:
- Einen typischen Tag/Situation beschreiben
- Konkrete Pain Points zeigen
- Emotional nachvollziehbar sein
- 3-5 Absätze lang sein
### 5. Content-Bereich verfassen
Ergänze:
- Zusammenfassung der Persona
- 3-5 Kernherausforderungen
- Memoro's Value Proposition
- Kommunikationsempfehlungen
### 6. Review & Validierung
- [ ] Lasse die Persona vom Team reviewen
- [ ] Validiere mit echten Kundendaten
- [ ] Aktualisiere `validatedAt` Datum
- [ ] Setze Status auf `active`
## Best Practices
### DO's ✅
- **Spezifisch sein**: "45 Jahre, Elektromeister" statt "mittleres Alter, Handwerker"
- **Echte Zitate verwenden**: Aus Kundeninterviews
- **Pain Points priorisieren**: Die wichtigsten zuerst
- **Konsistent bleiben**: Persona-Details sollten zusammenpassen
- **Regelmäßig aktualisieren**: Quartalsweise Review
### DON'Ts ❌
- **Keine Fantasie-Personas**: Basiere auf echten Daten
- **Keine Stereotypen**: Vermeide Klischees
- **Nicht zu vage**: "mag Technologie" → "nutzt WhatsApp Business täglich"
- **Nicht zu viele**: 3-5 Kern-Personas reichen meist
- **Nicht statisch**: Personas entwickeln sich weiter
## Persona-Typen für Memoro
### Primäre Zielgruppe
- Projektmanager:innen
- Team-Leads
- Consultants
- Sales Manager
### Sekundäre Zielgruppe
- Startup-Gründer:innen
- Handwerker:innen
- Coaches & Trainer
- Freelancer
### Tertiäre Zielgruppe
- HR-Manager:innen
- Forscher:innen
- Journalist:innen
- Anwält:innen
## Verwendung der Personas
### Im Produkt
- Feature-Priorisierung
- UX-Entscheidungen
- Onboarding-Flows
### Im Marketing
- Content-Strategie
- Kampagnen-Planung
- Messaging & Positioning
### Im Vertrieb
- Pitch-Anpassung
- Objection Handling
- Use-Case-Demos
## Wartung & Pflege
### Monatlich
- Neue Insights aus Kundengesprächen einarbeiten
### Quartalsweise
- Vollständiger Review aller aktiven Personas
- Validierung mit aktuellen Kundendaten
- Archivierung veralteter Personas
### Jährlich
- Strategische Überprüfung der Persona-Landschaft
- Neue Personas bei Markterweiterung
## Tools & Ressourcen
### Templates
- Basis-Template: `src/content/_personas/template.mdx.example`
- Interview-Leitfaden: `docs/persona-interview-guide.md`
### Analyse-Tools
- Customer Analytics Dashboard
- Support-Ticket-Analyse
- Sales-Call-Recordings
### Validierung
- A/B-Tests mit Persona-basiertem Content
- Conversion-Tracking nach Persona-Segment
- Regelmäßige Customer Surveys
## Kontakt & Support
**Fragen zu Personas?**
- Marketing Team: marketing@memoro.ai
- Product Team: product@memoro.ai
**Neue Persona vorschlagen?**
- Erstelle ein Issue im Repository
- Oder kontaktiere direkt das Marketing Team
---
*Letzte Aktualisierung: Dezember 2024*

View file

@ -0,0 +1,313 @@
programmier.bar
Deep Dive 168
Low Code mit Till Schneider & Tobias Müller
13.12.2024
// Podcast
// Deep Dive 168
Shownotes
Die meisten Entwickler:innen schreiben gerne Code. Aber muss das wirklich immer sein? Und ist das in jedem Szenario wirklich sinnvoll?
In dieser Episode sprechen Garrelt und Jan mit Till und Tobias, den Köpfen hinter memoro.ai, über ihre Erfahrung mit Low-Code-Tools zur App-Entwicklung. Till und Tobias haben im Rahmen eines Hackathons die Idee für die Code-Minimierung entwickelt und anschließend ohne konventionelle Entwicklungsarbeit umgesetzt. Ein Beweis, dass man auch mit Low-Code-Tools moderne Apps an Endkund:innen ausliefern kann.
Wir unterhalten uns über die Erfahrungen, die sie auf ihrer Reise gemacht haben: Von der Auswahl der richtigen Tools über den Einstieg und die Lernkurve bis hin zur Kollaboration zwischen Entwickler:innen und Designer:innen erforschen wir alle Facetten des Projektes.
Aber wir beleuchten auch, wann und wie ein solcher Ansatz an seine Grenzen stoßen kann. Wir fragen uns, ob das unausweichlich ist und wie am besten damit umgegangen werden sollte. Außerdem stellen wir die alles entscheidende Frage: Können Till und Tobias den Ansatz wirklich empfehlen und würden sie es nochmal genauso machen?
Transkript:
Jan
Hallo und herzlich willkommen zu einem neuen Deepdive in der programmier.bar. Heute mit einem ganz besonders spannenden Thema, nämlich einem Thema, was immer die Gemüter spaltet. Wir sprechen einmal über No Code beziehungsweise Low Code Lösungen. Und mit mir im virtuellen Studio in der unteren rechten Ecke meines Screens sitzt der Garelt. Hi, Garelt. Hi. Garelt, wie oft hast Du schon mit so Low Code und Low Code Lösungen gearbeitet?
Garrelt
Oh, wir hatten das in der Schule. Da hatten wir was zum Zusammenklicken, das hieß Scratch. Da hab ich ein megageiles Spiel gemacht, hab eine Eins bekommen und meine Schülerkameraden haben auch eine Eins bekommen für Trash Spiele, aber na ja, ist nicht mein Ding.
Jan
Die Zuhörerinnen da draußen, die jetzt nicht sehen, wie jung Du noch aussiehst, fragen sich natürlich, wann warst Du in der Schule und hast Scratch programmiert? Wie lang ist das her?
Garrelt
Das war zweitausendvierzehn, also genau zehn Jahre.
Jan
Zweitausendvierzehn. Zweitausendvierzehn hatt ich schon meinen Uniabschluss in der Tasche, dementsprechend länger ist mein Informatikunterricht auch schon her, ja. Aber bei mir gab's keinen Low Code in der Schule. So Fernsehsieg gab's damals noch nicht, ja. Wir haben mit Tobi Pascal und c irgendwie programmiert. Und weil ich dementsprechend ganz wenig Ahnung von Low Code und No Code hab, sondern nur viel Meinung dazu, haben wir uns noch Leute eingeladen, die uns mit viel Wissen zur Seite stehen können. Wir haben hier Till und Tobias von Memoro. Hallo Till.
Till Schneider
Hi Jan.
Jan
Grüß dich. Hallo Tobias. Hi. Tobi passt übrigens. Tobi auch wunderbar, kein Thema. Ihr habt zusammen Memoro gemacht mit noch ein paar anderen Leuten. Vielleicht wollt ihr einmal ganz kurz erklären, was Memoro ist, wie ihr auf die Idee gekommen seid und dann sprechen wir einmal ans Eingemachte.
Till Schneider
Jawoll, gerne. Wir haben Memoro vor so eineinhalb Jahren circa gestartet auf 'nem Hackathon hier in Konstanz am Bodensee. Ich kam da mit der Idee die Ecke, dass ich doch gerne meine Gedanken und Gespräche aufnehmen will. Also ich hatte das Hauptproblem, dass ziemlich viel Projekte parallel liefen und ich nicht hinterherkam irgendwie mit der Organisation, mit der Strukturierung von allem. Und dann hab ich mir so angewöhnt, abends 'n Spaziergang zu machen und das einfach so mir von der Seele zu reden. Und dann hab ich das mal getestet, aufm iPhone einfach Sprachnotiz aufgenommen, Sprachnotiz hochgeladen, transkribieren lassen, das dann in Chat GPT reinkopiert und in Sachen gefragt über den Text. Und das kam mir gleich vor wie sone kleine Superkraft, weil man sich selber halt supergut reflektiert bekommt und und recht unstrukturiert reden kann und strukturiert das Ganze zurückbekommt und halt son Überblick bekommt. Also es war wie son 'n kleiner kleiner seelischer Doktor, kann man fast sagen. Jemand, der mir dann zuhört und dann konnte man sich einfach son bisschen entleeren. Und das hat sich einfach so toll angefühlt, dass ich das dann vorgestellt habe auf dem Heck gefahren, als einfach nur eine eine grobe Idee. Und dann hat sich direkt 'n Team aus fünf, sechs Leuten eigentlich die Idee formiert und wir haben zwei Tage lang gebrainstormt. Wir haben sehr viel waren sehr viel spazieren, haben sehr viel geredet, das ist natürlich alles direkt aufgenommen und hatten dann eigentlich 'n super Startschuss rein in die in das neue Start-up, da wir diese ganzen Gespräche festgehalten haben und direkt wussten, was wo wir hinwollen. Und Tobi war auch direkt von Anfang an dabei und wir zwei haben dann tatsächlich direkt gestartet. Wir sind das Kernteam, wir haben angefangen zu entwickeln, die anderen unterstützen son bisschen. Und wir hatten dann nach zwei Wochen eigentlich einen einen eine Alpha und haben die verteilt an Leute, haben die Menschen in die Hand gedrückt und haben gefragt, wie sie das Tool gerne nutzen könnten. Und dann kamen sehr viele Anfragen aus verschiedenen Industrien, aus verschiedenen Branchen, die 'n großen Mehrwert daran sehen. Und heute sind wir jetzt bei tausenddreihundert Nutzern, haben auch Paying Subscriber schon und haben 'n Stipendium gewonnen, was uns 'n Jahr lang finanziert und haben auch sehr viel Platz und Raum, uns mit neuer KI Technologie grundsätzlich auseinanderzusetzen.
Jan
Das, was Du jetzt natürlich nur so halb implizit gesagt hast, ist, dass ihr natürlich Memoro komplett mit Low Code No Code Toolchain gebaut habt, sozusagen, ja? Ja, genau. Darüber wollen wir einmal einmal sprechen. Deswegen meine erste Frage vielleicht so an Tobi. Was macht man als Entwickler in soner No Code Low Code Bude? So wird wird man da überhaupt gebraucht Fragezeichen,
Tobias Müller
ne? Tatsächlich ist es gar nicht so gar nicht so falsch, weil auch als Coder überlegt man sich, wie kommt man schnell zu Ziel? Und ich komm auch son bisschen ausm Start up Bereich oder auf Hecertons. Und da muss alles immer schnell gehen. Und da braucht man natürlich das das Verständnis für Code, wie Programme aufgebaut sind. Aber es hilft einem unglaublich, mit sonem No Code Low Code Bilder einfach mal schnell 'n Prototypen zusammenzuklicken. Und da das ergänzt sich, find ich, super. Das ist gar kein Widerspruch zueinander.
Garrelt
Würdest Du sagen, man ist mit Low Code, mit dem Zusammenklicken wirklich schneller, wenn man gleich gut das auch entwickeln könnte? Einfach vom Speed her, wenn man beides gut kann.
Tobias Müller
Man muss 'n bisschen differenzieren zu früh und heute. Heute hat man KI. Da ist vielleicht tatsächlich son bisschen die Überlegung, hat man mit 'ner KI vielleicht schneller mal 'n Projekt initiiert und schnell mal 'n Code druntergeschrieben, grade wenn's 'n bisschen was Spezielleres ist. Aber allgemein, wenn man einfach mal nur was darstellen will, das heißt ja so schön, Dann dann kann man einfach mal schnell 'n Gefühl dafür bekommen und auch einfach mal einfache Logiken damit umsetzen, keine Ahnung, Kalkulation oder irgendwelche Sachen zu generieren und so weiter. Und vielleicht schreibt man dann durchaus auch mal 'n Kostencode. Aber da geht's halt alles wirklich Geschwindigkeit. Im Hackathon hat man nicht viel Zeit.
Till Schneider
Was ich dann noch ergänzen könnte vielleicht, und das war eigentlich so auch, das, wir hätten gar nicht, ich hätte nicht anfangen können, Tobi zu helfen, wenn wir nicht mit Low Code, Low Code gestartet wären. Also ich bin vom Designhintergrund und gut, ich hab mal bisschen Tailwind HTML CSS son bisschen rumgewurstelt, aber ich hatte dadurch halt die Möglichkeit, superschnell das Frontend zu iterieren. Und wir haben dann im Endeffekt innerhalb von, was war's, 'nem Jahr oder hatten wir über vierhundert Versionsnummern durchgeschoben und da hat sich auch in jeder was geändert. Also da war dann 'n ordentlicher Druck im Kessel und now 2 be im wir haben mehr aufs mehr im Backend und guckt, dass das Zeug sauber funktioniert, hat dann ja in Python das Backend geschrieben, also Backend nicht nicht Low Cop, No Code. Wir haben mal Tests gemacht mit mit anderen Tools auch und haben kleine kleine Backends Low Carb, No Code technisch aufgebaut. Aber sonst hätt die Zusammenarbeit mit uns gar nicht, wir hätten gar nicht starten können, hätten wir den Stack nicht gewählt.
Jan
Genau. Vielleicht machen wir da noch mal zweieinhalb Schritte zurück. Jetzt warst Du schon bei den vierhundert Versionen, die ihr da irgendwie durchgeschippt habt. Aber bevor ihr angefangen habt, also ihr hattet, ne, über das Thema son bisschen gesprochen, ihr hattet irgendwie 'n grobes Konzept. So weit sind ja, ich sag mal, Codeentwicklung und No Code Entwicklung sich ja auch gleich und ähnlich, ja. Erst mal muss man darüber sprechen, was man so baut, bevor man anfängt, das hilft. Und dann wollt ihr irgendwann anfangen. Wie habt ihr euch denn für ein spezielles Tool entschieden? Weil also alle Entwickler kennen ja diese Diskussion, Du willst jetzt was bauen. Da ist erst mal die wichtigste Diskussion vorher so, was ist der Stack, was ist die Sprache, was ist das Framework, ja? Gab es da auch ähnliche Diskussionen so in diesem No Code Bereich, wo man sich überlegt, na ja, es gibt da halt zig verschiedene Tools da draußen, ja? Also wenn man einfach nur mal No Code oder Low Code googelt, da wird man ja jetzt zugeschüttet mit irgendwie Plattformen, die einem da was anbieten wollen und verschiedenen Wändern und basierend auf verschiedenen Technologien. Und wie habt ihr euch da überhaupt erst mal durchnavigiert, euch für eines von diesen Zehntausenden zu entscheiden? Und und was waren da ausschlaggebende Faktoren?
Tobias Müller
Was ich mal sagen kann dazu, ist, dass es auf jeden Fall Reibungspunkte auch da schon am Anfang gab. Weil ich als Entwickler hab natürlich meine Tools, die ich schon kennengelernt hab und so weiter. Und dann bleib ich natürlich auch gerne aus Gemütlichkeit bei dem, was ich schon kenne. Till war da schon deutlich offener am Anfang. Er guckt sich gerne aktuelle Berichte an, über was was für neue IDs es gibt, welche neuen Frameworks und so weiter. Er ist da deutlich offener, 'n bisschen weniger voreingenommen, würd ich sagen. Und da haben wir schon am Anfang auch schon angefangen zu diskutieren. Ja, und irgendwie kamen wir dann auf Flatterflow. Ich weiß gar nicht mehr so genau, wie's dazu kam. Weißt Du's noch, Tür?
Till Schneider
Ich glaube, wir hatten einfach verschiedene Test Testberichte gelesen. Ich bin 'n großer Youtube Videoanker und da verschiedenste Vergleiche mir reingezogen. Und ja, Flatterflow ordnet sich da einfach am Ende am am am am Ende zu Code eigentlich ein von den Low Code Tools. Also man kann sehr viel Custom Code mit einbauen und das das Tool eigentlich mehr und mehr erweitern. Und die anderen Low Code No Code Tools sind da eher noch mehr Low Code No Code, sag ich mal. Also wir haben uns dann so für diesen für für für das Komplexeste entschieden, was es gibt, haben dann auch geschaut, wo gibt's eine gute Community? Wo wo kann man Fragen stellen? Wo wird wo werden Features geschipped? Natürlich son bisschen, was ist der was ist grade heiß am Markt auch, aber was existiert auch schon länger? Also wir Flatterflor war damals schon 'n paar Jahre alt und und aufm Markt, heißt, auch da 'n bisschen auf die Langlebigkeit dann geschaut. Dann hat sich das so bisschen rauskristallisiert recht schnell eigentlich.
Garrelt
Aber Tobias, Du kannst aus nicht aus der Ecke Low Code, No Codes. Dein Setup vorher war reiner Code.
Tobias Müller
Also ich für mich selbst hab bisher weniger mit Low Code, No Code gearbeitet, klar. Und so weiter. Schon ein bisschen welche SDKs Frameworks kannst Du nutzen, wirklich 'n schnelles Ergebnis zu erzielen. Aber wirklich eingesetzt hatt ich's bisher dann noch weniger. Deswegen war jetzt halt auch son bisschen die die Diskussion, wo steigen wir ein? Und der große Punkt war, wie Till schon sagte, wie kann er halt auch mitentwickeln? Weil wenn wir jetzt wirklich mit Code anfangen, wird's halt schwierig. Und wir hatten dann auch getestet und angeschaut, inwieweit sind wir eingeschränkt? Wie viel Freiheiten haben wir? Und mit florida Flow war halt auch eben dies diese Möglichkeit, trotzdem noch eigenen Code einzufügen, was für uns auch notwendig war.
Jan
Das ist ja 'n spannender Punkt. Also wenn ihr relativ früh schon erkannt habt, okay, ist es halt notwendig, da auch Custom Logik oder UI Elementter oder so was zu machen. Wie lange ging es denn gut mit nur den Onboard Tools, ja, in eurem Prototyping, Bootstrapping Prozess? Und wann war so das erste Mal, wo ihr gesagt habt, okay, jetzt müssen wir mal hier Ärmel hochkrempeln und mal was Eigenes noch dazu bauen?
Tobias Müller
Eigentlich ging das ziemlich schnell, weil 'n Kerninhalt von unserer App ist halt die Audioaufnahme. Und Floodderflow bietet schon einen einfachen Recorder, aber sehr eingeschränkt. Also großes Kriterium ist bei uns, dass man's halt wirklich das Handy aufn Tisch legen kann und ohne drüber nachzudenken aufnehmen lassen kann. Und da darf halt die App nicht ins Sleep Mode gehen. Die der Screen muss gesperrt werden können. Und da muss man halt die Anforderungen von der jeweiligen Plattform erfüllen können. Dieser einfache Recorder, der hat dafür nicht ausgereicht. Das heißt, wir haben sehr schnell damit angefangen, wirklich den Recorder selbst zu implementieren.
Jan
Und was war das fürn Erlebnis? Also wie wie sehr arbeitet man da mit oder gegen die Plattform, wenn man dann da eigene Komponenten einbauen möchte?
Tobias Müller
Das war schon teilweise recht anstrengend. Man hat schon schmerzhafte Einschränkungen, würd ich sagen. Man hat halt wirklich nur, wie soll ich sagen? Man man kann Custom Actions, Custom Functions, Custom Widgets anlegen, aber man bewegt sich halt dann immer nur in einem Codebereich. Wenn man dann eben Sachen in die App integrieren muss, vielleicht direkt schon beim beim Starten der App mit initialisieren wird, dann wird's eben komplex und manchmal muss man dann auch Workaruns suchen. Wie kriegt man eben das integriert ohne diese Freiheiten? Wobei natürlich, man muss auch noch ergänzen, man könnte durchaus den Code verändern, aber dann wird's noch mal komplizierter.
Garrelt
Mhm.
Jan
Jetzt ist ja so auf Funktionalitätsebene das eine, aber auf Designebene ist ja das andere, ne. Also ich stell mir vor, wenn man da in sonem grafischen Editor arbeitet und sich da seine Elemente zusammenklickt, dann kommt man Till ja vielleicht auch relativ schnell an so dem Punkt so, das ist jetzt nicht so ganz Pixelperfekt, wie ich's eigentlich gerne hätte oder wie's in unserem Designentwurf aussah? Und gab es da auch Punkte, wo man da irgendwann so die die Edge Cases des Editors erreicht hat, sag ich mal und sich dann was anderes einfallen lassen muss?
Till Schneider
Würd ich nicht sagen. Also ich hab am Anfang noch angefangen, alles in Figma zu designen und wie die UI und UX da zu planen. Und dann war es auch son schleichender Prozess, dass dass halt Flatterflow im Grunde genommen so schnell funktioniert, dass ich eigentlich weniger und weniger die Sachen in Figma vorgescatcht hab und angefangen hab, wieder eigentlich direkt in Flatterflow Dinge auszuprobieren. Ist son schmaler Grat. Also manchmal hab ich's damals bereut, die Sachen nicht besser geplant zu haben in Figma. Manchmal war's eine gute Entscheidung, also da son bisschen der Mittelweg. Aber ich kam nie, also doch an ein, zwei Stellen, aber da würd ich sagen, also sehr, es gibt es gab dann gewisse Bereiche, die doch nicht funktioniert haben. Zum Beispiel wollt ich eine eine Liste am unteren Ende des Bildschirms haben und wenn auf die Liste getippt wird, sollte sie hochfahren und dann den ganzen Screen ausfüllen. Also quasi so wie eine Page Navigation, aber halt auf auf eigentlich in einer Seite contained, ging nicht. Solche Sachen wie wie Blur, haben Blurview, also auf iOS kennt man das ja, dass dann der der der Header zum Beispiel so so diesen, ja, ja, diese diesen Blur bekommt. Den konnte man nicht schön umsetzen beziehungsweise dann hat Flatterflow irgendwie im im Preview Mode dann rumgesponnen und wurde langsamer, wurde irgendwie slackgisch. Das gab's bei 'n paar Punkten, wo man wo man so, wenn man Sachen bauen will im Frontend, dass auch Flatter Flow es nicht mehr richtig gut handeln kann und man, ja, man eigentlich dann Abstriche machen muss. Was an sich okay war, glaub ich, weil im Grunde genommen sind halt die die Patterns, die User gewohnt sind, recht gut dargestellt darin. Und wenn man dann eigentlich an diese Grenzen kommt, sollte man sich vielleicht eher überlegen, ob das auch kein kein gewohntes Pattern ist, was man vielleicht auch anders bauen könnte.
Jan
Wie ist es denn in der in der täglichen Arbeit? Weil im Prinzip fahrt ihr ja zweigleisig, also oder auf zwei Ebenen, ne. Die die unterste Ebene ist das Betriebssystem iOS, Android, auf was auch immer ihr so deployed. Das verändert sich ja auch. Da kommen neue Versionen, neue Sales, neue raus. Und dann zwischen euch und dem Betriebssystem ist da diese Plattform, die es ja wahrscheinlich auch jetzt geändert hat so in der Zeit, in der ihr sie benutzt, ja auch mit mit neuen Features, mit neuen Funktionen, neue Widgets vielleicht out of the box bereitstellt oder so was. Was was macht es so mit dem Erlebnis?
Tobias Müller
Das hat aber auf jeden Fall dazu geführt, dass wir öfters mal zu plötzlich Errors hatten, die wir vorher nicht hatten. Und nach dem Debugging hat sich raus rausgestellt, okay, jetzt haben sich Dependencies geändert. Doch das ist son Beispiel gewesen. Entweder hat dann halt Flatterflow Updates gezogen oder ich hab dann irgendwie eine Dependency reingemacht, die halt auch nicht mehr mit 'ner anderen Version kompatibel war. Das war so 'n Problem, über das wir öfters gestolpert sind, was dann auch natürlich 'n bisschen frustrierend war, erst mal überhaupt rauszufinden, was ist denn da jetzt passiert? Auch von Android Seite gab's mal eine Änderung, dass man zusätzlich permissions grad mit dieser Backgroundaufnahme noch hinzufügen musste. Auch das war eine längere Recherche, dann wieder rauszufinden, okay, hier müssen wieder zusätzliche Angaben zu machen. Ja, da haben wir auf jeden Fall oder hab ich auch viel Zeit mit verbringen müssen mit dem Debugging, mit dem Recherchieren.
Jan
Mhm. Und was bringt denn sone Low Code Lösung am Ende alles mit? Also wir haben jetzt viel, ne, über so grafische Editoren für das Interface gesprochen und auf und Komponentenebene, die man selber bauen kann. Aber zu soner richtigen in Anführungszeichen App gehört ja oftmals noch viel mehr dazu, ne. Insbesondere wenn's irgendwie was kommerzielles ist, da braucht man irgendwie Usermanagement, da braucht man 'n 'n Payment oder Billing vielleicht auch, ja. Da braucht man irgendwie eine Art von Storage, die da dranhängen muss. Ihr habt schon über eure Aufnahmen gesprochen. Die werden ja auch irgendwo aufgerufen werden müssen. Ihr macht Transkcription, das wird irgendwo gemacht. Wie viel davon kann ich so alles in meinem Sandkasten machen? Und was muss ich selber extern zur Verfügung stellen? Und wie krieg ich das dann am Ende connected?
Tobias Müller
Ich glaube eben mal allgemein zu dem Low Code No Code Thema. Das ist auch der große Vorteil, weswegen man vielleicht das wählen kann, weil den meisten Low Code No Code Tools eben solche Integration schon mit drin sind. Da braucht man sich eben nicht darüber Gedanken machen, wie mach ich die das Setup? Was muss ich da beachten und so weiter? Und das war eben jetzt auch speziell bei Flood oflow sehr angenehm, weil da zum Beispiel Firebase schon komplett integriert ist mit dem der der und Firestore als Datenbank. Und das hat auch noch weitere Sachen wie zum Beispiel Superbase. Klar, schon eine gewisse Einschränkung. Es ist jetzt nicht alles drin, aber super zum Durchstarten, kein größeres Set-up kann man hat man direkt, was man braucht.
Till Schneider
Und auch weitergehen noch in Richtung eben, wie bekomme ich dir die Sachen denn in die Appstores rein? Wie bekomme ich das auf Testflight oder in den Play Store, Betatrack? Das ist alles eigentlich schon recht gut eingebaut. Das ist dann 'n ziemlich viel händisches Set-up, bis man mal eben den den Apple Developer Profil und den Android Developer Profil sauber aufgesetzt hat und da die recht alles alle Formulare ausgefüllt hat, bis man da überhaupt mal was reinpushen kann. Aber das ist im Grunde genommen alles schon eingebaut und dann auch Revenue Cat zum Beispiel, Integration, die dann die Payments handeln und und eigentlich den die App Store und Play Store Payments dann an einer zentralen Stelle wieder verwalten. Da musste, glaube ich, Tobi dann schon noch 'n bisschen was quasi auf Datenbankseite nachziehen, dass das wieder, dass dass wir auch die Daten sauber behalten und und das sauber abbuchen können sozusagen. Aber tatsächlich ging das jetzt in Flatterflow, dass wir die App dahin gebracht haben, dass sie inklusive in App Payments und Abomodell und so weiter vollkommen in Flatterflow entstanden mit viel Customcode dann geschippt werden kann. Und aktuell ist das immer noch die Version, die im App Store live ist.
Garrelt
Es klingt ja schon nach ziemlich viel Funktionalität. Und als ich mir das mal auf der Seite angeguckt hab, wirkte flutterflow auch sehr mächtig und auch für mich fast schon überladen. Wie ist denn so eure Erfahrung? Wie schnell seid ihr da reingekommen? War viel intuitiv für euch? Musstet ihr diese Software erst mal lernen, zu also überhaupt erst mal was machen zu können oder findet man eigentlich alles sehr schnell, was man braucht?
Tobias Müller
Also wenn man jetzt eben von diesen Integrationen redet, wie man die nutzt, auch UI Elemente, wie man die platziert, einfache Klickfunktionen und so weiter, ist es, denk ich, schon sehr einfach. Sobald's dann aber 'n bisschen Logiken geht, so das typische f F ifs, Schleifen, also ich red jetzt grade eher 'n bisschen über die algorithmische Ebene, da ist es dann vielleicht nicht mehr so intuitiv. Da hilft's dann's durchaus, sich auch 'n paar Tutorials anzuschauen, sich mal 'n bisschen damit zu beschäftigen, grade wenn man vielleicht jetzt nicht so die Codingerfahrung hat.
Till Schneider
Auch vom Frontend her finde ich, es gibt eine gewisse Lernkurve. Also man es ist wirklich 'n Tool, was was in Richtung, man muss schon Experte sein geht. Es hilft, wenn man Verständnis hat von Atomic Design System und weiß, wie man Komponenten richtig anlegt, einfach eine Konsistenz auch zu halten, sonst läuft es schon schnell ausm Ruder. Also ich musste da auch im Frontend dann immer wieder quasi refactern und mir überlegen, okay, wie krieg ich das jetzt einiger bisschen sauberer noch hin, dass ich hier nicht auf jeder Seite eine einzelne Header Komponente hab, sondern eine zentrale und da mach ich das halt mit Variablen. Also man, es wird schon recht schnell komplex. Also man braucht 'n gewisses Grundverständnis dafür. Und ich würde sagen, von den No No No No Go Tools eben hat es eine eine relativ steile Lernkurve.
Jan
Und wie habt ihr euch da geholfen? Also wie wie habt ihr diese Lernkurve gemeistert?
Till Schneider
Also in meinem Fall ist es tatsächlich Youtube Tutorials angucken. Flatterflow hat 'n supereigenen Channel, wo sie gute, auch lange Tutorials haben, wo sie mal eine ganze Applikation bauen. Oder sie haben solche solche Webinare, wo sie zusammen sich zusammenschalten und bisschen über Themen reden. Es war aber tatsächlich 'n extremes Gesuch. Also wir haben dann so zwei, drei Stunden lange Webinare und ich habe einen Fehler. Und der Fehler ist dann bei Minute dreiundfünfzig, wo sie genau darüber reden und erklären, dass das ja grad 'n Fehler ist in ihrer Software. Und man muss gucken, da muss man das so umbauen. Also es war schon oft son bisschen das Suchen nach der Nadel im Heuhaufen.
Tobias Müller
Also man merkt auch schon, es ist eine Community da, vermutlich auch größer wie bei anderen Tools, aber sie ist doch noch am Aufbauen. Also grad wenn's dann speziellere Dinge geht, ist es schon 'n bisschen an Gesuche und auch 'n bisschen mit Glück verbunden, ob denn tatsächlich schon mal jemand diese Frage überhaupt gestellt hat.
Till Schneider
Und und was ich noch ergänzen will, ist, dass wirklich diese diese zusätzliche Ebene, Abstraktionsebene, die halt Flatterflow noch mal auf Flatter draufsetzt, halt auch zu zu Problemen führt. Dann weiß man nie genau Und und auch die Flatterflow Community weiß nicht, ist das jetzt 'n Flatter Error oder entsteht das jetzt durch die Flatterflow Abstraktion noch mal, ist da der Fehler und es sorgt schon zu noch mehr Reibungen.
Garrelt
Aber die Community, mit der da im Austausch war, war schon auch die Flatter Community oder ist diese Flatterflow Community arg getrennt?
Till Schneider
Nur, Flatterflow hat selber eine Community, also auf Community, glaub ich, Punkt Flatterflow Punkt com oder wie auch immer die URL ist, gibt's eine eigene Community, die auch recht stark ist. Da gibt's 'n paar sehr, sehr tolle Members, die auch sofort antworten, die schnell antworten. Und wir haben uns dann, also ich mich fürs Frontend her, meistens darin bewegt. Tobi musste, glaub ich, noch öfters dann auch in auf die Flatterebene wechseln, gewisse Dinge zu verstehen oder zu debuggen.
Garrelt
Ich frag mich schon die ganze Zeit, also Till, Du sagst ja, Du kommst eher aus dem Design Background. Tobias, Du wärst so im Dev Background. Wie gut oder wie habt ihr euch so aufgeteilt aufgabentechnisch? Hat das gut funktioniert? Auch auch eine Frage in meinem Kopf ist, wie hat das mit Version Control funktioniert, weil das manchmal bei so Tools, glaub ich, 'n bisschen komplizierter sein kann. Und ich glaube, in meinem Kopf ist son Tool ja megastark, was so Design- und Entwicklungszusammenarbeit geht. So, was was sind da eure Erfahrungen? Was hat da gut funktioniert, was vielleicht nicht so gut?
Tobias Müller
Also flatterflow bietet schon eine git ähnliches Brunching mit ja, auch eine Versionskontrolle, aber die hat uns eigentlich nicht so wirklich geholfen. Meistens war eher der Prozessor. Till hat was eben UI mäßig umgesetzt, irgendwelche Elemente. Und nach ihm bin ich dann ran und hab irgendwelche Logiken dann dazu noch implementiert. Also es war schon irgendwie 'n getrenntes Arbeiten, da wir aber mehrere Baustellen hatten, hatten wir uns dann halt schon auch irgendwo aufgesplittet. Es war halt, das ist auch ein ein großes Problem, was wir eben auch mit Flatterflow hatten, son Bug könnte man sagen. Sobald man parallel auf einer Seite gearbeitet hat, was man theoretisch machen könnte, hat es oft dazu geführt, dass einfach Änderungen verschwinden sind. Till hat irgendwas gemacht, ich hab dann was eingefügt, dann
Garrelt
geh ich
Tobias Müller
in den Testmode und plötzlich ist es nicht mehr da. Und das war auch schon sehr frustrierend. Deswegen war dann einfach die Konsequenz, okay, wir müssen das halt etappenweise
Garrelt
machen. Also fast mehr Absprache nötig als sonst.
Tobias Müller
Genau, auf jeden Fall.
Garrelt
Ja. Und Till, Du konntest aber ohne viel Entwicklungs, nee, das weiß gar nicht, wie viel Entwicklungserfahrung hattest Du denn vorher? Oder bist Du da einfach wirklich aus dem reinen Designbackground eingestiegen und konntest da Dinge entwickeln?
Till Schneider
Also ich hab einmal eine eine Designlibrary eben mit mit Tellwind HTML, CSS irgendwie geschrieben. Das so Grundverständnisse waren eben da jetzt übers Boxmodel oder wie grundsätzlich die die die Dinge in in Code übersetzt werden. Aber tatsächlich war es dann doch eine recht steile Lernkurve eben noch mal eben viel, viel Tutorials angucken, dass man weiß, wie sich halt der flatterflow wieder verhält. Also ich wär dann wahrscheinlich schneller gewesen, hätt ich's dann in in mit irgendwie schreiben können. Ging an der Stelle aber nicht, weil andere Sachen wieder nicht gegangen wären. Und tatsächlich diese die Grenzen waren dann recht fließend. Also ich konnte dann halt auch über dieses dieses son System, wo man quasi die die Action Blocks dann einfügen kann, die irgendwelche Dinge triggern, wie zum Beispiel haptisches Feedback. Das waren für mich halt dann zwei Klicks, ein neue Note anlegen, sagen hier, haptisches Feedback auf, wenn der Button gedrückt wird. Und dann hat kann ich das supereinfach auch bewerkstelligen. Das wär auf Codebene dann wieder deutlich komplizierter gewesen, beziehungsweise hätt ich wahrscheinlich noch mehr Fehler gemacht. Also da konnte ich mich dann mehr Richtung Tobi auch arbeiten, sag ich mal, von der von der Funktionalität her. Auch Stück für Stück hab ich mich auch sicherer gefühlt, wie wie mach ich eine eine Firebase Datenbankabfrage und so weiter und so fort, weil der Flatterflow einfach das schon relativ verständlich macht für den Nutzer.
Jan
Das wär jetzt meine nächste Frage gewesen. Also selbst wenn Du dann durch diverse Tutorials und und so dich in dem Editor irgendwie wohlfühlst, musst Du ja trotzdem am Ende noch über kurz oder lang andere Services integrieren, sei es euer eigenes Firebase oder vielleicht habt ihr auch noch andere Services angebunden, keine Ahnung. Und wie schafft das denn son Tool an der Stelle, da sone Translation hinzubekommen zwischen, na ja, na ja, Du machst dir zwar eine Datenbankabfrage und da kommt irgend 'n 'n JSON Objekt vielleicht zurück am Ende des Tages. Aber wie sagt man dann, okay, und jetzt von diesem JSON Notizenobjekt hier an dieser Stelle den Titel anzeigen und hier den Inhalt und hier vielleicht, ne, also also wie wie ist dieser Connect so?
Tobias Müller
Ich glaub, da hat sich dann auch schnell gezeigt, wo so Grenzen dann liegen, was was trotzdem aber möglich ist. Einfache Updates, Datenbankabfragen und so weiter. Da kam Till auch super mit klar. Ich glaub, da braucht man nicht wirklich das Coding Verständnis, wenn's aber dann drum geht, wirklich mal Daten zu extrahieren, mehrere multiple Datensätze zu verändern oder auch in der UI ja berechnen und so weiter zu machen. Da musste ich dann schon einschreiten. Das ist nämlich auch flatterflow möglich, aber da gehört dann halt wirklich auch das Verständnis 'n bisschen dazu.
Jan
Und wie habt ihr euer euer Backend dazu gebaut? Weil ich nehm mal an, das macht man ja nicht in flatterflow.
Garrelt
Genau. Also wir hatten ja jetzt erst
Tobias Müller
mal über die Integration von Feuilleton zum Beispiel geredet. Jetzt kommt eben der Punkt unsere Verarbeitung bei Memoro, unsere unsere Prozesse, wie wir das natürlich aufgearbeitet ausgeben, das liegt alles an 'nem Backend. Und auch da bietet eigentlich Flatterflow 'n guten zentralen Punkt, wo man einfach seine Backend Route einfügt, seine Restcalls definiert und die dann auch als Action abfeuern kann. Aber auch da gibt's dann halt wiederum Limitierungen. Wir hatten jetzt Glück, dass wir jetzt da backend rotemäßig nicht nur hohe Komplexität haben, aber wir waren jetzt trotzdem auf ein back End eingegrenzt. Wir konnten so was wie On Preme und so weiter nicht umsetzen damit.
Garrelt
Was ich
Till Schneider
vielleicht noch ergänzen will an der Stelle, im Bezug auf die Datenbankabfragen, ist es son bisschen auch eine Blackbox gewesen. Also wir hatten dann im Endeffekt das Problem, dass wir in den Memory Leak reingelaufen sind und mussten dann ewig lang debuggen, woran liegt es? Wir haben's dann auch so halb rausgefunden, aber dann wieder doch nicht. Also es war irgendwie der Timer, den mussten wir dann Custom nachbauen, damit es besser funktioniert. Also drückst Aufnahme starten und dann zählt 'n Timer hoch und irgendwie der eingebaute Timer von Flatterflow hat diesen Memoryleak wohl verursacht, aber es war dann doch nicht, das war das Hauptproblem, aber da war noch mal 'n tiefer liegendes Problem und wir kamen da partout nicht dahinter. Und das war hat mich dann auch sehr verrückt gemacht. Ich als quasi, ich nutze Memoro am meisten, ich kipp da wirklich alles rein, ich nenn mein ganzes Leben damit auf. Ich find, das sind ganz essenzielle Metadaten. Da kann man ja dann irgendwann eine schöne eine KI mit personalisieren. Hatte dann die Probleme, dass das unglaublich langsam würde, die Oberfläche. Und ich hab jetzt im Verlauf von der Entwicklung von Nimuru, glaube ich, vier- oder fünfmal meinen Account gewechselt, weil einfach das das Ding so voll war, dass es dass es nicht mehr performant lief. Und wir hatten, wir wussten aber, es gibt eigentlich keine Lösung dafür. Wir haben ewig lange Schleifen gedreht in der Community, haben versucht, das rauszufinden, kamen dann halt aber zu der Erkenntnis, hey, wenn wir uns angucken, wie wie viel der Durchschnittsnutzer Memos hat, merkt er das Problem gar nicht. Also machen wir uns jetzt deswegen verrückt oder schieben wir das Problem vor uns her? Und wir waren dann an 'nem gewissen Punkt, war uns klar, okay, wir sollten den den den den Stack wechseln. Wir brauchen die Kontrolle über den ganzen Stack und dann haben wir dieses Thema einfach vertagt. Aber das hat uns sehr, sehr viele Bauchschmerzen bereitet.
Jan
Jetzt sprichst sprichst schon 'n wichtigen Punkt an so, diese Frage nach, ne, wann entwächst man halt so diesem Tool und wann muss man sich den Stack noch mal irgendwie grundlegend Gedanken machen. War das für euch von vornherein klar, dass ihr sagt, na gut, wir starten hier mit diesem No Code No Code Thema, einfach schnell sein zu können? Aber irgendwann werden wir's irgendwie selber bauen müssen, wenn alles gut läuft. Oder war eigentlich die Annahme, na ja, wir bauen das jetzt hier mit 'ner Flatterflow oder irgend 'nem anderen Tool und das kann uns auch bis zu den ersten zehn Millionen Usern tragen?
Tobias Müller
Ich glaub, gestartet sind wir schon 'n bisschen mit der Einstellung, dass wir das jetzt mal unlimitiert nutzen können. Natürlich trotzdem mit der Ungewissheit, welche Anforderungen wir noch haben werden. Wir haben aber auch schnell dann gemerkt, wir haben wirklich 'n Problem mit dem Faktor Zeit. Am Anfang eben diese diese Geschwindigkeiten, mit der uns wir uns bewegen, hat uns unglaublich geboostet. Wir konnten schnell iterieren. Wie Thuill schon sagte, unsere vierhundert Versionen, die wir da hatten, konnten direkt auf Feedback eingehen, konnten Sachen testen. Das hat uns sehr viel Geschwindigkeit gegeben, aber wir haben dann gemerkt, je komplexer das Projekt wurde, je größer hatten wir, je mehr hatten wir Probleme mit mit dem Thema Zeit ja bedingt durch. Zeiten, die teilweise bis zu zehn Minuten gingen, einfach nur, wenn man was in der UI ändert und hat dann eben dieses Hot Reload. Auch da sind die Zeiten bei so, keine Ahnung, eine halbe Minute. Und dann stimmt mal was nicht und man muss noch mal neu laden. Man will's aufm Device mal testen, ob da muss man dann wieder warten. Und Flatterflow, ja, kostet da halt leider viel Zeit. Und dann muss man halt irgendwann überlegen, ab welchem Punkt muss bringt man muss man zu viel Zeit für die Entwicklung aufbringen für diese Wartezeiten? Und wann wäre es es sinnvoller, eben auf 'ner anderen eigenen Stack zu wechseln?
Till Schneider
Wir hatten auch ein Problem. Wir haben ja die App dann direkt sehr mehrsprachig aufgebaut, also gleich vierundzwanzig Sprachen unterstützt von Anfang an. Da geht's eben auch drum, dass ausländische Fachkräfte ihr ihre Arbeit in ihrer Heimatsprache dokumentieren können per Sprache. Wir haben son bisschen son Speech to form System geschaffen dann in der App, da wir eben aus verschiedenen Industrien da Anfragen bekommen haben. Und da war einfach einen einen Bug in Flatterflow, dass ich hier die händisch oder ich ich hab einen Google Translate Button, der war erst mal super. Ich konnte oben die englische Sprache eintragen, dann hat er mir das übersetzt in die anderen dreiundzwanzig Sprachen. Erst mal war war da das Problem, dass Google Translate keinen Kontext mitgegeben bekommen hat. Also der wusste nicht, dass es eine UI Übersetzung hielt. Heißt, ich musste ganz viel dann, ich musste dann andere englische Wörter suchen, damit er besser versteht, dass es dass es sich eben eine App handelt. Das war schon 'n Krampf und dann gab's einfach einen Bug, dass er immer wieder die Übersetzung gelöscht hat. Und dann hatten wir sogar geschippte Versionen, wo dann wo er uns eine Seite, die wir überhaupt nicht angefasst hatten, wieder alle Übersetzungen zerschossen hat. Und da gab's, da haben wir auch eben Tickets für angelegt im in der Flatterfloor Community und und und. Kam aber nix. Also da gibt's, glaub ich, bis heute kein kein Fix dafür. Und wir hatten dann vermehrt genau dieses Problem der Hilflosigkeit eigentlich an der Stelle, wo wir wissen, okay, wenn wir das jetzt, hätten wir den Stack im Griff, könnten wir das lösen, aber wir können's grade nicht lösen. Und das waren dann so zwei, drei Baustellen und wo man dann mehr und mehr Bauchschmerzen bekommt und und dann halt eben die Zeit verliert. Weil auf einmal muss ich alle Seiten noch mal kontrollieren vor jedem Shipment und schauen, hey, ist da sind alle Übersetzungen drin. Also das ist genau der Punkt, Tobi meint so, diese die Zeit, am Anfang ging's unglaublich schnell und dann ging's unglaublich schnell unglaublich langsam.
Tobias Müller
Ja, und da haben wir halt schon früh gemerkt oder zu 'nem gewissen Punkt, wir müssen irgendwann den Absprung planen. Wir haben dann angepeilt, eine stabile Version zu haben, die wir in Ruhe lassen können. Und ab da dann eben zu sagen, okay, jetzt machen wir 'n Cut und jetzt wechseln wir auf unseren eigenen Stack. Also das haben wir schon früh angefangen zu planen.
Garrelt
Ja. Aber
Jan
das heißt ja natürlich oder vermutlich, in dem Fall ist das 'n kompletter, ne, weil son Tool wie Flatterflow sich wahrscheinlich nicht dafür anbietet zu sagen, wir machen hier son son hybrides Ding und ersetzen das so peu à peu vielleicht View by View oder Action by Action oder so was. Sondern Du musst im Prinzip, wie Du schon gesagt hast, ne, sone auch sone stabile Version mal kommen, die in Ruhe lassen und nebenbei dann im Prinzip komplett von vorne noch mal die ganze App bauen. Hat euch flutterfloda in irgend 'ner Art und Weise unterstützt? Also konntet ihr, weiß nicht, das Projekt, was ihr da hattet, exportieren und irgendwie dann im Code weiterbearbeiten? Oder habt ihr komplett auf der grünen Wiese angefangen? Wie wie läuft das? Oder habt ihr überhaupt schon angefangen oder plant ihr's grade nur? Vielleicht, das mal ganz vorne anzufangen.
Tobias Müller
Also also wir sind schon am Umbauen.
Till Schneider
Mhm.
Tobias Müller
Mhm. Also ich will nicht sagen, dass es nicht technisch möglich ist. Es ist durchaus technisch möglich, die Codebasis zu nehmen. Sobald man 'n Abo hat, hat man das Recht und kann man eben die die Codebasis nehmen und kann den Code auch selbst verändern. Aber dann kommt man, würd ich sagen, wirklich in Teufelsküche. Ich würde von abraten, weil dann noch mit wirklich der Flow Oberfläche noch Dinge zu verändern, fangt's an mit Merch Konflikten. Das geht So, nee,
Jan
dann hab ich's nämlich, glaub ich, falsch verstanden. Das ging mir nicht darum, parallel auch an der Codebase rumzuarbeiten, sondern die quasi zu nehmen und dann, also die Codebase einmal zu exportieren, flatterflow sozusagen abzuschalten, aber an der exportierten Codebase sozusagen weiterzuarbeiten einfach nur, ja? Dass man halt diesen Plattformlog in son bisschen umgehen kann.
Tobias Müller
Ja, okay. Ja gut, also prinzipiell gleiche Aussage, man hat den Code, man kann den nutzen, man könnte dann auch Vorurteile davon exportieren. Aber dadurch, dass halt flatterflow den Code selbst generiert und auch sein eigenes SDK dadrin nutzt, ist es, denke ich, nicht praktikabel. Also ich würde wirklich davon abraten, lieber die Logik, die dahintersteckt, nehmen und
Garrelt
aus der Logik die eigene App noch mal schreiben. Das geht ja
Tobias Müller
dann auch super mit KI heute. Da KI heute. Deine, Du schreibst deine Logik runter und sagst mir, erzeug mir daraus den Code. Viel effektiver als jetzt wirklich den Code da rauszuexrahin.
Jan
Aber das ist ja eigentlich 'n superwichtiges Learning, ne. Weil ich glaub, für ganz viele Leute ist so dieser Punkt, na ja, hab ich da 'n Plattformlog in oder kann ich am Ende meine App rausexportieren und mitnehmen?
Garrelt
Ja.
Jan
So, gibt ja gefühlte Sicherheit so eigentlich, ne, wenn Du damit anfängst. Und was Du jetzt ja eigentlich gesagt hast so durch die Blume ist, das hat eigentlich nichts wert, dieses Feature. Also es es gibt dir so sone gefühlte Sicherheit noch mit, aber 'n wirklich großen Nutzen außerhalb das zu retten, was Du hast, hast Du halt eigentlich nicht davon.
Tobias Müller
Ich ich kann mal kein Szenario vorstellen, wo das wirklich der Mehrwert größer wär als die Probleme, die man da durchkriegen würde.
Till Schneider
Ich würd das auch mal unter unter Marketing irgendwie verbuchen, weil wenn man wenn sich 'n Flatter Dev mal diesen Code anguckt, den man exportieren kann aus Flatterflow raus, dann wird der sagen, nee, nee, nee, wir müssen das so oder so komplett neu schreiben. Das entsteht halt aus aus diesem Low Code, No Code Ansatz, dass die halt das irgendwie zusammenschustern. Ich find da eine Parallele ganz spannend mit der Superbase, weil wir uns jetzt im im Sinne des auch damit beschäftigt haben, gehen wir auch aus diesem Log von Firebase raus. Und Superbase wirbt es ja ganz ähnlich an. Man kann da ja loslegen ganz einfach, aber sie sind ja Open Source und so weiter. Man kann es ja dann auch on prem hosten und selber hosten oder was auch immer. Ist halt dann aber doch nicht ganz der Fall, weil dieses ganze Tooling, was die Superbase so einfach macht, wenn man sie über deren Dienste nutzt, dann nicht mehr verfügbar ist. Und bei flut of floast, das würde ich sagen, noch extremer. Man vom Frontend her unglaublich wichtig, weil man konnte eben sehr viel Schleifen drehen. Das eine 'n Frontend nachzubauen geht verhältnismäßig einfach, es zu finden, ist ja das Schwierige. Also wo wo muss das Zeug hin? Wie wir deswegen, wir haben ganz schöne Screenshots von diesen vierhundert Versionsnummern und sehen genau, wie hat sich das verändert über die Zeit. Und dann haben wir eine eine gute Linie gefunden und die Linie jetzt nachzubauen, geht verhältnismäßig schnell dann. Aber ja, von der Codebasis, die mitzunehmen, nein. Und wir hatten ja nun dann auch eine Recherche gemacht und uns eigentlich auch gegen Flatter entschieden an der Stelle und haben auf REAC Native gesetzt.
Jan
Das ist jetzt noch mal 'n spannender Punkt, ne. Ich mein, jetzt habt ihr ja im Prinzip die ganze App schon mal in Flatter gebaut oder zumindest den Teil, den ihr custom gebaut gebaut habt davon, der ist ja vermutlich 'n Datenflatter gebaut in Flatterflow so, ja. Ja. Wieso seid ihr dann davon quasi weg, wo ihr dann Also da könnt ihr ja noch weniger recyceln, sag ich mal.
Till Schneider
Ja. Ja. Also ich finde da da auch lange lange recherchiert, mich reingefuchst irgendwie und die Es ist, glaub ich, relativ egal. Also es gibt in in Europa auch die größere Flatter Community. Ich kenn sehr viele Flatter Devs, die produktive Apps haben in Flatter gebaut. Und ich glaube, von der Größe der Community her, von der Menge der Packages her und dem Support her schenkt sich das wenig. Ich fand ich fand rig Native einfach deutlich interessanter, weil sie's jetzt erst, glaub ich, seit 'nem halben Jahr auch auch geschafft haben, aus einer zentralen Codebasis eine performante Web App hinzubekommen. Und Flatter, da es ja aus vom Canvas Model herkommt und eigentlich nicht aus der Webentwicklungsseite her, wird das wahrscheinlich nie schaffen, dass die wirklich performant wird, die Webseite. Wirklich eine Codebasis haben und damit auf alle Plattformen schippen können. Und da ist Reggnative meiner Ansicht nach jetzt 'n guten Schritt weiter plus Tobi und ich haben mehr Erfahrung von der vom Web Development Seite her. Deswegen fällt uns auch da die die, sag ich mal, die Sprache leichter. Es kommt kommt uns bekannter vor. Plus natürlich von Microsoft, Microsoft nutzt es immer mehr. Jetzt kam erst vor zwei, drei Wochen einen einen Riesenupdate. Wir haben eine neue neue Architektur geschipp, geschipped, weil Meta ist ja von Meta React auch in den in den Quests nutzt, also in ihren VR Headsets, das dort für die Oberfläche nutzt. Heißt, sie mussten extrem jetzt die Performance hochschrauben, dann Drop Frame in VR natürlich zu Motion Sickness führt und geht überhaupt nicht. Heißt, da ist einfach 'n megades Backing dahinter. Und vor allem, das war eigentlich der der entscheidende Punkt, man bekommt alle Plattformen performant bespielt.
Jan
Und als wie realistisch hat sich der Plan herausgestellt zu sagen, ihr habt eine stabile Version in Flatterflow, die ihr nicht mehr anfassen müsst. Und parallel arbeitet ihr quasi an dem an dem. Aber ich mein, das ist sone Situation, die haben wir da draußen, glaub ich, alle schon mal erlebt. Der hat's da also, hey, dieses alte Produkt fassen wir jetzt nicht mehr an. Und wir bauen hier einfach nebenbei das Neue. Ja. Und dann kommt halt doch irgendwie jemand die Ecke und sagt, könnt ihr können wir dich noch mal da eine Kleinigkeit ändern? Und da ist noch 'n Bug, der müsste irgendwie noch mal gemacht werden, weil bis das Neue kommt, dauert's irgendwie noch so lange. Und dann ist ja doch dieses Ziel, auf das man hinarbeitet, doch deutlich beweglicher, als man vorher gedacht hat, sag ich mal.
Tobias Müller
Ja, man muss die Sachen, glaub ich, einfach 'n bisschen runterschlucken und sich drauf fokussieren, dass man ja grade daran arbeitet. Weil dann hört man eben, ja hey, das und das geht nicht. Zu den Leuten, die eingeweiht sind, denen sagt man dann so, ja, das wissen wir. Die neue Version kommt bald. Zu den Externen sagt man, oh, vielen Dank, das nehmen wir uns zu Herzen, da arbeiten wir direkt dran. Also ja, wir arbeiten direkt dran, aber halt an 'ner komplett neuen App.
Till Schneider
Es war wirklich, dass wir's geschafft haben, die App noch an den Stand zu bekommen, an der sie jetzt ist. Und wir haben sie jetzt wirklich seit 'n paar Monaten nicht mehr angefasst. Und der letzte Schritt für uns war die Monetarisierung, dass wir dass wir's monetarisiert haben, dass die Leute da sich 'n Abo ziehen können. Diese letzte Versionsnummer war wirklich, also war wie im waren wir. Das, weil gefühlt ist ist uns mehr auseinandergefallen von jeder neuen Version, als dass es wieder funktioniert hat. Und es war wirklich, würd ich sagen, Glück, dass wir das noch mal rausgeschoben bekommen haben und es einfach auf 'nem guten Stand ist. Weil wie gesagt, Flatterflow auf einmal entschieden hat, hier, wir löschen euch Übersetzungen, wir löschen machen irgendwelche Hintergründe kaputt oder so. Das das war wirklich 'n Kampf dann am Ende gegen gegen gegen das Framework, sag ich mal.
Tobias Müller
Ja, es war es war, glaub ich, so gefühlt 'n bisschen Glück, dass wir genau jetzt zum wichtigen Zeitpunkt den Absprung geplant haben, weil's wirklich schlimm wurde jetzt.
Till Schneider
Ja, ja. Knappe Kiste. Okay.
Jan
Das forciert natürlich son bisschen die spannende Frage. Wenn ihr jetzt Memoro noch mal bauen würdet oder in ein paar Jahren ein anderes Start-up macht oder was auch immer, ein anderes Produkt im im selben Space, würdet ihr das noch mal genauso machen?
Garrelt
Zu Anfang drüber.
Tobias Müller
Ja, wir haben 'n bisschen differenzierte Meinung. Also mal allgemein find ich immer noch, ist valide. Für jemanden, der keine Codingerfahrung hat, eine eigene eine einfache App machen will, keine Ahnung, Du machst Schmuck und willst dann unbedingt auf eine App anbieten. Hey, dann, damit wirst Du glücklich, denk ich, mit flatterflow. Das wirst Du damit gut hinkriegen. Aber so was wie mit Moreo grade heute würd ich nicht mehr mit Flatterflow starten. Und genau, ich glaub, da kann ich Herrn Till übergeben zu seiner Meinung.
Till Schneider
Ich find das eine eine unglaublich spannende Frage, weil ich mach mir da viel Gedanken drüber, was wir denn jetzt eigentlich die letzten eineinhalb Jahre so gemacht haben und dann was wir so gearbeitet haben. Und vor allem haben wir uns, weil wir son kleines Team sind und eigentlich auch nicht das Budget haben, groß zu wachsen in dem Sinne. Und ich halte auch viel von organischem Wachstum, ich halte relativ wenig von riesenschnellen VC und wir sammeln viel Geld und wir machen hier. Das das find ich alles 'n bisschen eigentlich kontraproduktiv. Wir haben uns extrem drauf konzentriert, wie werden wir besser? Wie wie können wir noch schneller bauen? Also Tobi und ich, wie arbeiten wir besser zusammen und wie enhanzen wir uns noch mehr mit KI? Meine persönliche Meinung ist, ich würde nicht mehr mit Flatterflow starten, weil die Lernkurve eben so steil ist, dass meiner Ansicht nach heute, wenn man sich 'n Cursor nimmt oder 'n Windsurf nimmt, wenn man sich diese IDIs hernimmt, die wirklich gepimpt sind mit KI, man eigentlich schneller vom Fleck kommt. Und wir haben jetzt über die letzten drei, vier Monate, glaube ich, fünf, sechs, sieben neue Applikationen geschaffen, die alle in in 'ner guten Alphaphase sind, auch intern. Und wir haben unsere Webseite auch zum Beispiel, die jetzt mit NextJS und so, hab ich komplett mit mit Curcer damals komplett mit KI neu geschrieben und so. Das die liest die Marktdown Dateien aus, baut sich über Marktdown Dateien auf und so weiter und so fort. Man kann die dann recht einfach befüllen. Wir haben sehr viel experimentiert mit verschiedenen Sachen und ich glaube, es macht keinen Sinn mehr, diese Dependency und diese Probleme, die diese Dependencies eigentlich mit sich bringen, einzugehen. Man sollte mehr und mehr sich drauf konzentrieren, den Stack selber im Griff zu haben und grundsätzlich weniger Dependencies, weniger kleine Pakete für für irgendwelche kleinen Helferfunktionen und so weiter nutzen, sondern es die KI schreiben lassen. Und langsam sind die Tools, ich mein, die Zeit arbeitet da ja für uns und die das Tooling wird besser. Ich hab das Gefühl, die KI ist noch nicht so richtig in der Endanwendung angekommen, sondern es es passiert ganz viel im im Tooling, diese Tools zu bauen. Aber es ist 'n ganz neues Medium und wie bei jedem Mediumswechsel, die erste Fernsehsendungen, die liefen, da haben sie halt Radioshows abgefilmt, weil sie wussten ja auch nicht, was sie jetzt erfüllen sollen. Also man nimmt irgendwie so die alten Dinge auch noch mit, auch ausm UI Design und so weiter. Da hinken wir eigentlich hinterher, da gibt's extremes Innovationspotenzial. Meiner Ansicht nach hat hat AI 'n großes UX UI Problem eigentlich, wieder leere leere URL Zeile wie Anfänge des World Wide Webs und wir haben einfach wir haben einen unglaublichen Drang zu bauen. Also Tobi hat dann irgend eine Idee, wo er wo er sich 'n kleines Helfertool bauen will und baut es halt einfach. Und damals haben wir das noch in Bildship zusammengesetzt und und in in Flatterflow tatsächlich haben wir die ersten Prototypen gebaut und jetzt machen wir das einfach in Code. Und es geht meiner Ansicht nach schneller, aber wir wissen ja auch, dass das ist es heißt, es ist langfristiger. Wir haben den Stack im Griff und wir können dieses Tool jetzt mit anderen Tools verbinden. Und jetzt kommen Enterprise Customer und wollen das on prem haben oder unsere Schweizer Kunden wollen das in der Schweiz gehostet haben, die Deutschen in Deutschland und dann ist das möglich. Also wir sind viel, viel flexibler und wir bauen halt gleich was auf auf 'nem guten Fundament. Und langsamer geht es, glaub ich, nicht mehr.
Jan
Aber der Punkt, den Du gemacht hast mit, die die Zeit spielt ja dir in die Karten. Das gilt ja auch für so Tools wie Flatter, Flow oder wahrscheinlich analog auch für vergleichbare Tools. Vielleicht hab mir das eben nur mal so kurz nebenbei aufgemacht. Und da gibt's jetzt auch AI Funktionen, die so, ja, wo Du halt son bisschen schnell was malst und da generiert dir dein dein Widget daraus oder Nicht
Till Schneider
gut. Also leider ist das es ist es wirklich einfach nicht gut. Also Aber
Jan
aber wie Du gesagt hast, das ist ja jetzt das Schlechteste, was es jemals sein wird, so, ja? Also auch da ist ja die Frage, ne, weil Du dieses UI Thema auch so angesprochen hast, also da Also ich versteh deine Abwägung jetzt vollkommen, so. Ich frag mich halt, ob das in fünf Jahren immer noch genauso ist. Weil was ich immer seh, wenn Leute mit AI Code generieren oder UIs generieren oder so, es ist superschnell, solange diese diese menschliche Sprache als und funktioniert, ja? Wenn Du jetzt schreibst, hey, ich brauch 'n Login Screen und ich will hier 'n Userfeld und 'n Passwortfeld und 'n Login Button und 'n Registrieren Button und 'n, weiß ich nicht, Button oder so was, ja? Und dann wird das erstellt und alles cool. Und dann kommt so diese diese kleinen Details, ne. Ich brauch hier mein mein Logo drin und ah, nee, ich brauch's irgendwie anders. Das sitzt noch nicht so ganz richtig, wo man halt eigentlich in sonem grafischen Editor, ne, wenn wenn die Grundlage mal erzeugt, das würde man eigentlich viel lieber mit der mit der Maus mal so hingehen und das son bisschen bewegen oder ziehen oder noch mal noch mal anpassen. Und solang ich aber immer 'n neues prompt irgendwie schreiben muss so, ah, mach's doch noch mal 'n bisschen anders und schiebst's mal mehr dahin oder versuch's mal so und so. Das ist, glaub ich, beim Iterieren noch ziemlich mühselig grade. Was man, glaub ich, eigentlich haben will, ist doch son sone Toolchain, wo der Initialzustand quasi AI generiert wird und ich dann aber trotzdem 'n grafisches Interface hab, die letzten null Komma eins Prozent irgendwie Feintuning noch zu machen, ja. Ich will ja nicht in den Code gehen, nur Margin irgendwie anpassen zu müssen.
Garrelt
Weißt Du,
Jan
was ich mein?
Garrelt
Ich weiß, was Du meinst, aber das Problem der aktuellen No Code No Code No Go Tools ist eben, dass sie diese zusätzliche Abstraktionsebene ein
Till Schneider
aktuellen Tools ist eben, dass sie diese zusätzliche Abstraktionsebene einführen und sie dich nicht an den ganzen Stack ranlassen. Du hast nicht die komplette Kontrolle über deine Tools. Also da braucht's, glaub ich, einfach eine neue Generation von Tools, die Ja, vielleicht. Im Grunde genommen auf voll mit KI gebaut sind und diese Abstraktionsebene einfach weglassen. Die können mir das ja dann anzeigen visuell und ich kann meinen Button verschieben, wobei das auch 'n bisschen 'n Wunschtraum ist, dass man dann die Margin anpasst, weil wie verhält sich das dann in der responsivness? Also das ist dann alles gar nicht so einfach. Son visueller Editor bringt auch Probleme mit sich auf der anderen Seite, aber ich glaube, da braucht's, man braucht die Kontrolle über den Stack. Und diese flatte Flow Ebene bringt halt Performance Issues mit sich, bringt eben mit sich und so weiter und so fort. Also zum jetzigen, ist wär schön, wenn wir das hätten, dass jetzt quasi, aber das das muss dann 'n VS Code bringt dann halt irgendwie eine eine Möglichkeit, dass man da auch visuell 'n bisschen rumschieben kann. Da seh ich das dann eher, dass dass sich eigentlich die Code Editoren in die Richtung bewegen, anstatt dass diese Low Code No Code Tools mehr wie die Code Editoren werden. Mhm. Mhm.
Garrelt
Ich
Tobias Müller
glaub, das ist dann auch son bisschen unsere differenziertere Ansicht, weil ich finde, es gibt trotzdem noch valide Argumente für die Low Code No Code Editoren. Ja, es würd, denk ich, schon einiges sich noch ändern. Aber wie gesagt, hast Du diesen ganz ganz einfache Anforderungen oder hast auch überhaupt keine Ahnung von Design oder so. Oder willst einfach nur schnell mal 'n Prototypenen zusammenklicken, find ich, hattest Du durchaus schon noch seine Existenzberechtigung, ich persönlich.
Jan
Also ich muss auch sagen, in meinem vorherigen Job hatten wir auch No Code No Code Tools benutzt, so interne Sachen einfach zusammenzubauen, ja? Und ich sag mal, für so das interne Dashboard zur Eventplanung, ja, wo jetzt auch Design mal komplett zweitrangig ist und es eigentlich mehr son glorifiziertes ist für so einfache Update Delete Operationen und 'n bisschen Auswertungen oder so. Dafür wird es, glaub ich, auch auf sehr lange Sicht nicht zu schlagen sein. So ja, weil das halt noch Weiten mächtiger ist als son Excel Spreadsheet so und deutlich billiger zu machen als irgend eine Custom Softwarelösung, so. Ja, ich glaube, das wird vielleicht die Nische, die Sie da so lang- und mittelfristig besetzen können. Aber wahrscheinlich hast Du recht, Tobias, ja, es gibt gibt auch genug andere Use Cases, wo's sich vielleicht dann dann auch nicht lohnt.
Till Schneider
Sehe ich genauso. Aber sobald's, glaub ich, Customer Facing wird und man will man will in eine gewisse Skalierung reingehen und man will einfach das beste die beste User Experience bieten, was man ja für interne Tools nicht muss. Da geht's nicht drum. Da weiß jeder irgendwie, was er da jetzt machen soll, das Sommerfest zu planen und dann dann ist das super. Aber ja, vielleicht geht dann da so, trennt sich da die Spreu vom Weizen. Als Tobi und ich uns dann irgendwann, das war recht spät in dem Prozess, mal angeguckt haben, was sind denn so die ganz tollen Flatterflow Apps, die so die live sind, waren wir dann auch sehr ernüchtert, weil also die die das, was die da alles showkasen an an den den erfolgreichen Flatterflow Apps, die sind auch gar nicht so gut und und gar nicht so erfolgreich und und und. Also ich glaub auch, es ist sone Frage von von für wen ist es dann gedacht am Ende.
Garrelt
Ich glaube, ihr habt das schon beantwortet, aber das heißt, am Anfang seid ihr eingestiegen mit, es ist cool für Prototyping und wenn's schnell gehen soll. Aber wenn ich das richtig verstehe, wenn ihr jetzt in dem Hacker fahren seid, würdet ihr auch eher auf cursor a I gehen und das so erstellen. Hab ich das richtig verstanden?
Tobias Müller
Ich glaub, das war dann tatsächlich der Punkt, wo wir anfangen zu diskutieren, wo Till wahrscheinlich ironischerweise Till, der nicht Und dann ist der Herr der Podcast hat
Jan
vorbei nach zwei Tagen diskutiert.
Garrelt
Das ist
Jan
schon fatal.
Till Schneider
Genau. Ich ich
Tobias Müller
glaub, das ist 'n bisschen die Ironie. Till eben, der nicht dann Code schreibt, der wird dann vielleicht eher zu Cursor oder Windsurf tendieren und ich vielleicht eher dann tatsächlich zu Flatterflow, der eigentlich coaten kann. Keine Ahnung, aber ja.
Till Schneider
Ich glaube für für Leute, die, also ich persönlich würde es so machen, dass ich dann mit Cursor oder oder Wünsdorf anfange, aber anderen Menschen würde ich da vielleicht schon noch 'n Low Code No Code Tool empfehlen. An der Stelle vielleicht jetzt nicht Flatterflow, weil's einfach noch komplexer ist. Da gibt's eben andere Low Code No Code Tools, die deutlich simpler daherkommen und für einen Hacker Thorn dann besser geeignet sind. Aber ja, für uns persönlich macht es keinen Sinn mehr, in diese Abstraktion reinzugehen, weil wir jetzt weil wir uns halt auskennen und schneller sind, wenn wir es selber coden. Aber für jemand ohne Erfahrung hat seine Tobi, ich
Jan
stell mal eine These in den Raum, weil ich würde mich, glaub ich, dir auch anschließen und auch eher zu dieser zu sonem grafischen Interface Code, nicht Nicht Code Editor tendieren für son Setting. Aber weil ich bei mir persönlich auch immer so das Risiko seh, wenn ich das jetzt in sonem HTML mache und egal, ob das auto generiert ist und oder weiß nicht, Du nimmst fertiges Template ausm Netz oder so was, keine Ahnung, ne. Man verliert sich dann halt doch so ganz schnell in diesen kleinen Sachen so, oh, hier, das könnt ich schon mal weg abstrahieren und hier könnt ich irgendwie noch mal das 'n bisschen eleganter machen als diese Vorlage oder dieses Generierte. Und das ist natürlich sone Falle, in die man in 'nem No Code, in einer No Code Umgebung halt nicht so reinfällt. Ja, man hat jetzt okay, ich klick jetzt mein Interface zusammen und vielleicht ist der Button noch nicht perfekt, aber für mich, dann mein ich jetzt mich, Jan, ja, der im Prinzip null grafischen Gestaltungsanspruch hat, weil ich zwei linke Hände hab, was so was angeht, da reicht das halt. Dann bin ich halt viel, viel schneller so, mal zusammen zu klicken sozusagen, anstatt irgendwie eine IDI aufzumachen und nach zwei Stunden zu merken, dass diese eine CSS Klasse irgendwie immer noch nicht so will, wie ich will, ja. Und halt wieder nur viel Zeit verschenkt hab. Ach, Ja, ich ich ich glaube,
Tobias Müller
das ist 'n valides Argument, ja. Der da da triggert dann son bisschen der Perfektionismusdrang. Den sieht man halt nicht bei sonem Editor.
Till Schneider
Deswegen, das ist sone spannende Diskussion, weil ich glaub auch nur, dass dass dass das meine Meinung ist, weil ich eben keine Erfahrung hab im Coden. Also Ja, Verständnis ist. Ja und das ist aber eine ganz spannende Herangehensweise. Also ich bin ich bin ich bin fest davon überzeugt, ich kann die ich kann die Dinge anders entwickeln. Ich denk anders über sie nach, weil mir ist es egal, wie gut der Code aussieht, da jetzt eben der Wechsel von Curser to Windsurve, vielleicht für meinen schon for shadowing für meinen Pick des mein mein Pick des Tages, finde ich ganz spannend, weil mich Ich les den Code auch nicht mehr. Wirklich, das interessiert mich nicht, was im Coach steht. Ich les den nicht. Ich ich drück aufn Knopf und dann drück ich zehnmal noch mal aufn Knopf. Und wenn ein Ärger rauskommt,
Jan
dann Zu viel Lehrer aus dem sehen gerade nicht, wie hochgaret die Augenbrauen gezogen hat. Die sind quasi zum zum Hinterkopf.
Till Schneider
Ich weiß, Du weißt die. Aber es hängt halt davon ab, was man baut. Und wir bauen deswegen sehr viel neue Tools, damit wir die die vom vom Funktionsumfang sehr abgespeckt halten können. Und mir geht es nicht die Codequalität. Mir geht's darum, dass ich 'n fertiges Produkt hab, was ich den Leuten schippen kann. Und und was da drunter für 'n Müll ist, da ist ja Code ist ja 'n Code nicht perfekt, ist nie perfekt. Das ist eher Gerade nur eine größere war, sonst läuft der irgendwann ausm Ruder. So, das das das entbrase ich von vornherein, das Chaos. Ich weiß noch nicht, wie Oh, okay. Wo das denn gelang ist? Schwierig. Ich
Jan
ich kann da ganz kurz eine eine Anekdote zu erzählen aus Ja. Aus 'nem Consultingprojekt von jemandem, die mal ein ein Interface, ein Frontend in Auftrag gegeben haben, irgendwo offshoring mäßig. Mhm. Und das haben wir dann zurückbekommen in irgend sonem Javascape Framework und und und bla. Und dann mussten da noch 'n paar Änderungen gemacht werden, weil es halt nicht so ganz dem Design entsprochen hat in allen Details. Und dann sind wir da 'n paar Wochen vergangen und das gab eine neue Auslieferung von dem Interface. Und wenn man da mal den Code reingeholt hat, hat man halt gemerkt so, das hat kein Stein auf dem anderen geblieben. Ja. Und dann wurde da so nachgefragt, so, wieso habt ihr denn das ganz? Also wieso ist denn da so viel geändert und so, ja, weil wir das halt komplett neu gebaut haben so. Also bevor wir uns die Mühe machen, hier den Leuten quasi zu erklären, das ist der Stand, das muss geändert werden, gibst Du halt dieselben Specs Ja. Noch mal fünfzig anderen Offshore Arbeitern so. Und das ist halt einfach noch mal komplett neu iterieren, So.
Till Schneider
Keine Techdap, keine Legacy Code, wie
Jan
Ja, genau, einfach komplett bei null an.
Garrelt
Das ist
Jan
halt viel einfacher für die, wenn Arbeitskraft quasi nix kostet. Und im Prinzip ist ja das mit AI genauso, ja? Wenn Arbeitskraft nix kostet, ist ja jede Iteration umsonst sozusagen. Und kannst das dir dann halt auch erlauben. Aber meine meine abschließende Frage an Gareth wär eigentlich gewesen, nach dieser Diskussion jetzt hier, Gareth, ja. Wenn Du jetzt bei 'nem Hackathon anfangen müsstest, ja, für was würdest Du dich denn entscheiden?
Garrelt
Ja, also ich glaub, mein Fazit ist so, das kommt aufs Team an, weil ich hab schon das Gefühl zum Beispiel, es ist es ist eine arge Zielgruppenfrage, dieses Thema, nutzt man dieses Tool oder nicht? Und mein Gefühl war eigentlich, Till und das wollte ich dich auch noch fragen, dass es für dich gefühlt eigentlich 'n cooles Tool war, weil Du so von Design supergut auch ins Entwickeln einsteigen kannst, so. Und so der Weg darüber in meinem Kopf halt 'n schöner ist und 'n guter, weil man eben so viel schon sieht und an manchen Stellen einsteigen kann, technisch, wenn man will, es aber auch erst mal weglassen kann oder von anderen machen lassen kann. Und deswegen wär, glaub ich, meine Entscheidung so, hab ich jetzt nur Entwickler in meinem Hacker vom Team? Dann wahrscheinlich nicht. Aber hab ich auch Designer, die auch Lust haben, nicht nur zu designen, sondern das auch direkt zu bauen, was ja auch dann den Entwicklern erst mal auch Arbeit abnimmt und eine bessere Zusammenarbeit ermöglicht. Auf jeden Fall, find ich's total sinnvoll. Und ja, wahrscheinlich und mein zweites Learning wär dann, haben wir gewonnen, ist es eine coole App, wollen wir daraus 'n Produkt machen, direkt weg von No Code. Das wär, glaub ich, so mein mein Learning.
Jan
Das ist, glaub ich, 'n sehr schönes Fazit. Das das kann man so stehen lassen als letzten Satz. Aber das ist ja noch nicht ganz der letzte Satz, weil wir haben ja noch unsere. Und Gerald, weil Du grade son schönes Fazit gezogen hast, ja, darfst Du auch anfangen mit deinem. Sehr gerne.
Garrelt
Ich habe einen Artikel mitgebracht, den ein Kollege vor Kurzem geteilt hat mit uns, der heißt von Iven Smith. Und das ist im Prinzip ein sehr ausführlicher Artikel, gibt auch einen Talk dazu, also kann man sich auch anschauen, wen man möchte. Darüber, wie er Kenntnis als Entwickler lebt sozusagen. Also wie kann man, ja, Kenntnis, Freundlichkeit, nee, wie übersetzt man das Deutsch? Ja, ja doch. Freundlichkeit. Wie kann man das als Entwickler in seinem Arbeitsplatz ausleben und fördern und andere Leute da so auch mitreißen? Er beleuchtet das von verschiedenen Sichtweisen und ich find es sehr schön gemacht. Es ist 'n sehr schöner.
Jan
Nice. Wunderbar. Tausend Dank. Dann Tobi, was hast Du im Gepäck?
Tobias Müller
Ich hab 'n kleines Open Source Tool, das heißt Local Sand. Da bin ich drauf gestoßen, das hilft mir hin und wieder, weil ich eben durch die Crossplattformenentwicklung aufn Mac wechseln musste, bin aber eigentlich eher von der Android Linux Site und so weiter gekommen. Ich hab also immer noch 'n Android Phone und da kann ich halt keinen Airdrop nutzen. Und Local Sand ist 'n Open Source Tool, womit man einfach wirklich auf allen Plattformen schnell mal Dateien oder Texte auch verschlüsselt im lokalen Netzwerk senden kann. Also ich hab irgendwie 'n, ich bau grad eine APK, nämlich Local Sand, Shicks aufm Handy. Auch hab ich 'n iPhone hier liegen, kann ich auch darüber schnell was schicken. Also superpraktisch und vor allem die Oberfläche ist super minimalistisch und intuitiv.
Jan
Wenn das Open Source ist, wie krieg ich das auf mein iPhone drauf? Gibt's auch im Store oder muss ich mir das selber bauen und kompilieren oder wie wie wie wie komm ich da dran?
Tobias Müller
Ich vermute, dass es im Store ist. Ich kann's dir grade nicht sagen. Doch, ich ich hab grad geguckt.
Garrelt
Entweder im Store oder Package Manager haben, das gibt's auf verschiedenen Plattformen verschiedene Links.
Till Schneider
Okay. Cool.
Jan
Wunderbar. Till, was hast Du im Gepäck?
Till Schneider
Genau, ich habe Windsurf mitgebracht. Ich eben als als Nichtcoder bin dann von Cursor gewechselt zu Windsurf jetzt vor, also ich benutz beide Tools noch parallel, aber primär jetzt eigentlich Windsurf, ist eben eine neue IDE, die viel ist als Cursor, also die die dreht selber Denkschleifen, schlägt selber die nächsten Schritte vor und ist gefährlich. Also ich würde das wirklich in 'nem neuen Projekt testen, da die wie son, es ist wie 'n breiter Pinsel. Das ist wie man wirft Farbe auf die Leinwand, wo man mit Curseern noch noch zielgerichteter an Probleme rangehen kann, fängt es immer an, gleich die ganze Codebasis in in in Hinblick zu haben. Man muss zum einen keine Dateien mehr referenzieren, sondern der sucht sich die selber raus. Es ist von der von meiner Developer Experience her, wenn man davon sprechen kann, ist es komisch, weil man drückt drauf und dann geht's drei Minuten und man weiß jetzt nicht, was man in den drei Minuten machen soll. Mit mit Cursor kam ich noch schön in einen Tunnel rein und konnte konnte mir überlegen, während der das diesen eine Änderung jetzt macht, okay, wo könnten wir jetzt weiter weitermachen? Also es erfordert 'n bisschen ein Umdenken. Ich find's aber extrem spannend, weil es einfach so der, find ich, die noch mal der nächste Schritt ist in Richtung, KI kann auch in größeren Code Codebasen gut unterwegs sein, kann einem Dinge, kann Probleme finden, die die irgendwo versteckt sind und hat mich jetzt noch mal ermöglicht, Dinge noch schneller zu bauen eigentlich und auch andere Sachen noch besser zu referenzieren. Also fand ich jetzt eine 'n tolles Tool und zeigt son bisschen, find ich, die die die deutet die Zukunft an, wo's hingeht.
Jan
Ich hab bei diesen ganzen AI Tools immer so zwei Fragen. So a, was was ist das Pricing? Und gibt's die Möglichkeit, das auch irgendwie zumindest teilweise lokal bei mir laufend zu haben?
Till Schneider
Tatsächlich weiß ich bei CursOR nicht, ob man seine eigenen API Keys einbinden kann. Ich weiß, dass es also bei kostet ja zwanzig Euro im Monat, wenn man das pro Tier hat. Ich hab da aber ständig auch neue dazukaufen müssen, also ich zahl da eher achtzig Euro im Monat für. Und bei, ja, aber das genau, also das ich hab da überhaupt keinen Schmerz, weil anders könnt ich ja gar nicht arbeiten. Also für mich ist es ja quasi essenziell notwendig, Nein,
Jan
nein, nein, alles cool.
Garrelt
Ich ich
Jan
bin nur drüber gestolpert, weil wir hatten, ich hatte vor Kurzem 'n Gespräch mit Fabi, als wir 'n Gastauftritt im Engineering Kiosk, kleines Shoutout, gehabt haben, da haben wir nämlich auch über Cursor gesprochen. Dann hab ich nämlich Also Fabi hat Cursor gepitcht. Und das war nämlich genau meine Frage, so dieses Pricing Model, wenn ich's für mich so sehe, ne. Null, zwanzig und Teamplan, so ohne Preis sozusagen, was wir da auf der Webseite haben. Und dann stand da so dabei, Du hast irgendwie, weiß ich nicht, zweihundert Autokomplicions im Monat oder keine Ahnung, was Du da für zwanzig Euro kriegst. Und das war für mich als als Entwickler, als Endkunde gefühlt vollkommen intransparent, weil wenn Du mich fragen müsstest, wie viel Autokomplicions brauchst Du denn überhaupt? Also ich Keine Ahnung. Keine Ahnung, so, ja. Vielleicht fünfzig, vielleicht fünftausend? Keine Ahnung.
Till Schneider
Ja. Also ich brauch dann dementsprechend achthundert im Monat oder so circa. Und dann zahl ich meine achtzig dafür.
Jan
Ja, das ist schon schlauer als ich
Till Schneider
Und also Windsurf kostet weniger. Windsurf kostet 'n Zehner im Monat, aber Du hast da wieder, ich bin jetzt, was ist, zwei Wochen Free Trial. Jetzt haben sie mir für Thanksgiving noch mal 'n Monat, glaub ich, oder zwei Monate Free Trial geschenkt, also wie's halt so ist. Sie sie hocken dich, aber sie haben mich schon lange gehook, also an der Stelle hätten sie mich jetzt eigentlich auch schon zur Kasse bitten können. Aber ich bin ja bin ich froh drum. Genau, heißt, es ist 'n bisschen günstiger. Ich bin mir nicht sicher, ob Du deine eigenen API Keys einbauen kannst. Genau, aber fand ich fand ich 'n sehr, sehr schönes Tool. Gleich gleiche Geschichte, Fork von VS Code. Genau.
Jan
Aber auch mit 'nem API Key wär's ja immer noch bei irgendjemand anderem gelaufen. Ich so, weißt Du, ich such noch son Editor, wo ich auch so lokale Modelle irgendwie am Start hab. Ja. Und das gibt's gefühlt
Till Schneider
noch nicht. Noch nicht.
Jan
Wirklich so.
Garrelt
Ja. Cool. Da aber
Tobias Müller
'n Tipp, wenn Du Cursor nutzt, kannst Du zum Beispiel auf auf eine eigene deine eigene GPT Instanz hosten. Das ist ja dann auch DSGVO konform. Das kommt zumindest mal 'n bisschen Richtung Datenschutz und Sicherheit in die Richtung. Und dann kannst Du auch den API key dafür nutzen.
Jan
Tatsächlich, so blöd es jetzt klingt, aber Datenschutz ist nicht mein Main Console. Mein Main Console ist eher so, ich sitz im Zug oder im Flugzeug oder keine Ahnung, Du hast ja aber einfach kein Netz braucht, weißte? Ja. Was die die perfekte Überleitung zu meinem Pick ist, mein Pick ist nämlich Air Fly. Ich weiß nicht, wer von euch Air Fly kennt, das ist son kleines Hardware Ding. Wer öfter mal im Flugzeug sitzt, so wie ich das in letzter Zeit viel getan habe, ärgert sich vielleicht manchmal, dass wenn er irgendwie son Onboard Film gucken will, diese komischen Headsets von irgendwelchen Airlines oder so benutzen muss. Und die coolen Kopfhörer, die man selber dabei
Till Schneider
hat, meistens nicht funktionieren, weil das ja in der Regel alles Bluetooth Sachen sind, die wir so haben.
Jan
Mhm. Und Airfait, in der Regel alles Bluetooth Sachen sind, die wir
Tobias Müller
so haben. Mhm.
Jan
Und Air Fly ist, ich hab jetzt mal kurz, ich hab mal son kleines Dongle, was man im Prinzip an son Audioanschluss hängen kann. Und das macht im Prinzip einen kleinen Bluetooth Anschluss da dran und man kann seine Lieblings Kopfhörer, AirPods, meine Bose Kopfhörer, was auch immer kann ich dann eben benutzen, ohne dass da irgendwie Bluetooth schon dabei sein muss. Und warum grade der Airflight irgendwie so cool ist, Weil er zwei besondere Features hat, die mir immer noch weiterhelfen. Zum einen kann ich mehrere Kopfhörer dadran koppeln. Das heißt, wenn meine Frau, meine Tochter, wie auch immer im Flugzeug mitgucken wollen, können sie im Prinzip auch ihre Kopfhörer dranhängen. Und ich hab wie im Prinzip wie son Splitter dann noch drin. Und man kann dasselbe Gerät nehmen und nicht nur als Transmitter für Bluetooth benutzen, sondern auch als Receiver. Das heißt, wenn ihr am im Urlaub angekommen seid und ihr habt dann quasi einen Mietwagen, der vielleicht auch kein Bluetooth hat und dann steckt ihr das Ding in den Kopfhörer oder in den AUX Eingang von dem Auto, könnt ihr euer Handy quasi so rum daran connecten und habt auf einmal Freisprecheinrichtungen und könnt eure Musik hören und keine Ahnung was. Also es ist einfach 'n superkleines praktisches Gerät. Das ist immer bei mir in der Reisetasche drin und es ist auch in eigentlich jedem Urlaub irgendwie in in Verwendung so. Es ist leider 'n bisschen teuer, ich glaub, es kostet so sechs sechs oder siebzig Euro. Gibt auch eine kleinere Variante davon, die ist 'n bisschen billiger, wenn ich alle Features brauch, aber so oder so. Kann ich nur empfehlen, hat mir schon viel Urlaub gerettet, weil es einem auf einmal ermöglicht, mit Noise Cancelling im Flugzeug zu sitzen und trotzdem 'n coolen Film zu
Garrelt
gucken. Ja. Das ist bei denen sehr spannend. Die haben ein Pro für fünfundfünfzig Euro und ein Duo, was alles kann wie der Pro plus mehr Akkulaufzeit für achtundvierzig Euro.
Jan
Und es gibt noch 'n s e, was irgend 'n Feature nicht hat, was auch noch mal 'n bisschen billiger ist. Aber ja, Ich ich hab den Pro, keine Ahnung, schon vor fünf Jahren oder so gekauft oder was weiß ich, als er rauskam. Bin bis dahin eigentlich sehr, sehr zufrieden. War damals ganz happy, weil das der Erste war, der auch so USB-c charging hatte und Und schon seit Längerem dabei bin, so mein ganzes Travel Equipment auf USB-c umzustellen und nicht mehr mit irgendwelchen komischen Adaptern rumreisen zu müssen, nur noch eine Sorte von Kabel dabei zu haben. Ist auch sehr befreiend. Ja.
Tobias Müller
Das das fühl ich mit den Anschlüssen. Das ist fast schon das größte Argument von allen.
Jan
Ja, also das war auch damals, als ich mein mein iPhone fünfzehn gekauft hab, war so, weißt Du, Kamera, Action Buttons, komplett egal. Hauptsache gib mir halt son USB-c-Anschluss. Endlich einheitliche und
Till Schneider
ich kann Lightning wegschmeißen, ja.
Jan
Ja, genau. Cool. Dann Till, Tobias, danke für die Zeit. Danke, dass ihr da wart. Danke, dass ihr uns viel über Low Code und No Code und Vor- und Nachteile erzählt habt. Ich glaub, das war superspannend auch für alle, die da draußen dazu gehört haben. Danke, Garelt, für die Zeit. Danke an euch da draußen fürs Zuhören. Wenn ihr Fragen, Anmerkungen, Kritik, wie auch immer habt, dann immer gerne an Podcast at Programmier Punkt bar eine E-Mail schicken oder das Kontaktformular auf der Webseite benutzen oder Kommentare hinterlassen auf Youtube, Spotify oder irgendwelchen anderen Plattformen. Lesen immer fleißig mit und wir freuen uns auch immer über Bewertungen über den Podcast bei iTunes zum Beispiel, wenn ihr uns da hört, findet, gefunden habt, wie auch immer. Ansonsten bleibt nicht mehr viel zu sagen, außer dass wir uns hier bald wiederhören. Und tschau tschau. Tschau.

View file

@ -0,0 +1,27 @@
Eine App, die Zeit spart
Konstanzer Gründer bringen Memoro auf den Weg
Damit gewinnen sie ein gut dotiertes Stipendium
VON JÖRG-PETER RAU
joerg-peter.rau@suedkurier.de
Konstanz Die Besprechung dauert eine gute halbe Stunde, und für Smalltalk ist kein Platz. Wo steht das Projekt? Was sind die nächsten Schritte? Und was haben wir beim letzten Mal vereinbart? Es ist eine Situation, wie sie allein in Konstanz wohl hunderte Male jeden Tag vorkommt. Auch beim Besuch des Pflegedienstes muss es konzentriert zugehen. Jede Hilfsleistung, jeder Handgriff ist mit einem Minuten-Budget versehen. Und dann muss das alles penibel dokumentiert werden. Aber in der Zeit des Ausfüllens kann die Pflegekraft genau das nicht machen, was eigentlich ihre wichtigste Aufgabe ist: Pflegen.
Zwei von vielen Beispielen, in denen Künstliche Intelligenz (KI) keine Bedrohung, sondern geradezu eine Verheißung ist. Im ersten Fall erstellt sie ein Besprechungsprotokoll. So knapp, dass es noch gelesen wird aber so ausführlich, dass nichts Wichtiges fehlt. Im zweiten Fall diktiert die Pflegekraft die erbrachten Leistungen ins Handy, und eine App trägt die Informationen automatisch in die richtigen Formularfelder ein. Wenn nötig, übersetzt sie es gleich auch noch ins Deutsche, wenn der App-Nutzer sich mit einer anderen Sprache leichter tut.
Zukunftsmusik? Nein, sagen Tobias Müller und Till Schneider. Denn die App, die sie soeben auf den Markt bringen, kann genau das. Memoro heißt sie und wird so beworben: „Nie mehr ein Gespräch vergessen. Memoro erinnert sich für Dich.“
Einen dritten Anwendungsfall haben die Gründer auch schon vorgesehen: Handwerker, die ebenfalls dazu verpflichtet sind, bestimmte Arbeitsschritte zu dokumentieren, von der Elektroinstallation bis zur Feuerstättenschau.
Was die beiden jungen Konstanzer da an den Start bringen, überzeugt auch andere: Soeben haben sie das mit bis zu 100.000 Euro dotierte Mindelsee-Stipendium der Initiative „Unternehmer für Gründer“ (UfG) gewonnen. Zusammen mit weiteren Förderprogrammen schafft das die Basis dafür, Memoro richtig groß machen zu können.
Bereits beim Gründungs- und Ideenwettbewerb „Hack and Harvest“ 2023 hatten Müller und Schneider ihre Pläne vor- und zur Diskussion gestellt. Siegfried Wagner von UfG, sagen die beiden Gründer, habe dann als Mentor enorm geholfen, aus einer Idee eine funktionierende App zu machen.
Memoro nutzt dabei in erster Linie bereits bestehende KI-Technologien und Software-Lösungen, macht sie aber über eine sehr einfache Benutzeroberfläche zugänglich. „Und mit der Datenschutzgrundverordnung ist es natürlich auch kompatibel“, betont Schneider immerhin geht es ja, je nach Anwendungsfall, zum Beispiel um Patienten- oder Kundendaten.
In den nächsten Monaten wollen die Gründer ihre App weiterentwickeln und vor allem Nutzer gewinnen. Denn neben der Idee muss auch das Geschäftsmodell funktionieren. Tobias Müller sagt, man wolle Abonnements oder auch vorausbezahlte Zeitkontingente anbieten. Memoro könne aber auch in andere Umgebungen integriert werden, sodass neben End- auch alle Arten von Geschäftskunden angesprochen werden können.
Ob bald auf vielen Handys von Handwerkern, Pflege- oder Führungskräften Memoro läuft, ist dennoch nicht gewiss. In jeder Gründung steckt auch das Risiko, dass sie vom Markt nicht angenommen wird. Müller und Schneider wissen dabei, wovon sie reden, denn Memoro ist nicht ihr erstes Start-up. Doch der Gewinn des Mindelsee-Stipendiums hat ihre Zuversicht noch verstärkt, betonen sie.
Die beiden Gründer Schneider ist von Haus aus Mediendesigner, Müller Software-Entwickler machen eine einfache Rechnung auf: Eine Pflegekraft müsse im Schnitt acht Stunden pro Woche für die Dokumentation aufwenden. Memoro könnte das auf die Hälfte reduzieren. Wenn von dieser eingesparten Zeit ein guter Teil bei den Patienten ankommt und ein anderer in Form von Benutzungsgebühren bei Memoro, „dann könnte das ein großer Erfolg werden.“

View file

@ -0,0 +1,426 @@
{
"subscriptions": [
{
"id": "free",
"name": "Mana Tropfen",
"nameEn": "Mana Drop",
"nameIt": "Mana Goccia",
"price": 0,
"priceUnit": "",
"initialMana": 150,
"dailyMana": 5,
"maxMana": 150,
"canGiftMana": false,
"popular": false,
"billingCycle": "monthly",
"available": true
},
{
"id": "Mana_Stream_Small_v1",
"name": "Mana Fluss",
"nameEn": "Mana Stream",
"nameIt": "Mana Corrente",
"price": 5.99,
"priceUnit": "/ Monat",
"initialMana": 600,
"dailyMana": 20,
"maxMana": 1200,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": true
},
{
"id": "Mana_Stream_Small_Yearly_v1",
"name": "Mana Fluss",
"nameEn": "Mana Stream",
"nameIt": "Mana Corrente",
"price": 47.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 3,99€ / Monat, 33% Rabatt)",
"initialMana": 600,
"dailyMana": 20,
"maxMana": 1200,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 3.99,
"available": true
},
{
"id": "Mana_Stream_Medium_v1",
"name": "Mana Strom",
"nameEn": "Mana River",
"nameIt": "Mana Fiume",
"price": 14.99,
"priceUnit": "/ Monat",
"initialMana": 1500,
"dailyMana": 50,
"maxMana": 3000,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": true
},
{
"id": "Mana_Stream_Medium_Yearly_v1",
"name": "Mana Strom",
"nameEn": "Mana River",
"nameIt": "Mana Fiume",
"price": 119.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 9,99€ / Monat, 33% Rabatt)",
"initialMana": 1500,
"dailyMana": 50,
"maxMana": 3000,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 9.99,
"available": true
},
{
"id": "Mana_Stream_Large_v1",
"name": "Mana See",
"nameEn": "Mana Lake",
"nameIt": "Mana Lago",
"price": 29.99,
"priceUnit": "/ Monat",
"initialMana": 3000,
"dailyMana": 100,
"maxMana": 6000,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": true
},
{
"id": "Mana_Stream_Large_Yearly_v1",
"name": "Mana See",
"nameEn": "Mana Lake",
"nameIt": "Mana Lago",
"price": 239.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 19,99€ / Monat, 33% Rabatt)",
"initialMana": 3000,
"dailyMana": 100,
"maxMana": 6000,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 19.99,
"available": true
},
{
"id": "Mana_Stream_Giant_v1",
"name": "Mana Meer",
"nameEn": "Mana Ocean",
"nameIt": "Mana Mare",
"price": 49.99,
"priceUnit": "/ Monat",
"initialMana": 5000,
"dailyMana": 200,
"maxMana": 10000,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": true
},
{
"id": "Mana_Stream_Giant_Yearly_v1",
"name": "Mana Meer",
"nameEn": "Mana Ocean",
"nameIt": "Mana Mare",
"price": 399.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 33,33€ / Monat, 33% Rabatt)",
"initialMana": 5000,
"dailyMana": 200,
"maxMana": 10000,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 33.33,
"available": true
}
],
"legacySubscriptions": [
{
"id": "Mini_1m_v1",
"name": "Mini",
"nameEn": "Mini",
"nameIt": "Mini",
"price": 2.99,
"priceUnit": "/ Monat",
"initialMana": 600,
"dailyMana": 20,
"maxMana": 1200,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": false,
"isLegacy": true
},
{
"id": "Plus_7E_1m_v1",
"name": "Plus",
"nameEn": "Plus",
"nameIt": "Plus",
"price": 7.99,
"priceUnit": "/ Monat",
"initialMana": 1500,
"dailyMana": 50,
"maxMana": 3000,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": false,
"isLegacy": true
},
{
"id": "Pro_23E_1m_v1",
"name": "Pro",
"nameEn": "Pro",
"nameIt": "Pro",
"price": 23.99,
"priceUnit": "/ Monat",
"initialMana": 3000,
"dailyMana": 100,
"maxMana": 6000,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": false,
"isLegacy": true
},
{
"id": "Ultra_47E_1m_v1",
"name": "Ultra",
"nameEn": "Ultra",
"nameIt": "Ultra",
"price": 47.99,
"priceUnit": "/ Monat",
"initialMana": 5000,
"dailyMana": 200,
"maxMana": 10000,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": false,
"isLegacy": true
},
{
"id": "Mini_1y_v1",
"name": "Mini",
"nameEn": "Mini",
"nameIt": "Mini",
"price": 29.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 2,50€ / Monat)",
"initialMana": 600,
"dailyMana": 20,
"maxMana": 1200,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 2.50,
"available": false,
"isLegacy": true
},
{
"id": "Plus_70E_1y_v1",
"name": "Plus",
"nameEn": "Plus",
"nameIt": "Plus",
"price": 79.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 6,67€ / Monat)",
"initialMana": 1500,
"dailyMana": 50,
"maxMana": 3000,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 6.67,
"available": false,
"isLegacy": true
},
{
"id": "Pro_230E_1y_v1",
"name": "Pro",
"nameEn": "Pro",
"nameIt": "Pro",
"price": 239.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 20,00€ / Monat)",
"initialMana": 3000,
"dailyMana": 100,
"maxMana": 6000,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 20.00,
"available": false,
"isLegacy": true
},
{
"id": "Ultra_470E_1y_v1",
"name": "Ultra",
"nameEn": "Ultra",
"nameIt": "Ultra",
"price": 479.99,
"priceUnit": "/ Jahr",
"priceBreakdown": "(entspricht 40,00€ / Monat)",
"initialMana": 5000,
"dailyMana": 200,
"maxMana": 10000,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 40.00,
"available": false,
"isLegacy": true
},
{
"id": "rc_plus_monthly_8e_play:plus-monthly-8e-autorenewing",
"name": "Plus (Android)",
"nameEn": "Plus (Android)",
"nameIt": "Plus (Android)",
"price": 7.99,
"priceUnit": "/ month",
"initialMana": 1500,
"dailyMana": 50,
"maxMana": 3000,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": false,
"isLegacy": true
},
{
"id": "rc_pro_monthly_23e_play:rc-pro-monthly-8e-play-renewel",
"name": "Pro (Android)",
"nameEn": "Pro (Android)",
"nameIt": "Pro (Android)",
"price": 23.99,
"priceUnit": "/ month",
"initialMana": 3000,
"dailyMana": 100,
"maxMana": 6000,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": false,
"isLegacy": true
},
{
"id": "rc_ultra_monthly_play:rc-ultra-monthly-play",
"name": "Ultra (Android)",
"nameEn": "Ultra (Android)",
"nameIt": "Ultra (Android)",
"price": 47.99,
"priceUnit": "/ month",
"initialMana": 5000,
"dailyMana": 200,
"maxMana": 10000,
"canGiftMana": true,
"popular": false,
"billingCycle": "monthly",
"available": false,
"isLegacy": true
},
{
"id": "rc_plus_yearly_80e_play:rc-plus-yearly-80e-play-renewel",
"name": "Plus (Android)",
"nameEn": "Plus (Android)",
"nameIt": "Plus (Android)",
"price": 79.99,
"priceUnit": "/ year",
"priceBreakdown": "(equals 6.67€ / month)",
"initialMana": 1500,
"dailyMana": 50,
"maxMana": 3000,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 6.67,
"available": false,
"isLegacy": true
},
{
"id": "rc_pro_yearly_229e_play:rc-pro-yearly-229e-play-renewel",
"name": "Pro (Android)",
"nameEn": "Pro (Android)",
"nameIt": "Pro (Android)",
"price": 239.99,
"priceUnit": "/ year",
"priceBreakdown": "(equals 20.00€ / month)",
"initialMana": 3000,
"dailyMana": 100,
"maxMana": 6000,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 20.00,
"available": false,
"isLegacy": true
},
{
"id": "rc_ultra_yearly_play:rc-ultra-yearly-play",
"name": "Ultra (Android)",
"nameEn": "Ultra (Android)",
"nameIt": "Ultra (Android)",
"price": 479.99,
"priceUnit": "/ year",
"priceBreakdown": "(equals 40.00€ / month)",
"initialMana": 5000,
"dailyMana": 200,
"maxMana": 10000,
"canGiftMana": true,
"popular": false,
"billingCycle": "yearly",
"monthlyEquivalent": 40.00,
"available": false,
"isLegacy": true
}
],
"packages": [
{
"id": "Mana_Potion_Small_v1",
"name": "Kleiner Mana Trank",
"nameEn": "Small Mana Potion",
"nameIt": "Piccola Pozione di Mana",
"manaAmount": 350,
"price": 4.99,
"popular": false
},
{
"id": "Mana_Potion_Medium_v1",
"name": "Mittlerer Mana Trank",
"nameEn": "Medium Mana Potion",
"nameIt": "Media Pozione di Mana",
"manaAmount": 700,
"price": 9.99,
"popular": false
},
{
"id": "Mana_Potion_Large_v1",
"name": "Großer Mana Trank",
"nameEn": "Large Mana Potion",
"nameIt": "Grande Pozione di Mana",
"manaAmount": 1400,
"price": 19.99,
"popular": false
},
{
"id": "Mana_Potion_Giant_v2",
"name": "Riesiger Mana Trank",
"nameEn": "Giant Mana Potion",
"nameIt": "Pozione di Mana Gigante",
"manaAmount": 2800,
"price": 39.99,
"popular": false
}
]
}

View file

@ -0,0 +1,109 @@
# Sort Order Implementation für Blueprint Prompts
## Übersicht
Diese Dokumentation beschreibt die Implementierung der `sort_order` Funktionalität für die Reihenfolge von Memories, die durch Blueprints generiert werden.
## Problem
Die Memories wurden in zufälliger oder unerwünschter Reihenfolge angezeigt. Die Kurzzusammenfassung erschien als letztes, obwohl sie als Übersicht an erster Stelle stehen sollte.
## Lösung
Hinzufügen einer `sort_order` Spalte zur `prompt_blueprints` Tabelle, die explizit die Anzeigereihenfolge der generierten Memories steuert.
## Technische Details
### Neue Spalte
```sql
ALTER TABLE prompt_blueprints
ADD COLUMN sort_order INTEGER DEFAULT 999;
```
- **Typ**: INTEGER
- **Default**: 999 (für nicht explizit sortierte Einträge)
- **Logik**: Niedrigere Zahlen werden zuerst angezeigt
### Standard Blueprint Sortierung
| Position | Memory Typ | sort_order | Begründung |
|----------|------------|------------|------------|
| 1 | Kurzzusammenfassung | 1 | Schneller Überblick für den Nutzer |
| 2 | Aufgaben | 2 | Konkrete Action Items |
| 3 | Ausführliche Zusammenfassung | 3 | Detaillierte Informationen bei Bedarf |
## Backend Implementierung
### Query für Memory-Generierung
```sql
SELECT pb.prompt_id, p.prompt_text, p.memory_title
FROM prompt_blueprints pb
JOIN prompts p ON pb.prompt_id = p.id
WHERE pb.blueprint_id = $1
ORDER BY pb.sort_order ASC;
```
### Edge Function Anpassung
Die Edge Functions müssen die Memories in der durch `sort_order` definierten Reihenfolge zurückgeben:
```javascript
// In der blueprint Edge Function
const promptsQuery = await supabaseClient
.from('prompt_blueprints')
.select(`
prompt_id,
sort_order,
prompts!inner(
id,
prompt_text,
memory_title
)
`)
.eq('blueprint_id', blueprintId)
.order('sort_order', { ascending: true });
```
## Frontend Implementierung
### Memory Display Component
```typescript
// Die Memories sollten bereits in der richtigen Reihenfolge vom Backend kommen
// Falls nicht, kann im Frontend nachsortiert werden:
const sortedMemories = memories.sort((a, b) => {
// Nutze sort_order falls vorhanden
if (a.sort_order && b.sort_order) {
return a.sort_order - b.sort_order;
}
// Fallback auf created_at
return new Date(a.created_at) - new Date(b.created_at);
});
```
## Migration für bestehende Daten
Alle bestehenden Blueprint-Prompt Verknüpfungen erhalten automatisch `sort_order = 999`. Die wichtigsten Blueprints wurden explizit gesetzt:
- **Standard-Analyse**: Sortierung 1-2-3
- **Meeting-Analyse**: Sortierung 1-2-3
- **Feedback**: Sortierung 1-2-3
## Vorteile dieser Lösung
1. **Explizite Kontrolle**: Vollständige Kontrolle über die Anzeigereihenfolge
2. **Flexibilität**: Jeder Blueprint kann seine eigene Sortierung haben
3. **Erweiterbarkeit**: Neue Prompts können einfach eingeordnet werden
4. **Performance**: Index auf (blueprint_id, sort_order) für schnelle Queries
5. **Rückwärtskompatibilität**: Default-Wert 999 für nicht explizit sortierte Einträge
## Testing
Nach der Migration sollte getestet werden:
1. ✅ Neue Memo-Aufnahme mit Standard Blueprint erstellen
2. ✅ Überprüfen ob Kurzzusammenfassung oben erscheint
3. ✅ Überprüfen ob Reihenfolge konsistent bleibt
4. ✅ Andere Blueprints testen (Meeting, Feedback)
## Zukünftige Erweiterungen
- UI für Blueprint-Editor könnte Drag & Drop für Sortierung bieten
- Nutzer-spezifische Sortierung pro Blueprint möglich
- Conditional Sorting basierend auf Memo-Typ oder -Länge

View file

@ -0,0 +1,20 @@
# Aufgaben & Termine Prompt
## Prompt ID
`7a6cac9a-5a34-4fe5-a8f6-23f8165b0e48`
## Prompt Text (direkt für Supabase kopierbar)
```json
{"de": "Bitte lies das folgende Transkript durch und extrahiere: 1) AUFGABEN: Alle erwähnten Aufgaben, Aktionspunkte und nächsten Schritte. 2) TERMINE: Alle genannten Termine, Meetings, Deadlines und zeitlichen Vereinbarungen. Ordne beide Kategorien nach Dringlichkeit (hoch/mittel/niedrig). Erfasse für Aufgaben: Beschreibung, verantwortliche Person (falls genannt), Deadline, Kontext und erwartete Ergebnisse. Erfasse für Termine: Datum/Uhrzeit, Art des Termins, Teilnehmer (falls genannt), Ort/Format (falls erwähnt) und Zweck. Markiere unklare Punkte mit [UNKLAR]. Verwende eine strukturierte Listenform ohne zusätzliche Kommentare. Hier das Transkript:", "en": "Please read through the following transcript and extract: 1) TASKS: All mentioned tasks, action items, and next steps. 2) APPOINTMENTS: All mentioned appointments, meetings, deadlines and time agreements. Order both categories by urgency (high/medium/low). For tasks capture: description, responsible person (if mentioned), deadline, context and expected results. For appointments capture: date/time, type of appointment, participants (if mentioned), location/format (if mentioned) and purpose. Mark unclear points with [UNCLEAR]. Use a structured list format without additional comments. Here is the transcript:", "it": "Per favore leggi la seguente trascrizione ed estrai: 1) COMPITI: Tutti i compiti menzionati, punti d'azione e prossimi passi. 2) APPUNTAMENTI: Tutti gli appuntamenti menzionati, riunioni, scadenze e accordi temporali. Ordina entrambe le categorie per urgenza (alta/media/bassa). Per i compiti cattura: descrizione, persona responsabile (se menzionata), scadenza, contesto e risultati attesi. Per gli appuntamenti cattura: data/ora, tipo di appuntamento, partecipanti (se menzionati), luogo/formato (se menzionato) e scopo. Contrassegna i punti poco chiari con [NON CHIARO]. Usa un formato di lista strutturato senza commenti aggiuntivi. Ecco la trascrizione:", "fr": "Veuillez lire la transcription suivante et extraire : 1) TÂCHES : Toutes les tâches mentionnées, points d'action et prochaines étapes. 2) RENDEZ-VOUS : Tous les rendez-vous mentionnés, réunions, échéances et accords temporels. Classez les deux catégories par urgence (élevée/moyenne/faible). Pour les tâches, capturez : description, personne responsable (si mentionnée), échéance, contexte et résultats attendus. Pour les rendez-vous, capturez : date/heure, type de rendez-vous, participants (si mentionnés), lieu/format (si mentionné) et objectif. Marquez les points peu clairs avec [PEU CLAIR]. Utilisez un format de liste structuré sans commentaires supplémentaires. Voici la transcription :", "es": "Por favor, lee la siguiente transcripción y extrae: 1) TAREAS: Todas las tareas mencionadas, puntos de acción y próximos pasos. 2) CITAS: Todas las citas mencionadas, reuniones, plazos y acuerdos temporales. Ordena ambas categorías por urgencia (alta/media/baja). Para las tareas captura: descripción, persona responsable (si se menciona), fecha límite, contexto y resultados esperados. Para las citas captura: fecha/hora, tipo de cita, participantes (si se mencionan), lugar/formato (si se menciona) y propósito. Marca los puntos poco claros con [POCO CLARO]. Usa un formato de lista estructurado sin comentarios adicionales. Aquí está la transcripción:"}
```
## Memory Title (direkt für Supabase kopierbar)
```json
{"de": "Aufgaben & Termine", "en": "Tasks & Appointments", "it": "Compiti e Appuntamenti", "fr": "Tâches et Rendez-vous", "es": "Tareas y Citas"}
```
## Description (direkt für Supabase kopierbar)
```json
{"de": "Extrahiert alle im Gespräch erwähnten Aufgaben, Aktionspunkte, nächsten Schritte sowie Termine, Meetings und zeitliche Vereinbarungen. Erfasst Details wie Kontext, Verantwortlichkeiten, Deadlines und Teilnehmer.", "en": "Extracts all tasks, action items, next steps as well as appointments, meetings and time agreements mentioned in the conversation. Captures details such as context, responsibilities, deadlines and participants.", "it": "Estrae tutti i compiti, punti d'azione, prossimi passi così come appuntamenti, riunioni e accordi temporali menzionati nella conversazione. Cattura dettagli come contesto, responsabilità, scadenze e partecipanti.", "fr": "Extrait toutes les tâches, points d'action, prochaines étapes ainsi que les rendez-vous, réunions et accords temporels mentionnés dans la conversation. Capture des détails tels que le contexte, les responsabilités, les échéances et les participants.", "es": "Extrae todas las tareas, puntos de acción, próximos pasos, así como citas, reuniones y acuerdos temporales mencionados en la conversación. Captura detalles como contexto, responsabilidades, plazos y participantes."}
```

View file

@ -0,0 +1,19 @@
# Ausführliche Zusammenfassung Prompt
## Prompt ID
`4370cb68-d676-4b93-8afd-2fb7c4ad78c4`
## Prompt Text (direkt für Supabase kopierbar)
```json
{"de": "Erstelle eine ausführliche Zusammenfassung des folgenden Transkripts (ca. 30-50% der Originallänge). Strukturiere die Zusammenfassung wie folgt: 1. Überblick (Kernthema in 2-3 Sätzen), 2. Hauptthemen (die wichtigsten diskutierten Punkte), 3. Details (vorgebrachte Argumente und relevante Beispiele), 4. Fazit (zentrale Erkenntnisse). Verzichte auf zusätzliche Kommentare und fokussiere dich auf die reine Inhaltswiedergabe. Hier das Transkript:", "en": "Create a detailed summary of the following transcript (approx. 30-50% of the original length). Structure the summary as follows: 1. Overview (core topic in 2-3 sentences), 2. Main topics (the most important points discussed), 3. Details (arguments presented and relevant examples), 4. Conclusion (key insights). Avoid additional comments and focus on pure content reproduction. Here is the transcript:", "it": "Crea un riassunto dettagliato della seguente trascrizione (circa 30-50% della lunghezza originale). Struttura il riassunto come segue: 1. Panoramica (tema centrale in 2-3 frasi), 2. Temi principali (i punti più importanti discussi), 3. Dettagli (argomenti presentati ed esempi rilevanti), 4. Conclusione (intuizioni chiave). Evita commenti aggiuntivi e concentrati sulla pura riproduzione del contenuto. Ecco la trascrizione:", "fr": "Créez un résumé détaillé de la transcription suivante (environ 30-50% de la longueur originale). Structurez le résumé comme suit : 1. Aperçu (thème central en 2-3 phrases), 2. Thèmes principaux (les points les plus importants discutés), 3. Détails (arguments présentés et exemples pertinents), 4. Conclusion (idées clés). Évitez les commentaires supplémentaires et concentrez-vous sur la pure reproduction du contenu. Voici la transcription :", "es": "Crea un resumen detallado de la siguiente transcripción (aprox. 30-50% de la longitud original). Estructura el resumen de la siguiente manera: 1. Visión general (tema central en 2-3 oraciones), 2. Temas principales (los puntos más importantes discutidos), 3. Detalles (argumentos presentados y ejemplos relevantes), 4. Conclusión (ideas clave). Evita comentarios adicionales y concéntrate en la pura reproducción del contenido. Aquí está la transcripción:"}
```
## Memory Title (direkt für Supabase kopierbar)
```json
{"de": "Ausführliche Zusammenfassung", "en": "Detailed Summary", "it": "Riassunto Dettagliato", "fr": "Résumé Détaillé", "es": "Resumen Detallado"}
```
## Description (direkt für Supabase kopierbar)
```json
{"de": "Gibt eine detailliertere Wiedergabe der Inhalte, inklusive wichtiger Argumente, Beispiele und Kontextinformationen. Geeignet für ein tiefergehendes Verständnis ohne das gesamte Transkript lesen zu müssen.", "en": "Provides a more detailed reproduction of the content, including important arguments, examples and contextual information. Suitable for a deeper understanding without having to read the entire transcript.", "it": "Fornisce una riproduzione più dettagliata del contenuto, inclusi argomenti importanti, esempi e informazioni contestuali. Adatto per una comprensione più profonda senza dover leggere l'intera trascrizione.", "fr": "Fournit une reproduction plus détaillée du contenu, incluant des arguments importants, des exemples et des informations contextuelles. Convient pour une compréhension approfondie sans avoir à lire l'intégralité de la transcription.", "es": "Proporciona una reproducción más detallada del contenido, incluyendo argumentos importantes, ejemplos e información contextual. Adecuado para una comprensión más profunda sin tener que leer toda la transcripción."}
```

View file

@ -0,0 +1,19 @@
# Beantwortete Fragen & Antworten Prompt
## Prompt ID
`47ce3340-e8c6-437c-928d-854c55589491`
## Prompt Text (direkt für Supabase kopierbar)
```json
{"de": "Identifiziere alle Fragen aus dem folgenden Transkript, die gestellt und beantwortet wurden. Verwende folgendes nummeriertes Format: 1. FRAGE: [Originalfrage mit relevantem Kontext] ANTWORT: [Vollständige Antwort] STATUS: [Direkt beantwortet/Indirekt beantwortet/Teilweise beantwortet]. Gib bei jeder Frage-Antwort-Kombination den relevanten Kontext mit an. Verzichte auf zusätzliche Kommentare. Hier das Transkript:", "en": "Identify all questions from the following transcript that were asked and answered. Use the following numbered format: 1. QUESTION: [Original question with relevant context] ANSWER: [Complete answer] STATUS: [Directly answered/Indirectly answered/Partially answered]. Include relevant context for each question-answer combination. Avoid additional comments. Here is the transcript:", "it": "Identifica tutte le domande dalla seguente trascrizione che sono state poste e hanno ricevuto risposta. Usa il seguente formato numerato: 1. DOMANDA: [Domanda originale con contesto rilevante] RISPOSTA: [Risposta completa] STATO: [Risposta diretta/Risposta indiretta/Risposta parziale]. Includi il contesto rilevante per ogni combinazione domanda-risposta. Evita commenti aggiuntivi. Ecco la trascrizione:", "fr": "Identifiez toutes les questions de la transcription suivante qui ont été posées et ont reçu une réponse. Utilisez le format numéroté suivant : 1. QUESTION : [Question originale avec contexte pertinent] RÉPONSE : [Réponse complète] STATUT : [Réponse directe/Réponse indirecte/Réponse partielle]. Incluez le contexte pertinent pour chaque combinaison question-réponse. Évitez les commentaires supplémentaires. Voici la transcription :", "es": "Identifica todas las preguntas de la siguiente transcripción que fueron formuladas y respondidas. Usa el siguiente formato numerado: 1. PREGUNTA: [Pregunta original con contexto relevante] RESPUESTA: [Respuesta completa] ESTADO: [Respuesta directa/Respuesta indirecta/Respuesta parcial]. Incluye el contexto relevante para cada combinación pregunta-respuesta. Evita comentarios adicionales. Aquí está la transcripción:"}
```
## Memory Title (direkt für Supabase kopierbar)
```json
{"de": "Beantwortete Fragen & Antworten", "en": "Answered Questions & Answers", "it": "Domande e Risposte", "fr": "Questions et Réponses", "es": "Preguntas y Respuestas"}
```
## Description (direkt für Supabase kopierbar)
```json
{"de": "Extrahiert Fragen, die im Transkript gestellt und beantwortet wurden, und listet sie zusammen mit ihren jeweiligen Antworten auf.", "en": "Extracts questions that were asked and answered in the transcript, and lists them together with their respective answers.", "it": "Estrae le domande che sono state poste e hanno ricevuto risposta nella trascrizione, e le elenca insieme alle rispettive risposte.", "fr": "Extrait les questions qui ont été posées et ont reçu une réponse dans la transcription, et les liste avec leurs réponses respectives.", "es": "Extrae las preguntas que fueron formuladas y respondidas en la transcripción, y las enumera junto con sus respectivas respuestas."}
```

View file

@ -0,0 +1,19 @@
# Blogbeitrag Prompt
## Prompt ID
`2c6a6e47-1d0c-441f-9449-b5d908bffba2`
## Prompt Text (direkt für Supabase kopierbar)
```json
{"de": "Verwandle das folgende Transkript in einen gut strukturierten Blogbeitrag (800-1200 Wörter) für eine professionelle Zielgruppe. Der Beitrag sollte die Hauptthemen und wichtigsten Erkenntnisse detailliert behandeln. Formuliere eine SEO-optimierte Hauptüberschrift, verwende aussagekräftige Zwischenüberschriften zur Gliederung, schreibe eine einleitende Zusammenfassung (2-3 Sätze) sowie einen Schlussteil mit konkretem Handlungsaufruf. Integriere relevante Keywords natürlich im Text. Der Stil sollte informativ, lesefreundlich und ohne zusätzliche Kommentare sein. Hier das Transkript:", "en": "Transform the following transcript into a well-structured blog post (800-1200 words) for a professional audience. The post should cover the main topics and key insights in detail. Formulate an SEO-optimized main heading, use meaningful subheadings for structure, write an introductory summary (2-3 sentences) as well as a conclusion with a concrete call to action. Integrate relevant keywords naturally in the text. The style should be informative, reader-friendly and without additional comments. Here is the transcript:", "it": "Trasforma la seguente trascrizione in un post di blog ben strutturato (800-1200 parole) per un pubblico professionale. Il post dovrebbe coprire in dettaglio i temi principali e le intuizioni chiave. Formula un titolo principale ottimizzato per SEO, usa sottotitoli significativi per la struttura, scrivi un riassunto introduttivo (2-3 frasi) e una conclusione con un chiaro invito all'azione. Integra naturalmente le parole chiave rilevanti nel testo. Lo stile dovrebbe essere informativo, di facile lettura e senza commenti aggiuntivi. Ecco la trascrizione:", "fr": "Transformez la transcription suivante en un article de blog bien structuré (800-1200 mots) pour un public professionnel. L'article devrait couvrir en détail les thèmes principaux et les idées clés. Formulez un titre principal optimisé pour le SEO, utilisez des sous-titres significatifs pour la structure, écrivez un résumé introductif (2-3 phrases) ainsi qu'une conclusion avec un appel à l'action concret. Intégrez naturellement les mots-clés pertinents dans le texte. Le style doit être informatif, facile à lire et sans commentaires supplémentaires. Voici la transcription :", "es": "Transforma la siguiente transcripción en una publicación de blog bien estructurada (800-1200 palabras) para una audiencia profesional. La publicación debe cubrir en detalle los temas principales y las ideas clave. Formula un título principal optimizado para SEO, usa subtítulos significativos para la estructura, escribe un resumen introductorio (2-3 oraciones) así como una conclusión con una llamada a la acción concreta. Integra naturalmente las palabras clave relevantes en el texto. El estilo debe ser informativo, fácil de leer y sin comentarios adicionales. Aquí está la transcripción:"}
```
## Memory Title (direkt für Supabase kopierbar)
```json
{"de": "Blogbeitrag", "en": "Blog Post", "it": "Post del Blog", "fr": "Article de Blog", "es": "Publicación de Blog"}
```
## Description (direkt für Supabase kopierbar)
```json
{"de": "Erstellt einen ausführlichen Blogartikel basierend auf den Inhalten des Transkripts. Der Artikel soll gut strukturiert sein, eine einleitende Überschrift, Zwischenüberschriften und einen abschliessenden Absatz enthalten.", "en": "Creates a detailed blog article based on the contents of the transcript. The article should be well structured, with an introductory heading, subheadings and a concluding paragraph.", "it": "Crea un articolo di blog dettagliato basato sui contenuti della trascrizione. L'articolo dovrebbe essere ben strutturato, con un titolo introduttivo, sottotitoli e un paragrafo conclusivo.", "fr": "Crée un article de blog détaillé basé sur le contenu de la transcription. L'article doit être bien structuré, avec un titre introductif, des sous-titres et un paragraphe de conclusion.", "es": "Crea un artículo de blog detallado basado en el contenido de la transcripción. El artículo debe estar bien estructurado, con un título introductorio, subtítulos y un párrafo de conclusión."}
```

View file

@ -0,0 +1,149 @@
# Edge Functions Update für sort_order
## Betroffene Edge Functions:
Die folgenden Edge Functions müssen angepasst werden, um die `sort_order` aus der `prompt_blueprints` Tabelle an die neu erstellten Memories zu übergeben:
### 1. `/supabase/functions/blueprint/index.ts`
**Aktuelle Implementation (ca. Zeile 410):**
```typescript
const { data: newMemory, error: newMemoryError } = await memoro_sb.from('memories').insert({
memo_id: memo_id,
title: memoryTitle || 'Blueprint-Antwort',
content: answer,
metadata: { ... }
}).select().single();
```
**Neue Implementation:**
```typescript
// Zuerst die sort_order aus prompt_blueprints holen
const { data: promptBlueprint } = await memoro_sb
.from('prompt_blueprints')
.select('sort_order')
.eq('blueprint_id', blueprint_id)
.eq('prompt_id', prompt.id)
.single();
const { data: newMemory, error: newMemoryError } = await memoro_sb.from('memories').insert({
memo_id: memo_id,
title: memoryTitle || 'Blueprint-Antwort',
content: answer,
sort_order: promptBlueprint?.sort_order || 999, // Neue Zeile!
metadata: { ... }
}).select().single();
```
### 2. `/supabase/functions/auto-blueprint/index.ts`
**Ähnliche Anpassung bei Zeile 479:**
```typescript
const { data: newMemory, error: newMemoryError } = await memoro_sb.from('memories').insert({
memo_id: memo_id,
title: memoryTitle || 'Auto-Blueprint-Antwort',
content: answer,
sort_order: promptBlueprint?.sort_order || 999, // Neue Zeile!
metadata: { ... }
}).select().single();
```
### 3. Andere Edge Functions (ohne Blueprint)
Für Edge Functions die Memories ohne Blueprint erstellen, sollte ein sinnvoller Default-Wert gesetzt werden:
#### `/supabase/functions/create-memory/index.ts`
```typescript
const { data: newMemory, error: newMemoryError } = await memoro_sb.from('memories').insert({
memo_id: memo_id,
title: memoryTitle || 'Memory',
content: answer,
sort_order: 100, // Default für manuelle Memories
metadata: { ... }
}).select().single();
```
#### `/supabase/functions/question-memo/index.ts`
```typescript
const { data: newMemory, error: newMemoryError } = await memoro_sb.from('memories').insert({
memo_id: memo_id,
title: `Frage: ${question.substring(0, 50)}...`,
content: answer,
sort_order: 200, // Fragen erscheinen nach Blueprint-Memories
metadata: { ... }
}).select().single();
```
#### `/supabase/functions/combine-memos/index.ts`
```typescript
const { error: memoryError } = await memoro_sb
.from('memories')
.insert({
...memoryData,
sort_order: 300 // Kombinierte Memos erscheinen am Ende
});
```
#### `/supabase/functions/translate/index.ts`
```typescript
const { error: memoryCreateError } = await memoro_sb.from('memories').insert({
memo_id: newMemoId,
title: translatedTitle,
content: translatedContent,
sort_order: memory.sort_order || 999, // Behalte sort_order vom Original
metadata: { ... }
});
```
## Optimierte Blueprint Function Implementation
Für bessere Performance sollten die Prompts mit ihrer sort_order gleich am Anfang geladen werden:
```typescript
// In blueprint/index.ts und auto-blueprint/index.ts
// Lade alle Prompts mit sort_order für diesen Blueprint
const { data: blueprintPrompts, error: blueprintPromptsError } = await memoro_sb
.from('prompt_blueprints')
.select(`
prompt_id,
sort_order,
prompts!inner(
id,
prompt_text,
memory_title
)
`)
.eq('blueprint_id', blueprint_id)
.order('sort_order', { ascending: true });
// Dann beim Erstellen der Memories:
for (const blueprintPrompt of blueprintPrompts) {
// ... AI Processing ...
const { data: newMemory, error: newMemoryError } = await memoro_sb.from('memories').insert({
memo_id: memo_id,
title: memoryTitle,
content: answer,
sort_order: blueprintPrompt.sort_order,
metadata: { ... }
}).select().single();
}
```
## Sort Order Konvention:
| Bereich | sort_order | Verwendung |
|---------|------------|------------|
| 1-99 | Blueprint Memories | Hauptanalysen (Zusammenfassung, Aufgaben, etc.) |
| 100-199 | Manuelle Memories | Vom Nutzer erstellte Memories |
| 200-299 | Frage-Antwort | Memories aus Fragen an Memos |
| 300-399 | Kombinierte Memos | Aus mehreren Memos generiert |
| 999 | Default | Fallback für nicht kategorisierte Memories |
## Testing nach Implementation:
1. Neue Aufnahme mit Standard Blueprint erstellen
2. Prüfen ob Memories in richtiger Reihenfolge erscheinen
3. Manuelle Memory hinzufügen - sollte nach Blueprint-Memories erscheinen
4. Frage an Memo stellen - sollte nach manuellen Memories erscheinen

View file

@ -0,0 +1,133 @@
# Frontend Patches für Memory Sorting
## Dateien die angepasst werden müssen:
### 1. `/features/memos/hooks/useMemoState.ts`
**Aktuelle Zeile 281:**
```typescript
.order('created_at', { ascending: false })
```
**Ändern zu:**
```typescript
.order('sort_order', { ascending: true })
.order('created_at', { ascending: false })
```
### 2. `/features/memos/hooks/useOptimizedMemoData.ts`
**Aktuelle Zeile 95:**
```typescript
.order('created_at', { ascending: false })
```
**Ändern zu:**
```typescript
.order('sort_order', { ascending: true })
.order('created_at', { ascending: false })
```
### 3. `/app/(protected)/(memo)/actions/memoActions.ts`
**Aktuelle Zeile 468:**
```typescript
.eq('memo_id', memoId)
.order('created_at', { ascending: false });
```
**Ändern zu:**
```typescript
.eq('memo_id', memoId)
.order('sort_order', { ascending: true })
.order('created_at', { ascending: false });
```
### 4. `/app/(protected)/memories.tsx`
**Aktuelle Zeile 157:**
```typescript
.order('created_at', { ascending: false });
```
**Ändern zu:**
```typescript
.order('sort_order', { ascending: true })
.order('created_at', { ascending: false });
```
### 5. `/app/(protected)/(tabs)/index.tsx`
**Aktuelle Zeile 999:**
```typescript
.eq('memo_id', memo.id)
.order('created_at', { ascending: false });
```
**Ändern zu:**
```typescript
.eq('memo_id', memo.id)
.order('sort_order', { ascending: true })
.order('created_at', { ascending: false });
```
### 6. `/app/(protected)/(tabs)/memos.tsx`
**Aktuelle Zeile 603:**
```typescript
.eq('memo_id', memo.id)
.order('created_at', { ascending: false });
```
**Ändern zu:**
```typescript
.eq('memo_id', memo.id)
.order('sort_order', { ascending: true })
.order('created_at', { ascending: false });
```
### 7. `/components/molecules/MemoList.tsx`
**Aktuelle Zeile 550:**
```typescript
.eq('memo_id', memo.id)
.order('created_at', { ascending: false });
```
**Ändern zu:**
```typescript
.eq('memo_id', memo.id)
.order('sort_order', { ascending: true })
.order('created_at', { ascending: false });
```
### 8. `/components/molecules/MemoPreview.tsx`
**Aktuelle Zeile 306:**
```typescript
.eq('memo_id', memo.id)
.order('created_at', { ascending: false });
```
**Ändern zu:**
```typescript
.eq('memo_id', memo.id)
.order('sort_order', { ascending: true })
.order('created_at', { ascending: false });
```
## Erklärung der Änderung:
Die doppelte Sortierung funktioniert so:
1. **Primär nach `sort_order` (aufsteigend)**: Memories mit niedrigerer sort_order erscheinen zuerst
2. **Sekundär nach `created_at` (absteigend)**: Falls mehrere Memories die gleiche sort_order haben (z.B. 999 für alte/manuelle Memories), werden sie nach Erstellungsdatum sortiert
## Testing:
Nach den Änderungen sollte getestet werden:
1. ✅ Neue Memo-Aufnahme mit Standard Blueprint
2. ✅ Überprüfen ob Reihenfolge stimmt:
- Kurzzusammenfassung (sort_order: 1) - OBEN
- Aufgaben (sort_order: 2) - MITTE
- Ausführliche Zusammenfassung (sort_order: 3) - UNTEN
3. ✅ Alte Memories ohne sort_order sollten weiterhin funktionieren

View file

@ -0,0 +1,19 @@
# Gesammelte Ideen & Vorschläge Prompt
## Prompt ID
`8cdc89a5-2f76-4d50-a93d-0c177c3e73ab`
## Prompt Text (direkt für Supabase kopierbar)
```json
{"de": "Sammle alle im folgenden Transkript geäusserten neuen Ideen, kreativen Vorschläge oder Brainstorming-Punkte. Gruppiere sie nach Themenbereichen und markiere besonders innovative Ideen mit ⭐. Kategorisiere jede Idee nach Umsetzbarkeit: [KURZFRISTIG] (innerhalb 1 Monat), [MITTELFRISTIG] (1-6 Monate), [LANGFRISTIG] (über 6 Monate). Liste sie übersichtlich ohne zusätzliche Kommentare auf. Hier das Transkript:", "en": "Collect all new ideas, creative suggestions, or brainstorming points expressed in the following transcript. Group them by topic areas and mark particularly innovative ideas with ⭐. Categorize each idea by feasibility: [SHORT-TERM] (within 1 month), [MEDIUM-TERM] (1-6 months), [LONG-TERM] (over 6 months). List them clearly without additional comments. Here is the transcript:", "it": "Raccogli tutte le nuove idee, suggerimenti creativi o punti di brainstorming espressi nella seguente trascrizione. Raggruppali per aree tematiche e contrassegna le idee particolarmente innovative con ⭐. Categorizza ogni idea per fattibilità: [BREVE TERMINE] (entro 1 mese), [MEDIO TERMINE] (1-6 mesi), [LUNGO TERMINE] (oltre 6 mesi). Elencali chiaramente senza commenti aggiuntivi. Ecco la trascrizione:", "fr": "Collectez toutes les nouvelles idées, suggestions créatives ou points de brainstorming exprimés dans la transcription suivante. Regroupez-les par domaines thématiques et marquez les idées particulièrement innovantes avec ⭐. Catégorisez chaque idée selon sa faisabilité : [COURT TERME] (dans 1 mois), [MOYEN TERME] (1-6 mois), [LONG TERME] (plus de 6 mois). Listez-les clairement sans commentaires supplémentaires. Voici la transcription :", "es": "Recopila todas las nuevas ideas, sugerencias creativas o puntos de lluvia de ideas expresados en la siguiente transcripción. Agrúpalas por áreas temáticas y marca las ideas particularmente innovadoras con ⭐. Categoriza cada idea por viabilidad: [CORTO PLAZO] (dentro de 1 mes), [MEDIO PLAZO] (1-6 meses), [LARGO PLAZO] (más de 6 meses). Listálas claramente sin comentarios adicionales. Aquí está la transcripción:"}
```
## Memory Title (direkt für Supabase kopierbar)
```json
{"de": "Gesammelte Ideen & Vorschläge", "en": "Collected Ideas & Suggestions", "it": "Idee e Suggerimenti Raccolti", "fr": "Idées et Suggestions Collectées", "es": "Ideas y Sugerencias Recopiladas"}
```
## Description (direkt für Supabase kopierbar)
```json
{"de": "Listet alle im Gespräch geäusserten neuen Ideen, Brainstorming-Punkte oder konkreten Vorschläge auf.", "en": "Lists all new ideas, brainstorming points or concrete suggestions expressed in the conversation.", "it": "Elenca tutte le nuove idee, punti di brainstorming o suggerimenti concreti espressi nella conversazione.", "fr": "Liste toutes les nouvelles idées, points de brainstorming ou suggestions concrètes exprimés dans la conversation.", "es": "Enumera todas las nuevas ideas, puntos de lluvia de ideas o sugerencias concretas expresadas en la conversación."}
```

View file

@ -0,0 +1,19 @@
# Kurzzusammenfassung Prompt
## Prompt ID
`c4009bef-4504-4af7-86f5-f896a2412a0a`
## Prompt Text (direkt für Supabase kopierbar)
```json
{"de": "Erstelle ein TLDR (Too Long; Didn't Read) des folgenden Transkripts. Fasse die maximal 3 wichtigsten handlungsrelevanten Kernaussagen in insgesamt 3-5 Sätzen zusammen. Fokussiere ausschließlich auf die absoluten Hauptpunkte, die für Entscheidungen oder nächste Schritte relevant sind. Verzichte auf zusätzliche Kommentare. Hier das Transkript:", "en": "Create a TLDR (Too Long; Didn't Read) of the following transcript. Summarize the maximum 3 most important action-relevant key messages in a total of 3-5 sentences. Focus exclusively on the absolute main points that are relevant for decisions or next steps. Avoid additional comments. Here is the transcript:", "it": "Crea un TLDR (Troppo Lungo; Non L'ho Letto) della seguente trascrizione. Riassumi i massimo 3 messaggi chiave più importanti rilevanti per l'azione in totale 3-5 frasi. Concentrati esclusivamente sui punti principali assoluti che sono rilevanti per decisioni o passi successivi. Evita commenti aggiuntivi. Ecco la trascrizione:", "fr": "Créez un TLDR (Trop Long ; Pas Lu) de la transcription suivante. Résumez les 3 messages clés maximum les plus importants et pertinents pour l'action en 3-5 phrases au total. Concentrez-vous exclusivement sur les points principaux absolus qui sont pertinents pour les décisions ou les prochaines étapes. Évitez les commentaires supplémentaires. Voici la transcription :", "es": "Crea un TLDR (Demasiado Largo; No Lo Leí) de la siguiente transcripción. Resume los máximo 3 mensajes clave más importantes y relevantes para la acción en un total de 3-5 oraciones. Concéntrate exclusivamente en los puntos principales absolutos que son relevantes para decisiones o próximos pasos. Evita comentarios adicionales. Aquí está la transcripción:"}
```
## Memory Title (direkt für Supabase kopierbar)
```json
{"de": "Kurzzusammenfassung", "en": "Executive Summary", "it": "Riassunto Esecutivo", "fr": "Résumé Exécutif", "es": "Resumen Ejecutivo"}
```
## Description (direkt für Supabase kopierbar)
```json
{"de": "Erstellt eine knappe Übersicht der wichtigsten Inhalte und Kernaussagen des Gesprächs oder Vortrags. Ideal für einen schnellen Überblick.", "en": "Creates a brief overview of the most important content and key statements of the conversation or presentation. Ideal for a quick overview.", "it": "Crea una panoramica concisa dei contenuti più importanti e delle dichiarazioni chiave della conversazione o presentazione. Ideale per una rapida panoramica.", "fr": "Crée un aperçu concis du contenu le plus important et des déclarations clés de la conversation ou de la présentation. Idéal pour un aperçu rapide.", "es": "Crea una visión general concisa del contenido más importante y las declaraciones clave de la conversación o presentación. Ideal para una visión rápida."}
```

View file

@ -0,0 +1,19 @@
# Offene Fragen Prompt
## Prompt ID
`c576e875-5a52-4f6a-abb7-0c62c945af78`
## Prompt Text (direkt für Supabase kopierbar)
```json
{"de": "Liste alle wichtigen Fragen auf, die im folgenden Transkript gestellt wurden und unbeantwortet blieben. Sortiere sie nach Wichtigkeit/Dringlichkeit (HOCH/MITTEL/NIEDRIG). Gib für jede Frage kurzen Kontext, warum sie offen blieb und schlage konkrete nächste Schritte zur Klärung vor. Verwende folgendes Format: [PRIORITÄT] Frage: ... | Kontext: ... | Nächster Schritt: ... Verzichte auf zusätzliche Kommentare. Hier das Transkript:", "en": "List all important questions that were asked in the following transcript and remained unanswered. Sort them by importance/urgency (HIGH/MEDIUM/LOW). For each question, provide brief context on why it remained open and suggest concrete next steps for clarification. Use the following format: [PRIORITY] Question: ... | Context: ... | Next step: ... Avoid additional comments. Here is the transcript:", "it": "Elenca tutte le domande importanti che sono state poste nella seguente trascrizione e sono rimaste senza risposta. Ordinale per importanza/urgenza (ALTA/MEDIA/BASSA). Per ogni domanda, fornisci un breve contesto sul perché è rimasta aperta e suggerisci passi successivi concreti per il chiarimento. Usa il seguente formato: [PRIORITÀ] Domanda: ... | Contesto: ... | Prossimo passo: ... Evita commenti aggiuntivi. Ecco la trascrizione:", "fr": "Listez toutes les questions importantes qui ont été posées dans la transcription suivante et sont restées sans réponse. Triez-les par importance/urgence (ÉLEVÉE/MOYENNE/FAIBLE). Pour chaque question, fournissez un bref contexte expliquant pourquoi elle est restée ouverte et suggérez des prochaines étapes concrètes pour clarification. Utilisez le format suivant : [PRIORITÉ] Question : ... | Contexte : ... | Prochaine étape : ... Évitez les commentaires supplémentaires. Voici la transcription :", "es": "Enumera todas las preguntas importantes que se hicieron en la siguiente transcripción y quedaron sin respuesta. Ordénalas por importancia/urgencia (ALTA/MEDIA/BAJA). Para cada pregunta, proporciona un breve contexto sobre por qué quedó abierta y sugiere próximos pasos concretos para la aclaración. Usa el siguiente formato: [PRIORIDAD] Pregunta: ... | Contexto: ... | Próximo paso: ... Evita comentarios adicionales. Aquí está la transcripción:"}
```
## Memory Title (direkt für Supabase kopierbar)
```json
{"de": "Offene Fragen", "en": "Open Questions", "it": "Domande Aperte", "fr": "Questions Ouvertes", "es": "Preguntas Abiertas"}
```
## Description (direkt für Supabase kopierbar)
```json
{"de": "Identifiziert alle Fragen, die während des Gesprächs aufgeworfen, aber nicht oder nicht vollständig beantwortet wurden.", "en": "Identifies all questions that were raised during the conversation but were not or not fully answered.", "it": "Identifica tutte le domande che sono state sollevate durante la conversazione ma non hanno ricevuto risposta o non sono state completamente risposte.", "fr": "Identifie toutes les questions qui ont été soulevées pendant la conversation mais n'ont pas reçu de réponse ou n'ont pas été complètement répondues.", "es": "Identifica todas las preguntas que surgieron durante la conversación pero no fueron respondidas o no fueron completamente respondidas."}
```

View file

@ -0,0 +1,19 @@
# Social Media Posts Prompt
## Prompt ID
`b2e39e0a-ec1f-4d0e-813d-f1a08493332b`
## Prompt Text (direkt für Supabase kopierbar)
```json
{"de": "Erstelle basierend auf dem folgenden Transkript Social Media Posts für verschiedene Plattformen. Formatiere jeden Post plattformgerecht: 1) X/TWITTER: Max. 280 Zeichen, prägnant, 2-3 Hashtags. 2) LINKEDIN: Professionell, 150-300 Wörter, 5-8 Hashtags. 3) INSTAGRAM: Visuell ansprechend beschrieben, Emoji-Nutzung, 10-15 Hashtags. 4) FACEBOOK: Storytelling-Ansatz, 100-200 Wörter, 3-5 Hashtags. 5) TIKTOK: Video-Idee mit Hook, Ablauf und Trending-Hashtags. Verzichte auf zusätzliche Kommentare. Hier das Transkript:", "en": "Create social media posts for different platforms based on the following transcript. Format each post platform-specifically: 1) X/TWITTER: Max. 280 characters, concise, 2-3 hashtags. 2) LINKEDIN: Professional, 150-300 words, 5-8 hashtags. 3) INSTAGRAM: Visually described, emoji usage, 10-15 hashtags. 4) FACEBOOK: Storytelling approach, 100-200 words, 3-5 hashtags. 5) TIKTOK: Video idea with hook, sequence and trending hashtags. Avoid additional comments. Here is the transcript:", "it": "Crea post per social media per diverse piattaforme basati sulla seguente trascrizione. Formatta ogni post specificamente per la piattaforma: 1) X/TWITTER: Max. 280 caratteri, conciso, 2-3 hashtag. 2) LINKEDIN: Professionale, 150-300 parole, 5-8 hashtag. 3) INSTAGRAM: Descritto visivamente, uso di emoji, 10-15 hashtag. 4) FACEBOOK: Approccio narrativo, 100-200 parole, 3-5 hashtag. 5) TIKTOK: Idea video con hook, sequenza e hashtag di tendenza. Evita commenti aggiuntivi. Ecco la trascrizione:", "fr": "Créez des publications pour les réseaux sociaux pour différentes plateformes basées sur la transcription suivante. Formatez chaque publication spécifiquement pour la plateforme : 1) X/TWITTER : Max. 280 caractères, concis, 2-3 hashtags. 2) LINKEDIN : Professionnel, 150-300 mots, 5-8 hashtags. 3) INSTAGRAM : Description visuelle, utilisation d'emojis, 10-15 hashtags. 4) FACEBOOK : Approche narrative, 100-200 mots, 3-5 hashtags. 5) TIKTOK : Idée vidéo avec accroche, séquence et hashtags tendance. Évitez les commentaires supplémentaires. Voici la transcription :", "es": "Crea publicaciones para redes sociales para diferentes plataformas basadas en la siguiente transcripción. Formatea cada publicación específicamente para la plataforma: 1) X/TWITTER: Máx. 280 caracteres, conciso, 2-3 hashtags. 2) LINKEDIN: Profesional, 150-300 palabras, 5-8 hashtags. 3) INSTAGRAM: Descripción visual, uso de emojis, 10-15 hashtags. 4) FACEBOOK: Enfoque narrativo, 100-200 palabras, 3-5 hashtags. 5) TIKTOK: Idea de video con gancho, secuencia y hashtags de tendencia. Evita comentarios adicionales. Aquí está la transcripción:"}
```
## Memory Title (direkt für Supabase kopierbar)
```json
{"de": "Social Media Posts", "en": "Social Media Posts", "it": "Post per Social Media", "fr": "Publications Réseaux Sociaux", "es": "Publicaciones en Redes Sociales"}
```
## Description (direkt für Supabase kopierbar)
```json
{"de": "Generiert optimierte Social Media Posts für X/Twitter, LinkedIn, Instagram, Facebook und TikTok. Jeder Post ist plattformspezifisch formatiert mit passender Länge, Tonalität und Hashtag-Anzahl. Enthält konkrete Textvorschläge und bei TikTok Video-Konzepte.", "en": "Generates optimized social media posts for X/Twitter, LinkedIn, Instagram, Facebook and TikTok. Each post is platform-specifically formatted with appropriate length, tone and hashtag count. Includes concrete text suggestions and video concepts for TikTok.", "it": "Genera post ottimizzati per social media per X/Twitter, LinkedIn, Instagram, Facebook e TikTok. Ogni post è formattato specificamente per la piattaforma con lunghezza, tono e numero di hashtag appropriati. Include suggerimenti di testo concreti e concetti video per TikTok.", "fr": "Génère des publications optimisées pour les réseaux sociaux pour X/Twitter, LinkedIn, Instagram, Facebook et TikTok. Chaque publication est formatée spécifiquement pour la plateforme avec une longueur, un ton et un nombre de hashtags appropriés. Inclut des suggestions de texte concrètes et des concepts vidéo pour TikTok.", "es": "Genera publicaciones optimizadas para redes sociales para X/Twitter, LinkedIn, Instagram, Facebook y TikTok. Cada publicación está formateada específicamente para la plataforma con longitud, tono y cantidad de hashtags apropiados. Incluye sugerencias de texto concretas y conceptos de video para TikTok."}
```

View file

@ -0,0 +1,206 @@
test
Dennis Bauer
Direkter Kontakt1.
"Wer immer tut was er schon kann bleibt immer das was er schon ist." Zitat Henry Ford
Vari-tech GmbH
ZHAW School of Management and Law
Stockach, Baden-Württemberg, Deutschland Kontaktinfo
500+ Kontakte
Tobias Müller, Alex Vasileva und 19 weitere gemeinsame KontakteTobias Müller, Alex Vasileva und 19 weitere gemeinsame Kontakte
Nachricht
Mehr
HighlightsHighlights
Till Schneider
Dennis Bauer hat sich in den vergangenen 90 Tagen Ihr Profil angesehen
Dennis Bauer hat sich in den vergangenen 90 Tagen Ihr Profil angesehen
Kontaktieren Sie Dennis Bauer, um die Anforderungen zu verstehen.Kontaktieren Sie Dennis Bauer, um die Anforderungen zu verstehen.
Kostenlose Insights von LinkedIn Sales Navigator
Kostenlose Insights von LinkedIn Sales Navigator
Schalten Sie mehr Einblicke in Leads frei
Bessere Kontaktaufnahme mit vertriebsrelevanten Insights
Sales Navigator für 0 CHF erneut testen
1 Probemonat mit Support rund um die Uhr. Sie können jederzeit kündigen. Sie erhalten 7 Tage vor Ablauf der Probeversion eine entsprechende Erinnerung.
Alle 2 Highlights anzeigen
InfoInfo
Machen ist wie wollen, nur viel krasser! Machen ist wie wollen, nur viel krasser!
ServiceleistungenServiceleistungen
Projektmanagement • IT-Beratung • Filing • Dateiverwaltung • Dateneingabe • Technischer Support • InformationsmanagementProjektmanagement • IT-Beratung • Filing • Dateiverwaltung • Dateneingabe • Technischer Support • Informationsmanagement
Serviceleistungen anfordern
Alle Serviceleistungen anzeigen
AktivitätenAktivitäten
564 Follower:innen564 Follower:innen
Beiträge
Kommentare
9 „Beiträge“-Beiträge wurden geladen
Link zur Grafik von Dennis Bauer anzeigen
Dennis BauerDennis Bauer
• 1.1.
"Wer immer tut was er schon kann bleibt immer das was er schon ist." Zitat Henry Ford"Wer immer tut was er schon kann bleibt immer das was er schon ist." Zitat Henry Ford
10 Monate • vor 10 Monaten • Alle Mitglieder und Nicht-Mitglieder von LinkedIn
Gestern verfolgten wir aufmerksam den AV Vortrag und die Herangehensweise unserer Kunden.
Es ist immer interessant ein Thema auch von der gegenüberliegenden Seiten zu betrachten.
… mehr
Vari-tech GmbHVari-tech GmbH
180 Follower:innen180 Follower:innen
Tag 3 der archivistica 2024
Auch finden wieder interessante Vorträge statt, wie zum Beispiel "Umgang mit emotional belastenden Beständen und diskriminierender Sprache". Ein Thema das durchaus auch uns Dienstleister betrifft.
Unterstützung bringt unser Recording Secretary"
… mehr
Größere Bilddarstellung aktivieren,
Keine alternative Textbeschreibung für dieses Bild vorhanden
Größere Bilddarstellung aktivieren,
like
3
Link zur Grafik von Dennis Bauer anzeigen
Dennis BauerDennis Bauer
• 1.1.
"Wer immer tut was er schon kann bleibt immer das was er schon ist." Zitat Henry Ford"Wer immer tut was er schon kann bleibt immer das was er schon ist." Zitat Henry Ford
10 Monate • vor 10 Monaten • Alle Mitglieder und Nicht-Mitglieder von LinkedIn
2ter Tag auf der archivistica 2024 in Suhl.
Memoro kommt auch unter Archivaren gut an.
1 Repost
Link zur Grafik von Dennis Bauer anzeigen
Dennis BauerDennis Bauer
• 1.1.
"Wer immer tut was er schon kann bleibt immer das was er schon ist." Zitat Henry Ford"Wer immer tut was er schon kann bleibt immer das was er schon ist." Zitat Henry Ford
10 Monate • vor 10 Monaten • Alle Mitglieder und Nicht-Mitglieder von LinkedIn
Vari-tech GmbHVari-tech GmbH
180 Follower:innen180 Follower:innen
91.Archivtag in Suhl
Treffen Sie uns auf dem Stand 31.
Größere Bilddarstellung aktivieren,
Keine alternative Textbeschreibung für dieses Bild vorhanden
Größere Bilddarstellung aktivieren,
likecelebrate
4
Alle Beiträge anzeigen
BerufserfahrungBerufserfahrung
Logo von Vari-tech GmbH
Geschäftsführender Gesellschafter
Geschäftsführender Gesellschafter
Vari-tech GmbH · SelbstständigVari-tech GmbH · Selbstständig
Juli 2021Heute · 4 Jahre 2 MonateJuli 2021Heute · 4 Jahre 2 Monate
Digitalisierung, Beratung, Konzepterarbeitung, Scanning, Datenaufbereitung, Datenkonvertierung und ErschließungsarbeitenDigitalisierung, Beratung, Konzepterarbeitung, Scanning, Datenaufbereitung, Datenkonvertierung und Erschließungsarbeiten
Workflow-Entwickler
Workflow-Entwickler
Workflow-Entwickler
K&B GbR · SelbstständigK&B GbR · Selbstständig
Okt. 2019Heute · 5 Jahre 11 MonateOkt. 2019Heute · 5 Jahre 11 Monate
Radolfzell am Bodensee, Baden-Württemberg, DeutschlandRadolfzell am Bodensee, Baden-Württemberg, Deutschland
Logo von Zahnmedizin Zentrum Dr. Basset
Manager COO
Manager COO
Zahnmedizin Zentrum Dr. BassetZahnmedizin Zentrum Dr. Basset
Jan. 2019Dez. 2021 · 3 JahreJan. 2019Dez. 2021 · 3 Jahre
Radolfzell am BodenseeRadolfzell am Bodensee
Logo von GBL Gubler AG
GBL Gubler AG
GBL Gubler AG
17 Jahre 9 Monate17 Jahre 9 Monate
Produktionsleiter und Mitglied der Geschäftsleitung
Produktionsleiter und Mitglied der Geschäftsleitung
Apr. 2011Sept. 2018 · 7 Jahre 6 MonateApr. 2011Sept. 2018 · 7 Jahre 6 Monate
Frauenfeld, Kanton Thurgau, SchweizFrauenfeld, Kanton Thurgau, Schweiz
wöchentliche Prozess- und Effizienzanalyse
Einbinden von Menschen mit Beeinträchtigung und sensibilisieren aller Mitarbeiter
Berater im Bereich der digitalen Archivierung, Prozessanalyse und neue Produkte.
Aufbau und Betrieb von abgesetzten Systemen vor Ort beim Kunden.
Business Analyst in mehreren Projekten Bsp. "Vecteur" des Schweizerischen Bundesarchiv.
Aufbau der Softwareentwicklungsabteilung in der neben kleineren Programmen auch ein neues WorkflowManagementSystem für Audio Visuelle Daten entickelt wurde.
Ausbau der Produktion in 4 Fachbereiche
Einführung eines WorkflowManagementSystems für Bilddatenwöchentliche Prozess- und Effizienzanalyse Einbinden von Menschen mit Beeinträchtigung und sensibilisieren aller Mitarbeiter Berater im Bereich der digitalen Archivierung, Prozessanalyse und neue Produkte. Aufbau und Betrieb von abgesetzten Systemen vor Ort beim Kunden. Business Analyst in mehreren Projekten Bsp. "Vecteur" des Schweizerischen Bundesarchiv. Aufbau der Softwareentwicklungsabteilung in der neben kleineren Programmen auch ein neues WorkflowManagementSystem für Audio Visuelle Daten entickelt wurde. Ausbau der Produktion in 4 Fachbereiche Einführung eines WorkflowManagementSystems für Bilddaten… mehr anzeigen
Produktionsleiter
Produktionsleiter
2008März 2011 · 3 Jahre 3 Monate2008März 2011 · 3 Jahre 3 Monate
85528552
wöchentliche Prozess- und Effizienzanalyse
permanente Prozess- und Workflowoptimierung
stetige Ausbildung der Mitarbeiter (Operator, Team- und Projektleiter)
Unterstützung bei Entwicklung des Laserbelichters Eternity E105 zur Produktionsreife am Standort Felben-Wellhausen. Softwareentwicklung in Zusammenarbeit mit dem IML der Univesität Basel.
Unterstützung in mehreren Teilbereichen bei der Entwicklung des Laserbelichters Archivlaser am Frauenhofer Institut in Freiburg und an der Universität Stuttgart zur Produktreife.
Mitarbeit in div. Arbeitsgruppen der e-CH und VSAwöchentliche Prozess- und Effizienzanalyse permanente Prozess- und Workflowoptimierung stetige Ausbildung der Mitarbeiter (Operator, Team- und Projektleiter) Unterstützung bei Entwicklung des Laserbelichters Eternity E105 zur Produktionsreife am Standort Felben-Wellhausen. Softwareentwicklung in Zusammenarbeit mit dem IML der Univesität Basel. Unterstützung in mehreren Teilbereichen bei der Entwicklung des Laserbelichters Archivlaser am Frauenhofer Institut in Freiburg und an der Universität Stuttgart zur Produktreife. Mitarbeit in div. Arbeitsgruppen der e-CH und VSA… mehr anzeigen
Projektleiter
Projektleiter
20012008 · 7 Jahre20012008 · 7 Jahre
85608560
Ausbelichtung und Finishing von Grossformatfotos.
Ausbau und Prozessoptimierung der Digitalisierungsabteilung
Aufbau Fachbereich Metadaten StandardAusbelichtung und Finishing von Grossformatfotos. Ausbau und Prozessoptimierung der Digitalisierungsabteilung Aufbau Fachbereich Metadaten Standard… mehr anzeigen
Logo von ammdoppleb
Monteur
Monteur
ammdopplebammdoppleb
19952001 · 6 Jahre19952001 · 6 Jahre
7826978269
Vom einfachen kleinen bis hin zum individuellen mehrstöckigen Messstand produzierte, fuhr und baute ich die Stände allein und in kleinen Teams in weiten Teilen Europas auf.
Aufgaben: Schreiner, Lackierer, Folien- und PrintverarbeitungVom einfachen kleinen bis hin zum individuellen mehrstöckigen Messstand produzierte, fuhr und baute ich die Stände allein und in kleinen Teams in weiten Teilen Europas auf. Aufgaben: Schreiner, Lackierer, Folien- und Printverarbeitung… mehr anzeigen
AusbildungAusbildung
ZHAW School of Management and Law
ZHAW School of Management and Law
ZHAW School of Management and Law
HERMES 5 FoundationHERMES 5 Foundation
2017201720172017
Berufsschulzentrum Radolfzell
Berufsschulzentrum Radolfzell
Berufsschulzentrum Radolfzell
1992199519921995
Ausbildung zum Bau- und MöbeltischlerAusbildung zum Bau- und Möbeltischler
KenntnisseKenntnisse
Microsoft Office
Microsoft Office
Johannes Paul Kauert (John)s Profilfoto
verifiziert von Johannes Paul Kauert (John) (gemeinsamer Kontakt)verifiziert von Johannes Paul Kauert (John) (gemeinsamer Kontakt)
Johannes Paul Kauert (John)s Profilfoto
In den vergangenen 6 Monaten von 1 Person bestätigtIn den vergangenen 6 Monaten von 1 Person bestätigt
3 Kenntnisbestätigungen
3 Kenntnisbestätigungen
Bestätigen
Management
Management
Johannes Paul Kauert (John)s Profilfoto
verifiziert von Johannes Paul Kauert (John) (gemeinsamer Kontakt)verifiziert von Johannes Paul Kauert (John) (gemeinsamer Kontakt)
Johannes Paul Kauert (John)s Profilfoto
In den vergangenen 6 Monaten von 1 Person bestätigtIn den vergangenen 6 Monaten von 1 Person bestätigt
3 Kenntnisbestätigungen
3 Kenntnisbestätigungen
Bestätigen
Alle 14 Kenntnisse anzeigen
OrganisationenOrganisationen
VSA-AAS
VSA-AAS
Jan. 2014HeuteJan. 2014Heute
Der Verein Schweizerischer Archivarinnen und Archivare (VSA) repräsentiert Archivarinnen und Archivare, Records Manager und Informationsfachleute in der Schweiz. Als nationaler Berufsverband unterstützt er die Zusammenarbeit der professionellen Archive und das Ziel, den Zugang zum Archivgut benutzungsfreundlich zu gestalten.Der Verein Schweizerischer Archivarinnen und Archivare (VSA) repräsentiert Archivarinnen und Archivare, Records Manager und Informationsfachleute in der Schweiz. Als nationaler Berufsverband unterstützt er die Zusammenarbeit der professionellen Archive und das Ziel, den Zugang zum Archivgut benutzungsfreundlich zu gestalten.… mehr anzeigen
Kost ceco
Kost ceco
Mitglied in der Arbeitsgruppe "digitale Archivierung" · März 2010HeuteMitglied in der Arbeitsgruppe "digitale Archivierung" · März 2010Heute
eCH-Fachgruppe Digitale Archivierung
Die eCH-Fachgruppe Digitale Archivierung ist das Standardisierungsgremium, das sämtliche Akteure der digitalen Archivierung (staatliche Archive, öffentliche Verwaltungen, Software- und Dienstleistungsanbieter) vereinigt. Sie bietet somit einen Rahmen für breit abgestützte Standardisierungsvorhaben.
Mehr Informationen zur eCH-Fachgruppe Digitale Archivierung finden Sie auf der eCH-Website sowie auf dem eCH-Share (für registrierte User). Untenstehend dokumentiert sind die bisherigen Sitzungen der Fachgruppe.

View file

@ -0,0 +1,285 @@
Dirk Zimanky
Direkter Kontakt1.
Gründer von adCura - Wir beratenEigentümer, Investoren und Verwaltungsräte. Experte in Electronic Manufacturing Services (EMS)
edisconet
University of Konstanz
Zürich Metropolitan Area Kontaktinfo
1.195 Follower:innen
500+ Kontakte
Alex Vasileva, Tobias Müller und 19 weitere gemeinsame KontakteAlex Vasileva, Tobias Müller und 19 weitere gemeinsame Kontakte
Nachricht
Ihre Serviceleistungen anzeigen
Mehr
Profil mit Premium verbessert
HighlightsHighlights
Unternehmenslogo
Dirk Zimanky folgt Ihrem Unternehmen auf LinkedIn
Dirk Zimanky folgt Ihrem Unternehmen auf LinkedIn
Dirk Zimanky kennt Ihre Marke und ist möglicherweise empfänglicher für eine Kontaktaufnahme.Dirk Zimanky kennt Ihre Marke und ist möglicherweise empfänglicher für eine Kontaktaufnahme.
Kostenlose Insights von LinkedIn Sales Navigator
Kostenlose Insights von LinkedIn Sales Navigator
Schalten Sie mehr Einblicke in Leads frei
Bessere Kontaktaufnahme mit vertriebsrelevanten Insights
Sales Navigator für 0 CHF erneut testen
1 Probemonat mit Support rund um die Uhr. Sie können jederzeit kündigen. Sie erhalten 7 Tage vor Ablauf der Probeversion eine entsprechende Erinnerung.
InfoInfo
Ich arbeite jeden Tag daran, Menschen und Unternehmen erfolgreich zu machen, die positiv auf unsere Umwelt und das sozioökonomische Leben einwirken und damit die Welt zu einem besseren Ort machen.
Mit mehr als 30 Jahren Erfahrung in den Bereichen Business, Technologie und Marktentwicklung, insbesondere auf dem globalen Markt für Elektronik, habe ich folgende Kernkompetenzen:
- Starke Expertise in den Bereichen Business, Technologie und Marktentwicklung, insbesondere auf dem globalen Markt für Elektronik.
- Menschen zu herausfordernden Zielen motivieren und sich selbst tragende Leistungseinheiten bilden.
- Aufbau langjähriger strategischer Partnerschaften und dauerhafter persönlicher Geschäfts-Beziehungen.
- Breites internationales Kontakt Netzwerk.
- Fähigkeit von Organisationsstrukturen auf lokaler und internationaler Ebene zu bewerten und zu optimieren.
- Sicher in multikulturellen und internationalen Vertragsverhandlungen.
- Vertraut mit der Führung und Geschäftsdynamik in Asien, Europa und den USA.
- Fusionen und Übernahmen auf Käufer- & Verkäuferseite.
Meine Werte sind ethisches Verhalten, Vertrauen, ehrlicher Respekt, Zusammenarbeit, greifbare Innovation und Wertschätzung des Lebens.Ich arbeite jeden Tag daran, Menschen und Unternehmen erfolgreich zu machen, die positiv auf unsere Umwelt und das sozioökonomische Leben einwirken und damit die Welt zu einem besseren Ort machen. Mit mehr als 30 Jahren Erfahrung in den Bereichen Business, Technologie und Marktentwicklung, insbesondere auf dem globalen Markt für Elektronik, habe ich folgende Kernkompetenzen: - Starke Expertise in den Bereichen Business, Technologie und Marktentwicklung, insbesondere auf dem globalen Markt für Elektronik. - Menschen zu herausfordernden Zielen motivieren und sich selbst tragende Leistungseinheiten bilden. - Aufbau langjähriger strategischer Partnerschaften und dauerhafter persönlicher Geschäfts-Beziehungen. - Breites internationales Kontakt Netzwerk. - Fähigkeit von Organisationsstrukturen auf lokaler und internationaler Ebene zu bewerten und zu optimieren. - Sicher in multikulturellen und internationalen Vertragsverhandlungen. - Vertraut mit der Führung und Geschäftsdynamik in Asien, Europa und den USA. - Fusionen und Übernahmen auf Käufer- & Verkäuferseite. Meine Werte sind ethisches Verhalten, Vertrauen, ehrlicher Respekt, Zusammenarbeit, greifbare Innovation und Wertschätzung des Lebens.… mehr anzeigen
ServiceleistungenServiceleistungen
Advising founders, owners, investors & boards through:
ACTIVE INVOLVEMENT
for founders and key members through business challenges, board work, business idea feasibility & strategy formulation.
PROFITABLE GROWTH
by implementing new dynamics, including strategy review, interim management, cultural & change management.
MAXIMIZING THE VALUE
of investments through active board work, investment opportunities, add-on acquisitions, divestitures & more.Advising founders, owners, investors & boards through: ACTIVE INVOLVEMENT for founders and key members through business challenges, board work, business idea feasibility & strategy formulation. PROFITABLE GROWTH by implementing new dynamics, including strategy review, interim management, cultural & change management. MAXIMIZING THE VALUE of investments through active board work, investment opportunities, add-on acquisitions, divestitures & more.… mehr anzeigen
Veränderungsmanagement • Unternehmensberatung • Preispolitik • Strategische Planung • Führungskräftecoaching • VerhandlungsführungVeränderungsmanagement • Unternehmensberatung • Preispolitik • Strategische Planung • Führungskräftecoaching • Verhandlungsführung
Alle Serviceleistungen anzeigen
Im FokusIm Fokus
Bild
Bild
Bild für What Others Say
What Others SayWhat Others Say
https://adcura.comhttps://adcura.com
Bild
Bild
Bild für What Others Say
What Others SayWhat Others Say
https://adcura.comhttps://adcura.com
Bild
Bild
Bild für The 4 D's of Organizational Transformation
The 4 D's of Organizational TransformationThe 4 D's of Organizational Transformation
“Im convinced that about half of what separates successful entrepreneurs from the non-successful ones is pure perseverance.” Steve Jobs, Co-Founder of Apple.“Im convinced that about half of what separates successful entrepreneurs from the non-successful ones is pure perseverance.” Steve Jobs, Co-Founder of Apple.
Bild
Bild
Bild für 4 step roadmap to ensure business growth
4 step roadmap to ensure business growth4 step roadmap to ensure business growth
At adCura, we have developed a straight forward 4 step roadmap to ensure our customers strategic business growth that is designed to boost agility and flexibility in their organizations and strengthen their long-term strategies in this new global business environment. In our upcoming posts we will take a closer look on these steps and their impact.
https://adcura.comAt adCura, we have developed a straight forward 4 step roadmap to ensure our customers strategic business growth that is designed to boost agility and flexibility in their organizations and strengthen their long-term strategies in this new global business environment. In our upcoming posts we will take a closer look on these steps and their impact. https://adcura.com
Link
Link
adCura - advising founders, owners, investors & boardsadCura - advising founders, owners, investors & boards
adCuraadCura
with our network of international experts, adCura strives to make the world a better place
by empowering people and organizations having a positive impact on our environment and social-economic life.
adCuras highly experienced team & associates with deep understanding about leading global operating entities and small local units have held top management & CEO positions, and driven the growth of multinational half a billion worth companies.with our network of international experts, adCura strives to make the world a better place by empowering people and organizations having a positive impact on our environment and social-economic life. adCuras highly experienced team & associates with deep understanding about leading global operating entities and small local units have held top management & CEO positions, and driven the growth of multinational half a billion worth companies.
AktivitätenAktivitäten
1.195 Follower:innen1.195 Follower:innen
Follower:in
Beiträge
Kommentare
9 „Beiträge“-Beiträge wurden geladen
Profilfoto von Dirk Zimanky
Dirk Zimanky hat dies repostet
Link zur Grafik von Stephanie Kaudela-Baum, Prof. Dr. anzeigen
Stephanie Kaudela-Baum, Prof. Dr.Stephanie Kaudela-Baum, Prof. Dr.
• 2.Verifiziert • 2.
Professor of Leadership and Innovation I Co-Head Competence Center Business Development, Leadership and HR I Lecturer I Speaker I #leadership I #innovation I #creativityProfessor of Leadership and Innovation I Co-Head Competence Center Business Development, Leadership and HR I Lecturer I Speaker I #leadership I #innovation I #creativity
2 Wochen • vor 2 Wochen • Alle Mitglieder und Nicht-Mitglieder von LinkedIn
In Lucerne, you definitely get into the continuous innovation flow. Late summer, lake, mountains, chocolate and great conference participants :) - register now and network with the CINet community! HSLU Hochschule Luzern HSLU Institut für Betriebs- und Regionalökonomie IBR HSLU Lucerne School of Business International
… mehr
Continuous Innovation Network (CINet)Continuous Innovation Network (CINet)
597 Follower:innen597 Follower:innen
The 26th CINet conference is coming!
Join us on 7-9 September 2025 in the beautiful Lucerne!
Registrations are still open: https://lnkd.in/dQ_ix6FG
CINet Board
Maria Carmela Annosi, Harry Boer, Tim Schweisfurth, Luca Gastaldi, René Chester Goduscheit, Katharina Hölzle, Nicolette Lakemond, Mats Magnusson, Luisa Pellegrini, Magnus Persson, Daniel Trabucchi, Jeannette Visser-Groeneveld, Melanie Wiener, Patricia Wolf
Local Organizers Committee
Patricia Wolf, Stephanie Kaudela-Baum, Prof. Dr., Julien Alain Nussbaum, Christian Hohmann, Shaun West, Prof. Dr. Petra Müller-Csernetzky
… mehr
Übersetzung anzeigen
Größere Bilddarstellung aktivieren,
Keine alternative Textbeschreibung für dieses Bild vorhanden
Größere Bilddarstellung aktivieren,
like
16
2 Reposts
Link zur Grafik von Dirk Zimanky anzeigen
Dirk ZimankyDirk Zimanky
• 1.Premium • 1.
Gründer von adCura - Wir beratenEigentümer, Investoren und Verwaltungsräte. Experte in Electronic Manufacturing Services (EMS)Gründer von adCura - Wir beratenEigentümer, Investoren und Verwaltungsräte. Experte in Electronic Manufacturing Services (EMS)
Ihre Serviceleistungen anzeigen
2 Monate • vor 2 Monaten • Alle Mitglieder und Nicht-Mitglieder von LinkedIn
Most companies don't have a knowledge deficit they just don't know what they already know. How can generative AI help to make hidden knowledge visible without overwhelming employees?
We have published a new article at edisconet, take a look:
… mehr
edisconetedisconet
240 Follower:innen240 Follower:innen
Die meisten Unternehmen haben kein Wissensdefizit sie wissen nur nicht, was sie schon wissen.
Wie kann generative KI helfen, verborgenes Wissen sichtbar zu machen ganz ohne Ihre Mitarbeitenden zu überfordern?
In unserem neuen Artikel zeigen wir,
- wie KI stilles Wissen in nutzbares Wissen verwandelt
- was das mit CRM-Daten, Vertriebsprozessen und Transparenz zu tun hat
- und warum wir gemeinsam mit der HSLU eine Sandbox für wissensintensive Organisationen entwickeln.
👉 Jetzt lesen: „Wissensgenerierung neu denken: Wie KI zum stillen Teammitglied Ihrer Organisation wird“
🔗 https://lnkd.in/eu6iEB4a
🎯 Neugierig geworden? Am Ende des Artikels erfahren Sie, wie Sie Teil unseres spannenden Forschungsprojekts werden können.
Hashtag#Wissensmanagement Hashtag#GenerativeAI Hashtag#TacitKnowledge Hashtag#AIimUnternehmen Hashtag#edisconetCommons Hashtag#FutureOfWork
Prof. Dr. Petra Müller-Csernetzky, Stephanie Kaudela-Baum, Prof. Dr., HSLU Hochschule Luzern, Dirk Zimanky
… mehr
Größere Bilddarstellung aktivieren,
Wissensmanagement und KI_edisconet, HSLU
Größere Bilddarstellung aktivieren,
likecelebrate
15
Alle Beiträge anzeigen
BerufserfahrungBerufserfahrung
Logo von edisconet
Board Member
Board Member
edisconet · Vollzeitedisconet · Vollzeit
Jan. 2022Heute · 3 Jahre 8 MonateJan. 2022Heute · 3 Jahre 8 Monate
edisconet is one platform for multiple learning paths. It allows to engage your employees with meaningful & rewarding learning experiences by integrating your internal systems with the universe of trainings, trainers & learning paths.edisconet is one platform for multiple learning paths. It allows to engage your employees with meaningful & rewarding learning experiences by integrating your internal systems with the universe of trainings, trainers & learning paths.… mehr anzeigen
Logo von adCura
Gründer und Geschäftsführender Partner
Gründer und Geschäftsführender Partner
adCuraadCura
2020Heute · 5 Jahre 8 Monate2020Heute · 5 Jahre 8 Monate
SchweizSchweiz
adCura berät Gründer, Eigentümer, Investoren und Verwaltungsräte. Mit unserem Netzwerk internationaler Experten arbeiten wir mit Start-ups, Unternehmen des Mittelstands und Risikokapitalunternehmen zusammen. Bei adCura konzentriert sich Alles darauf den Wert der Unternehmung für die verschiedenen Stakeholder zu erhöhen.adCura berät Gründer, Eigentümer, Investoren und Verwaltungsräte. Mit unserem Netzwerk internationaler Experten arbeiten wir mit Start-ups, Unternehmen des Mittelstands und Risikokapitalunternehmen zusammen. Bei adCura konzentriert sich Alles darauf den Wert der Unternehmung für die verschiedenen Stakeholder zu erhöhen.… mehr anzeigen
Logo von Enics
Enics
Enics
16 Jahre 1 Monat16 Jahre 1 Monat
Senior Vice President, Market Execution
Senior Vice President, Market Execution
20132020 · 7 Jahre20132020 · 7 Jahre
Enics ist ein Unternehmen, das Fertigungs-, Entwicklungs- und Kundendienstleistungen für elektronische Schaltungen und komplette elektronische Systeme für industrielle OEMs weltweit anbietet. Leitung des Inbound-Geschäfts mit mehr als 500 MEUR Jahresumsatz aus globalen OEM-Kunden. Verantwortlich für Gewinn und Verlust, Budgets und Planung für die verschiedenen Dienstleistungen in den Bereichen Fertigung, Engineering und After-Sales.Enics ist ein Unternehmen, das Fertigungs-, Entwicklungs- und Kundendienstleistungen für elektronische Schaltungen und komplette elektronische Systeme für industrielle OEMs weltweit anbietet. Leitung des Inbound-Geschäfts mit mehr als 500 MEUR Jahresumsatz aus globalen OEM-Kunden. Verantwortlich für Gewinn und Verlust, Budgets und Planung für die verschiedenen Dienstleistungen in den Bereichen Fertigung, Engineering und After-Sales.… mehr anzeigen
President and CEO
President and CEO
20102013 · 3 Jahre20102013 · 3 Jahre
Diese Position nach der Finanzkrise im Jahr 2009 einzunehmen, führte das Unternehmen zurück auf einen Weg des organischen Wachstums. Wir haben unsere europäischen Einheiten auf Mehrwertdienste umgestellt, den Ausbau des zweiten Standorts in China erfolgreich abgeschlossen und das Unternehmen mit einer durchschnittlichen jährlichen Wachstumsrate von 8 Prozent organisch ausgebaut. Ich führte die strategische und operative Leitung der Gruppe und deren acht Geschäftseinheiten mit insgesamt 3500 Mitarbeitern. Wir waren in Estland, der Schweiz, Finnland, der Slowakei, Schweden, China und Hongkong tätig.Diese Position nach der Finanzkrise im Jahr 2009 einzunehmen, führte das Unternehmen zurück auf einen Weg des organischen Wachstums. Wir haben unsere europäischen Einheiten auf Mehrwertdienste umgestellt, den Ausbau des zweiten Standorts in China erfolgreich abgeschlossen und das Unternehmen mit einer durchschnittlichen jährlichen Wachstumsrate von 8 Prozent organisch ausgebaut. Ich führte die strategische und operative Leitung der Gruppe und deren acht Geschäftseinheiten mit insgesamt 3500 Mitarbeitern. Wir waren in Estland, der Schweiz, Finnland, der Slowakei, Schweden, China und Hongkong tätig.… mehr anzeigen
Co-founder and Senior Vice President
Co-founder and Senior Vice President
20042010 · 6 Jahre20042010 · 6 Jahre
Enics wurde 2004 als Leveraged Management-Buy-Out ausgewählter Teile von Elcoteq gegründet. Von 2006 bis 2010 war ich als Senior Vice President, CRM sowie von 2004 bis 2006 als Vice President Business Development tätig. In diesem Zeitraum haben wir mehrere Akquisitionen und operative Erweiterungen durchgeführt und das Unternehmen erfolgreich von 116 Mio. EUR auf über 300 Mio. EUR ausgebaut. Berichterstattung an den CEO.Enics wurde 2004 als Leveraged Management-Buy-Out ausgewählter Teile von Elcoteq gegründet. Von 2006 bis 2010 war ich als Senior Vice President, CRM sowie von 2004 bis 2006 als Vice President Business Development tätig. In diesem Zeitraum haben wir mehrere Akquisitionen und operative Erweiterungen durchgeführt und das Unternehmen erfolgreich von 116 Mio. EUR auf über 300 Mio. EUR ausgebaut. Berichterstattung an den CEO.… mehr anzeigen
Logo von Elcoteq
Elcoteq
Elcoteq
5 Jahre 1 Monat5 Jahre 1 Monat
Director, Business Development Business Area Communication Network Equipment & Industrial Electronic
Director, Business Development Business Area Communication Network Equipment & Industrial Electronic
20022004 · 2 Jahre20022004 · 2 Jahre
Elcoteq trat dem Unternehmen auf dem Höhepunkt des Wachstums des Mobilfunkmarktes bei und erbrachte elektronische Fertigungsdienstleistungen für Mobiltelefone und Basisstationen von Kommunikationsnetzwerken. Wir verzeichneten ein sehr schnelles Umsatzwachstum, haben in einigen Jahren den Umsatz mehr als verdoppelt und betrieben ein Fertigungsnetzwerk in 16 Geschäftsbereichen in Japan, China, Estland, USA, Mexiko, Russland und Finnland. Während meiner Zeit bei Elcoteq hatte ich von 2002 bis 2004 verschiedene Positionen als Director, Business Development Business Area Communication Network Equipment und Industrial Electronic inne. Von 2000 bis 2002 Director, Sales Industrial Electronic und von 1999 bis 2000 als Account Manager, Geographical Area Europe.Elcoteq trat dem Unternehmen auf dem Höhepunkt des Wachstums des Mobilfunkmarktes bei und erbrachte elektronische Fertigungsdienstleistungen für Mobiltelefone und Basisstationen von Kommunikationsnetzwerken. Wir verzeichneten ein sehr schnelles Umsatzwachstum, haben in einigen Jahren den Umsatz mehr als verdoppelt und betrieben ein Fertigungsnetzwerk in 16 Geschäftsbereichen in Japan, China, Estland, USA, Mexiko, Russland und Finnland. Während meiner Zeit bei Elcoteq hatte ich von 2002 bis 2004 verschiedene Positionen als Director, Business Development Business Area Communication Network Equipment und Industrial Electronic inne. Von 2000 bis 2002 Director, Sales Industrial Electronic und von 1999 bis 2000 als Account Manager, Geographical Area Europe.… mehr anzeigen
Director, Sales Industrial Electronic
Director, Sales Industrial Electronic
20002002 · 2 Jahre20002002 · 2 Jahre
Account Manager, Geographical Area Europe
Account Manager, Geographical Area Europe
19992000 · 1 Jahr19992000 · 1 Jahr
Stephan Elektronik
Stephan Elektronik
Stephan Elektronik
13 Jahre 1 Monat13 Jahre 1 Monat
Head of Administration (Finance, HR, Legal, IT, Sales)
Head of Administration (Finance, HR, Legal, IT, Sales)
19911999 · 8 Jahre19911999 · 8 Jahre
Der Start in einem kleineren Familienunternehmen bot mir die großartige Gelegenheit, in allen Fachgebieten zu arbeiten, von Design, Beschaffung, Betrieb bis hin zu Recht und Finanzen. Wir haben das Unternehmen auf drei Standorte mit mehr als 1300 Mitarbeitern ausgebaut.Der Start in einem kleineren Familienunternehmen bot mir die großartige Gelegenheit, in allen Fachgebieten zu arbeiten, von Design, Beschaffung, Betrieb bis hin zu Recht und Finanzen. Wir haben das Unternehmen auf drei Standorte mit mehr als 1300 Mitarbeitern ausgebaut.… mehr anzeigen
Head Of Department, Operations and supply chain
Head Of Department, Operations and supply chain
19861991 · 5 Jahre19861991 · 5 Jahre
Holding several positions as department head within operations and supply chain in Germany, Poland and Switzerland. Reporting to the owner.Holding several positions as department head within operations and supply chain in Germany, Poland and Switzerland. Reporting to the owner.
AusbildungAusbildung
Logo von Universität Konstanz
Universität Konstanz
Universität Konstanz
Master's degree, Administration ScienceMaster's degree, Administration Science
1985199119851991
Collegium Mehrerau-Bernardi
Collegium Mehrerau-Bernardi
Collegium Mehrerau-Bernardi
1976198419761984
KenntnisseKenntnisse
Leadership
Leadership
Logo von Enics
Bestätigt von 5 Kolleg:innen bei EnicsBestätigt von 5 Kolleg:innen bei Enics
10 Kenntnisbestätigungen
10 Kenntnisbestätigungen
Bestätigen
Business Development
Business Development
Logo von Enics
Bestätigt von 5 Kolleg:innen bei EnicsBestätigt von 5 Kolleg:innen bei Enics
10 Kenntnisbestätigungen
10 Kenntnisbestätigungen
Bestätigen
Alle 12 Kenntnisse anzeigen
EmpfehlungenEmpfehlungen
Dirk Zimanky empfehlen
ErhaltenErhalten
ErteiltErteilt
Noch keine Informationen verfügbar
Noch keine Informationen verfügbar
Empfehlungen, die Dirk Zimanky erhält, erscheinen hier.Empfehlungen, die Dirk Zimanky erhält, erscheinen hier.
KurseKurse
Introduction to Digital Facilitation
Introduction to Digital Facilitation
Unternehmenslogo
Assoziiert mit adCura
Assoziiert mit adCura
SprachenSprachen
English
English
FließendFließend
French
French
Grundkenntnisse

View file

@ -0,0 +1,143 @@
Florian König
Direkter Kontakt1.
So geht Marketing-Automation - Quentn.com
Quentn.com GmbH
Pfinztal, Baden-Württemberg, Deutschland Kontaktinfo
247 Kontakte
Alex Vasileva, Tobias Müller und 1 weiterer gemeinsamer KontaktAlex Vasileva, Tobias Müller und 1 weiterer gemeinsamer Kontakt
Nachricht
Mehr
HighlightsHighlights
Unternehmenslogo
Florian König folgt Ihrem Unternehmen auf LinkedIn
Florian König folgt Ihrem Unternehmen auf LinkedIn
Florian König kennt Ihre Marke und ist möglicherweise empfänglicher für eine Kontaktaufnahme.Florian König kennt Ihre Marke und ist möglicherweise empfänglicher für eine Kontaktaufnahme.
Kostenlose Insights von LinkedIn Sales Navigator
Kostenlose Insights von LinkedIn Sales Navigator
Schalten Sie mehr Einblicke in Leads frei
Bessere Kontaktaufnahme mit vertriebsrelevanten Insights
Sales Navigator für 0 CHF erneut testen
1 Probemonat mit Support rund um die Uhr. Sie können jederzeit kündigen. Sie erhalten 7 Tage vor Ablauf der Probeversion eine entsprechende Erinnerung.
AktivitätenAktivitäten
246 Follower:innen246 Follower:innen
4 „Beiträge“-Beiträge wurden geladen
Profilfoto von Florian König
Florian König hat dies repostet
edisconetedisconet
240 Follower:innen240 Follower:innen
2 Monate • vor 2 Monaten • Alle Mitglieder und Nicht-Mitglieder von LinkedIn
Silent knowledge that never makes it into meetings or manuals is a part of every organisation. At edisconet, we magnify this hidden knowledge and turn it into useful insights.
It's time to give your team's unspoken expertise the spotlight it deserves.
https://edisconet.com
… mehr
Größere Bilddarstellung aktivieren,
Keine alternative Textbeschreibung für dieses Bild vorhanden
Größere Bilddarstellung aktivieren,
like
11
2 Kommentare
2 Reposts
Profilfoto von Florian König
Florian König hat dies repostet
MemoroMemoro
219 Follower:innen219 Follower:innen
1 Jahr • Bearbeitet • vor 1 Jahr • Bearbeitet • Alle Mitglieder und Nicht-Mitglieder von LinkedIn
📢 Unser größtes App-Update bisher 🚀
✨ Viele neue Funktionen:
Spezielle Modi: Verschiedene Modi helfen euch, spezielle Aufgaben zu erledigen, z.B. ein Formular auszufüllen, eine Mail zu formulieren oder eine Besprechung aufzunehmen. Aktuell sind Modi in den Bereichen Pflege, Handwerk und Bau, Büro, Universität, Tagebuch und Journalismus verfügbar.
Checklisten: Jeder Modus hat seine eigene Checkliste mit Tipps, um strukturierte Aufnahmen zu erstellen und wichtige Punkte nicht zu vergessen.
26 Sprachen: Memoro kann jetzt in 26 Sprachen zuhören und mitschreiben inklusive eingebauter Übersetzung. (Deutsch, Schwiizerdütsch, Österreichisch, Englisch, Niederländisch, Französisch, Italienisch, Spanisch, Schwedisch, Norwegisch, Rumänisch, Griechisch, Ägyptisches Arabisch (Masri), Türkisch, Russisch, Ukrainisch, Ungarisch, Hindi, Chinesisch (Zhōngwén), Koreanisch, Indonesisch, Vietnamesisch)
Wichtig: Um weiterhin alle Funktionen von Memoro nutzen zu können, ist ein Upgrade auf die neueste Version erforderlich. Bitte deinstalliert eure aktuelle Version und installiert die neue Version aus dem Play Store oder App Store.
Hier findet ihr die App für Android im Play Store: https://lnkd.in/dhszvBck
und hier für Apple im App Store: https://lnkd.in/d4Kh58aj
Wir freuen uns darauf, dass ihr die neuen Funktionen von Memoro ausprobiert und sind gespannt auf euer Feedback! 🌍💬
Hashtag#Memoro Hashtag#Update Hashtag#NeueFunktionen Hashtag#Produktivität Hashtag#AppUpdate Hashtag#Sprachübersetzung Hashtag#Dokumentation
… mehr
Größere Bilddarstellung aktivieren,
Memoro, App Version 1.5, Update, Modi, Modes
Größere Bilddarstellung aktivieren,
likelovecelebrate
18
1 Kommentar
6 Reposts
Alle Beiträge anzeigen
BerufserfahrungBerufserfahrung
Logo von edisconet
Vertriebsmanager
Vertriebsmanager
edisconet · Selbstständigedisconet · Selbstständig
Sept. 2024Heute · 1 JahrSept. 2024Heute · 1 Jahr
Schweiz · RemoteSchweiz · Remote
Logo von Quentn.com GmbH
Partnermanager
Partnermanager
Quentn.com GmbH · SelbstständigQuentn.com GmbH · Selbstständig
Nov. 2023Heute · 1 Jahr 10 MonateNov. 2023Heute · 1 Jahr 10 Monate
Logo von OWNERMEETING
Geschäftsführer
Geschäftsführer
OWNERMEETING · SelbstständigOWNERMEETING · Selbstständig
Jan. 2021Heute · 4 Jahre 8 MonateJan. 2021Heute · 4 Jahre 8 Monate
Pfinztal, Baden-Württemberg, Deutschland · Vor OrtPfinztal, Baden-Württemberg, Deutschland · Vor Ort
Logo von doxx-on systems GmbH
Vertriebsmitarbeiter
Vertriebsmitarbeiter
doxx-on systems GmbH · Vollzeitdoxx-on systems GmbH · Vollzeit
Jan. 2023Nov. 2023 · 11 MonateJan. 2023Nov. 2023 · 11 Monate
Ettlingen, Baden-Württemberg, Deutschland · RemoteEttlingen, Baden-Württemberg, Deutschland · Remote
Logo von Erhardt Gruppe
Key-Account-Manager
Key-Account-Manager
Erhardt BüroweltErhardt Bürowelt
Juli 2007Dez. 2022 · 15 Jahre 6 MonateJuli 2007Dez. 2022 · 15 Jahre 6 Monate
Alle 9 Berufserfahrungen anzeigen
KenntnisseKenntnisse
Microsoft Office
Microsoft Office
1 Kenntnisbestätigung
1 Kenntnisbestätigung
Bestätigen
Kundendienst
Kundendienst
1 Kenntnisbestätigung
1 Kenntnisbestätigung
Bestätigen
Alle 11 Kenntnisse anzeigen
InteressenInteressen
UnternehmenUnternehmen
GruppenGruppen
NewsletterNewsletter
Logo von Greenpeace
Greenpeace
Greenpeace
635.071 Follower:innen635.071 Follower:innen
Folgen
Logo von World Wildlife Fund
World Wildlife Fund
World Wildlife Fund
408.972 Follower:innen408.972 Follower:innen
Folgen

View file

@ -0,0 +1,164 @@
Lucas Mag
Direkter Kontakt1.
Informatikspezialist Datensicherung bei Universität Zürich | University of Zurich
Universität Zürich | University of Zurich
Elektronikschule Tettnang
Jestetten, Baden-Württemberg, Deutschland Kontaktinfo
186 Kontakte
Alex Vasileva, Tobias Müller und 5 weitere gemeinsame KontakteAlex Vasileva, Tobias Müller und 5 weitere gemeinsame Kontakte
Nachricht
Mehr
HighlightsHighlights
Unternehmenslogo
Lucas Mag folgt Ihrem Unternehmen auf LinkedIn
Lucas Mag folgt Ihrem Unternehmen auf LinkedIn
Lucas Mag kennt Ihre Marke und ist möglicherweise empfänglicher für eine Kontaktaufnahme.Lucas Mag kennt Ihre Marke und ist möglicherweise empfänglicher für eine Kontaktaufnahme.
Kostenlose Insights von LinkedIn Sales Navigator
Kostenlose Insights von LinkedIn Sales Navigator
Schalten Sie mehr Einblicke in Leads frei
Bessere Kontaktaufnahme mit vertriebsrelevanten Insights
Sales Navigator für 0 CHF erneut testen
1 Probemonat mit Support rund um die Uhr. Sie können jederzeit kündigen. Sie erhalten 7 Tage vor Ablauf der Probeversion eine entsprechende Erinnerung.
AktivitätenAktivitäten
186 Follower:innen186 Follower:innen
9 „Beiträge“-Beiträge wurden geladen
Profilfoto von Lucas Mag
Lucas Mag hat dies repostet
Link zur Grafik von Stephan Lienhard anzeigen
Stephan LienhardStephan Lienhard
• 2.Verifiziert • 2.
ICT Informatikspezialist an der Universität Zürich | IT-Architektur, Server, BackupICT Informatikspezialist an der Universität Zürich | IT-Architektur, Server, Backup
10 Monate • vor 10 Monaten • Alle Mitglieder und Nicht-Mitglieder von LinkedIn
Wir suchen Verstärkung im Team :-) Bei Fragen gerne Melden!
https://lnkd.in/dPrW3kkD
UZH: ICT System Engineer
jobs.uzh.ch
like
8
2 Reposts
Profilfoto von Lucas Mag
Lucas Mag hat dies repostet
Link zur Grafik von Marco Fernandez anzeigen
Marco FernandezMarco Fernandez
• 2.Premium • 2.
Manager Presales - ACH Switzerland and Austria @ Veeam Software | Technical SalesManager Presales - ACH Switzerland and Austria @ Veeam Software | Technical Sales
10 Monate • vor 10 Monaten • Alle Mitglieder und Nicht-Mitglieder von LinkedIn
At yesterday's Meet the Architect with our customers and partners, the Universität Zürich | University of Zurich demonstrated how they use Veeam Software and the benefits it provides. We would like to thank all our enterprise customers partners who attended and look forward to the next Meet the Architect in Q1 2025.
Many thanks to Lucas Mag for the excellent and detailed presentation.
Universität Zürich | University of Zurich, Veeam Software
… mehr
Größere Bilddarstellung aktivieren,
Keine alternative Textbeschreibung für dieses Bild vorhanden
Größere Bilddarstellung aktivieren,
likecelebrate
37
1 Kommentar
1 Repost
Alle Beiträge anzeigen
BerufserfahrungBerufserfahrung
Logo von Universität Zürich | University of Zurich
Informatikspezialist Datensicherung
Informatikspezialist Datensicherung
Universität Zürich | University of Zurich · VollzeitUniversität Zürich | University of Zurich · Vollzeit
Nov. 2022Heute · 2 Jahre 10 MonateNov. 2022Heute · 2 Jahre 10 Monate
Zürich, SchweizZürich, Schweiz
Inhaber
Inhaber
Inhaber
Haus & Heizungsautomatisierung · SelbstständigHaus & Heizungsautomatisierung · Selbstständig
Aug. 2022Apr. 2025 · 2 Jahre 9 MonateAug. 2022Apr. 2025 · 2 Jahre 9 Monate
Stühlingen, Baden-Württemberg, DeutschlandStühlingen, Baden-Württemberg, Deutschland
IT Dienstleistungen im Hausautomatisierungs- und Heizungsautomatisierungsbereich.
Ich helfe Ihnen den effizienten Weg zum autonomen Haus zu realisieren.
Das Thema Energieunabhängigkeit und effizientes Heizen war noch nie gefragter und unübersichtlicher. Profitieren auch Sie.IT Dienstleistungen im Hausautomatisierungs- und Heizungsautomatisierungsbereich. Ich helfe Ihnen den effizienten Weg zum autonomen Haus zu realisieren. Das Thema Energieunabhängigkeit und effizientes Heizen war noch nie gefragter und unübersichtlicher. Profitieren auch Sie.… mehr anzeigen
Erneuerbare Energien und IT-Beratung + 4 Kenntnisse
Logo von Bechtle
Bechtle
Bechtle
4 Jahre 3 Monate4 Jahre 3 Monate
System Engineer Backup
System Engineer Backup
VollzeitVollzeit
Juli 2021Nov. 2022 · 1 Jahr 5 MonateJuli 2021Nov. 2022 · 1 Jahr 5 Monate
Fachinformatiker Systemintegration
Fachinformatiker Systemintegration
AzubiAzubi
Sept. 2018Juli 2021 · 2 Jahre 11 MonateSept. 2018Juli 2021 · 2 Jahre 11 Monate
Friedrichshafen, Baden-Württemberg, DeutschlandFriedrichshafen, Baden-Württemberg, Deutschland
AusbildungAusbildung
Logo von CVJM
FSJ
FSJ
CVJM · Freiwilliges Soziales JahrCVJM · Freiwilliges Soziales Jahr
Aug. 2017März 2018 · 8 MonateAug. 2017März 2018 · 8 Monate
Borkum, Niedersachsen, DeutschlandBorkum, Niedersachsen, Deutschland
AusbildungAusbildung
Elektronikschule Tettnang
Elektronikschule Tettnang
Fachinformatiker Systemintegration, InformatikFachinformatiker Systemintegration, Informatik
2018202120182021
Naturwissenschaftlich-Technische Akademie Isny
Naturwissenschaftlich-Technische Akademie Isny
Naturwissenschaftlich-Technische Akademie Isny
Assistent für Informations & Kommunikationstechnik, InformatikAssistent für Informations & Kommunikationstechnik, Informatik
2015201720152017
KenntnisseKenntnisse
IT-Betrieb
IT-Betrieb
LinkedIn Kenntnistest bestandenLinkedIn Kenntnistest bestanden
Bestätigen
IT-Beratung
IT-Beratung
Inhaber bei Haus & Heizungsautomatisierung Inhaber bei Haus & Heizungsautomatisierung
Bestätigen
Alle 10 Kenntnisse anzeigen
KurseKurse
VMCEA
VMCEA
Unternehmenslogo
Assoziiert mit Bechtle
Assoziiert mit Bechtle
Veeam Certified Engineer
Veeam Certified Engineer
VMCEVMCE
Unternehmenslogo
Assoziiert mit Bechtle
Assoziiert mit Bechtle
OrganisationenOrganisationen
Feuerwehr
Feuerwehr
Mitglied des Feuerwehrausschuss, Feuerwehrmann · März 2016Juli 2022Mitglied des Feuerwehrausschuss, Feuerwehrmann · März 2016Juli 2022
InteressenInteressen
UnternehmenUnternehmen
GruppenGruppen
NewsletterNewsletter
Hochschulen/BerufsschulenHochschulen/Berufsschulen
Logo von IBM
IBM
IBM
18.555.838 Follower:innen18.555.838 Follower:innen
Folgen
Logo von Hewlett Packard Enterprise
Hewlett Packard Enterprise
Hewlett Packard Enterprise
3.673.541 Follower:innen3.673.541 Follower:innen
Folgen

View file

@ -0,0 +1,178 @@
Nils Weiser
test
Nils Weiser
Direkter Kontakt1.
Co-Founder Codify AG, Software Developer
Codify
HTWG Hochschule Konstanz Technik, Wirtschaft und Gestaltung
Kreuzlingen, Thurgau, Schweiz Kontaktinfo
313 Kontakte
Tobias Müller, Jan Kaiser und 20 weitere gemeinsame KontakteTobias Müller, Jan Kaiser und 20 weitere gemeinsame Kontakte
Nachricht
Mehr
HighlightsHighlights
Unternehmenslogo
Nils Weiser folgt Ihrem Unternehmen auf LinkedIn
Nils Weiser folgt Ihrem Unternehmen auf LinkedIn
Nils Weiser kennt Ihre Marke und ist möglicherweise empfänglicher für eine Kontaktaufnahme.Nils Weiser kennt Ihre Marke und ist möglicherweise empfänglicher für eine Kontaktaufnahme.
Kostenlose Insights von LinkedIn Sales Navigator
Kostenlose Insights von LinkedIn Sales Navigator
Schalten Sie mehr Einblicke in Leads frei
Bessere Kontaktaufnahme mit vertriebsrelevanten Insights
Sales Navigator für 0 CHF erneut testen
1 Probemonat mit Support rund um die Uhr. Sie können jederzeit kündigen. Sie erhalten 7 Tage vor Ablauf der Probeversion eine entsprechende Erinnerung.
AktivitätenAktivitäten
319 Follower:innen319 Follower:innen
Beiträge
Kommentare
Bilder
9 „Beiträge“-Beiträge wurden geladen
Link zur Grafik von Nils Weiser anzeigen
Nils WeiserNils Weiser
• 1.1.
Co-Founder Codify AG, Software DeveloperCo-Founder Codify AG, Software Developer
3 Monate • Bearbeitet • vor 3 Monaten • Bearbeitet • Alle Mitglieder und Nicht-Mitglieder von LinkedIn
Just watched an insightful video from Y Combinator with Tom on "vibe coding" with AI tools. Here are the game-changing tips I found most valuable:
1. Start with a comprehensive plan before diving into code - work section by section
2. Use version control religiously (Git is your friend!)
3. Write high-level integration tests to catch regressions
4. For bugs, simply copy-paste error messages directly to the LLM
5. Create detailed instruction files for your AI coding assistant
6. Choose tech stacks with established conventions (like Rails) for better results
Personal experience:
when running into error loops of llm calls, stop it, and tell explicitly to use the browser tool to get more context.
We also use a tech stack which is well established (Frontend: react, backend: express).
Writing tests is crucial, especially when Windsurf come with a huge wave of changes to your code base 😃
Bonus: for security you can prompt it to act in a red/blue team manner and should audit your code, this should prevent the api key leaks im reading recently on linkedIn with vibe coded products
… mehr
Größere Bilddarstellung aktivieren,
Keine alternative Textbeschreibung für dieses Bild vorhanden
Größere Bilddarstellung aktivieren,
likeinsightful
3
like
Link zur Grafik von Nils Weiser anzeigen
Nils WeiserNils Weiser
• 1.1.
Co-Founder Codify AG, Software DeveloperCo-Founder Codify AG, Software Developer
5 Monate • Bearbeitet • vor 5 Monaten • Bearbeitet • Alle Mitglieder und Nicht-Mitglieder von LinkedIn
MCP Tools für IDE's!
MCP ist der Standard, um AI zu enhancen, und ist jetzt auch für die meisten IDE's verfügbar!
Ich habe heute BraveSearch integriert, damit mein LLM immer auf die neuesten Informationen zugreifen kann ganz ohne lästiges Hin- und Herspringen zwischen Tools.
Nutzt ihr schon MCP Tools? Welche findet ihr am sinnvollsten?
Open Source:
https://smithery.ai/
https://glama.ai/mcp/tools
Hashtag#MCP Hashtag#AI Hashtag#IDEs Hashtag#OpenSource Hashtag#BraveSearch
… mehr
Größere Bilddarstellung aktivieren,
Keine alternative Textbeschreibung für dieses Bild vorhanden
Größere Bilddarstellung aktivieren,
likeinsightful
9
2 Kommentare
like
Alle Beiträge anzeigen
BerufserfahrungBerufserfahrung
Logo von Codify
Co-Founder Codify AG, Software Developer
Co-Founder Codify AG, Software Developer
Codify · VollzeitCodify · Vollzeit
Feb. 2019Heute · 6 Jahre 7 MonateFeb. 2019Heute · 6 Jahre 7 Monate
Kreuzlingen, Thurgau, SchweizKreuzlingen, Thurgau, Schweiz
Logo von BMT - Business meets Technology AG
Full-Stack-Entwickler
Full-Stack-Entwickler
BMT Business meets Technology AG · VollzeitBMT Business meets Technology AG · Vollzeit
März 2018Jan. 2019 · 11 MonateMärz 2018Jan. 2019 · 11 Monate
Logo von T-Systems Schweiz
Studentischer Entwickler
Studentischer Entwickler
T-Systems Schweiz · TeilzeitT-Systems Schweiz · Teilzeit
Mai 2017Sept. 2017 · 5 MonateMai 2017Sept. 2017 · 5 Monate
Logo von timeghost
Web-Entwickler
Web-Entwickler
Köllisch Gesellschaft für Prozessmanagement mbH · PraktikumKöllisch Gesellschaft für Prozessmanagement mbH · Praktikum
Juli 2014Juni 2015 · 1 JahrJuli 2014Juni 2015 · 1 Jahr
Konstanz, Baden-Württemberg, DeutschlandKonstanz, Baden-Württemberg, Deutschland
AusbildungAusbildung
Logo von HTWG Hochschule Konstanz Technik, Wirtschaft und Gestaltung
HTWG Hochschule Konstanz Technik, Wirtschaft und Gestaltung
HTWG Hochschule Konstanz Technik, Wirtschaft und Gestaltung
InformatikInformatik
Bescheinigungen und ZertifikateBescheinigungen und Zertifikate
Logo von CrewAI
Multi AI Agent Systems
Multi AI Agent Systems
CrewAICrewAI
Ausgestellt: Aug. 2024Ausgestellt: Aug. 2024
AI Agent
Nils Weiser_badge.pdfNils Weiser_badge.pdf
Learn AI Agents
Learn AI Agents
Learn AI Agents
ScrimbaScrimba
Ausgestellt: Juni 2024Ausgestellt: Juni 2024
Zertifikats-ID: 2QEZCHUJ2DSTZertifikats-ID: 2QEZCHUJ2DST
Nachweis anzeigen
Alle 4 Bescheinigungen und Zertifikate anzeigen
KenntnisseKenntnisse
AI Agent
AI Agent
Unternehmenslogo
Multi AI Agent SystemsMulti AI Agent Systems
Bestätigen
REST-API
REST-API
LinkedIn Kenntnistest bestandenLinkedIn Kenntnistest bestanden
Bestätigen
Alle 11 Kenntnisse anzeigen
InteressenInteressen
UnternehmenUnternehmen
GruppenGruppen
NewsletterNewsletter
Hochschulen/BerufsschulenHochschulen/Berufsschulen
Logo von Microsoft
Microsoft
Microsoft
26.068.419 Follower:innen26.068.419 Follower:innen
Folgen
Logo von Google
Google
Google
38.360.676 Follower:innen

View file

@ -0,0 +1,183 @@
Till Schneider
er/ihm Verifizierungs-Badge hinzufügen
Expand your thinking - Memoro.ai
Memoro
Tägerwilen, Thurgau, Schweiz Kontaktinfo
500+ Kontakte
Offen für
Profil ergänzen
Profil verbessern
Ressourcen
Zeigen Sie, dass Sie offen für Jobangebote sind. Sie bestimmen, wer diesen Hinweis sieht.
Loslegen
Sie stellen ein? Teilen Sie Ihre Stellenanzeigen und ziehen Sie qualifizierte Talente an.
Loslegen
Präsentieren Sie Ihre Serviceleistungen in einem eigenen Abschnitt in Ihrem Profil, damit Ihr Unternehmen leichter zu finden ist.
Loslegen
Vorschläge für SieVorschläge für Sie
Nur für Sie sichtbar Nur für Sie sichtbar
Schildern Sie, wer Sie sind, wie Sie ticken und was Sie beruflich auszeichnetSchildern Sie, wer Sie sind, wie Sie ticken und was Sie beruflich auszeichnet
Die Profile von Mitgliedern mit einer Zusammenfassung werden bis zu 3,9 Mal häufiger angesehen.
Die Profile von Mitgliedern mit einer Zusammenfassung werden bis zu 3,9 Mal häufiger angesehen.
Zusammenfassung hinzufügen
AnalysenAnalysen
Nur für Sie sichtbar Nur für Sie sichtbar
43 Profilansichten
43 Profilansichten
Finden Sie heraus, wer Ihr Profil besucht hat.Finden Sie heraus, wer Ihr Profil besucht hat.
4 Beitrag-Impressions
4 Beitrag-Impressions
Sehen Sie sich an, wer auf Ihre Beiträge reagiert hat.Sehen Sie sich an, wer auf Ihre Beiträge reagiert hat.
Vergangene 7 TageVergangene 7 Tage
48 Mal in Suchen erschienen
48 Mal in Suchen erschienen
Finden Sie heraus, wie oft Sie in Suchen angezeigt wurden.Finden Sie heraus, wie oft Sie in Suchen angezeigt wurden.
Alle Analysen anzeigen
AktivitätenAktivitäten
601 Follower:innen601 Follower:innen
Beitrag erstellen
Beiträge
Kommentare
Artikel
9 „Beiträge“-Beiträge wurden geladen
Link zur Grafik von Till Schneider anzeigen
Till SchneiderTill Schneider
• SieSie
Expand your thinking - Memoro.aiExpand your thinking - Memoro.ai
3 Monate • vor 3 Monaten • Alle Mitglieder und Nicht-Mitglieder von LinkedIn
Ist KI der Kreativitätskiller? Warum der Durchschnitt nicht reicht und unsere Zukunft von menschlicher Intuition, Geschmack und ja sogar Fehlern abhängt. Ein Plädoyer für weniger digitale Glätte und mehr echtes Leben.
… mehr
Jenseits des Durchschnitts: Warum unsere digitale Zukunft mehr menschliches Chaos braucht
Till Schneider
like
7
1 Kommentar
Profilfoto von Till Schneider
Till Schneider hat dies repostet
MemoroMemoro
219 Follower:innen219 Follower:innen
6 Monate • vor 6 Monaten • Alle Mitglieder und Nicht-Mitglieder von LinkedIn
Wir wünschen Euch allen ein frohes Neues 2025 - vor Allem das "Neu" stand bei uns die letzten zwei Monate an erster Stelle, da wir mit Hochdruck an Memoro 2.0 arbeiten.
Till Schneider und Tobias Müller waren dazu im Podcast programmier.bar zu Besuch und haben über Ihre Entwicklungserfahrungen berichtet: Low Code: Freiheit oder Limitierung?
Im Gespräch erzählen wir:
Low Code Boost: Wie wir dank Low Code unglaublich schnell prototypen und iterieren konnten.
Die Grenzen von Low Code: Warum wir uns entschieden haben, auf einen anderen Stack zu wechseln.
Unsere Erkenntnisse: Low Code ist genial für den schnellen Start aber wenn es ums Skalieren und eine perfekte User Experience geht, braucht es Flexibilität und Kontrolle.
Reinhören lohnt sich! Die ganze Folge gibts hier: https://lnkd.in/eYcd8kRq
Neugierig auf Memoro? Hier gehts zur App: https://lnkd.in/eazwPffG
Hashtag#LowCode Hashtag#NoCode Hashtag#Startup Hashtag#Produktentwicklung Hashtag#Podcast Hashtag#App Hashtag#Innovation Hashtag#Memoro Hashtag#Tools Hashtag#Digitalisierung
… mehr
168 Ig Fb Low Code Mit Till Schneider & Tobias Müller
Deep Dive 168 Low Code mit Till Schnei... | programmier.bar
programmier.bar
likecelebrate
22
1 Repost
Alle Beiträge anzeigen
BerufserfahrungBerufserfahrung
Logo von Memoro
Geschäftsführer, Founder
Geschäftsführer, Founder
Memoro · VollzeitMemoro · Vollzeit
Juli 2023Heute · 2 Jahre 2 MonateJuli 2023Heute · 2 Jahre 2 Monate
Konstanz, Baden-Württemberg, Deutschland · HybridKonstanz, Baden-Württemberg, Deutschland · Hybrid
Start-up-Unternehmen und Softwareentwicklung + 7 Kenntnisse
Filmemacher
Filmemacher
Filmemacher
Till Jakob · SelbstständigTill Jakob · Selbstständig
Juli 2011Heute · 14 Jahre 2 MonateJuli 2011Heute · 14 Jahre 2 Monate
Tägerwilen, Thurgau, SchweizTägerwilen, Thurgau, Schweiz
Kameramann und Storytelling + 3 Kenntnisse
Logo von inlume
inlume
inlume
Vollzeit · 2 Jahre 11 MonateVollzeit · 2 Jahre 11 Monate
Tägerwilen, Thurgau, SchweizTägerwilen, Thurgau, Schweiz
Geschäftsführer
Geschäftsführer
Okt. 2020Aug. 2023 · 2 Jahre 11 MonateOkt. 2020Aug. 2023 · 2 Jahre 11 Monate
UX-Design
Co-Founder
Co-Founder
Okt. 2020Aug. 2023 · 2 Jahre 11 MonateOkt. 2020Aug. 2023 · 2 Jahre 11 Monate
Start-up-Unternehmen
AusbildungAusbildung
Logo von Duale Hochschule Baden-Württemberg
Duale Hochschule Baden-Württemberg
Duale Hochschule Baden-Württemberg
Bachelor of Arts - BA, MediendesignBachelor of Arts - BA, Mediendesign
2017202020172020
KenntnisseKenntnisse
Branding
Branding
Unternehmenslogo
Geschäftsführer, Founder bei MemoroGeschäftsführer, Founder bei Memoro
UX-Design
UX-Design
Unternehmenslogo
2 Erfahrungen bei Memoro und 1 weiteren Unternehmen2 Erfahrungen bei Memoro und 1 weiteren Unternehmen
Alle 21 Kenntnisse anzeigen
InteressenInteressen
Top VoicesTop Voices
UnternehmenUnternehmen
GruppenGruppen
NewsletterNewsletter
Hochschulen/BerufsschulenHochschulen/Berufsschulen
Lex Fridman
Lex Fridman
Lex Fridman
· 3.Kontakt 3. Grades
Research Scientist, MITResearch Scientist, MIT
1.709.773 Follower:innen1.709.773 Follower:innen
Follower:in
Simon Sinek
Simon Sinek
Simon Sinek
· 3.Kontakt 3. Grades
Optimist, New York Times bestselling author of "Start with Why" and "The Infinite Game", and founder of The Optimism CompanyOptimist, New York Times bestselling author of "Start with Why" and "The Infinite Game", and founder of The Optimism Company
8.629.584 Follower:innen

View file

@ -0,0 +1,286 @@
Tobias Müller
er/ihm Direkter Kontakt1.
Expand your thinking - Memoro.ai
Memoro
Ispringen, Baden-Württemberg, Deutschland Kontaktinfo
82 Kontakte
Alex Vasileva, Gernot Doriat und 56 weitere gemeinsame KontakteAlex Vasileva, Gernot Doriat und 56 weitere gemeinsame Kontakte
Nachricht
Mehr
HighlightsHighlights
Logo von Memoro
Sie sind beide bei Memoro beschäftigt.
Sie sind beide bei Memoro beschäftigt.
Tobias Müller hat 1 Monat vor Ihnen bei Memoro angefangen.Tobias Müller hat 1 Monat vor Ihnen bei Memoro angefangen.
Nachricht
InfoInfo
Hello out there !
My name is Tobias Müller and I would like to introduce myself briefly.
I define myself as a "full-stack developer" and really have a soft spot for everything new and innovative.
Influenced by my professional past and the foundation of a start-up, I have a strong independent way of thinking and a lot of passion in development.
Two principles are important in my life:
First, always try to broaden your horizon.
And second, always go one step further.
I'm really looking forward to hearing from you.
Best regards
Tobias MüllerHello out there ! My name is Tobias Müller and I would like to introduce myself briefly. I define myself as a "full-stack developer" and really have a soft spot for everything new and innovative. Influenced by my professional past and the foundation of a start-up, I have a strong independent way of thinking and a lot of passion in development. Two principles are important in my life: First, always try to broaden your horizon. And second, always go one step further. I'm really looking forward to hearing from you. Best regards Tobias Müller… mehr anzeigen
ServiceleistungenServiceleistungen
Webentwicklung • Entwicklung kundenspezifischer Software • App-Entwicklung • App-Entwicklung für Mobilgeräte • Entwicklung von Cloud-AnwendungenWebentwicklung • Entwicklung kundenspezifischer Software • App-Entwicklung • App-Entwicklung für Mobilgeräte • Entwicklung von Cloud-Anwendungen
Serviceleistungen anfordern
Alle Serviceleistungen anzeigen
AktivitätenAktivitäten
87 Follower:innen87 Follower:innen
9 „Beiträge“-Beiträge wurden geladen
Link zur Grafik von Tobias Müller anzeigen
Tobias MüllerTobias Müller
• 1.1.
Expand your thinking - Memoro.aiExpand your thinking - Memoro.ai
10 Monate • vor 10 Monaten • Alle Mitglieder und Nicht-Mitglieder von LinkedIn
🔥♥️🪩🎉🥳🎈🥂🍹🍻🎤
MemoroMemoro
219 Follower:innen219 Follower:innen
Ein Jahr Memoro und 32 Jahre Tobi! 🎉🎂 Am Wochenende haben wir den Geburtstag unseres Mitgründers und IT-Zauberers Tobi gefeiert und gleichzeitig auf ein fantastisches erstes Jahr mit Memoro angestoßen! 🥳✨
In bester Gesellschaft, umgeben von unseren Lieblingsmenschen, haben wir ein unvergessliches Wochenende voller Spannung, Spaß und positiver Emotionen verbracht. 🤩🥂 Mit Memoro möchten wir mehr Raum für das Wichtigste im Leben schaffen die kostbare Zeit mit den Menschen, die unsere Arbeit und unser Leben bereichern. 💖🌟
Alles Gute zum Geburtstag, Tobi! 🎂🎈 Auf viele weitere Jahre voller Magie und gemeinsamer Erinnerungen! 🎊
Dieses Wochenende haben wir viele tolle Gespräche geführt und natürlich mit Memoro festgehalten.
Lade Dir Memoro kostenlos herunter: https://lnkd.in/eazwPffG
Tobias Müller Till Schneider Dirk Zimanky Ludwig Kaftan Albashir Mohamed Jose Ignacio Campos Domínguez
… mehr
Größere Bilddarstellung aktivieren,
Keine alternative Textbeschreibung für dieses Bild vorhanden
1/10
Größere Bilddarstellung aktivieren,
likelovecelebrate
9
1 Kommentar
Profilfoto von Tobias Müller
Tobias Müller hat dies repostet
MemoroMemoro
219 Follower:innen219 Follower:innen
1 Jahr • Bearbeitet • vor 1 Jahr • Bearbeitet • Alle Mitglieder und Nicht-Mitglieder von LinkedIn
🚀 Innovationsschub beim BW Startup Summit in Stuttgart!
Unser Team tauchte ein in eine Welt voller kreativer Ideen - von Mode bis Medizin. Highlights:
- Spannender Ideenaustausch mit Gleichgesinnten
- Till's Präsentation von Memoro auf dem Startup Festival
- Networking beim Kicker-Match (Fußballfieber inklusive!)
Unsere Key Learnings:
- Alex: "Die Startup-Welt ist bunt. Leidenschaft und Kreativität sind der Schlüssel zum Erfolg."
- Till: "Faszinierende Spezialisierungen. Mehr Vernetzung könnte Synergien schaffen."
- Tobi: "Startup-Events sind Magneten für inspirierende Gespräche."
Danke an alle Inspirationsquellen, besonders Julia Zimmermann, Timon Sutter (Eversion), Antje Freyth, Robert Rapp, Jan Marvin Wickert, Simone Harr, Dmitriy Sevkovych, Ira Romy Alice Stoll, Jürke Hartz (myScribe) und Kolja B..
, mit denen wir tolle Gespräche führen konnten, die natürlich mit Memoro festgehalten wurden. Lade Memoro kostenlos herunter: https://lnkd.in/eazwPffG
Was war euer letztes Startup-Event? Teilt eure Erfahrungen in den Kommentaren!
Hashtag#BWStartupSummit Hashtag#Innovation Hashtag#Networking Hashtag#StartupLife
… mehr
Größere Bilddarstellung aktivieren,
Keine alternative Textbeschreibung für dieses Bild vorhanden
1/4
Größere Bilddarstellung aktivieren,
likecelebrate
51
3 Kommentare
4 Reposts
Alle Beiträge anzeigen
BerufserfahrungBerufserfahrung
Logo von Memoro
Founder
Founder
Memoro · VollzeitMemoro · Vollzeit
Juni 2023Heute · 2 Jahre 3 MonateJuni 2023Heute · 2 Jahre 3 Monate
Founder bei MemoroFounder bei Memoro
Freelancer
Freelancer
Freelancer
Tobias Müller Software Entwicklung · SelbstständigTobias Müller Software Entwicklung · Selbstständig
Juni 2021Juni 2023 · 2 Jahre 1 MonatJuni 2021Juni 2023 · 2 Jahre 1 Monat
UI und JavaScript + 22 Kenntnisse
Backend Entwicklung
Backend Entwicklung
Backend Entwicklung
DEKRA SE · FreiberuflichDEKRA SE · Freiberuflich
Nov. 2021Aug. 2022 · 10 MonateNov. 2021Aug. 2022 · 10 Monate
Global CMS Redesign
• Projekt Initiierung mit npm workspaces
• Backend Entwicklung mit Nest.js
• Planung der Azure Cloud Architektur
• Cloud Migration zu Azure Cloud
• Einrichten der Azure DevOps Pipeline (CI/CD)
Knowledge:
TypeScript, Node.js, npm workspaces, Docker, Cloud, Agile, CI/CD
Products:
JetBrains, Docker, Azure Cloud, Azure DevOps, Conflunce, JIRA, Bitbucket, Git, Notion, Ubuntu, Nest.js, Elastic Search, OWASPGlobal CMS Redesign • Projekt Initiierung mit npm workspaces • Backend Entwicklung mit Nest.js • Planung der Azure Cloud Architektur • Cloud Migration zu Azure Cloud • Einrichten der Azure DevOps Pipeline (CI/CD) Knowledge: TypeScript, Node.js, npm workspaces, Docker, Cloud, Agile, CI/CD Products: JetBrains, Docker, Azure Cloud, Azure DevOps, Conflunce, JIRA, Bitbucket, Git, Notion, Ubuntu, Nest.js, Elastic Search, OWASP… mehr anzeigen
JavaScript und Databases + 15 Kenntnisse
Startup Founder
Startup Founder
Startup Founder
compan.one · Vollzeitcompan.one · Vollzeit
Sept. 2020Okt. 2021 · 1 Jahr 2 MonateSept. 2020Okt. 2021 · 1 Jahr 2 Monate
Software für Führungskräfte
• Begleitung des Projektes als Teil des Design-Thinking-Teams
• Einsatz verschiedenster Prototypen (Mockup, Click-Dummy, concierge MVP)
• Entwicklung einer Progressiv Web App inkl. CMS Backend
• Fokus auf UsablititySoftware für Führungskräfte • Begleitung des Projektes als Teil des Design-Thinking-Teams • Einsatz verschiedenster Prototypen (Mockup, Click-Dummy, concierge MVP) • Entwicklung einer Progressiv Web App inkl. CMS Backend • Fokus auf Usablitity… mehr anzeigen
UI und JavaScript + 26 Kenntnisse
Teamleader - Software Development
Teamleader - Software Development
Teamleader - Software Development
Conecpt Hero · TeilzeitConecpt Hero · Teilzeit
Apr. 2019Okt. 2020 · 1 Jahr 7 MonateApr. 2019Okt. 2020 · 1 Jahr 7 Monate
Heilbronn (Landkreis), Baden-Württemberg, DeutschlandHeilbronn (Landkreis), Baden-Württemberg, Deutschland
Software Entwicklung mit dem Schwerpunkt Prototyping
Teamleitung, Projektmanagement und Optimierung der Unternehmensprozesse
Knowledge:
JavaScript, TypeScript, Node.js, Express.js, Vue.js, React.js, HTML, CSS, SQL, PWA, Java, Python, C#, UI, UX, Usability Testing, Unity3D, VR, AR, Agile, Prototyping, Capacitor, Ionic, Cordova
Products:
Docker, Gitlab, Bitbucket, Git, Ubuntu, ARKit, ARCore, AR Foundation, JetBrains IDE, VS Code, Android, iOS, WearOS, Firebase, Google CloudSoftware Entwicklung mit dem Schwerpunkt Prototyping Teamleitung, Projektmanagement und Optimierung der Unternehmensprozesse Knowledge: JavaScript, TypeScript, Node.js, Express.js, Vue.js, React.js, HTML, CSS, SQL, PWA, Java, Python, C#, UI, UX, Usability Testing, Unity3D, VR, AR, Agile, Prototyping, Capacitor, Ionic, Cordova Products: Docker, Gitlab, Bitbucket, Git, Ubuntu, ARKit, ARCore, AR Foundation, JetBrains IDE, VS Code, Android, iOS, WearOS, Firebase, Google Cloud… mehr anzeigen
UI und JavaScript + 35 Kenntnisse
Alle 12 Berufserfahrungen anzeigen
AusbildungAusbildung
Logo von Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik
Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik
Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik
Bachelor of Science - BS, Software EngineeringBachelor of Science - BS, Software Engineering
März 2016Sept. 2020März 2016Sept. 2020
Bachelor of Science Software Engineering mit der Vertiefung Games EngineeringBachelor of Science Software Engineering mit der Vertiefung Games Engineering
Linux und Full-Stack + 37 Kenntnisse
Logo von Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik
Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik
Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik
Bachelor of Science - BS, Software EngineeringBachelor of Science - BS, Software Engineering
2016202020162020
Linux und Full-Stack + 37 Kenntnisse
Alle 7 Ausbildungen anzeigen
Bescheinigungen und ZertifikateBescheinigungen und Zertifikate
Logo von Vabro.ai and VMEdu.com (Scrum/Kanban/AI/Business Analysis/OKRs/Six Sigma/Sales and Marketing etc.)
Scrum Fundamentals Certified
Scrum Fundamentals Certified
Vabro.ai and VMEdu.com (Scrum/Kanban/AI/Business Analysis/OKRs/Six Sigma/Sales and Marketing etc.)Vabro.ai and VMEdu.com (Scrum/Kanban/AI/Business Analysis/OKRs/Six Sigma/Sales and Marketing etc.)
Ausgestellt: Juni 2017Ausgestellt: Juni 2017
Zertifikats-ID: 582311Zertifikats-ID: 582311
Scrum
Startup Simulation - STARTUP | edu
Startup Simulation - STARTUP | edu
Startup Simulation - STARTUP | edu
STARTUP | eduSTARTUP | edu
Ausgestellt: Mai 2017Ausgestellt: Mai 2017
Prototyping und Startup
Alle 5 Bescheinigungen und Zertifikate anzeigen
EhrenamtEhrenamt
Voluntary assistant for logistics and transport
Voluntary assistant for logistics and transport
Voluntary assistant for logistics and transport
DreamCenter Sozialwerk e.V.DreamCenter Sozialwerk e.V.
März 2016Feb. 2017 · 1 JahrMärz 2016Feb. 2017 · 1 Jahr
ArmutsbekämpfungArmutsbekämpfung
Voluntary assistant for logistics and transportVoluntary assistant for logistics and transport
Logo von Lernstiftung Hück
Voluntary position as Information Technology Coordinator
Voluntary position as Information Technology Coordinator
Lernstiftung HückLernstiftung Hück
Feb. 2016 · 1 MonatFeb. 2016 · 1 Monat
Unterstützung benachteiligter GruppenUnterstützung benachteiligter Gruppen
- Voluntary position as Information Technology Coordinator
- System Installation
- Rights Management
- Network Configuration
- Support in the supervision- Voluntary position as Information Technology Coordinator - System Installation - Rights Management - Network Configuration - Support in the supervision… mehr anzeigen
KenntnisseKenntnisse
Git
Git
7 Erfahrungen bei Tobias Müller Software Entwicklung und 6 weiteren Unternehmen7 Erfahrungen bei Tobias Müller Software Entwicklung und 6 weiteren Unternehmen
Unternehmenslogo
7 Ausbildungserfahrungen bei Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik und 4 weiteren Ausbildungsstätten7 Ausbildungserfahrungen bei Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik und 4 weiteren Ausbildungsstätten
Bestätigen
Frontend
Frontend
6 Erfahrungen bei Tobias Müller Software Entwicklung und 5 weiteren Unternehmen6 Erfahrungen bei Tobias Müller Software Entwicklung und 5 weiteren Unternehmen
Unternehmenslogo
7 Ausbildungserfahrungen bei Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik und 4 weiteren Ausbildungsstätten7 Ausbildungserfahrungen bei Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik und 4 weiteren Ausbildungsstätten
Bestätigen
Alle 48 Kenntnisse anzeigen
Auszeichnungen/PreiseAuszeichnungen/Preise
Letter of Recommendation for Tobias Müller
Letter of Recommendation for Tobias Müller
Von: Prof. Dr. Tim Reichert · Juni 2020Von: Prof. Dr. Tim Reichert · Juni 2020
Logo von Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik
Assoziiert mit Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik
Assoziiert mit Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik
Letter of Recommendation for Tobias Müller
Heilbronn, 17 June 2020
Prof. Dr. Tim Reichert
Games Engineering
Heilbronn University
of Applied Sciences
Max-Planck-Str. 39
74081 Heilbronn, Germany
> > Document only on request<<Letter of Recommendation for Tobias Müller Heilbronn, 17 June 2020 Prof. Dr. Tim Reichert Games Engineering Heilbronn University of Applied Sciences Max-Planck-Str. 39 74081 Heilbronn, Germany >>Document only on request<<… mehr anzeigen
> > Winner - Fujitsu Botathon
> > Winner - Fujitsu Botathon
> > Juli 2019Juli 2019
1. Place at Automation Inspiration University Botathon
Topic: Explore Anywhere1. Place at Automation Inspiration University Botathon Topic: Explore Anywhere… mehr anzeigen
Alle 4 Auszeichnungen/Preise anzeigen
OrganisationenOrganisationen
Hochschule Heilbronn
Hochschule Heilbronn
Faculty council IT · Sept. 2017Feb. 2018 Faculty council IT · Sept. 2017Feb. 2018
Logo von Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik
Assoziiert mit Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik
Assoziiert mit Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik
Studentischer Vertreter (Gemäß LHG §25)Studentischer Vertreter (Gemäß LHG §25)
Hochschule Heilbronn
Hochschule Heilbronn
Student council IT · März 2017Aug. 2017Student council IT · März 2017Aug. 2017
Logo von Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik
Assoziiert mit Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik
Assoziiert mit Hochschule Heilbronn - Hochschule für Technik, Wirtschaft und Informatik
Member of the student council IT.
Implementation of projects for quality assurance of teaching and studies.Member of the student council IT. Implementation of projects for quality assurance of teaching and studies.… mehr anzeigen
Alle 3 Organisationen anzeigen
InteressenInteressen
UnternehmenUnternehmen
Hochschulen/BerufsschulenHochschulen/Berufsschulen
Logo von heise
heise
heise
24.100 Follower:innen24.100 Follower:innen
Folgen
Logo von Stack Overflow
Stack Overflow
Stack Overflow
1.580.636 Follower:innen1.580.636 Follower:innen

View file

@ -0,0 +1,68 @@
# Nils Weiser
## CTO bei Memoro
Nils Weiser ist seit Mai 2025 CTO bei Memoro und bringt eine einzigartige Kombination aus unternehmerischer Erfahrung und technischer Leidenschaft mit. Als Co-Founder der Codify AG seit 2019 hat er gelernt, wie man technologische Visionen in funktionierende Produkte verwandelt durch viel Ausprobieren und gelegentliches Scheitern.
## Der Entdecker-Entwickler
"We are at our human finest, dancing with our minds, when there are more choices than ten, even twenty different ways to go, all but one bound to be wrong, and the richness of the selection in such situations can lift us onto totally new ground."\* Dieses Zitat bringt Nils' Philosophie auf den Punkt: Trial and Error ist für ihn kein bloßes Verfahren, sondern eine Kunstform — ein Tanz zwischen Irrtum und Erkenntnis.
Seine Reise begann früh mit 16 programmierte er seinen ersten Taschenrechner in C++. Was als Neugier begann, wurde zu einer lebenslangen Leidenschaft für das Erkunden technischer Möglichkeiten. Diese Leidenschaft führte ihn dazu, an einigen der größten Apps der Schweiz mitzuarbeiten und sogar für das Bundesamt zu entwickeln.
Als Co-Founder der Codify AG in Kreuzlingen sammelt Nils seit über 6 Jahren Erfahrung im Aufbau von Software-Unternehmen. Diese unternehmerische Perspektive kombiniert mit seiner technischen Experimentierfreude macht ihn zum idealen CTO für Memoros nächste Wachstumsphase.
## Technische Expertise
### Full-Stack mit Experimentierfreude
Mit seiner Trial-and-Error-Mentalität hat sich Nils ein breites technisches Spektrum erarbeitet:
```javascript
// Nils' Approach to Tech
function solveProblem(challenge, availableTools) {
const myApproach = "trial_and_error";
const timeToLearn = "as_long_as_it_takes";
const bestTool = findOptimalSolution(challenge, availableTools);
// Whether it's Rust, Go, Python, TypeScript, or that new
// framework everyone's talking about...
const result = experiment(bestTool)
.then(() => "got it working!")
.catch((error) => {
learnFromMistakes(error);
const remainingTools = availableTools.filter((tool) => tool !== bestTool);
return solveProblem(challenge, remainingTools);
});
return result; // 🚀
}
// Current toolkit (but always expanding):
const expertise = {
frontend: ["Angular", "React", "Vue", "plain", "whatever_works"],
backend: [
"Node.js",
"SpringBoot",
"GO",
"Express",
"FastAPI",
"if_needed_anything",
],
ai: ["MCP Tools", "AI Agents", "LLM Integration"],
testing: ["Jest", "Cypress", "the_art_of_breaking_things"],
devops: ["Git", "Docker", "CI/CD", "Terraform", "making_it_work_everywhere"],
philosophy: ["trial_and_error", "fail_fast_learn_faster"],
};
```
_"Die beste Sprache ist die, die das Problem löst. Die beste Library ist die, die funktioniert. Der beste Ansatz ist der, der nach ein paar Fehlversuchen zum Ziel führt."_
---
**Zitat-Referenz:**
- **Autor**: Lewis Thomas
- **Werk**: Essay _„Computers"_ in _The Medusa and the Snail: More Notes of a Biology Watcher_ (1974, überarbeitete Ausgabe 1979)
- **Zitaterweiterung**: Auch aufgeführt als Teil von _A Long Line of Cells: Collected Essays_

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 MiB

View file

@ -0,0 +1,254 @@
Basierend auf der
Memoro-Website und
Best Practices für
SaaS-Landingpages,
hier sind sinnvolle
A/B-Tests:
🎯 Empfohlene
A/B-Tests für Memoro
1. Navigation
Download-Button 🔝
Hypothese: Ein
prominenterer
Download-Button
erhöht Conversions
Varianten:
- A: "App
herunterladen"
(rechts, normal)
- B: "Kostenlos
testen" (mit Badge
"Neu!")
- C: Pulsierender
Button mit Icon
Metriken:
Download-Klicks,
Scroll-Verhalten
---
2.
Pricing-Darstellung
💰
Hypothese:
Verschiedene
Pricing-Layouts
beeinflussen
Kaufentscheidung
Varianten:
- A: Grid-Layout
(aktuell)
- B:
Vergleichstabelle
- C: Slider
(Monatlich/Jährlich
Toggle)
Metriken:
Time-on-Page,
Plan-Auswahl,
Conversions
---
3. Social Proof
Position ⭐
Hypothese:
Testimonials direkt
nach Hero erhöhen
Vertrauen
Varianten:
- A: Testimonials
unten (aktuell)
- B:
Mini-Testimonials
direkt nach Hero
- C: Floating
Testimonial-Ticker
Metriken:
Scroll-Tiefe,
Verweildauer,
Conversions
---
4. Video vs. Demo 🎥
Hypothese: Live-Demo
ist überzeugender als
Video
Varianten:
- A: "Video ansehen"
(aktuell)
- B: "Interaktive
Demo"
- C: "30-Sek
Kurzvideo" (autoplay)
Metriken:
Engagement-Rate,
Demo-Completions
---
5. Urgency/Scarcity
Test ⏰ -> Wichtig: SOWAS WOLLEN WIR NICHT MACHEN - KEINERLEI DARK PATTERNS ETC
Hypothese: Zeitliche
Begrenzung erhöht
Conversions
Varianten:
- A: Keine Urgency
- B: "Nur noch heute:
50% Rabatt"
- C: "Begrenzt: Erste
100 Nutzer
kostenlos"
Metriken:
Conversion-Rate,
Absprungrate
---
6.
Feature-Priorisierung
📋
Hypothese:
KI-Features sind
wichtiger als
Datenschutz
Varianten:
- A: Datenschutz
zuerst
- B: KI-Features
zuerst
- C: Use-Cases zuerst
Metriken: Engagement,
Feature-Klicks
---
7. Mobile-First Hero
📱
Hypothese:
App-Screenshots
performen besser als
Illustrations
Varianten:
- A: Aktuelle
Illustration
- B: iPhone-Mockup
mit App
- C: Animiertes
App-Demo
Metriken: Mobile
Conversions, Bounce
Rate
---
8. Sprache & Tone 💬
Hypothese:
Persönlichere
Ansprache erhöht
Engagement
Varianten:
- A: "Ihre Gedanken"
(formell)
- B: "Deine Ideen"
(informell)
- C: "Sprechen Sie
einfach drauflos"
(aktiv)
Metriken:
Verweildauer,
Engagement
---
9. Trust-Badges 🛡️
Hypothese:
Sicherheits-Badges
erhöhen Vertrauen
Varianten:
- A: Keine Badges
- B: "DSGVO-konform"
+ "SSL-verschlüsselt"
- C: "TÜV-geprüft" +
Kundenzahlen
Metriken:
Conversion-Rate,
Trust-Umfragen
---
10. Onboarding-Flow
🚀
Hypothese: Geführtes
Onboarding erhöht
Aktivierung
Varianten:
- A: Direkt zur App
- B: 3-Schritt
Tutorial
- C: Persönliche Demo
buchen
Metriken:
Aktivierungsrate,
7-Tage Retention
---
📊
Priorisierungs-Matrix
| Test |
Aufwand | Impact |
Empfehlung |
|-------------------|
---------|--------|--
----------|
| Navigation Button |
Niedrig | Hoch |
⭐⭐⭐ |
| Pricing Layout |
Mittel | Hoch |
⭐⭐⭐ |
| Video vs Demo |
Hoch | Mittel |
⭐⭐ |
| Trust Badges |
Niedrig | Mittel |
⭐⭐ |
| Mobile Hero |
Mittel | Hoch |
⭐⭐⭐ |
🚀 Nächste Schritte
1. Navigation-Button
Test (einfach &
high-impact)
2. Pricing-Layout
(wichtig für
Conversion)
3. Mobile-Hero (50%+
Traffic ist mobil)

View file

@ -0,0 +1,104 @@
# Hero Design Verbesserungen
## 🎨 Aktuelle Design-Probleme
1. **Social Proof Box**: Zu dunkel und verschmilzt mit dem Hintergrund
2. **Trust Badges**: Zu klein und unauffällig
3. **Bild-Qualität**: Das Bild wirkt etwas dunkel/unscharf
4. **Visueller Fluss**: Die Elemente wirken noch nicht optimal verbunden
5. **CTAs**: Könnten noch mehr hervorstechen
## 💡 Design-Verbesserungsvorschläge
### 1. Social Proof Redesign
```css
/* Heller, auffälliger Hintergrund */
background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.05) 100%);
border: 1px solid rgba(255,255,255,0.2);
backdrop-filter: blur(10px);
box-shadow: 0 4px 20px rgba(0,0,0,0.1);
```
### 2. Trust Badges Enhancement
- Größere Icons und Text
- Eigene Cards für jeden Badge
- Leichter Hover-Effekt
- Bessere Spacing
### 3. Hero Image Improvements
- Overlay mit Gradient für besseren Kontrast
- Subtle Animation beim Laden
- Optional: Mehrere Bilder im Wechsel
### 4. Typography & Spacing
- Größerer Zeilenabstand für bessere Lesbarkeit
- Stärkerer Kontrast zwischen Headline und Subtitle
- Mehr Whitespace zwischen Elementen
### 5. CTA Buttons Enhancement
- Primär-Button: Stärkerer Glow-Effekt
- Sekundär-Button: Besserer Kontrast
- Micro-interactions beim Hover
### 6. Animations & Effects
- Fade-in Animation für alle Elemente
- Parallax-Effekt für das Bild
- Smooth reveal beim Scrollen
## 🚀 Quick Implementation
### Sofort umsetzbar:
1. Social Proof Box aufhellen
2. Trust Badges vergrößern und besser positionieren
3. CTA Buttons optimieren
4. Micro-Copy prominenter machen
### Mittelfristig:
1. Animationen hinzufügen
2. Bild-Overlay optimieren
3. Mobile Optimierungen
## 📐 Konkrete CSS-Änderungen
### Social Proof Box
```astro
<div class="mt-8 p-6 bg-gradient-to-br from-white/10 to-white/5 rounded-xl border border-white/20 backdrop-blur-sm shadow-lg">
```
### Trust Badges
```astro
<div class="flex flex-wrap gap-6 mt-10 justify-center md:justify-start">
{trustBadges.map((badge) => (
<div class="flex items-center gap-3 px-4 py-2 bg-white/5 rounded-lg border border-white/10 hover:bg-white/10 transition-all">
<span class="text-2xl">{badge.icon}</span>
<span class="text-sm font-medium text-text-primary">{badge.text}</span>
</div>
))}
</div>
```
### CTA Buttons
```css
/* Primary Button mit Glow */
.bg-primary {
box-shadow: 0 4px 20px rgba(255, 193, 7, 0.3);
transition: all 0.3s ease;
}
.bg-primary:hover {
box-shadow: 0 6px 30px rgba(255, 193, 7, 0.5);
transform: translateY(-2px);
}
```
### Hero Image Container
```astro
<div class="relative order-2 md:order-1 overflow-hidden rounded-2xl">
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent z-10"></div>
<img
src={image}
alt={title}
class="w-full h-auto object-cover shadow-2xl transform hover:scale-105 transition-transform duration-700"
/>
</div>
```

View file

@ -0,0 +1,231 @@
# Hero Section Quick Wins - Umsetzungskonzept
## 🎯 Übersicht
Dieses Dokument beschreibt die sofort umsetzbaren Verbesserungen für die Hero-Section der Memoro Landing Page. Alle Vorschläge sind darauf ausgelegt, mit minimalem Aufwand maximalen Impact zu erzielen.
## 1. Headlines & Subtitles Optimierung
### Deutsche Headlines (3 Varianten zum Testen)
#### Variante A: Nutzen-fokussiert
```
Headline: "Verwandeln Sie jedes Gespräch in verwertbares Wissen"
Subtitle: "KI-gestützte Gesprächsdokumentation, die mitdenkt. Sparen Sie 3+ Stunden pro Woche."
```
#### Variante B: Problem-fokussiert
```
Headline: "Nie wieder wichtige Details aus Meetings verlieren"
Subtitle: "Memoro dokumentiert, strukturiert und erinnert während Sie sich aufs Wesentliche konzentrieren."
```
#### Variante C: Zeitersparnis-fokussiert
```
Headline: "3 Stunden pro Woche zurückgewinnen"
Subtitle: "Lassen Sie KI Ihre Gespräche dokumentieren. Automatisch. Präzise. DSGVO-konform."
```
### Englische Headlines (3 Varianten zum Testen)
#### Variante A: Benefit-focused
```
Headline: "Turn Every Conversation Into Actionable Insights"
Subtitle: "AI-powered documentation that thinks along. Save 3+ hours every week."
```
#### Variante B: Problem-focused
```
Headline: "Never Miss Important Meeting Details Again"
Subtitle: "Memoro captures, structures, and reminds while you focus on what matters."
```
#### Variante C: Time-saving focused
```
Headline: "Get Back 3 Hours Every Week"
Subtitle: "Let AI document your conversations. Automatically. Accurately. GDPR-compliant."
```
## 2. CTA Micro-Copy
### Primärer CTA
**Button Text**: "Jetzt kostenlos starten" / "Start Free Now"
**Micro-Copy darunter**:
- "✓ Keine Kreditkarte erforderlich"
- "✓ In 30 Sekunden eingerichtet"
- "✓ 14 Tage kostenlos testen"
### Sekundärer CTA
**Button Text**: "Demo ansehen (2 Min)" / "Watch Demo (2 min)"
**Micro-Copy**: "Sehen Sie Memoro in Aktion"
## 3. Trust-Badges & Sicherheitssignale
### Badge-Leiste unter den CTAs
```
[🔒 DSGVO-konform] [🇩🇪 Made in Germany] [🛡️ SSL-verschlüsselt] [✓ ISO 27001]
```
### Alternativ als Text
"Ihre Daten sind sicher: DSGVO-konform • Ende-zu-Ende verschlüsselt • Server in Deutschland"
## 4. Social Proof Integration
### Option A: Bewertungszeile
```
⭐⭐⭐⭐⭐ 4.9/5 basierend auf 127 Bewertungen
"Die beste Investition in unsere Produktivität" - Thomas M., Geschäftsführer
```
### Option B: Nutzer-Statistik
```
Bereits 2.500+ Professionals sparen Zeit mit Memoro
Über 50.000 Stunden Gespräche erfolgreich dokumentiert
```
### Option C: Logo-Leiste
```
"Vertraut von Teams bei:"
[Siemens Logo] [SAP Logo] [Bosch Logo] [Mercedes Logo] [Telekom Logo]
```
## 5. Urgency/Scarcity Elemente (Optional)
### Zeitlich begrenzt
```
🎯 Black Friday Special: 50% Rabatt auf alle Pläne nur noch 48 Stunden
```
### Begrenzte Plätze
```
🚀 Early Access: Nur noch 23 kostenlose Beta-Plätze verfügbar
```
## 6. Implementation Details
### HeroSection.astro Anpassungen
1. **Micro-Copy Component** hinzufügen:
```astro
{microCopy && (
<div class="flex items-center gap-2 text-sm text-gray-400 mt-2">
<span class="text-green-500"></span>
<span>{microCopy}</span>
</div>
)}
```
2. **Trust Badges Component**:
```astro
<div class="flex flex-wrap gap-4 mt-8 opacity-70">
<div class="flex items-center gap-2">
<span class="text-lg">🔒</span>
<span class="text-sm">{t('hero.trust.gdpr')}</span>
</div>
<div class="flex items-center gap-2">
<span class="text-lg">🇩🇪</span>
<span class="text-sm">{t('hero.trust.madeInGermany')}</span>
</div>
<div class="flex items-center gap-2">
<span class="text-lg">🛡️</span>
<span class="text-sm">{t('hero.trust.encrypted')}</span>
</div>
</div>
```
3. **Social Proof Component**:
```astro
<div class="mt-6 p-4 bg-white/5 rounded-lg border border-white/10">
<div class="flex items-center gap-2 mb-2">
<div class="flex text-yellow-400">
{"⭐".repeat(5)}
</div>
<span class="text-white font-semibold">4.9/5</span>
<span class="text-gray-400 text-sm">({reviewCount} Bewertungen)</span>
</div>
<p class="text-sm text-gray-300 italic">"{testimonialQuote}"</p>
<p class="text-xs text-gray-400 mt-1"> {testimonialAuthor}</p>
</div>
```
## 7. A/B Testing Strategie
### Test 1: Headlines
- Control: Aktuelle Headline
- Variante A: Nutzen-fokussiert
- Variante B: Problem-fokussiert
- Variante C: Zeitersparnis-fokussiert
### Test 2: Social Proof
- Control: Keine Social Proof
- Variante A: Bewertungszeile
- Variante B: Nutzer-Statistik
- Variante C: Logo-Leiste
### Test 3: Micro-Copy
- Control: Kein Micro-Copy
- Variante A: "Keine Kreditkarte erforderlich"
- Variante B: Alle 3 Punkte
## 8. Tracking & Erfolgsmessung
### KPIs
1. **Click-Through-Rate (CTR)** auf primären CTA
2. **Conversion Rate** zu Registrierung
3. **Bounce Rate** der Landing Page
4. **Time on Page**
5. **Scroll Depth**
### Event Tracking
```javascript
// Hero View
gtag('event', 'hero_view', {
'variant': currentVariant,
'headline': headlineText
});
// CTA Click
gtag('event', 'hero_cta_click', {
'button': 'primary',
'variant': currentVariant,
'position': 'hero'
});
// Trust Badge Hover
gtag('event', 'trust_badge_hover', {
'badge': badgeType
});
```
## 9. Mobile Optimierungen
### Kürzere Mobile Headlines
```
Desktop: "Verwandeln Sie jedes Gespräch in verwertbares Wissen"
Mobile: "Gespräche in Wissen verwandeln"
Desktop: "3 Stunden pro Woche zurückgewinnen"
Mobile: "3h/Woche sparen"
```
### Angepasste Layouts
- Trust Badges: 2x2 Grid auf Mobile
- Social Proof: Kompaktere Darstellung
- CTAs: Full-width auf Mobile
## 10. Nächste Schritte
1. **Sofort (diese Woche)**:
- [ ] Neue Headlines in home.mdx implementieren
- [ ] Micro-Copy zu CTAs hinzufügen
- [ ] Trust Badges einbauen
- [ ] A/B Test erweitern
2. **Kurzfristig (nächste 2 Wochen)**:
- [ ] Social Proof Komponente entwickeln
- [ ] Logo-Leiste designen
- [ ] Mobile Optimierungen
3. **Follow-up**:
- [ ] Erste Test-Ergebnisse analysieren
- [ ] Gewinner-Varianten ausrollen
- [ ] Neue Test-Hypothesen entwickeln

View file

@ -0,0 +1,145 @@
08.08.2025
{"memo_number":13896,
"memo_entry_number":225932,
"time_recorded":"5363:20:20.815 (hh:mm:ss,ms)",
"transcript_words":46.314.389,
"user_number":2553}
28.03.2025
Memos:11.134
"memo_entry_number":176033,"
time_recorded":"4062:08:07.633 (hh:mm:ss,ms)","
transcript_words":35845740,"
user_number":2009}
03.03.2025
Memos: 10.405,
"memo_entry_number":162540,
time_recorded":"3735:49:37.421
(hh:mm:ss,ms)",
Wörter: 33.177.948
Users :1828
04.02.2025
{"memo_number":9392,
"memo_entry_number":143793,"
time_recorded":"3370:57:54.073 (hh:mm:ss,ms)",
202260 Minutes
"transcript_words":30007331,"user_number":1638}
27.01.2025
69 Paying Users
12 Android
56 iOS
Länder:
DE - 62
CH - 2
AT - 2
US - 1
Sweden - 1
Finnland - 1
21.01.2025
Über 9000 Memos aufgenommen
{"memo_number":9054,"memo_entry_number":137677,"time_recorded":"3145:37:24.003 (hh:mm:ss,ms)","transcript_words":28213286,"user_number":1564}
14.01.2025
1504 Nutzer
MAUs:
495 Users (RevenueCat)
281 Users (Google Analytics)
151 Users (Admin App)
309 Durchschnitt
{"memo_number":8782,"memo_entry_number":133301,"time_recorded":"3036:02:55.864 (hh:mm:ss,ms)","transcript_words":27319354,"user_number":1504}
10.12.2024
1310 Nutzer
8200 erstellte Memos
2800 Stunden Aufnahme
25 Millionen gesprochene Wörter
{"memo_number":8200,"memo_entry_number":122550,"time_recorded":"2834:35:37.030 (hh:mm:ss,ms)","transcript_words":25693505,"user_number":1310}
26.11.2024
Memos: 7852
Stunden: 2708 h
Wörter: 24.555.821
{"memo_number":7852,"memo_entry_number":116352,"time_recorded":"2708:35:00.093 (hh:mm:ss,ms)","transcript_words":24555821,"user_number":1238}
06.11.2024
Words: 22.513.813
Hours: 2471
{"memo_number":7237,"memo_entry_number":105938,"time_recorded":"2471:20:49.687 (hh:mm:ss,ms)","transcript_words":22513813,"user_number":1126}
16.10.2024
{"memo_number":6677,"memo_entry_number":95212,"time_recorded":"2213:26:39.882 (hh:mm:ss,ms)","transcript_words":20363477,"user_number":1031}
07.10.2024
Memos: 6460Time: 2105:58 (Stunden)Minuten: 126358 Minuten
Words: 19444341
Users: 978
{"memo_number":6460,"memo_entry_number":90728,"time_recorded":"2105:58:07.954 (hh:mm:ss,ms)","transcript_words":19444341,"user_number":978}
01.10.2024
{"memo_number":6389,
"memo_entry_number":89327,
"time_recorded":"2075:02:10.580
2075 h in minuten
(hh:mm:ss,ms)","transcript_words":19226681,"user_number":953}
24.08.2024
09.08.2024
{"memo_number":5495,"memo_entry_number":72678,"time_recorded":"1640:08:14.997 (hh:mm:ss,ms)","transcript_words":15770544,"user_number":699}
24.07.2024
{"memo_number":5235,"memo_entry_number":68122,"time_recorded":"1507:57:39.116 (hh:mm:ss,ms)","transcript_words":14694220,"user_number":640}
24.07.2024 - 02:30
{"memo_number":5222,"memo_entry_number":67964,"time_recorded":"1503:55:22.022 (hh:mm:ss,ms)","transcript_words":14.664.072,"user_number":639} Durchschnittlichte Wörtanzahl pro Stunde: 10.000

View file

@ -0,0 +1,106 @@
Add last modified time
Learn how to build a remark plugin that adds the last modified time to the frontmatter of your Markdown and MDX files. Use this property to display the modified time in your pages.
Uses Git history
This recipe calculates time based on your repositorys Git history and may not be accurate on some deployment platforms. Your host may be performing shallow clones which do not retrieve the full git history.
Recipe
Install Helper Packages
Install Day.js to modify and format times:
npm
pnpm
Yarn
Terminal window
npm install dayjs
Create a Remark Plugin
This plugin uses execSync to run a Git command that returns the timestamp of the latest commit in ISO 8601 format. The timestamp is then added to the frontmatter of the file.
remark-modified-time.mjs
import { execSync } from "child_process";
export function remarkModifiedTime() {
return function (tree, file) {
const filepath = file.history[0];
const result = execSync(`git log -1 --pretty="format:%cI" "${filepath}"`);
file.data.astro.frontmatter.lastModified = result.toString();
};
}
Using the file system instead of Git
Add the plugin to your config
astro.config.mjs
import { defineConfig } from 'astro/config';
import { remarkModifiedTime } from './remark-modified-time.mjs';
export default defineConfig({
markdown: {
remarkPlugins: [remarkModifiedTime],
},
});
Now all Markdown documents will have a lastModified property in their frontmatter.
Display Last Modified Time
If your content is stored in a content collection, access the remarkPluginFrontmatter from the render(entry) function. Then render lastModified in your template wherever you would like it to appear.
src/pages/posts/[slug].astro
---
import { getCollection, render } from 'astro:content';
import dayjs from "dayjs";
import utc from "dayjs/plugin/utc";
dayjs.extend(utc);
export async function getStaticPaths() {
const blog = await getCollection('blog');
return blog.map(entry => ({
params: { slug: entry.id },
props: { entry },
}));
}
const { entry } = Astro.props;
const { Content, remarkPluginFrontmatter } = await render(entry);
const lastModified = dayjs(remarkPluginFrontmatter.lastModified)
.utc()
.format("HH:mm:ss DD MMMM YYYY UTC");
---
<html>
<head>...</head>
<body>
...
<p>Last Modified: {lastModified}</p>
...
</body>
</html>
If youre using a Markdown layout, use the lastModified frontmatter property from Astro.props in your layout template.
src/layouts/BlogLayout.astro
---
import dayjs from "dayjs";
import utc from "dayjs/plugin/utc";
dayjs.extend(utc);
const lastModified = dayjs()
.utc(Astro.props.frontmatter.lastModified)
.format("HH:mm:ss DD MMMM YYYY UTC");
---
<html>
<head>...</head>
<body>
<p>{lastModified}</p>
<slot />
</body>
</html>

View file

@ -0,0 +1,91 @@
Add reading time
Create a remark plugin which adds a reading time property to the frontmatter of your Markdown or MDX files. Use this property to display the reading time for each page.
Recipe
Install Helper Packages
Install these two helper packages:
reading-time to calculate minutes read
mdast-util-to-string to extract all text from your markdown
npm
pnpm
Yarn
Terminal window
npm install reading-time mdast-util-to-string
Create a remark plugin.
This plugin uses the mdast-util-to-string package to get the Markdown files text. This text is then passed to the reading-time package to calculate the reading time in minutes.
remark-reading-time.mjs
import getReadingTime from 'reading-time';
import { toString } from 'mdast-util-to-string';
export function remarkReadingTime() {
return function (tree, { data }) {
const textOnPage = toString(tree);
const readingTime = getReadingTime(textOnPage);
// readingTime.text will give us minutes read as a friendly string,
// i.e. "3 min read"
data.astro.frontmatter.minutesRead = readingTime.text;
};
}
Add the plugin to your config:
astro.config.mjs
import { defineConfig } from 'astro/config';
import { remarkReadingTime } from './remark-reading-time.mjs';
export default defineConfig({
markdown: {
remarkPlugins: [remarkReadingTime],
},
});
Now all Markdown documents will have a calculated minutesRead property in their frontmatter.
Display Reading Time
If your blog posts are stored in a content collection, access the remarkPluginFrontmatter from the render(entry) function. Then, render minutesRead in your template wherever you would like it to appear.
src/pages/posts/[slug].astro
---
import { getCollection, render } from 'astro:content';
export async function getStaticPaths() {
const blog = await getCollection('blog');
return blog.map(entry => ({
params: { slug: entry.id },
props: { entry },
}));
}
const { entry } = Astro.props;
const { Content, remarkPluginFrontmatter } = await render(entry);
---
<html>
<head>...</head>
<body>
...
<p>{remarkPluginFrontmatter.minutesRead}</p>
...
</body>
</html>
If youre using a Markdown layout, use the minutesRead frontmatter property from Astro.props in your layout template.
src/layouts/BlogLayout.astro
---
const { minutesRead } = Astro.props.frontmatter;
---
<html>
<head>...</head>
<body>
<p>{minutesRead}</p>
<slot />
</body>
</html>

View file

@ -0,0 +1,41 @@
Add icons to external links
Using a rehype plugin, you can identify and modify links in your Markdown files that point to external sites. This example adds icons to the end of each external link, so that visitors will know they are leaving your site.
Prerequisites
An Astro project using Markdown for content pages.
Recipe
Install the rehype-external-links plugin.
npm
pnpm
Yarn
Terminal window
npm install rehype-external-links
Import the plugin into your astro.config.mjs file.
Pass rehypeExternalLinks to the rehypePlugins array, along with an options object that includes a content property. Set this propertys type to text if you want to add plain text to the end of the link. To add HTML to the end of the link instead, set the property type to raw.
// ...
import rehypeExternalLinks from 'rehype-external-links';
export default defineConfig({
// ...
markdown: {
rehypePlugins: [
[
rehypeExternalLinks,
{
content: { type: 'text', value: ' 🔗' }
}
],
]
},
});
Note
The value of the content property is not represented in the accessibility tree. As such, its best to make clear that the link is external in the surrounding content, rather than relying on the icon alone.
Resources
rehype-external-links

View file

@ -0,0 +1,321 @@
Internationalization (i18n) Routing
Astros internationalization (i18n) features allow you to adapt your project for an international audience. This routing API helps you generate, use, and verify the URLs that your multi-language site produces.
Astros i18n routing allows you to bring your multilingual content with support for configuring a default language, computing relative page URLs, and accepting preferred languages provided by your visitors browser. You can also specify fallback languages on a per-language basis so that your visitors can always be directed to existing content on your site.
Routing Logic
Astro uses a middleware to implement its routing logic. This middleware function is placed in the first position where it awaits every Response coming from any additional middleware and each page route before finally executing its own logic.
This means that operations (e.g. redirects) from your own middleware and your page logic are run first, your routes are rendered, and then the i18n middleware performs its own actions such as verifying that a localized URL corresponds to a valid route.
You can also choose to add your own i18n logic in addition to or instead of Astros i18n middleware, giving you even more control over your routes while still having access to the astro:i18n helper functions.
Configure i18n routing
Both a list of all supported languages (locales) and a default language (defaultLocale), which must be one of the languages listed in locales, need to be specified in an i18n configuration object. Additionally, you can configure more specific routing and fallback behavior to match your desired URLs.
astro.config.mjs
import { defineConfig } from "astro/config"
export default defineConfig({
i18n: {
locales: ["es", "en", "pt-br"],
defaultLocale: "en",
}
})
Create localized folders
Organize your content folders with localized content by language. Create individual /[locale]/ folders anywhere within src/pages/ and Astros file-based routing will create your pages at corresponding URL paths.
Your folder names must match the items in locales exactly. Include a localized folder for your defaultLocale only if you configure prefixDefaultLocale: true to show a localized URL path for your default language (e.g. /en/about/).
Directorysrc
Directorypages
about.astro
index.astro
Directoryes
about.astro
index.astro
Directorypt-br
about.astro
index.astro
Note
The localized folders do not need to be at the root of the /pages/ folder.
Create links
With i18n routing configured, you can now compute links to pages within your site using the helper functions such as getRelativeLocaleUrl() available from the astro:i18n module. These generated links will always provide the correct, localized route and can help you correctly use, or check, URLs on your site.
You can also still write the links manually.
src/pages/es/index.astro
---
import { getRelativeLocaleUrl } from 'astro:i18n';
// defaultLocale is "es"
const aboutURL = getRelativeLocaleUrl("es", "about");
---
<a href="/get-started/">¡Vamos!</a>
<a href={getRelativeLocaleUrl('es', 'blog')}>Blog</a>
<a href={aboutURL}>Acerca</a>
routing
Astros built-in file-based routing automatically creates URL routes for you based on your file structure within src/pages/.
When you configure i18n routing, information about this file structure (and the corresponding URL paths generated) is available to the i18n helper functions so they can generate, use, and verify the routes in your project. Many of these options can be used together for even more customization and per-language flexibility.
You can even choose to implement your own routing logic manually for even greater control.
prefixDefaultLocale
Added in: astro@3.5.0
This routing option defines whether or not your default languages URLs should use a language prefix (e.g. /en/about/).
All non-default supported languages will use a localized prefix (e.g. /fr/ or /french/) and content files must be located in appropriate folders. This configuration option allows you to specify whether your default language should also follow a localized URL structure.
This setting also determines where the page files for your default language must exist (e.g. src/pages/about/ or src/pages/en/about) as the file structure and URL structure must match for all languages.
"prefixDefaultLocale: false" (default): URLs in your default language will not have a /[locale]/ prefix. All other locales will.
"prefixDefaultLocale: true": All URLs, including your default language, will have a /[locale]/ prefix.
prefixDefaultLocale: false
astro.config.mjs
import { defineConfig } from "astro/config"
export default defineConfig({
i18n: {
locales: ["es", "en", "fr"],
defaultLocale: "en",
routing: {
prefixDefaultLocale: false
}
}
})
This is the default value. Set this option when URLs in your default language will not have a /[locale]/ prefix and files in your default language exist at the root of src/pages/:
Directorysrc
Directorypages
about.astro
index.astro
Directoryes
about.astro
index.astro
Directoryfr
about.astro
index.astro
src/pages/about.astro will produce the route example.com/about/
src/pages/fr/about.astro will produce the route example.com/fr/about/
prefixDefaultLocale: true
astro.config.mjs
import { defineConfig } from "astro/config"
export default defineConfig({
i18n: {
locales: ["es", "en", "fr"],
defaultLocale: "en",
routing: {
prefixDefaultLocale: true
}
}
})
Set this option when all routes will have their /locale/ prefix in their URL and when all page content files, including those for your defaultLocale, exist in a localized folder:
Directorysrc
Directorypages
index.astro
// Note: this file is always required
Directoryen
index.astro
about.astro
Directoryes
about.astro
index.astro
Directorypt-br
about.astro
index.astro
URLs without a locale prefix, (e.g. example.com/about/) will return a 404 (not found) status code unless you specify a fallback strategy.
redirectToDefaultLocale
Added in: astro@4.2.0
Configures whether or not the home URL (/) generated by src/pages/index.astro will redirect to /<defaultLocale>.
Setting prefixDefaultLocale: true will also automatically set redirectToDefaultLocale: true in your routing config object. By default, the required src/pages/index.astro file will automatically redirect to the index page of your default locale.
You can opt out of this behavior by setting redirectToDefaultLocale: false. This allows you to have a site home page that exists outside of your configured locale folder structure.
manual
Added in: astro@4.6.0
When this option is enabled, Astro will disable its i18n middleware so that you can implement your own custom logic. No other routing options (e.g. prefixDefaultLocale) may be configured with routing: "manual".
You will be responsible for writing your own routing logic, or executing Astros i18n middleware manually alongside your own.
astro.config.mjs
import { defineConfig } from "astro/config"
export default defineConfig({
i18n: {
locales: ["es", "en", "fr"],
defaultLocale: "en",
routing: "manual"
}
})
Astro provides helper functions for your middleware so you can control your own default routing, exceptions, fallback behavior, error catching, etc: redirectToDefaultLocale(), notFound(), and redirectToFallback():
src/middleware.js
import { defineMiddleware } from "astro:middleware";
import { redirectToDefaultLocale } from "astro:i18n"; // function available with `manual` routing
export const onRequest = defineMiddleware(async (ctx, next) => {
if (ctx.url.startsWith("/about")) {
return next();
} else {
return redirectToDefaultLocale(302);
}
})
middleware function
The middleware function manually creates Astros i18n middleware. This allows you to extend Astros i18n routing instead of completely replacing it.
You can run middleware with routing options in combination with your own middleware, using the sequence utility to determine the order:
src/middleware.js
import {defineMiddleware, sequence} from "astro:middleware";
import { middleware } from "astro:i18n"; // Astro's own i18n routing config
export const userMiddleware = defineMiddleware(async (ctx, next) => {
// this response might come from Astro's i18n middleware, and it might return a 404
const response = await next();
// the /about page is an exception and we want to render it
if (ctx.url.startsWith("/about")) {
return new Response("About page", {
status: 200
});
} else {
return response;
}
});
export const onRequest = sequence(
userMiddleware,
middleware({
redirectToDefaultLocale: false,
prefixDefaultLocale: true
})
)
domains
Added in: astro@4.9.0
This routing option allows you to customize your domains on a per-language basis for server rendered projects using the @astrojs/node or @astrojs/vercel adapter with a site configured.
Add i18n.domains to map any of your supported locales to custom URLs:
astro.config.mjs
import { defineConfig } from "astro/config"
export default defineConfig({
site: "https://example.com",
output: "server", // required, with no prerendered pages
adapter: node({
mode: 'standalone',
}),
i18n: {
locales: ["es", "en", "fr", "ja"],
defaultLocale: "en",
routing: {
prefixDefaultLocale: false
},
domains: {
fr: "https://fr.example.com",
es: "https://example.es"
}
}
})
All non-mapped locales will follow your prefixDefaultLocales configuration. However, even if this value is false, page files for your defaultLocale must also exist within a localized folder. For the configuration above, an /en/ folder is required.
With the above configuration:
The file /fr/about.astro will create the URL https://fr.example.com/about.
The file /es/about.astro will create the URL https://example.es/about.
The file /ja/about.astro will create the URL https://example.com/ja/about.
The file /en/about.astro will create the URL https://example.com/about.
The above URLs will also be returned by the getAbsoluteLocaleUrl() and getAbsoluteLocaleUrlList() functions.
Fallback
When a page in one language doesnt exist (e.g. a page that is not yet translated), instead of displaying a 404 page, you can choose to display fallback content from another locale on a per-language basis. This is useful when you do not yet have a page for every route, but you want to still provide some content to your visitors.
Your fallback strategy consists of two parts: choosing which languages should fallback to which other languages (i18n.fallback) and choosing whether to perform a redirect or a rewrite to show the fallback content (i18n.routing.fallbackType added in Astro v4.15.0).
For example, when you configure i18n.fallback: { fr: "es" }, Astro will ensure that a page is built in src/pages/fr/ for every page that exists in src/pages/es/.
If any page does not already exist, then a page will be created depending on your fallbackType:
With a redirect to the corresponding es route (default behavior).
With the content of the /es/ page (i18n.routing.fallbackType: "rewrite").
For example, the configuration below sets es as the fallback locale for any missing fr routes. This means that a user visiting example.com/fr/my-page/ will be shown the content for example.com/es/my-page/ (without being redirected) instead of being taken to a 404 page when src/pages/fr/my-page.astro does not exist.
astro.config.mjs
import { defineConfig } from "astro/config"
export default defineConfig({
i18n: {
locales: ["es", "en", "fr"],
defaultLocale: "en",
fallback: {
fr: "es"
},
routing: {
fallbackType: "rewrite"
}
}
})
Custom locale paths
In addition to defining your sites supported locales as strings (e.g. “en”, “pt-br”), Astro also allows you to map an arbitrary number of browser-recognized language codes to a custom URL path. While locales can be strings of any format as long as they correspond to your project folder structure, codes must follow the browsers accepted syntax.
Pass an object to the locales array with a path key to define a custom URL prefix, and codes to indicate the languages mapped to this URL. In this case, your /[locale]/ folder name must match exactly the value of the path and your URLs will be generated using the path value.
This is useful if you support multiple variations of a language (e.g. "fr", "fr-BR", and "fr-CA") and you want to have all these variations mapped under the same URL /fr/, or even customize it entirely (e.g. /french/):
astro.config.mjs
import { defineConfig } from "astro/config"
export default defineConfig({
i18n: {
locales: ["es", "en", "fr"],
locales: ["es", "en", {
path: "french", // no slashes included
codes: ["fr", "fr-BR", "fr-CA"]
}],
defaultLocale: "en",
routing: {
prefixDefaultLocale: true
}
}
})
When using functions from the astro:i18n virtual module to compute valid URL paths based on your configuration (e.g. getRelativeLocaleUrl()), use the path as the value for locale.
Limitations
This feature has some restrictions:
The site option is mandatory.
The output option must be set to "server".
There cannot be any individual prerendered pages.
Astro relies on the following headers in order to support the feature:
X-Forwarded-Host and Host. Astro will use the former, and if not present, will try the latter.
X-Forwarded-Proto and URL#protocol of the server request.
Make sure that your server proxy/hosting platform is able to provide this information. Failing to retrieve these headers will result in a 404 (status code) page.
Browser language detection
Astros i18n routing allows you to access two properties for browser language detection in pages rendered on demand: Astro.preferredLocale and Astro.preferredLocaleList. All pages, including static prerendered pages, have access to Astro.currentLocale.
These combine the browsers Accept-Language header, and your locales (strings or codes) to automatically respect your visitors preferred languages.
Astro.preferredLocale: Astro can compute a preferred locale for your visitor if their browsers preferred locale is included in your locales array. This value is undefined if no such match exists.
Astro.preferredLocaleList: An array of all locales that are both requested by the browser and supported by your website. This produces a list of all compatible languages between your site and your visitor. The value is [] if none of the browsers requested languages are found in your locales array. If the browser does not specify any preferred languages, then this value will be i18n.locales.
Astro.currentLocale: The locale computed from the current URL, using the syntax specified in your locales configuration. If the URL does not contain a /[locale]/ prefix, then the value will default to i18n.defaultLocale.
In order to successfully match your visitors preferences, provide your codes using the same pattern used by the browser.

View file

@ -0,0 +1,409 @@
Add i18n features
In this recipe, you will learn how to use content collections and dynamic routing to build your own internationalization (i18n) solution and serve your content in different languages.
Tip
In v4.0, Astro added built-in support for i18n routing that allows you to configure default and supported languages and includes valuable helper functions to assist you in serving an international audience. If you want to use this instead, see our internationalization guide to learn about these features.
This example serves each language at its own subpath, e.g. example.com/en/blog for English and example.com/fr/blog for French.
If you prefer the default language to not be visible in the URL unlike other languages, there are instructions to hide the default language below.
See the resources section for external links to related topics such as right-to-left (RTL) styling and choosing language tags.
Recipe
Set up pages for each language
Create a directory for each language you want to support. For example, en/ and fr/ if you are supporting English and French:
Directorysrc/
Directorypages/
Directoryen/
about.astro
index.astro
Directoryfr/
about.astro
index.astro
index.astro
Set up src/pages/index.astro to redirect to your default language.
Static
SSR
src/pages/index.astro
<meta http-equiv="refresh" content="0;url=/en/" />
This approach uses a meta refresh and will work however you deploy your site. Some static hosts also let you configure server redirects with a custom configuration file. See your deploy platforms documentation for more details.
Use collections for translated content
Create a folder in src/content/ for each type of content you want to include and add subdirectories for each supported language. For example, to support English and French blog posts:
Directorysrc/
Directorycontent/
Directoryblog/
Directoryen/
Blog posts in English
post-1.md
post-2.md
Directoryfr/
Blog posts in French
post-1.md
post-2.md
Create a src/content.config.ts file and export a collection for each type of content.
src/content.config.ts
import { defineCollection, z } from 'astro:content';
const blogCollection = defineCollection({
schema: z.object({
title: z.string(),
author: z.string(),
date: z.date()
})
});
export const collections = {
'blog': blogCollection
};
Read more about Content Collections.
Use dynamic routes to fetch and render content based on a lang and a slug parameter.
Static
SSR
In static rendering mode, use getStaticPaths to map each content entry to a page:
src/pages/[lang]/blog/[...slug].astro
---
import { getCollection } from 'astro:content';
export async function getStaticPaths() {
const pages = await getCollection('blog');
const paths = pages.map(page => {
const [lang, ...slug] = page.slug.split('/');
return { params: { lang, slug: slug.join('/') || undefined }, props: page };
});
return paths;
}
const { lang, slug } = Astro.params;
const page = Astro.props;
const formattedDate = page.data.date.toLocaleString(lang);
const { Content } = await page.render();
---
<h1>{page.data.title}</h1>
<p>by {page.data.author} • {formattedDate}</p>
<Content/>
Read more about dynamic routing.
Date formatting
The example above uses the built-in toLocaleString() date-formatting method to create a human-readable string from the frontmatter date. This ensures the date and time are formatted to match the users language.
Translate UI strings
Create dictionaries of terms to translate the labels for UI elements around your site. This allows your visitors to experience your site fully in their language.
Create a src/i18n/ui.ts file to store your translation strings:
src/i18n/ui.ts
export const languages = {
en: 'English',
fr: 'Français',
};
export const defaultLang = 'en';
export const ui = {
en: {
'nav.home': 'Home',
'nav.about': 'About',
'nav.twitter': 'Twitter',
},
fr: {
'nav.home': 'Accueil',
'nav.about': 'À propos',
},
} as const;
Create two helper functions: one to detect the page language based on the current URL, and one to get translations strings for different parts of the UI in src/i18n/utils.ts:
src/i18n/utils.ts
import { ui, defaultLang } from './ui';
export function getLangFromUrl(url: URL) {
const [, lang] = url.pathname.split('/');
if (lang in ui) return lang as keyof typeof ui;
return defaultLang;
}
export function useTranslations(lang: keyof typeof ui) {
return function t(key: keyof typeof ui[typeof defaultLang]) {
return ui[lang][key] || ui[defaultLang][key];
}
}
Did you notice?
In step 1, the nav.twitter string was not translated to French. You may not want every term translated, such as proper names or common industry terms. The useTranslations helper will return the default languages value if a key is not translated. In this example, French users will also see “Twitter” in the nav bar.
Import the helpers where needed and use them to choose the UI string that corresponds to the current language. For example, a nav component might look like:
src/components/Nav.astro
---
import { getLangFromUrl, useTranslations } from '../i18n/utils';
const lang = getLangFromUrl(Astro.url);
const t = useTranslations(lang);
---
<ul>
<li>
<a href={`/${lang}/home/`}>
{t('nav.home')}
</a>
</li>
<li>
<a href={`/${lang}/about/`}>
{t('nav.about')}
</a>
</li>
<li>
<a href="https://twitter.com/astrodotbuild">
{t('nav.twitter')}
</a>
</li>
</ul>
Each page must have a lang attribute on the <html> element that matches the language on the page. In this example, a reusable layout extracts the language from the current route:
src/layouts/Base.astro
---
import { getLangFromUrl } from '../i18n/utils';
const lang = getLangFromUrl(Astro.url);
---
<html lang={lang}>
<head>
<meta charset="utf-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="viewport" content="width=device-width" />
<title>Astro</title>
</head>
<body>
<slot />
</body>
</html>
You can then use this base layout to ensure that pages use the correct lang attribute automatically.
src/pages/en/about.astro
---
import Base from '../../layouts/Base.astro';
---
<Base>
<h1>About me</h1>
...
</Base>
Let users switch between languages
Create links to the different languages you support so users can choose the language they want to read your site in.
Create a component to show a link for each language:
src/components/LanguagePicker.astro
---
import { languages } from '../i18n/ui';
---
<ul>
{Object.entries(languages).map(([lang, label]) => (
<li>
<a href={`/${lang}/`}>{label}</a>
</li>
))}
</ul>
Add <LanguagePicker /> to your site so it is shown on every page. The example below adds it to the site footer in a base layout:
src/layouts/Base.astro
---
import LanguagePicker from '../components/LanguagePicker.astro';
import { getLangFromUrl } from '../i18n/utils';
const lang = getLangFromUrl(Astro.url);
---
<html lang={lang}>
<head>
<meta charset="utf-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="viewport" content="width=device-width" />
<title>Astro</title>
</head>
<body>
<slot />
<footer>
<LanguagePicker />
</footer>
</body>
</html>
Hide default language in the URL
Create a directory for each language except the default language. For example, store your default language pages directly in pages/, and your translated pages in fr/:
Directorysrc/
Directorypages/
about.astro
index.astro
Directoryfr/
about.astro
index.astro
Add another line to the src/i18n/ui.ts file to toggle the feature:
src/i18n/ui.ts
export const showDefaultLang = false;
Add a helper function to src/i18n/utils.ts, to translate paths based on the current language:
src/i18n/utils.ts
import { ui, defaultLang, showDefaultLang } from './ui';
export function useTranslatedPath(lang: keyof typeof ui) {
return function translatePath(path: string, l: string = lang) {
return !showDefaultLang && l === defaultLang ? path : `/${l}${path}`
}
}
Import the helper where needed. For example, a nav component might look like:
src/components/Nav.astro
---
import { getLangFromUrl, useTranslations, useTranslatedPath } from '../i18n/utils';
const lang = getLangFromUrl(Astro.url);
const t = useTranslations(lang);
const translatePath = useTranslatedPath(lang);
---
<ul>
<li>
<a href={translatePath('/home/')}>
{t('nav.home')}
</a>
</li>
<li>
<a href={translatePath('/about/')}>
{t('nav.about')}
</a>
</li>
<li>
<a href="https://twitter.com/astrodotbuild">
{t('nav.twitter')}
</a>
</li>
</ul>
The helper function can also be used to translate paths for a specific language. For example, when users switch between languages:
src/components/LanguagePicker.astro
---
import { languages } from '../i18n/ui';
import { getLangFromUrl, useTranslatedPath } from '../i18n/utils';
const lang = getLangFromUrl(Astro.url);
const translatePath = useTranslatedPath(lang);
---
<ul>
{Object.entries(languages).map(([lang, label]) => (
<li>
<a href={translatePath('/', lang)}>{label}</a>
</li>
))}
</ul>
Translate Routes
Translate the routes of your pages for each language.
Add route mappings to src/i18n/ui.ts:
src/i18n/ui.ts
export const routes = {
de: {
'services': 'leistungen',
},
fr: {
'services': 'prestations-de-service',
},
}
Update the useTranslatedPath helper function in src/i18n/utils.ts to add router translation logic.
src/i18n/utils.ts
import { ui, defaultLang, showDefaultLang, routes } from './ui';
export function useTranslatedPath(lang: keyof typeof ui) {
return function translatePath(path: string, l: string = lang) {
const pathName = path.replaceAll('/', '')
const hasTranslation = defaultLang !== l && routes[l] !== undefined && routes[l][pathName] !== undefined
const translatedPath = hasTranslation ? '/' + routes[l][pathName] : path
return !showDefaultLang && l === defaultLang ? translatedPath : `/${l}${translatedPath}`
}
}
Create a helper function to get the route, if it exists based on the current URL, in src/i18n/utils.ts:
src/i18n/utils.ts
import { ui, defaultLang, showDefaultLang, routes } from './ui';
export function getRouteFromUrl(url: URL): string | undefined {
const pathname = new URL(url).pathname;
const parts = pathname?.split('/');
const path = parts.pop() || parts.pop();
if (path === undefined) {
return undefined;
}
const currentLang = getLangFromUrl(url);
if (defaultLang === currentLang) {
const route = Object.values(routes)[0];
return route[path] !== undefined ? route[path] : undefined;
}
const getKeyByValue = (obj: Record<string, string>, value: string): string | undefined => {
return Object.keys(obj).find((key) => obj[key] === value);
}
const reversedKey = getKeyByValue(routes[currentLang], path);
if (reversedKey !== undefined) {
return reversedKey;
}
return undefined;
}
The helper function can be used to get a translated route. For example, when no translated route is defined, the user will be redirected to the home page:
src/components/LanguagePicker.astro
---
import { languages } from '../i18n/ui';
import { getRouteFromUrl } from '../i18n/utils';
const route = getRouteFromUrl(Astro.url);
---
<ul>
{Object.entries(languages).map(([lang, label]) => (
<li>
<a href={translatePath(`/${route ? route : ''}`, lang)}>{label}</a>
</li>
))}
</ul>
Resources
Choosing a Language Tag
Right-to-left (RTL) Styling 101
Community libraries
astro-i18next — An Astro integration for i18next including some utility components.
astro-i18n — A TypeScript-first internationalization library for Astro.
astro-i18n-aut — An Astro integration for i18n that supports the defaultLocale without page generation. The integration is adapter agnostic and UI framework agnostic.
astro-react-i18next — An Astro integration that seamlessly enables the use of i18next and react-i18next in React components on Astro websites.
paraglide — A fully type-safe i18n library specifically designed for partial hydration patterns like Astro islands.

View file

@ -0,0 +1,333 @@
@astrojs/
sitemap
v3.2.1
GitHub
npm
Changelog
This Astro integration generates a sitemap based on your pages when you build your Astro project.
Why Astro Sitemap
A Sitemap is an XML file that outlines all of the pages, videos, and files on your site. Search engines like Google read this file to crawl your site more efficiently. See Googles own advice on sitemaps to learn more.
A sitemap file is recommended for large multi-page sites. If you dont use a sitemap, most search engines will still be able to list your sites pages, but a sitemap is a great way to ensure that your site is as search engine friendly as possible.
With Astro Sitemap, you dont have to worry about creating this XML file yourself: the Astro Sitemap integration will crawl your statically-generated routes and create the sitemap file, including dynamic routes like [...slug] or src/pages/[lang]/[version]/info.astro generated by getStaticPaths().
This integration cannot generate sitemap entries for dynamic routes in SSR mode.
Installation
Astro includes an astro add command to automate the setup of official integrations. If you prefer, you can install integrations manually instead.
Run one of the following commands in a new terminal window.
npm
pnpm
Yarn
Terminal window
npx astro add sitemap
If you run into any issues, feel free to report them to us on GitHub and try the manual installation steps below.
Manual Install
First, install the @astrojs/sitemap package using your package manager.
npm
pnpm
Yarn
Terminal window
npm install @astrojs/sitemap
Then, apply the integration to your astro.config.* file using the integrations property:
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
// ...
integrations: [sitemap()],
});
Usage
@astrojs/sitemap needs to know your sites deployed URL to generate a sitemap.
Add your sites URL as the site option in astro.config.mjs. This must begin with http:// or https://.
astro.config.mjs
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
site: 'https://stargazers.club',
integrations: [sitemap()],
// ...
});
With the sitemap integration configured, sitemap-index.xml and sitemap-0.xml files will be added to your output directory when building your site.
sitemap-index.xml links to all the numbered sitemap files. sitemap-0.xml lists the pages on your site. For extremely large sites, there may also be additional numbered files like sitemap-1.xml and sitemap-2.xml.
Example of generated files for a two-page website
Sitemap discovery
You can make it easier for crawlers to find your sitemap with links in your sites <head> and robots.txt file.
Sitemap link in <head>
Add a <link rel="sitemap"> element to your sites <head> pointing to the sitemap index file:
src/layouts/Layout.astro
<head>
<link rel="sitemap" href="/sitemap-index.xml" />
</head>
Sitemap link in robots.txt
If you have a robots.txt for your website, you can add the URL for the sitemap index to help crawlers:
public/robots.txt
User-agent: *
Allow: /
Sitemap: https://<YOUR SITE>/sitemap-index.xml
If you want to reuse the site value from astro.config.mjs, you can also generate robots.txt dynamically. Instead of using a static file in the public/ directory, create a src/pages/robots.txt.ts file and add the following code:
src/pages/robots.txt.ts
import type { APIRoute } from 'astro';
const getRobotsTxt = (sitemapURL: URL) => `
User-agent: *
Allow: /
Sitemap: ${sitemapURL.href}
`;
export const GET: APIRoute = ({ site }) => {
const sitemapURL = new URL('sitemap-index.xml', site);
return new Response(getRobotsTxt(sitemapURL));
};
Configuration
To configure this integration, pass an object to the sitemap() function in astro.config.mjs.
astro.config.mjs
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
integrations: [
sitemap({
// configuration options
}),
],
});
filter
All pages are included in your sitemap by default. By adding a custom filter function, you can filter included pages by URL.
astro.config.mjs
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
site: 'https://stargazers.club',
integrations: [
sitemap({
filter: (page) => page !== 'https://stargazers.club/secret-vip-lounge/',
}),
],
});
The function will be called for every page on your site. The page function parameter is the full URL of the page currently under consideration, including your site domain. Return true to include the page in your sitemap, and false to leave it out.
To filter multiple pages, add arguments with target URLs.
astro.config.mjs
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
site: 'https://stargazers.club',
integrations: [
sitemap({
filter: (page) =>
page !== 'https://stargazers.club/secret-vip-lounge-1/' &&
page !== 'https://stargazers.club/secret-vip-lounge-2/' &&
page !== 'https://stargazers.club/secret-vip-lounge-3/' &&
page !== 'https://stargazers.club/secret-vip-lounge-4/',
}),
],
});
customPages
In some cases, a page might be part of your deployed site but not part of your Astro project. If youd like to include a page in your sitemap that isnt created by Astro, you can use this option.
astro.config.mjs
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
site: 'https://stargazers.club',
integrations: [
sitemap({
customPages: ['https://stargazers.club/external-page', 'https://stargazers.club/external-page2'],
}),
],
});
entryLimit
The maximum number entries per sitemap file. The default value is 45000. A sitemap index and multiple sitemaps are created if you have more entries. See this explanation of splitting up a large sitemap.
astro.config.mjs
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
site: 'https://stargazers.club',
integrations: [
sitemap({
entryLimit: 10000,
}),
],
});
changefreq, lastmod, and priority
These options correspond to the <changefreq>, <lastmod>, and <priority> tags in the Sitemap XML specification.
Note that changefreq and priority are ignored by Google.
Note
Due to limitations of Astros Integration API, this integration cant analyze a given pages source code. This configuration option can set changefreq, lastmod and priority on a site-wide basis; see the next option serialize for how you can set these values on a per-page basis.
astro.config.mjs
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
site: 'https://stargazers.club',
integrations: [
sitemap({
changefreq: 'weekly',
priority: 0.7,
lastmod: new Date('2022-02-24'),
}),
],
});
serialize
A function called for each sitemap entry just before writing to a disk. This function can be asynchronous.
It receives as its parameter a SitemapItem object that can have these properties:
url (absolute page URL). This is the only property that is guaranteed to be on SitemapItem.
changefreq
lastmod (ISO formatted date, String type)
priority
links.
This links property contains a LinkItem list of alternate pages including a parent page.
The LinkItem type has two fields: url (the fully-qualified URL for the version of this page for the specified language) and lang (a supported language code targeted by this version of the page).
The serialize function should return SitemapItem, touched or not.
The example below shows the ability to add sitemap specific properties individually.
astro.config.mjs
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
site: 'https://stargazers.club',
integrations: [
sitemap({
serialize(item) {
if (/exclude-from-sitemap/.test(item.url)) {
return undefined;
}
if (/your-special-page/.test(item.url)) {
item.changefreq = 'daily';
item.lastmod = new Date();
item.priority = 0.9;
}
return item;
},
}),
],
});
i18n
To localize a sitemap, pass an object to this i18n option.
This object has two required properties:
defaultLocale: String. Its value must exist as one of locales keys.
locales: Record<String, String>, key/value - pairs. The key is used to look for a locale part in a page path. The value is a language attribute, only English alphabet and hyphen allowed.
Read more about language attributes.
Read more about localization.
astro.config.mjs
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
site: 'https://stargazers.club',
integrations: [
sitemap({
i18n: {
defaultLocale: 'en', // All urls that don't contain `es` or `fr` after `https://stargazers.club/` will be treated as default locale, i.e. `en`
locales: {
en: 'en-US', // The `defaultLocale` value must present in `locales` keys
es: 'es-ES',
fr: 'fr-CA',
},
},
}),
],
});
The resulting sitemap looks like this:
sitemap-0.xml
...
<url>
<loc>https://stargazers.club/</loc>
<xhtml:link rel="alternate" hreflang="en-US" href="https://stargazers.club/"/>
<xhtml:link rel="alternate" hreflang="es-ES" href="https://stargazers.club/es/"/>
<xhtml:link rel="alternate" hreflang="fr-CA" href="https://stargazers.club/fr/"/>
</url>
<url>
<loc>https://stargazers.club/es/</loc>
<xhtml:link rel="alternate" hreflang="en-US" href="https://stargazers.club/"/>
<xhtml:link rel="alternate" hreflang="es-ES" href="https://stargazers.club/es/"/>
<xhtml:link rel="alternate" hreflang="fr-CA" href="https://stargazers.club/fr/"/>
</url>
<url>
<loc>https://stargazers.club/fr/</loc>
<xhtml:link rel="alternate" hreflang="en-US" href="https://stargazers.club/"/>
<xhtml:link rel="alternate" hreflang="es-ES" href="https://stargazers.club/es/"/>
<xhtml:link rel="alternate" hreflang="fr-CA" href="https://stargazers.club/fr/"/>
</url>
<url>
<loc>https://stargazers.club/es/second-page/</loc>
<xhtml:link rel="alternate" hreflang="es-ES" href="https://stargazers.club/es/second-page/"/>
<xhtml:link rel="alternate" hreflang="fr-CA" href="https://stargazers.club/fr/second-page/"/>
<xhtml:link rel="alternate" hreflang="en-US" href="https://stargazers.club/second-page/"/>
</url>
...
xslURL
The URL of an XSL stylesheet to style and prettify your sitemap.
The value set can be either a path relative to your configured site URL for a local stylesheet, or can be an absolute URL link to an external stylesheet.
astro.config.mjs
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
site: 'https://example.com',
integrations: [
sitemap({
xslURL: '/sitemap.xsl'
}),
],
});

View file

@ -0,0 +1,254 @@
# Internal Collections Documentation
## Übersicht
Dieses Projekt unterstützt **private/interne Content Collections**, die nicht öffentlich zugänglich sind. Diese Collections werden für interne Zwecke wie Marketing-Strategien, Produktentwicklung und Team-Dokumentation verwendet.
## Konventionen
### Naming Convention
- **Prefix `_` (Underscore)**: Alle internen Collections beginnen mit einem Underscore
- Beispiele: `_personas`, `_internal-docs`, `_drafts`
### Verzeichnisstruktur
```
src/content/
├── _personas/ # Intern: Marketing Personas
│ ├── de/
│ └── en/
├── blog/ # Öffentlich: Blog-Artikel
├── features/ # Öffentlich: Features
└── ...
```
## Implementierte Interne Collections
### 1. Personas (`_personas`)
**Zweck**: Detaillierte Zielgruppen-Profile für Marketing und Produktentwicklung
**Schema-Highlights**:
- Demographics (Alter, Ort, Bildung, Einkommen)
- Professional Profile (Job, Branche, Verantwortlichkeiten)
- Psychographics (Persönlichkeit, Werte, Motivationen, Frustrationen)
- Behavior (Tech-Affinität, Arbeitsweise, Tools)
- Memoro-Context (Use Cases, Benefits, Concerns, Features)
- Marketing-Relevanz (Segment, Channels, Messaging)
**Zugriff**: `/admin/personas` (nur im Dev-Modus)
## Technische Implementierung
### 1. Collection Definition
In `src/content/config.ts`:
```typescript
// Private Collection mit _ Prefix
const _personasCollection = defineCollection({
type: 'content',
schema: z.object({
// Schema definition
visibility: z.enum(['internal', 'team', 'stakeholders']).default('internal'),
status: z.enum(['draft', 'active', 'archived']).default('draft'),
// ... weitere Felder
})
});
export const collections = {
// Öffentliche Collections
'blog': blogCollection,
'features': featuresCollection,
// Private Collections (mit _ Prefix)
'_personas': _personasCollection,
};
```
### 2. Zugriffskontrolle
Admin-Seiten implementieren Zugriffskontrolle:
```astro
---
// Nur im Development-Modus oder mit speziellem Query-Parameter
const isDev = import.meta.env.DEV;
const hasAccess = isDev || Astro.url.searchParams.has('access');
if (!hasAccess) {
return Astro.redirect('/404');
}
---
```
### 3. Keine öffentlichen Routes
**Wichtig**: Für interne Collections werden KEINE öffentlichen Routes erstellt:
```astro
// ❌ NICHT erstellen:
src/pages/[lang]/personas/[...slug].astro
// ✅ NUR Admin-Routes:
src/pages/admin/personas.astro
```
## Best Practices
### 1. Sicherheit
- **Niemals** öffentliche Routes für interne Collections erstellen
- Admin-Seiten immer mit Zugriffskontrolle schützen
- Sensitive Daten nicht in Git committen (nutze `.gitignore` für sehr vertrauliche Inhalte)
### 2. Organisation
```markdown
---
# Metadaten für interne Dokumente
status: "draft" | "active" | "archived"
visibility: "internal" | "team" | "stakeholders"
owner: "Marketing Team"
contributors: ["Product", "Sales"]
validatedAt: 2024-01-10T10:00:00Z
---
```
### 3. Verwendung in Code
```typescript
// Interne Collections laden
import { getCollection } from 'astro:content';
// Mit Error Handling
let personas = [];
try {
personas = await getCollection('_personas');
// Filtern nach Status
const activePersonas = personas.filter(p => p.data.status === 'active');
} catch (error) {
console.log('Internal collection not available');
}
```
## Neue interne Collection hinzufügen
### Schritt 1: Schema definieren
In `src/content/config.ts`:
```typescript
const _myInternalCollection = defineCollection({
type: 'content',
schema: z.object({
title: z.string(),
visibility: z.enum(['internal', 'team', 'public']).default('internal'),
// ... weitere Felder
})
});
```
### Schritt 2: Zur Collections-Export hinzufügen
```typescript
export const collections = {
// ... andere collections
'_myInternal': _myInternalCollection,
};
```
### Schritt 3: Content-Verzeichnis erstellen
```bash
mkdir -p src/content/_myInternal/de
mkdir -p src/content/_myInternal/en
```
### Schritt 4: Admin-Interface erstellen (optional)
```astro
// src/pages/admin/my-internal.astro
---
// Zugriffskontrolle
const isDev = import.meta.env.DEV;
if (!isDev) return Astro.redirect('/404');
const items = await getCollection('_myInternal');
---
<!-- Admin UI -->
```
## Wartung und Governance
### Verantwortlichkeiten
| Collection | Owner | Review-Zyklus | Letzte Validierung |
|-----------|--------|---------------|-------------------|
| `_personas` | Marketing Team | Quartalsweise | Januar 2024 |
| `_internal-docs` | Product Team | Monatlich | - |
### Archivierung
Veraltete Inhalte sollten nicht gelöscht, sondern archiviert werden:
```yaml
status: "archived"
archivedAt: 2024-01-15T10:00:00Z
archiveReason: "Outdated after product pivot"
```
## FAQ
**Q: Können interne Collections in Produktion verwendet werden?**
A: Ja, aber nur über geschützte Admin-Interfaces oder interne Tools, niemals über öffentliche URLs.
**Q: Wie verhindere ich versehentliches Veröffentlichen?**
A:
1. Nutze das `_` Prefix konsequent
2. Erstelle keine öffentlichen Routes
3. Implementiere Zugriffskontrolle in Admin-Seiten
4. Nutze `visibility` und `status` Felder
**Q: Können interne Collections in der Sitemap erscheinen?**
A: Nein, da keine öffentlichen Routes erstellt werden, erscheinen sie automatisch nicht in der Sitemap.
**Q: Wie sichere ich sehr sensitive Daten?**
A:
1. Nutze `.gitignore` für hochsensitive Inhalte
2. Verwende Umgebungsvariablen für Secrets
3. Implementiere robuste Authentifizierung für Admin-Bereiche
## Beispiel: Personas Collection
Die `_personas` Collection demonstriert Best Practices:
```markdown
---
name: "Sabine Schmidt"
title: "Die gestresste Projektmanagerin"
# Strukturierte Daten
demographics:
age: 38
location: "München"
# Status-Management
status: "active"
visibility: "internal"
# Tracking
createdAt: 2024-01-15T10:00:00Z
lastUpdated: 2024-01-15T10:00:00Z
validatedAt: 2024-01-10T10:00:00Z
# Verantwortlichkeiten
owner: "Marketing Team"
contributors: ["Product", "Sales"]
---
```
## Kontakt
Bei Fragen zu internen Collections:
- Marketing-Personas: marketing@memoro.ai
- Technische Umsetzung: dev@memoro.ai

View file

@ -0,0 +1,394 @@
# Memoro Website - Projekt-Architektur-Dokumentation
## 📋 Übersicht
Die Memoro-Website ist eine **mehrsprachige Marketing-Website** für eine KI-gestützte App zur Gesprächsdokumentation und Notizenerstellung. Die Website wurde mit **Astro 5.3.0** als statische Website entwickelt und unterstützt Deutsch (de) als Standardsprache sowie Englisch (en).
## 🎯 Projektziel
Die Website dient als zentrale Marketing- und Informationsplattform für die Memoro-App und bietet:
- Produktpräsentation und Feature-Übersicht
- Anleitungen und Dokumentation
- Blog und News-Bereich
- Team-Vorstellung
- Preisgestaltung und Pläne
- Branchenspezifische Lösungen
- Download-Möglichkeiten
## 🛠 Technologie-Stack
### Core Framework
- **Astro 5.3.0**: Static Site Generator mit hervorragender Performance
- **TypeScript**: Strict Mode für Typsicherheit
- **MDX**: Für erweiterte Content-Erstellung mit Komponenten
### Styling & UI
- **Tailwind CSS 3.4**: Utility-first CSS Framework
- **Custom Theme System**: Zentralisierte Design-Tokens in `/src/theme/index.js`
- **Typography Plugin**: Für optimale Text-Darstellung
- **Dark Theme**: Durchgängiges dunkles Design (#181818 Hintergrund)
### Content Management
- **Astro Content Collections**: Strukturierte Content-Verwaltung mit Zod-Schemas
- **15+ Content-Typen**: Blog, Team, Features, Guides, Industries, etc.
- **Mehrsprachigkeit**: Vollständige de/en Unterstützung
### Integrationen
- **Sitemap**: Automatische Generierung für alle Sprachen
- **RSS Feeds**: Für jede Content-Collection und Sprache
- **Icons**: Astro-Icon mit Material Design Icons (MDI)
- **Analytics**: Plausible & Umami Integration
## 📁 Projektstruktur
```
/
├── src/
│ ├── components/ # Wiederverwendbare Astro-Komponenten
│ │ ├── atoms/ # Kleine, atomare Komponenten
│ │ ├── detail/ # Detail-Seiten-Komponenten
│ │ ├── experiments/ # A/B-Testing Komponenten
│ │ ├── industries/ # Branchen-spezifische Komponenten
│ │ └── layouts/ # Layout-Komponenten
│ │
│ ├── content/ # Alle Inhalte mit Zod-Schemas
│ │ ├── blog/ # Blog-Artikel (de/en Unterordner)
│ │ ├── team/ # Team-Profile
│ │ ├── features/ # Feature-Beschreibungen
│ │ ├── guides/ # Anleitungen
│ │ ├── industries/ # Branchenlösungen
│ │ ├── testimonials/ # Kundenstimmen
│ │ ├── blueprints/ # Vorlagen für Aufnahmen
│ │ ├── memories/ # Memory-Typen
│ │ ├── faqs/ # Häufige Fragen
│ │ ├── changelog/ # Produkt-Updates
│ │ ├── statistics/ # Nutzungsstatistiken
│ │ ├── calendar/ # Content-Kalender
│ │ ├── authors/ # Autoren-Profile
│ │ ├── wallpapers/ # Hintergrundbilder
│ │ ├── contracts/ # Rechtliche Dokumente
│ │ ├── dataprotection/# Datenschutz-Dokumente
│ │ └── pages/ # Hauptseiten-Inhalte
│ │
│ ├── i18n/ # Internationalisierung
│ │ ├── ui.ts # UI-Übersetzungen
│ │ └── utils.ts # i18n-Hilfsfunktionen
│ │
│ ├── layouts/ # Seiten-Layouts
│ │ ├── Layout.astro # Standard-Layout
│ │ └── HomeLayout.astro # Spezielles Home-Layout
│ │
│ ├── pages/ # Routing-Struktur
│ │ ├── [lang]/ # Dynamisches Sprach-Routing
│ │ ├── admin/ # Admin-Bereich
│ │ ├── de/ # Deutsche RSS-Feeds
│ │ └── en/ # Englische RSS-Feeds
│ │
│ ├── styles/ # Globale Styles
│ │ └── base.css # Basis-CSS mit Tailwind
│ │
│ ├── theme/ # Theme-Konfiguration
│ │ └── index.js # Design-System-Tokens
│ │
│ ├── utils/ # Hilfsfunktionen
│ │ └── experiments.ts # A/B-Testing Utilities
│ │
│ └── middleware.ts # Request-Middleware für i18n
├── public/ # Statische Assets
│ ├── images/ # Bilder organisiert nach Typ
│ │ ├── blog/
│ │ ├── brand/
│ │ ├── guides/
│ │ ├── industries/
│ │ ├── product_photos/
│ │ ├── screenshots/
│ │ ├── team/
│ │ └── wallpaper/
│ └── rss/ # RSS-Feed Styles
├── docs/ # Projekt-Dokumentation
├── context/ # Kontext-Dokumente für KI
├── plans/ # Projekt-Pläne
└── posts/ # Social Media Posts
```
## 🌍 Internationalisierung (i18n)
### Konfiguration
- **Default Locale**: Deutsch (`de`)
- **Unterstützte Sprachen**: Deutsch (`de`), Englisch (`en`)
- **Routing**: Präfix-basiert (`/de/...`, `/en/...`)
- **Fallback**: Automatische Weiterleitung zur Standardsprache
### Implementierung
- **Middleware**: Behandelt Sprach-Weiterleitungen und 404s
- **Content-Organisation**: Sprachspezifische Unterordner in Collections
- **UI-Übersetzungen**: Zentralisiert in `src/i18n/ui.ts`
- **Sitemap**: Enthält alle Sprachversionen
## 📚 Content Collections
### Übersicht der Collections
Die Website nutzt **15+ typisierte Content Collections** mit Zod-Schemas:
1. **blog**: Artikel mit Metadaten (Autor, Tags, Kategorie)
2. **team**: Team-Profile mit Rollen und Social Links
3. **features**: Produkt-Features mit Icons und Kategorien
4. **guides**: Tutorials mit Schwierigkeitsgrad und Dauer
5. **industries**: Branchenlösungen mit Statistiken und FAQs
6. **testimonials**: Kundenstimmen nach Typ kategorisiert
7. **blueprints**: Aufnahme-Vorlagen für verschiedene Szenarien
8. **memories**: KI-generierte Inhaltstypen
9. **faqs**: Häufige Fragen nach Kategorien
10. **changelog**: Produkt-Updates und Release Notes
11. **statistics**: Wochen- und Monatsberichte
12. **calendar**: Content-Planung mit Events
13. **authors**: Autoren-Profile mit Statistiken
14. **wallpapers**: Hintergrundbilder mit Download-Tracking
15. **dataprotection**: Datenschutz-Dokumente
16. **contracts**: Rechtliche Dokumente
17. **pages**: Hauptseiten-Inhalte
### Schema-Validierung
Jede Collection hat ein **striktes Zod-Schema** für:
- Typ-Sicherheit
- Konsistente Datenstruktur
- Automatische Validierung beim Build
- IntelliSense-Unterstützung in der IDE
## 🎨 Design-System
### Theme-Konfiguration
Zentralisiertes Theme in `/src/theme/index.js`:
```javascript
{
colors: {
primary: '#3B82F6', // Blau
secondary: '#10B981', // Grün
background: {
global: '#181818', // Dunkler Hintergrund
card: 'rgba(50, 50, 50, 0.8)',
cardHover: 'rgba(50, 50, 50, 0.99)'
},
text: {
primary: '#F9FAFB', // Heller Text
secondary: '#D1D5DB', // Sekundärer Text
tertiary: '#9CA3AF' // Tertiärer Text
}
}
}
```
### Tailwind-Erweiterungen
- **Custom Font Sizes**: Hero, Display, Heading mit responsiven Varianten
- **Typography Plugin**: Angepasst für Dark Theme
- **Custom Utilities**: scrollbar-none, bg-gradient-radial
- **Group-Open Variant**: Für Details-Elemente
## 🚀 Build & Deployment
### Build-Prozess
```bash
npm run dev # Entwicklungsserver (localhost:4321)
npm run build # Production Build nach ./dist/
npm run preview # Vorschau des Production Builds
npm run astro check # TypeScript Type-Checking
```
### Statische Generierung
- **Vollständig statisch**: Alle Seiten werden zur Build-Zeit generiert
- **Keine Server-Runtime**: Optimale Performance
- **getStaticPaths()**: Für dynamische Routen
- **Optimierte Assets**: Automatische Bild-Optimierung mit Sharp
## 📊 Analytics & Tracking
### Plausible Analytics
- **Cookieless Tracking**: DSGVO-konform
- **Event-Tracking**: Detailliertes Nutzerverhalten
- **Funnel-Analyse**: Conversion-Tracking
- **Custom Events**: Download, CTA-Clicks, etc.
### Umami Analytics
- **Self-Hosted Option**: Datenschutz-freundlich
- **Real-Time Stats**: Live-Besucherdaten
- **Keine Cookies**: Privacy-first Ansatz
## 🧪 Experimente & A/B-Testing
### PostHog Integration
- **Feature Flags**: Für kontrollierte Rollouts
- **A/B-Tests**: Hero-Varianten, CTA-Buttons
- **Conversion-Tracking**: Erfolgsmetriken
### Implementierte Tests
- Hero-Section Varianten
- CTA-Button Tests
- Navigation Download-Button
## 🔒 Sicherheit & Datenschutz
### DSGVO-Konformität
- **Datenschutzerklärung**: Mehrsprachig verfügbar
- **Cookie-Consent**: Optional für erweiterte Features
- **Datenminimierung**: Nur notwendige Daten
- **TOMs**: Technische und organisatorische Maßnahmen dokumentiert
### Content Security
- **Statische Generierung**: Keine Server-Vulnerabilities
- **TypeScript**: Typ-sichere Entwicklung
- **Validierung**: Zod-Schemas für alle Inhalte
## 🎯 Besondere Features
### 1. Recording Blueprints
Vorgefertigte Vorlagen für verschiedene Aufnahme-Szenarien:
- Büro-Meetings
- Baustellendokumentation
- Akademische Vorlesungen
- Kundengespräche
### 2. Memory-System
KI-generierte Inhaltstypen aus Aufnahmen:
- Zusammenfassungen
- Aufgaben & Termine
- Blog-Beiträge
- Social Media Posts
### 3. Mana-Credit-System
Flexibles Abrechnungsmodell:
- Tägliche Mana-Gutschriften
- Mana-Potions zum Nachkaufen
- Maximale Mana-Limits je Plan
### 4. Multi-Collection RSS
RSS-Feeds für jede Content-Collection:
- Sprachspezifisch
- Automatisch generiert
- XSLT-Styling
### 5. Content-Kalender
Integrierte Planung für Content-Erstellung:
- Monatsplanung
- Status-Tracking
- Multi-Autor-Support
## 📈 Performance-Optimierungen
### Build-Optimierungen
- **Static Site Generation**: Keine Server-Laufzeit
- **Asset-Optimierung**: Automatische Bild-Kompression
- **Code-Splitting**: Optimale Bundle-Größen
- **Lazy Loading**: Für Bilder und Komponenten
### Frontend-Optimierungen
- **Tailwind Purge**: Nur verwendete CSS-Klassen
- **Font-Optimierung**: System-Fonts mit Fallbacks
- **Minimal JavaScript**: Nur wo notwendig
- **Service Worker**: Für Offline-Support (geplant)
## 🛠 Entwickler-Tools
### Verfügbare Skripte
- `npm run dev`: Lokale Entwicklung
- `npm run build`: Production Build
- `npm run preview`: Build-Vorschau
- `npm run astro check`: Type-Checking
### Debug-Tools
- **Admin-Bereich**: `/admin/` für Content-Übersicht
- **Author-Management**: `/admin/authors`
- **Find-Untranslated**: Script für fehlende Übersetzungen
## 📝 Code-Konventionen
### Komponenten
- **PascalCase**: Für Komponentennamen
- **Props-Interfaces**: TypeScript-Definitionen
- **Import-Reihenfolge**: Externe → Interne
### Content
- **Frontmatter**: Zod-validiert
- **MDX-Support**: Komponenten in Markdown
- **Sprachordner**: de/en Struktur
### Styling
- **Tailwind-First**: Utility-Klassen bevorzugt
- **Kebab-Case**: Für Custom-CSS
- **Keine Inline-Styles**: Außer absolut notwendig
## 🚦 Deployment-Strategie
### Hosting
- **Static Hosting**: Optimiert für CDN-Deployment
- **Asset-CDN**: Für Bilder und Medien
- **Multi-Region**: Für optimale Latenz
### CI/CD
- **Automatische Builds**: Bei Git-Push
- **Type-Checking**: Vor jedem Build
- **Sitemap-Generierung**: Automatisch
- **RSS-Feed-Updates**: Bei Content-Änderungen
## 📊 Monitoring & Wartung
### Analytics-Dashboard
- Besucher-Statistiken
- Conversion-Tracking
- Event-Analyse
- Funnel-Visualisierung
### Content-Management
- Regelmäßige Blog-Posts
- Feature-Updates
- Team-Änderungen
- FAQ-Erweiterungen
### Performance-Monitoring
- Lighthouse-Scores
- Core Web Vitals
- Bundle-Size-Tracking
- Build-Zeit-Optimierung
## 🔮 Zukünftige Erweiterungen
### Geplante Features
- PWA-Support
- Erweiterte Suche
- Newsletter-Integration
- Mehr Sprachen
- API-Dokumentation
- Video-Tutorials
### Technische Verbesserungen
- Service Worker
- WebP-Bildformat
- Erweiterte Caching-Strategien
- GraphQL-API (optional)
- CMS-Integration (optional)
## 📞 Support & Dokumentation
### Interne Dokumentation
- `/docs/`: Technische Dokumentation
- `/context/`: KI-Kontext-Dokumente
- `/plans/`: Projekt-Roadmaps
- `CLAUDE.md`: KI-Assistenz-Guidelines
### Externe Ressourcen
- [Astro Dokumentation](https://docs.astro.build)
- [Tailwind CSS](https://tailwindcss.com)
- [MDX](https://mdxjs.com)
- [Zod](https://zod.dev)
---
**Letztes Update**: Januar 2025
**Version**: 2.0.0
**Maintainer**: Memoro Development Team

View file

@ -0,0 +1,370 @@
# App Store & Play Store Entry Informationen
## ⚠️ Wichtige Formatierungshinweise
App Store Limitierungen:
- Keine Markdown-Formatierung (keine ** für Bold)
- Keine Bullet Points (•), stattdessen Bindestriche (-) verwenden
- Einfacher Text ohne Formatierung
- Keine Emojis im Text (werden nicht unterstützt)
## 📱 App Store (iOS) Informationen
### App Name
Memoro - KI Meeting-Protokoll
- Untertitel: Automatische Gesprächsnotizen
### Keywords (100 Zeichen)
meeting,protokoll,transkription,notizen,aufnahme,diktat,voice-to-text,gespräch,zusammenfassung
### Beschreibung (4000 Zeichen)
Headline: Memoro - KI Meeting-Protokoll & Automatische Notizen
Haupttext:
Verwandle jedes Gespräch in strukturierte Notizen - automatisch und intelligent.
Memoro ist deine KI-gestützte Meeting-App für automatische Gesprächsprotokolle, Transkriptionen und intelligente Zusammenfassungen. Nie wieder händisch mitschreiben - konzentriere dich auf das Wesentliche, während Memoro für dich dokumentiert.
Perfekt für:
- Business Meetings & Konferenzen
- Vorlesungen & Seminare
- Kundengespräche & Beratungen
- Interviews & Recherchen
- Baustellenbesprechungen
- Arztgespräche & Therapiesitzungen
- Team-Briefings & Stand-ups
Kernfunktionen:
Intelligente Meeting-Aufzeichnung
- Automatische Transkription in Echtzeit
- KI-gestützte Zusammenfassungen
- Erkennung von Aufgaben & Terminen
- Sprechererkennung für klare Zuordnung
26+ Sprachen & Dialekte
- Deutsch, Schweizerdeutsch, Englisch
- Automatische Spracherkennung
- Mehrsprachige Meetings problemlos
- Übersetzungsfunktion integriert
Professionelle Vorlagen
- Business: Meeting-Protokolle, Kundengespräche
- Bildung: Vorlesungen, Seminare
- Handwerk: Baustellenbesprechungen
- Medizin: Patientengespräche
- Beratung: Coaching-Sessions
- Vertrieb: Sales-Gespräche
- Individuell anpassbar
Nahtlose Team-Kollaboration
- Ein-Klick-Sharing via WhatsApp, Teams, Slack
- PDF & Word Export
- Web-App unter app.memoro.ai
- Automatische Cloud-Synchronisation
KI-Assistent integriert
- Frage deine Memos direkt
- Kombiniere mehrere Gespräche
- Intelligente Suche
- Automatische Kategorisierung
Produktivitätssteigerung:
- 80% Zeitersparnis bei Protokollen
- 100% der wichtigen Details erfasst
- 5x schnellere Nachbereitung
- Durchsuchbare Gesprächsarchive
Deutscher Datenschutz:
- DSGVO-konform
- Server in Deutschland
- Ende-zu-Ende-Verschlüsselung
- Keine Weitergabe an Dritte
- ISO 27001 zertifiziert
Premium Features:
- Unbegrenzte Aufnahmedauer
- Erweiterte KI-Analysen
- Team-Workspaces
- API-Zugang
- Priority Support
Das sagen unsere Nutzer:
"Endlich kann ich mich auf Gespräche konzentrieren statt auf Notizen!" - Sarah M., Projektmanagerin
"Spart mir täglich 2 Stunden Nacharbeit." - Dr. Thomas K., Berater
"Unverzichtbar für internationale Meetings!" - Lisa W., Sales Director
Jetzt kostenlos testen
Starte mit 60 Freiminuten und erlebe, wie Memoro deine Meetings revolutioniert. Keine Kreditkarte erforderlich.
Support & Kontakt:
support@memoro.ai
www.memoro.ai
Transformiere deine Gespräche in Wissen - mit Memoro.
### Promotional Text (170 Zeichen)
KI Meeting-Protokoll in 26 Sprachen. Automatische Transkription & Zusammenfassung. DSGVO-konform. Jetzt 60 Min kostenlos testen!
### Neu in dieser Version
Memoro 2.0 - Das größte Update aller Zeiten!
Revolutionäre KI-Features:
- Blitzschnelle Verarbeitung - bis zu 10x schneller Memos erhalten
- Mana Credits System - Transparente KI-Nutzung mit voller Kostenkontrolle, Einmalkäufe möglich
- Memos befragen - Stelle Fragen zu deinen Aufnahmen, erhalte intelligente Antworten
- Memos kombinieren - Verbinde mehrere Gespräche zu umfassenden Projekten
Maximaler Datenschutz:
- Google Analytics komplett entfernt - 100% Privatsphäre
- Open-Source Analytics in der EU - DSGVO-konform
- Datenbank in Frankfurt - Höchste deutsche Sicherheitsstandards
- Alle Daten bleiben in der EU - Keine Drittländer-Übertragung
- Verbesserter Datenschutz mit weniger Drittanbietern
Performance & Design:
- Komplett neues Design - Moderner, intuitiver, Kontext-Menüs
- Erweiterte Aufnahmen - Längere Sessions möglich
- Web-App Aufnahme - Direkt im Browser aufzeichnen
Noch mehr Verbesserungen:
- Mehr Sprachen - Jetzt 80+ Sprachen und Dialekte
- Verbesserte Zusammenfassungen
- Optimierte Sprechererkennung
- Stabilere Langzeit-Aufnahmen
---
## 🤖 Google Play Store (Android) Informationen
### App-Titel (30 Zeichen)
Memoro - KI Meeting-Protokoll
### Kurzbeschreibung (80 Zeichen)
Automatische Meeting-Protokolle & Transkription. KI-Notizen in 26 Sprachen.
### Vollständige Beschreibung (4000 Zeichen)
[Identisch mit App Store Beschreibung oben]
### Tags
meeting, protokoll, transkription, notizen, aufnahme, diktat, voice-to-text, gespräch, zusammenfassung, ki, künstliche intelligenz, business, produktivität, team
---
## 📸 Screenshot-Texte (Optimiert für SEO)
### Screenshot 1 - Startbildschirm
Headline: KI Meeting-Protokoll starten
Subline: Automatische Transkription beginnt sofort
### Screenshot 2 - Aufnahme
Headline: Meeting aufzeichnen & transkribieren
Subline: Echtzeit Voice-to-Text in 26 Sprachen
### Screenshot 3 - KI-Zusammenfassung
Headline: Intelligente Meeting-Zusammenfassung
Subline: KI erkennt Aufgaben, Termine & Kernpunkte
### Screenshot 4 - Sprechererkennung
Headline: Automatische Sprecherzuordnung
Subline: Wer hat was gesagt - klar dokumentiert
### Screenshot 5 - Teilen
Headline: Meeting-Notizen sofort teilen
Subline: WhatsApp, Teams, Slack, E-Mail & mehr
### Screenshot 6 - Vorlagen
Headline: Professionelle Meeting-Vorlagen
Subline: Business, Bildung, Medizin & mehr
### Screenshot 7 - Mehrsprachig
Headline: 26 Sprachen automatisch erkennen
Subline: Internationale Meetings problemlos
### Screenshot 8 - KI-Assistent
Headline: Frage deine Meetings direkt
Subline: KI-Suche in allen Protokollen
### Screenshot 9 - Datenschutz
Headline: DSGVO-konform & sicher
Subline: Deutsche Server, verschlüsselt
### Screenshot 10 - Web-App
Headline: Überall verfügbar
Subline: iOS, Android & Web synchronisiert
---
## 🌍 Lokalisierte Versionen
### English (App Store/Play Store)
#### App Name
Memoro - AI Meeting Minutes
Subtitle: Automatic conversation notes
#### Keywords
meeting,minutes,transcription,notes,recording,dictation,voice-to-text,conversation,summary,ai
#### Short Description
AI-powered meeting minutes & transcription. Automatic notes in 26+ languages.
#### Description (Kurzfassung)
Transform every conversation into structured notes - automatically and intelligently.
Memoro is your AI-powered meeting app for automatic minutes, transcriptions, and intelligent summaries. Never write notes manually again - focus on what matters while Memoro documents for you.
Core Features:
- Real-time transcription
- AI summaries & action items
- 26+ languages supported
- Speaker recognition
- Professional templates
- One-click sharing
- GDPR compliant
- German servers
Start free with 60 minutes. No credit card required.
---
## 📊 App Store Optimization (ASO) Strategie
### Primäre Keywords (Deutsch)
1. Meeting Protokoll
2. Transkription App
3. Voice to Text
4. Gesprächsnotizen
5. Diktierfunktion
6. KI Zusammenfassung
7. Automatische Notizen
8. Spracherkennung
### Sekundäre Keywords
1. Business Meeting App
2. Konferenz Tool
3. Team Kollaboration
4. Digitale Notizen
5. Audio Transkription
6. Meeting Aufzeichnung
7. Gesprächsprotokoll
8. Speech to Text Deutsch
### Long-Tail Keywords
1. Automatische Meeting Protokolle erstellen
2. KI gestützte Gesprächszusammenfassung
3. Mehrsprachige Transkription App
4. DSGVO konforme Meeting App
5. Voice to Text für Business
### Konkurrenzanalyse Keywords
- Otter.ai Alternative
- Notion Voice Notes
- Microsoft Teams Transkription
- Zoom Meeting Protokoll
- Google Meet Notizen
---
## 🎯 Marketing Messaging
### Value Propositions
1. Zeitersparnis: "Spare 2 Stunden täglich"
2. Vollständigkeit: "Verpasse nie wieder wichtige Details"
3. Produktivität: "5x schnellere Meeting-Nachbereitung"
4. Sicherheit: "100% DSGVO-konform, Server in Deutschland"
5. Vielseitigkeit: "26 Sprachen, alle Branchen"
### Call-to-Actions
- "Jetzt kostenlos testen"
- "60 Minuten gratis"
- "Meeting-Stress beenden"
- "Protokolle automatisieren"
- "KI-Assistent aktivieren"
### Social Proof
- "50.000+ zufriedene Nutzer"
- "4.8 Sterne Bewertung"
- "Von Experten empfohlen"
- "#1 Meeting App in Deutschland"
---
## 📝 Zusätzliche Store-Felder
### Kategorien
- Primär: Produktivität
- Sekundär: Business
### Altersfreigabe
- 4+ (Keine Altersbeschränkung)
### In-App-Käufe
- Memoro Pro Monat (9,99 €)
- Memoro Pro Jahr (89,99 €)
- Memoro Teams (ab 19,99 €/Nutzer)
### Datenschutz-Labels
- Kontaktinformationen (optional)
- Audio-Aufnahmen (erforderlich)
- Verwendungsdaten (Analytics)
- Diagnose (Crash-Reports)
### Support-Informationen
- E-Mail: support@memoro.ai
- Website: https://www.memoro.ai
- Datenschutz: https://www.memoro.ai/de/legal/dataprivacy
- AGB: https://www.memoro.ai/de/legal/agb
### App-Größe
- iOS: ~45 MB
- Android: ~38 MB
### Mindestanforderungen
- iOS: 14.0 oder höher
- Android: 7.0 (API 24) oder höher
---
## 🚀 Launch-Strategie
### Soft Launch Länder
1. Deutschland
2. Österreich
3. Schweiz
### Vollständiger Launch
- EU-Länder
- USA & Kanada
- UK & Australien
### Preisgestaltung
- Freemium: 60 Min/Monat kostenlos
- Pro: 9,99 €/Monat
- Teams: Ab 19,99 €/Nutzer/Monat
- Enterprise: Individuell
---
## 📈 Erfolgsmetriken
### Key Performance Indicators
- Download-Rate
- Conversion Rate (Free zu Pro)
- User Retention (Tag 1, 7, 30)
- Durchschnittliche Sitzungsdauer
- App Store Bewertung
- Keyword Rankings
### Ziele Q1 2025
- 100.000 Downloads
- 4.5+ Sterne Bewertung
- Top 10 Produktivitäts-Apps
- 15% Conversion Rate
---
*Letzte Aktualisierung: September 2025*
*Version: 1.0*

View file

@ -0,0 +1,268 @@
# App Store Screenshot Analyse & Optimierungsvorschläge
## Best Practices für App Store Screenshots
### Grundlegende Prinzipien
#### 1. Die ersten 2-3 Screenshots sind entscheidend
- 70% der Nutzer schauen nur die ersten 2-3 Screenshots an
- Diese müssen die Hauptfunktionen und den größten Nutzen zeigen
- Der erste Screenshot sollte die Kernfunktion visualisieren
#### 2. Text-zu-Bild Verhältnis
- Maximal 20% der Fläche sollte Text sein
- Headlines sollten kurz und prägnant sein (3-6 Wörter)
- Verwende große, gut lesbare Schriftarten
#### 3. Visuelle Hierarchie
- Klare Fokuspunkte setzen
- Kontrastreiche Farben für wichtige Elemente
- Device-Mockups verwenden für Kontext
#### 4. Storytelling durch Screenshots
- Erzähle eine Geschichte über die User Journey
- Zeige Problem → Lösung → Ergebnis
- Baue emotionale Verbindung auf
#### 5. SEO-Optimierung
- Keywords in Screenshot-Überschriften verwenden
- Relevante Suchbegriffe einbauen
- Call-to-Actions integrieren
#### 6. A/B Testing Prioritäten
- Reihenfolge der Screenshots
- Überschriften-Texte
- Farbschemata
- Mit/ohne Device-Mockups
#### 7. Lokalisierung
- Screenshots für verschiedene Märkte anpassen
- Sprache der UI-Elemente beachten
- Kulturell relevante Beispiele verwenden
#### 8. Technische Anforderungen
- iOS: 1242 x 2208px (iPhone) oder 1290 x 2796px
- Hochauflösende Grafiken verwenden
- Konsistentes Design über alle Screenshots
---
## Aktuelle Screenshot-Analyse
### Screenshot 1: "Memoro hört zu und führt Protokoll"
**Stärken:**
- Klare Hauptfunktion dargestellt
- Einfaches, verständliches Interface
- Guter Kontrast mit gelbem Accent
**Schwächen:**
- Text könnte prägnanter sein
- Kein klarer Call-to-Action
- Interface wirkt etwas leer
### Screenshot 2: "Schreibt Gesprochenes auf und fasst zusammen"
**Stärken:**
- Zeigt konkrete Funktionalität
- Liste verdeutlicht Vielseitigkeit
**Schwächen:**
- Zu viel Text im Screenshot
- Headline zu lang
- Visuelle Hierarchie unklar
### Screenshot 3: "Sortiere deine Memos und durchsuche sie"
**Stärken:**
- Zeigt Organisationsfunktionen
- Tags-System sichtbar
**Schwächen:**
- Nicht sofort verständlich
- Wenig emotionaler Appeal
### Screenshot 4: "Angepasste Modi für etliche Gespräche"
**Stärken:**
- Zeigt Anpassungsmöglichkeiten
- Verschiedene Use Cases
**Schwächen:**
- Headline unklar formuliert
- Interface sehr textlastig
### Screenshot 5: "Teile deine Memos über alle Kanäle"
**Stärken:**
- Klare Sharing-Funktion
- Bekannte App-Icons
**Schwächen:**
- Layout nicht optimal
- Könnte visuell ansprechender sein
### Screenshot 6: "Versteht über 80 Sprachen und übersetzt"
**Stärken:**
- Starkes Verkaufsargument
- Flaggen visualisieren Feature
**Schwächen:**
- Design inkonsistent zu anderen Screenshots
- Zahlen-Claim sollte prominenter sein
### Screenshot 7: "Neue Funktionen in Memoro 2.0"
**Stärken:**
- Update-Informationen
- Feature-Liste
**Schwächen:**
- Zu viel Text
- Nicht für Erstnutzer relevant
- Sollte nicht in ersten Screenshots sein
### Screenshot 8: "Dein automatisches Meeting-Protokoll"
**Stärken:**
- Klarer Use Case
- Device-Mockup für Kontext
**Schwächen:**
- Redundant zu Screenshot 1
- Text auf Device zu klein
---
## Verbesserungsvorschläge
### Option A: Feature-Fokussiert
**Zielgruppe:** Produktivitätsorientierte Business-Nutzer
1. **KI Meeting-Protokoll in Aktion**
- Live-Aufnahme mit Echtzeit-Transkription
- Headline: "Nie wieder mitschreiben"
- Zeige aktive Aufnahme mit Wellenform
2. **Intelligente Zusammenfassung**
- Fertige Zusammenfassung mit Kernpunkten
- Headline: "KI fasst zusammen"
- Vorher/Nachher Vergleich
3. **80+ Sprachen automatisch**
- Mehrsprachiges Meeting
- Headline: "Versteht 80+ Sprachen"
- Flaggen-Grid prominent
4. **Ein-Klick Sharing**
- Export-Optionen
- Headline: "Sofort teilen"
- WhatsApp, Teams, Slack Icons
5. **DSGVO-konform**
- Sicherheits-Features
- Headline: "100% sicher"
- Deutsche Server betonen
### Option B: Use-Case-Orientiert
**Zielgruppe:** Verschiedene Berufsgruppen
1. **Business Meeting**
- Manager in Meeting-Situation
- Headline: "Meeting-Stress ade"
- Zeige Protokoll-Ergebnis
2. **Student in Vorlesung**
- Uni-Kontext
- Headline: "Vorlesungen meistern"
- Zusammenfassung einer Vorlesung
3. **Arzt-Patient Gespräch**
- Medizinischer Kontext
- Headline: "Gespräche dokumentiert"
- DSGVO-Hinweis
4. **Baustellenbesprechung**
- Handwerker-Kontext
- Headline: "Projekte im Griff"
- Checklisten-Feature
5. **Journalist Interview**
- Interview-Situation
- Headline: "Interviews perfekt"
- Transkription-Feature
### Option C: Problem-Lösung-Storytelling
**Zielgruppe:** Schmerzpunkt-orientierte Nutzer
1. **Das Problem**
- Gestresste Person mit Notizblock
- Headline: "Kennst du das?"
- Chaos visualisieren
2. **Die Lösung**
- Memoro App-Start
- Headline: "Memoro hört zu"
- Ein-Knopf-Bedienung
3. **Der Prozess**
- KI arbeitet
- Headline: "KI macht die Arbeit"
- Fortschrittsanzeige
4. **Das Ergebnis**
- Fertige Zusammenfassung
- Headline: "Fertig in Sekunden"
- Struktur zeigen
5. **Der Mehrwert**
- Zufriedener Nutzer
- Headline: "2 Stunden gespart"
- Testimonial einbauen
---
## Empfohlene Sofortmaßnahmen
### Priorität 1: Headlines optimieren
- Kürzer (max. 4 Wörter)
- Keywords einbauen
- Nutzen statt Features
### Priorität 2: Ersten Screenshot optimieren
- Stärkerer visueller Hook
- Klarere Value Proposition
- Call-to-Action einbauen
### Priorität 3: Konsistenz verbessern
- Einheitliches Farbschema
- Gleiche Schriftgrößen
- Device-Mockups vereinheitlichen
### Priorität 4: Text reduzieren
- Weniger Text pro Screenshot
- Größere Schrift
- Mehr visuelle Elemente
### Priorität 5: A/B Tests durchführen
- Option A vs. Option B testen
- Conversion-Rates messen
- Iterativ verbessern
---
## Metriken zur Erfolgsmessung
- **Conversion Rate:** App Store Seite → Download
- **Screenshot-Engagement:** Wie viele Screenshots werden angeschaut
- **Time-on-Page:** Verweildauer auf App Store Seite
- **Keyword Rankings:** Position für Hauptkeywords
- **A/B Test Results:** Welche Variante performt besser
---
## Nächste Schritte
1. Entscheidung für eine Option (A, B oder C)
2. Neue Screenshots erstellen
3. A/B Test aufsetzen
4. Performance monitoren
5. Basierend auf Daten optimieren
---
*Erstellt: September 2025*
*Version: 1.0*

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 KiB

View file

@ -0,0 +1,192 @@
# Blog Image Guidelines
## Overview
This document defines the visual standards and guidelines for all blog images on the Memoro website. Following these guidelines ensures consistency, professionalism, and brand alignment across all content.
## Visual Identity
### Core Principles
- **Modern & Professional**: Clean, contemporary design that reflects Memoro's innovative approach
- **Tech-Forward but Human-Centric**: Balance technical sophistication with approachability
- **Consistent Brand Experience**: Every image should feel like part of the Memoro family
- **Accessibility First**: High contrast, clear visuals that work for all users
### Brand Colors
- **Primary Yellow**: `#F8D62B`
- **Accent Colors**: Use sparingly for highlights
- **Backgrounds**: Primarily white (`#FFFFFF`) or black (`#181818`)
- **Text on Images**: Dark gray (`#333333`) for maximum readability
## Image Types & Specifications
### 1. Hero Images
- **Purpose**: Article headers, primary visual impact
- **Dimensions**: 1200x630px (Open Graph optimized)
- **Style**: Bold, eye-catching, sets the article tone
- **File Size**: Max 200KB (optimized WebP)
### 2. Concept Visualizations
- **Purpose**: Abstract representations of complex ideas
- **Dimensions**: 800x450px
- **Style**: Minimalist diagrams, icons, and shapes
- **Use When**: Explaining abstract concepts, workflows, or systems
### 3. Workflow Diagrams
- **Purpose**: Step-by-step process illustrations
- **Dimensions**: 800x450px or 1000x600px for complex flows
- **Style**: Numbered steps, clear flow direction, consistent iconography
- **Elements**: Arrows, numbered circles, descriptive labels
### 4. Comparison Graphics
- **Purpose**: Before/after, with/without scenarios
- **Dimensions**: 800x450px
- **Style**: Split-screen or side-by-side layouts
- **Key Feature**: Clear visual distinction between states
### 5. Data Visualizations
- **Purpose**: Statistics, metrics, performance indicators
- **Dimensions**: 600x400px
- **Style**: Clean charts, modern gauges, progress indicators
- **Colors**: Use brand colors for data points
## Design Standards
### Typography on Images
- **Headings**: Sans-serif, bold, minimum 24pt
- **Body Text**: Sans-serif, regular, minimum 16pt
- **Font Suggestions**: Inter, Roboto, or system fonts
- **Contrast**: Always ensure WCAG AA compliance
### Iconography
- **Style**: Outline or filled, consistent weight
- **Size**: Minimum 32x32px for visibility
- **Sources**: Heroicons, Tabler Icons, or custom
- **Consistency**: Use same icon set throughout article
### Composition Guidelines
- **Spacing**: Generous whitespace, avoid clutter
- **Alignment**: Consistent grid system
- **Hierarchy**: Clear visual priority
- **Balance**: Even distribution of visual weight
## AI Image Generation Prompts
### Standard Prompt Structure
```
Create a [IMAGE TYPE] showing [DESCRIPTION].
Style: Modern, professional, clean design.
Colors: Use blue (#0066CC) and purple (#6B46C1) as primary colors.
Background: White or light gray.
Additional: [SPECIFIC REQUIREMENTS]
Dimensions: [WIDTH]x[HEIGHT]px
Avoid: Stock photo clichés, overly complex designs, dark backgrounds
```
### Example Prompts by Type
#### Hero Image
```
Create a hero image visualizing AI-powered meeting assistance.
Style: Modern, professional, clean design with abstract geometric shapes.
Colors: Gradient from blue (#0066CC) to purple (#6B46C1).
Background: White with subtle geometric patterns.
Include: Floating interface elements suggesting productivity.
Dimensions: 1200x630px
Avoid: Literal office scenes, stock photo style
```
#### Workflow Diagram
```
Design a 4-step workflow diagram for meeting documentation.
Style: Flat design with numbered steps connected by flowing lines.
Colors: Primary blue (#0066CC) with purple accents.
Each step: Icon + short label, connected by arrows.
Background: Clean white.
Dimensions: 800x450px
```
## Do's and Don'ts
### ✅ DO
- Use consistent visual language across article series
- Include subtle gradients and modern effects
- Maintain high contrast for accessibility
- Add subtle shadows for depth
- Use brand colors prominently
- Keep text minimal and impactful
- Test images at different sizes
### ❌ DON'T
- Use generic stock photos
- Include photos of real people (unless team photos)
- Create overly complex or busy designs
- Use conflicting color schemes
- Add unnecessary decorative elements
- Use low-resolution or pixelated graphics
- Forget mobile optimization
## File Management
### Naming Convention
```
[article-slug]-[image-type]-[number].webp
```
Examples:
- `prompt-engineering-hero-01.webp`
- `ai-assistant-workflow-01.webp`
- `decision-making-comparison-01.webp`
### Storage Structure
```
/public/images/blog/
├── heroes/ # Hero images
├── diagrams/ # Workflow and concept diagrams
├── comparisons/ # Before/after graphics
└── data-viz/ # Charts and data visualizations
```
### Optimization Requirements
1. **Format**: WebP with JPG fallback
2. **Compression**: 85% quality for WebP
3. **Lazy Loading**: Implement for all non-hero images
4. **Alt Text**: Descriptive, keyword-optimized
5. **Responsive**: Provide 2x versions for retina displays
## Implementation Checklist
Before publishing any blog image:
- [ ] Follows brand color guidelines
- [ ] Meets dimension requirements
- [ ] Under 200KB file size
- [ ] Has descriptive alt text
- [ ] Tested on mobile devices
- [ ] Consistent with article series style
- [ ] Optimized for web performance
- [ ] Accessible contrast ratios
## Tools & Resources
### Recommended Design Tools
- **Figma**: For creating custom graphics
- **Canva**: For quick layouts with brand templates
- **draw.io**: For technical diagrams
- **DALL-E / Midjourney**: For AI-generated base images
### Optimization Tools
- **Squoosh**: Web-based image optimization
- **ImageOptim**: Mac app for batch optimization
- **TinyPNG**: Online WebP/PNG optimization
### Color & Contrast Checkers
- **WebAIM Contrast Checker**
- **Stark (Figma plugin)**
- **Colorable.co**
## Version History
- v1.0 (2025-01-22): Initial guidelines created
- Created by: Till Schneider
- Last updated: 2025-01-22
---
For questions or suggestions about these guidelines, please contact the content team.

View file

@ -0,0 +1,174 @@
# ROI-Rechner Komponente
## Übersicht
Interaktiver ROI (Return on Investment) Rechner zur Visualisierung der Zeit- und Geldersparnis mit Memoro.
## Features
- 🎚️ **Interaktive Slider** für alle Parameter
- 📊 **Echtzeit-Berechnung** bei jeder Änderung
- 💰 **Zeit- und Geldersparnis** für Woche/Monat/Jahr
- 📈 **ROI-Berechnung** zeigt Amortisationszeit
- 🌍 **Mehrsprachig** (DE/EN)
- 📱 **Responsive Design** für alle Geräte
- 🎨 **Anpassbares Design** mit Farbschema
## Verwendung
### Basic Usage
```astro
import ROICalculator from "../components/ROICalculator.astro";
<ROICalculator />
```
### Mit Custom Props
```astro
<ROICalculator
lang="de"
title="Berechnen Sie Ihre Zeitersparnis"
subtitle="Finden Sie heraus, wie viel Sie sparen können"
accentColor="primary"
/>
```
## Props
| Prop | Type | Default | Beschreibung |
|------|------|---------|--------------|
| `lang` | `'de' \| 'en'` | `'de'` | Sprache der Komponente |
| `title` | `string` | Auto | Überschrift des Rechners |
| `subtitle` | `string` | Auto | Untertitel/Beschreibung |
| `accentColor` | `string` | `'primary'` | Farbschema für Akzente |
## Einstellbare Parameter
### Meetings pro Woche
- **Range:** 1-30 Meetings
- **Default:** 10 Meetings
- **Einfluss:** Direkte Multiplikation der Zeitersparnis
### Minuten pro Meeting
- **Range:** 15-120 Minuten
- **Default:** 45 Minuten
- **Schritte:** 15 Minuten
- **Einfluss:** Basis für Protokoll-Zeit
### Minuten für Protokoll
- **Range:** 10-90 Minuten
- **Default:** 30 Minuten
- **Schritte:** 5 Minuten
- **Einfluss:** Hauptfaktor für Zeitersparnis (80% mit Memoro gespart)
### Stundensatz
- **Range:** 20-200 €/Stunde
- **Default:** 50 €/Stunde
- **Schritte:** 10 €
- **Einfluss:** Berechnung der Geldersparnis
## Berechnungslogik
### Zeitersparnis
```javascript
// 80% Zeitersparnis bei der Protokollerstellung
minutesSavedPerMeeting = protocolTime * 0.8
minutesSavedPerWeek = minutesSavedPerMeeting * meetings
hoursSavedPerWeek = minutesSavedPerWeek / 60
hoursSavedPerMonth = hoursSavedPerWeek * 4.33
hoursSavedPerYear = hoursSavedPerWeek * 52
daysSavedPerYear = hoursSavedPerYear / 8
```
### Geldersparnis
```javascript
moneySavedPerWeek = hoursSavedPerWeek * hourlyRate
moneySavedPerMonth = hoursSavedPerMonth * hourlyRate
moneySavedPerYear = hoursSavedPerYear * hourlyRate
```
### ROI (Return on Investment)
```javascript
memoroCostPerMonth = 15 // Durchschnittlicher Memoro-Preis
daysToROI = Math.ceil(memoroCostPerMonth / (moneySavedPerMonth / 30))
```
## Annahmen
- **80% Zeitersparnis** bei der Protokollerstellung durch Memoro
- **4.33 Wochen** pro Monat (Durchschnitt)
- **52 Wochen** pro Jahr
- **8 Stunden** Arbeitstag für Tagesberechnung
- **15€/Monat** durchschnittliche Memoro-Kosten für ROI
## Styling
Die Komponente verwendet:
- Tailwind CSS für Layout und Styling
- Custom CSS für Slider-Styling
- Gradient-Backgrounds für visuelle Attraktivität
- Smooth Transitions für bessere UX
### Slider-Styling
```css
.slider {
background: linear-gradient(to right,
#ef4444 0%,
#ef4444 var(--value, 50%),
#e5e7eb var(--value, 50%),
#e5e7eb 100%
);
}
```
## Integration
### Auf Landing Pages
```astro
// In meeting-protokoll-software.mdx
import ROICalculator from "../components/ROICalculator.astro";
<ROICalculator
lang="de"
title="ROI-Rechner: Ihre Zeitersparnis mit automatischen Protokollen"
subtitle="Berechnen Sie konkret Ihre Einsparungen"
/>
```
### Auf der Homepage
```astro
// Nach NumbersSection für maximale Wirkung
<NumbersSection />
<ROICalculator
lang={lang}
title="Berechnen Sie Ihre Zeitersparnis"
/>
<TestimonialSection />
```
## Browser-Kompatibilität
- ✅ Chrome/Edge (alle Versionen)
- ✅ Firefox (alle Versionen)
- ✅ Safari (12+)
- ✅ Mobile Browser (iOS/Android)
## Performance
- **Bundle Size:** ~5KB (unkomprimiert)
- **JavaScript:** Vanilla JS, keine Dependencies
- **Rendering:** Client-side Berechnungen
- **Accessibility:** ARIA-Labels für Screenreader
## Zukünftige Verbesserungen
- [ ] Speichern der Einstellungen im LocalStorage
- [ ] Export der Berechnung als PDF
- [ ] Vergleich mit anderen Tools
- [ ] Erweiterte Berechnungen (Team-Größe, etc.)
- [ ] A/B Testing verschiedener Default-Werte
- [ ] Analytics-Integration für Usage-Tracking
---
*Komponente erstellt: 28. Dezember 2024*

View file

@ -0,0 +1,545 @@
# Memoro Content Collections Documentation
This document provides a comprehensive overview of all content collections used in the Memoro website. Each collection is structured with Zod schemas for type safety and validation.
## Quick Overview
The Memoro website contains 15 content collections:
1. **Blog** - Articles and blog posts about features and updates
2. **Team** - Team member profiles (core team, freelancers, mentors, supporters, alumni)
3. **Guides** - How-to tutorials with difficulty levels (beginner, intermediate, advanced)
4. **Features** - Product feature descriptions with icons and categories
5. **Legal** - Legal documents (privacy policy, terms of service)
6. **Industries** - Industry-specific use cases and solutions
7. **Testimonials** - Customer reviews organized by type (private, company, network, press)
8. **Pages** - Structured content for special pages like pricing with Mana system
9. **Contracts** - Downloadable legal contracts and agreements
10. **Blueprints** - Pre-configured templates for different use cases
11. **Memories** - Memory templates and examples
12. **Wallpapers** - Downloadable wallpapers in multiple formats and resolutions
13. **FAQs** - Frequently asked questions by category
14. **Statistics** - Weekly/monthly reports with usage metrics
15. **Changelog** - Product updates and release notes with semantic versioning
## Overview
The Memoro website uses Astro's content collections to manage various types of content. All collections support internationalization with German (de) and English (en) locales.
## Collections
### 1. Blog Collection
**Purpose**: Articles and blog posts about Memoro features, updates, and industry insights.
**Schema**:
```typescript
{
title: string
description: string
pubDate: Date
author: string (default: 'Anonymous')
image?: string
tags: string[] (default: [])
lang: 'de' | 'en'
slug?: string
lastUpdated?: Date
draft?: boolean
}
```
**Location**: `src/content/blog/{de|en}/`
---
### 2. Team Collection
**Purpose**: Team member profiles showcasing the people behind Memoro.
**Schema**:
```typescript
{
title: string
description: string
role: string
image?: string
social?: {
linkedin?: string
github?: string
twitter?: string
}
lang: 'de' | 'en'
category: 'kernteam' | 'freelance' | 'mentoren' | 'unterstuetzer' | 'alumni'
order?: number
categoryOrder?: number
lastUpdated?: Date
}
```
**Location**: `src/content/team/{de|en}/`
**Categories**:
- `kernteam`: Core team members
- `freelance`: Freelance contributors
- `mentoren`: Mentors
- `unterstuetzer`: Supporters
- `alumni`: Former team members
---
### 3. Guide Collection
**Purpose**: Tutorials and how-to guides for using Memoro features.
**Schema**:
```typescript
{
title: string
description: string
difficulty: 'beginner' | 'intermediate' | 'advanced'
duration: string
category: string
author: string (default: 'Das Platform-Team')
lastUpdated: Date
lang: 'de' | 'en'
}
```
**Location**: `src/content/guides/{de|en}/`
---
### 4. Features Collection
**Purpose**: Detailed descriptions of Memoro's features and capabilities.
**Schema**:
```typescript
{
title: string
description: string
lang: 'de' | 'en'
icon: string
color: 'blue' | 'red' | 'purple' | 'green' | 'orange'
category?: 'organization' | 'language' | 'customization' | 'recording' |
'analytics' | 'collaboration' | 'ai-features' | 'sharing'
order?: number
}
```
**Location**: `src/content/features/{de|en}/`
---
### 5. Legal Collection
**Purpose**: Legal documents including privacy policy, terms of service, etc.
**Schema**:
```typescript
{
title: string
lastUpdated?: Date
lang: 'de' | 'en'
}
```
**Location**: `src/content/legal/`
---
### 6. Industry Collection
**Purpose**: Industry-specific use cases and solutions.
**Schema**:
```typescript
{
title: string
description: string
icon: string
color: 'blue' | 'red' | 'purple' | 'green'
lang: 'de' | 'en'
order?: number
keyFeatures?: string[]
testimonials?: Array<{
quote: string
author: string
role: string
company: string
}>
}
```
**Location**: `src/content/industries/{de|en}/`
---
### 7. Testimonials Collection
**Purpose**: Customer testimonials and reviews organized by type.
**Schema**:
```typescript
{
name: string
role: string
company?: string // Optional for private individuals
image: string
text: string
lang: 'de' | 'en'
type: 'private' | 'company' | 'network' | 'press'
order?: number
lastUpdated?: Date
source?: string // For press: publication name
sourceUrl?: string // For press: article link
}
```
**Location**: `src/content/testimonials/{de|en}/{type}/`
**Types**:
- `private`: Individual users
- `company`: Corporate testimonials
- `network`: Partner/network testimonials
- `press`: Press mentions and reviews
---
### 8. Pages Collection
**Purpose**: Structured content for special pages like pricing.
**Schema**:
```typescript
{
title: string
description: string
lang: 'de' | 'en'
type: string
lastUpdated: Date
sections: {
hero: {
title: string
subtitle?: string
}
plans?: Array<{
id?: string
name: string
price: {
monthly: number
yearly: number
}
priceUnit?: string
yearlyBreakdown?: string
features: string[]
// Legacy fields
minutes?: number
memoLength?: number
dailyMemos?: number | '∞'
// Mana-based fields
initialMana?: number
dailyMana?: number
maxMana?: number
canGiftMana?: boolean
cta: string
highlight: boolean
}>
manaPotions?: {
title: string
subtitle: string
items: Array<{
id: string
name: string
manaAmount: number
price: number
popular: boolean
}>
}
comparison?: { title: string }
faq?: {
title: string
items: Array<{
question: string
answer: string
}>
}
callToAction?: {
title: string
description: string
buttonText: string
buttonLink: string
}
}
}
```
**Location**: `src/content/pages/{de|en}/`
---
### 9. Contracts Collection
**Purpose**: Legal contracts and agreements available for download.
**Schema**:
```typescript
{
title: string
description: string
lastUpdated: Date
lang: 'de' | 'en'
category: string
order?: number
downloadUrl?: string
previewEnabled: boolean (default: false)
}
```
**Location**: `src/content/contracts/{de|en}/`
---
### 10. Blueprints Collection
**Purpose**: Pre-configured templates and setups for different use cases.
**Schema**:
```typescript
{
title: string
description: string
icon: string
color: 'blue' | 'red' | 'purple' | 'green' | 'orange' | 'yellow'
lang: 'de' | 'en'
order?: number
lastUpdated?: Date
isActive: boolean (default: true)
features?: string[]
compatibility?: string[]
}
```
**Location**: `src/content/blueprints/{de|en}/`
---
### 11. Memories Collection
**Purpose**: Memory templates and examples for different scenarios.
**Schema**:
```typescript
{
title: string
description: string
icon: string
color: 'blue' | 'red' | 'purple' | 'green' | 'orange' | 'yellow'
category?: string
lang: 'de' | 'en'
order?: number
lastUpdated?: Date
isActive: boolean (default: true)
features?: string[]
compatibility?: string[]
}
```
**Location**: `src/content/memories/{de|en}/`
---
### 12. Wallpaper Collection
**Purpose**: Downloadable wallpapers in various formats and resolutions.
**Schema**:
```typescript
{
title: string
description: string
thumbnail: string
formats: Array<{
type: 'desktop' | 'mobile' | 'tablet' | 'ultrawide'
device?: string // e.g., "iPhone 16 Pro", "iPad Pro"
resolution: string // "3840x2160"
aspectRatio: string // "16:9"
fileUrl: string // "/images/wallpaper/..."
fileSize?: string // "2.4 MB"
}>
category: 'nature' | 'abstract' | 'city' | 'technology' | 'other'
colors?: string[]
tags?: string[]
lang: 'de' | 'en'
order?: number
lastUpdated?: Date
isActive: boolean (default: true)
isFeatured: boolean (default: false)
downloadCount: number (default: 0)
formatDownloads?: Record<string, number>
}
```
**Location**: `src/content/wallpapers/{de|en}/`
---
### 13. FAQs Collection
**Purpose**: Frequently asked questions organized by category.
**Schema**:
```typescript
{
question: string
answer: string
category: 'general' | 'features' | 'technical' | 'pricing' |
'security' | 'business' | 'industries' | 'guides'
tags?: string[]
order: number (default: 0)
featured: boolean (default: false)
relatedLinks?: Array<{
title: string
url: string
}>
lang: 'de' | 'en'
}
```
**Location**: `src/content/faqs/{de|en}/`
**Categories**:
- `general`: General questions
- `features`: Feature-related questions
- `technical`: Technical questions
- `pricing`: Pricing and plans
- `security`: Security and privacy
- `business`: Business and enterprise
- `industries`: Industry-specific questions
- `guides`: Tutorials and how-to questions
---
### 14. Statistics Collection
**Purpose**: Weekly and monthly reports with usage statistics and metrics.
**Schema**:
```typescript
{
title: string
description: string
reportType: 'weekly' | 'monthly' (default: 'weekly')
weekNumber?: number // Calendar week (for weekly reports)
month?: number // Month (for monthly reports)
year: number
period: {
start: Date
end: Date
}
stats: {
totalUsers: number
newUsers: number
activeUsers: number
totalRecordings: number
totalMinutes: number
totalWords?: number
totalEntries?: number
manaConsumed: number
manaPurchased: number
}
highlights?: string[] // Important events
trends?: {
userGrowth: number // Percentage compared to previous period
recordingGrowth: number
manaGrowth: number
}
topFeatures?: Array<{
name: string
usage: number
}>
lang: 'de' | 'en'
publishDate: Date
draft: boolean (default: false)
author: string (default: 'Das Memoro Team')
}
```
**Location**: `src/content/statistics/{de|en}/`
---
### 15. Changelog Collection
**Purpose**: Product updates, release notes, and version history.
**Schema**:
```typescript
{
title: string
description: string
version: string // e.g., "1.2.0"
releaseDate: Date
type: 'major' | 'minor' | 'patch' // Semantic versioning
category: Array<'feature' | 'improvement' | 'bugfix' |
'security' | 'performance' | 'other'>
highlights?: string[] // Key features of this version
breaking: boolean (default: false)
deprecated?: string[] // Deprecated features
migration?: string // Migration guide for breaking changes
platforms?: Array<'web' | 'ios' | 'android' | 'api'>
lang: 'de' | 'en'
draft: boolean (default: false)
author: string (default: 'Das Memoro Team')
}
```
**Location**: `src/content/changelog/{de|en}/`
**Categories**:
- `feature`: New features
- `improvement`: Improvements
- `bugfix`: Bug fixes
- `security`: Security updates
- `performance`: Performance improvements
- `other`: Other changes
---
## Best Practices
1. **Internationalization**: Always create content in both German and English
2. **File Naming**: Use kebab-case for file names (e.g., `my-blog-post.mdx`)
3. **Frontmatter**: Ensure all required fields are filled according to the schema
4. **Images**: Store images in `/public/images/` organized by content type
5. **Draft Mode**: Use the `draft` field to hide content from production
6. **Ordering**: Use the `order` field to control display sequence
7. **Dates**: Use ISO date format (YYYY-MM-DD) for all date fields
## Content Organization
The content is organized following this structure:
```
src/content/
├── [collection-name]/
│ ├── de/ # German content
│ │ └── *.mdx # Content files
│ └── en/ # English content
│ └── *.mdx # Content files
└── config.ts # Collection schemas
```
For testimonials, an additional level of organization by type is used:
```
src/content/testimonials/
├── de/
│ ├── private/
│ ├── company/
│ ├── network/
│ └── press/
└── en/
├── private/
├── company/
├── network/
└── press/
```

View file

@ -0,0 +1,784 @@
# Creating a New Content Collection
This document explains how to create and configure a new content collection in our Astro-based website.
## What are Content Collections?
Content collections in Astro are a way to organize and validate content in your project. They allow you to:
- Group related content together
- Define a schema for validating content
- Query content with TypeScript type safety
- Support multiple languages (de/en)
## Step 1: Define the Collection Schema
First, you need to define the schema for your new collection in the `src/content/config.ts` file:
```typescript
// 1. Import the defineCollection and z functions
import { defineCollection, z } from 'astro:content';
// 2. Define your collection schema
const myNewCollection = defineCollection({
type: 'content',
schema: z.object({
title: z.string(),
description: z.string(),
lastUpdated: z.date(),
lang: z.enum(['de', 'en']),
// Add any other fields specific to your collection
category: z.string(),
order: z.number().optional(),
// Add custom fields as needed
customField: z.string().optional()
})
});
// 3. Add your collection to the collections export
export const collections = {
// Existing collections...
'myNewCollection': myNewCollection,
};
```
## Step 2: Create the Directory Structure
Create the necessary directories for your content collection:
```bash
mkdir -p src/content/my-new-collection/de src/content/my-new-collection/en
```
Our project organizes content by language, so we create separate directories for German (de) and English (en) content.
## Step 3: Add Content Files
Create content files in the appropriate language directories. We use `.mdx` files for content that includes Markdown with JSX components:
**German Example** (`src/content/my-new-collection/de/example.mdx`):
```markdown
---
title: "Beispieltitel"
description: "Eine Beispielbeschreibung"
lastUpdated: 2025-02-26
lang: "de"
category: "example"
order: 1
customField: "Beispielwert"
---
# Beispielinhalt
Dies ist ein Beispielinhalt für die neue Content Collection.
```
**English Example** (`src/content/my-new-collection/en/example.mdx`):
```markdown
---
title: "Example Title"
description: "An example description"
lastUpdated: 2025-02-26
lang: "en"
category: "example"
order: 1
customField: "Example value"
---
# Example Content
This is example content for the new content collection.
```
## Step 4: Create Components for Displaying Content
Create components to display your content. For example, create a component to display a list of items from your collection:
```astro
---
// src/components/MyCollectionList.astro
import { getCollection } from 'astro:content';
import { getLangFromUrl } from '../i18n/utils';
const lang = getLangFromUrl(Astro.url);
const items = await getCollection('my-new-collection', ({ data }) => {
return data.lang === lang;
});
// Sort items if needed
const sortedItems = [...items].sort((a, b) => {
return (a.data.order || 0) - (b.data.order || 0);
});
---
<div class="collection-list">
{sortedItems.map((item) => (
<a
href={`/${lang}/my-collection/${item.slug.replace(`${lang}/`, '')}`}
class="collection-item"
>
<h3>{item.data.title}</h3>
<p>{item.data.description}</p>
</a>
))}
</div>
```
Also create a component for displaying a single item:
```astro
---
// src/components/MyCollectionItem.astro
import type { CollectionEntry } from 'astro:content';
interface Props {
item: CollectionEntry<'my-new-collection'>;
}
const { item } = Astro.props;
const { Content } = await item.render();
---
<article class="collection-item">
<h1>{item.data.title}</h1>
<p class="description">{item.data.description}</p>
<div class="content">
<Content />
</div>
</article>
```
## Step 5: Create Page Routes
Create pages to display your collection. You'll typically need:
1. A listing page that shows all items
2. A dynamic route for individual items
**Listing Page** (`src/pages/de/my-collection/index.astro` and `src/pages/en/my-collection/index.astro`):
```astro
---
import { getCollection } from 'astro:content';
import Layout from '../../../layouts/Layout.astro';
import { getLangFromUrl, useTranslations } from '../../../i18n/utils';
const lang = getLangFromUrl(Astro.url);
const t = useTranslations(lang);
const items = await getCollection('my-new-collection', ({ data }) => {
return data.lang === lang;
});
const sortedItems = [...items].sort((a, b) => {
return (a.data.order || 0) - (b.data.order || 0);
});
---
<Layout title={t('myCollection.title')} description={t('myCollection.description')}>
<main>
<h1>{t('myCollection.title')}</h1>
<p>{t('myCollection.description')}</p>
<div class="collection-grid">
{sortedItems.map((item) => (
<a
href={`/${lang}/my-collection/${item.slug.replace(`${lang}/`, '')}`}
class="collection-card"
>
<h3>{item.data.title}</h3>
<p>{item.data.description}</p>
</a>
))}
</div>
</main>
</Layout>
```
**Dynamic Route** (`src/pages/de/my-collection/[...slug].astro` and `src/pages/en/my-collection/[...slug].astro`):
```astro
---
import { getCollection } from 'astro:content';
import Layout from '../../../layouts/Layout.astro';
import { getLangFromUrl } from '../../../i18n/utils';
import MyCollectionItem from '../../../components/MyCollectionItem.astro';
export async function getStaticPaths() {
const lang = 'de'; // or 'en' depending on the file
const items = await getCollection('my-new-collection', ({ data }) => {
return data.lang === lang;
});
return items.map((item) => ({
params: { slug: item.slug.replace(`${lang}/`, '') },
props: { item },
}));
}
const { item } = Astro.props;
---
<Layout title={item.data.title} description={item.data.description}>
<main>
<MyCollectionItem item={item} />
</main>
</Layout>
```
## Step 6: Add Navigation Links (Optional)
Update your navigation components to include links to your new collection:
```astro
---
// In your navigation component
import { getLangFromUrl, useTranslations } from '../i18n/utils';
const lang = getLangFromUrl(Astro.url);
const t = useTranslations(lang);
---
<nav>
<!-- Existing navigation items -->
<a href={`/${lang}/my-collection`}>{t('nav.myCollection')}</a>
</nav>
```
## Step 7: Add Translations (Optional)
If your site uses translations, add the necessary translation strings to your i18n files:
```typescript
// src/i18n/ui.ts
export const languages = {
de: {
'myCollection': {
'title': 'Meine Sammlung',
'description': 'Beschreibung meiner Sammlung'
},
'nav': {
'myCollection': 'Meine Sammlung'
}
},
en: {
'myCollection': {
'title': 'My Collection',
'description': 'Description of my collection'
},
'nav': {
'myCollection': 'My Collection'
}
}
};
```
## Testing Your Collection
After setting up your collection, test it by:
1. Building the site: `npm run build`
2. Checking for any TypeScript or schema validation errors
3. Previewing the site: `npm run preview`
4. Navigating to your collection pages to ensure they display correctly
## Example: Creating a "Contracts" Collection
Here's a complete example of creating a "contracts" collection:
1. **Schema Definition**:
```typescript
// src/content/config.ts
const contractsCollection = defineCollection({
type: 'content',
schema: z.object({
title: z.string(),
description: z.string(),
lastUpdated: z.date(),
lang: z.enum(['de', 'en']),
category: z.string(),
order: z.number().optional(),
downloadUrl: z.string().optional(),
previewEnabled: z.boolean().default(false)
})
});
export const collections = {
// Other collections...
contracts: contractsCollection,
};
```
2. **Directory Structure**:
```
src/content/contracts/
├── de/
│ ├── nutzungsbedingungen.mdx
│ └── datenschutz.mdx
└── en/
├── terms-of-service.mdx
└── privacy-policy.mdx
```
3. **Content Example**:
```markdown
---
title: "Nutzungsbedingungen"
description: "Allgemeine Nutzungsbedingungen für unsere Plattform"
lastUpdated: 2025-02-26
lang: "de"
category: "legal"
order: 1
downloadUrl: "/downloads/nutzungsbedingungen.pdf"
previewEnabled: true
---
# Nutzungsbedingungen
## 1. Geltungsbereich
Diese Nutzungsbedingungen regeln die Nutzung unserer Plattform...
```
4. **Component for Displaying Contracts**:
```astro
---
// src/components/ContractItem.astro
import type { CollectionEntry } from 'astro:content';
interface Props {
contract: CollectionEntry<'contracts'>;
}
const { contract } = Astro.props;
const { Content } = await contract.render();
---
<article class="contract">
<h1>{contract.data.title}</h1>
<p class="description">{contract.data.description}</p>
{contract.data.previewEnabled && (
<div class="content">
<Content />
</div>
)}
{contract.data.downloadUrl && (
<a href={contract.data.downloadUrl} class="download-button">
Download als PDF
</a>
)}
</article>
```
5. **Page Routes**:
```astro
---
// src/pages/de/contracts/[...slug].astro
import { getCollection } from 'astro:content';
import Layout from '../../../layouts/Layout.astro';
import ContractItem from '../../../components/ContractItem.astro';
export async function getStaticPaths() {
const contracts = await getCollection('contracts', ({ data }) => {
return data.lang === 'de';
});
return contracts.map((contract) => ({
params: { slug: contract.slug.replace('de/', '') },
props: { contract },
}));
}
const { contract } = Astro.props;
---
<Layout title={contract.data.title} description={contract.data.description}>
<main>
<ContractItem contract={contract} />
</main>
</Layout>
```
## Complete Implementation Walkthrough
Below is a detailed walkthrough of all the steps we took to implement a new "Contracts" content collection:
### 1. Define the Collection Schema
First, we added the contracts collection schema to `src/content/config.ts`:
```typescript
const contractsCollection = defineCollection({
type: 'content',
schema: z.object({
title: z.string(),
description: z.string(),
lastUpdated: z.date(),
lang: z.enum(['de', 'en']),
category: z.string(),
order: z.number().optional(),
downloadUrl: z.string().optional(),
previewEnabled: z.boolean().default(false)
})
});
export const collections = {
// Other collections...
contracts: contractsCollection,
};
```
### 2. Create Directory Structure
We created the necessary directories for our content:
```bash
mkdir -p src/content/contracts/de src/content/contracts/en
```
### 3. Create Components
We created two components for displaying contracts:
**ContractCard.astro** - For displaying contract cards in the listing page:
```astro
---
import type { CollectionEntry } from 'astro:content';
import { getLangFromUrl } from '../i18n/utils';
interface Props {
contract: CollectionEntry<'contracts'>;
}
const { contract } = Astro.props;
const lang = getLangFromUrl(Astro.url);
const cleanSlug = contract.slug.replace(`${lang}/`, '');
---
<a
href={`/${lang}/contracts/${cleanSlug}`}
class="block bg-background-card rounded-lg border border-border p-6 hover:bg-background-cardHover hover:border-primary-DEFAULT/30 transition-all duration-DEFAULT"
>
<div class="flex items-center justify-between">
<div>
<h3 class="text-xl font-semibold text-text-primary group-hover:text-primary-DEFAULT transition-colors">
{contract.data.title}
</h3>
<p class="text-text-secondary mt-2">
{contract.data.description}
</p>
<p class="text-xs text-text-tertiary mt-4">
Zuletzt aktualisiert: {contract.data.lastUpdated.toLocaleDateString()}
</p>
</div>
<div class="text-text-secondary group-hover:text-primary-DEFAULT transition-colors">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6">
<path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" />
</svg>
</div>
</div>
</a>
```
**ContractDetail.astro** - For displaying a single contract's details:
```astro
---
import type { CollectionEntry } from 'astro:content';
import { getLangFromUrl, useTranslations } from '../i18n/utils';
interface Props {
contract: CollectionEntry<'contracts'>;
}
const { contract } = Astro.props;
const { Content } = await contract.render();
const lang = getLangFromUrl(Astro.url);
const t = useTranslations(lang);
---
<article class="prose prose-lg dark:prose-invert max-w-none">
<header class="mb-8">
<h1 class="text-3xl font-bold mb-4">{contract.data.title}</h1>
<p class="text-text-secondary mb-4">{contract.data.description}</p>
<p class="text-sm text-text-tertiary">
{t('contracts.lastUpdated')}: {contract.data.lastUpdated.toLocaleDateString()}
</p>
</header>
{contract.data.previewEnabled && (
<div class="contract-content">
<Content />
</div>
)}
{contract.data.downloadUrl && (
<div class="mt-8">
<a
href={contract.data.downloadUrl}
class="inline-flex items-center px-6 py-3 bg-primary-DEFAULT text-white rounded-lg hover:bg-primary-hover transition-colors"
download
>
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-5 h-5 mr-2">
<path stroke-linecap="round" stroke-linejoin="round" d="M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3" />
</svg>
{t('contracts.download')}
</a>
</div>
)}
</article>
```
### 4. Create Page Routes
We created the necessary page routes for both German and English:
**Listing Pages** (`src/pages/de/contracts/index.astro` and `src/pages/en/contracts/index.astro`):
```astro
---
import { getCollection, getEntry } from "astro:content";
import Layout from "../../../layouts/Layout.astro";
import ContractCard from "../../../components/ContractCard.astro";
import CallToAction from "../../../components/CallToAction.astro";
import { getLangFromUrl, useTranslations } from "../../../i18n/utils";
const lang = getLangFromUrl(Astro.url);
const t = useTranslations(lang);
// Get contracts in current language
const contractEntries = await getCollection("contracts", ({ data }) => {
return data.lang === "de"; // or "en" for English version
});
// Sort contracts by category and then by order
const sortedContracts = [...contractEntries].sort((a, b) => {
// First sort by category
if (a.data.category !== b.data.category) {
return a.data.category.localeCompare(b.data.category);
}
// Then sort by order within the same category
const orderA = a.data.order || 0;
const orderB = b.data.order || 0;
return orderA - orderB;
});
// Group contracts by category
const contractsByCategory = sortedContracts.reduce((acc, contract) => {
const category = contract.data.category;
if (!acc[category]) {
acc[category] = [];
}
acc[category].push(contract);
return acc;
}, {});
const pageTitle = t('contracts.title');
const pageDescription = t('contracts.description');
---
<Layout title={pageTitle} description={pageDescription}>
<main class="max-w-4xl mx-auto px-6 sm:px-8 md:px-12 py-16">
<h1 class="text-4xl font-bold text-text-primary mb-6">{pageTitle}</h1>
<p class="text-xl text-text-secondary mb-12">{pageDescription}</p>
{Object.entries(contractsByCategory).map(([category, contracts]) => (
<div class="mb-12">
<h2 class="text-2xl font-semibold text-text-primary mb-6 capitalize">
{category === "legal" ? (lang === "de" ? "Rechtliche Dokumente" : "Legal Documents") : category}
</h2>
<div class="grid grid-cols-1 gap-4">
{contracts.map((contract) => (
<ContractCard contract={contract} />
))}
</div>
</div>
))}
<CallToAction
title={lang === "de" ? "Fragen zu unseren Verträgen?" : "Questions about our contracts?"}
description={lang === "de"
? "Unser Team steht Ihnen bei Fragen zu unseren Verträgen und rechtlichen Dokumenten gerne zur Verfügung."
: "Our team is available to answer any questions about our contracts and legal documents."}
buttonText={lang === "de" ? "Kontakt aufnehmen" : "Contact Us"}
buttonLink={`/${lang}/contact`}
/>
</main>
</Layout>
```
**Dynamic Routes** (`src/pages/de/contracts/[...slug].astro` and `src/pages/en/contracts/[...slug].astro`):
```astro
---
import { getCollection } from "astro:content";
import Layout from "../../../layouts/Layout.astro";
import { getLangFromUrl, useTranslations } from "../../../i18n/utils";
import ContractDetail from "../../../components/ContractDetail.astro";
import CallToAction from "../../../components/CallToAction.astro";
export async function getStaticPaths() {
const contracts = await getCollection("contracts", ({ data }) => {
return data.lang === "de"; // or "en" for English version
});
return contracts.map((contract) => {
return {
params: { slug: contract.slug.replace("de/", "") }, // or "en/" for English version
props: { contract },
};
});
}
const { contract } = Astro.props;
const lang = getLangFromUrl(Astro.url);
const t = useTranslations(lang);
// Check if content is in the correct language
if (contract.data.lang !== lang) {
// Get all contracts
const allContracts = await getCollection("contracts");
// Find matching content in the correct language
const localizedContract = allContracts.find(
(c) => c.data.slug === contract.data.slug && c.data.lang === lang
);
if (localizedContract) {
return Astro.redirect(`/${lang}/contracts/${localizedContract.data.slug}`);
}
}
---
<Layout title={contract.data.title} description={contract.data.description}>
<main class="max-w-4xl mx-auto px-6 sm:px-8 md:px-12 py-16">
<div class="mb-8">
<a href={`/${lang}/contracts`} class="inline-flex items-center text-text-secondary hover:text-primary-DEFAULT transition-colors">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-5 h-5 mr-2">
<path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5L3 12m0 0l7.5-7.5M3 12h18" />
</svg>
{t('contracts.backToOverview')}
</a>
</div>
<ContractDetail contract={contract} />
<div class="mt-16">
<CallToAction
title={lang === "de" ? "Fragen zu diesem Dokument?" : "Questions about this document?"}
description={lang === "de"
? "Unser Team steht Ihnen bei Fragen zu unseren Verträgen und rechtlichen Dokumenten gerne zur Verfügung."
: "Our team is available to answer any questions about our contracts and legal documents."}
buttonText={lang === "de" ? "Kontakt aufnehmen" : "Contact Us"}
buttonLink={`/${lang}/contact`}
/>
</div>
</main>
</Layout>
```
### 5. Add Sample Content
We created sample contract files in both German and English:
**German Example** (`src/content/contracts/de/nutzungsbedingungen.mdx`):
```markdown
---
title: "Nutzungsbedingungen"
description: "Allgemeine Nutzungsbedingungen für unsere Plattform"
lastUpdated: 2025-02-26
lang: "de"
category: "legal"
order: 1
downloadUrl: "/downloads/nutzungsbedingungen.pdf"
previewEnabled: true
---
# Nutzungsbedingungen
## 1. Geltungsbereich
Diese Nutzungsbedingungen regeln die Nutzung unserer Plattform...
```
**English Example** (`src/content/contracts/en/terms-of-service.mdx`):
```markdown
---
title: "Terms of Service"
description: "General terms of service for our platform"
lastUpdated: 2025-02-26
lang: "en"
category: "legal"
order: 1
downloadUrl: "/downloads/terms-of-service.pdf"
previewEnabled: true
---
# Terms of Service
## 1. Scope
These Terms of Service govern the use of our platform...
```
### 6. Add Translations
We added translations for the contracts section in `src/i18n/ui.ts`:
```typescript
// German translations
'contracts.title': 'Verträge & Rechtliches',
'contracts.description': 'Alle rechtlichen Dokumente und Verträge für unsere Plattform',
'contracts.download': 'Als PDF herunterladen',
'contracts.lastUpdated': 'Zuletzt aktualisiert',
'contracts.backToOverview': 'Zurück zur Übersicht',
// English translations
'contracts.title': 'Contracts & Legal',
'contracts.description': 'All legal documents and contracts for our platform',
'contracts.download': 'Download as PDF',
'contracts.lastUpdated': 'Last updated',
'contracts.backToOverview': 'Back to overview',
```
### 7. Update Navigation
We added a link to the contracts page in the Footer component:
```astro
<li>
<a
href={isGerman ? "/de/contracts" : "/en/contracts"}
class="text-gray-300 hover:text-white hover:underline transition-colors"
>
{isGerman ? "Verträge" : "Contracts"}
</a>
</li>
```
### 8. Testing
After implementing all these components, you should test the contracts pages by:
1. Building the site: `npm run build`
2. Checking for any TypeScript or schema validation errors
3. Previewing the site: `npm run preview`
4. Navigating to `/de/contracts` and `/en/contracts` to ensure they display correctly
5. Clicking on individual contracts to ensure the detail pages work properly
6. Testing the download functionality if you have PDF files available
### 9. Next Steps
To further enhance your contracts collection, consider:
1. Creating actual PDF files for download in the `/public/downloads/` directory
2. Adding more contract types (privacy policy, terms of use, etc.)
3. Implementing a search functionality for contracts
4. Adding version history for contracts to track changes over time

View file

@ -0,0 +1,561 @@
# Admin-Tool Modularisierung & Replicate-Integration
> **Dokument erstellt:** 28.01.2025
> **Status:** Konzeptphase
> **Ziel:** Wiederverwendbares Admin-Tool mit KI-Bildgenerierung
## 📋 Executive Summary
Das Memoro Admin-Tool entwickelt sich zu einem eigenständigen, wertvollen Werkzeug. Dieses Dokument beschreibt Konzepte zur:
1. **Modularisierung** des Admin-Tools für Wiederverwendbarkeit in anderen Projekten
2. **Integration von Replicate** zur KI-basierten Bildgenerierung für Personas
3. **Backend-Architektur** auf Hetzner VPS mit Coolify
## 🎯 Anforderungen
### Funktionale Anforderungen
- Admin-Tool soll in anderen Websites wiederverwendbar sein
- Komplette Trennung von Code und Content
- KI-basierte Bildgenerierung für Personas via Replicate
- Zentrale Backend-Services auf Hetzner VPS
- Verwaltung via Coolify (Docker-basiert)
### Nicht-funktionale Anforderungen
- Einfache Installation/Integration
- Minimale Dependencies
- Skalierbare Architektur
- Sichere API-Kommunikation
- Kosteneffiziente Bildgenerierung
## 🏗️ Modularisierungskonzepte
### Konzept 1: NPM Package + API Backend
**Architektur:**
```
@memoro/admin-tool (NPM Package)
├── components/ # Wiederverwendbare UI-Komponenten
├── layouts/ # Admin-Layouts
├── hooks/ # React/Vue Hooks für API
├── types/ # TypeScript Definitionen
└── utils/ # Helper Functions
@memoro/admin-api (Separates Backend)
├── /api/personas # Personas CRUD
├── /api/images # Bildgenerierung
├── /api/content # Content Management
└── /api/auth # Authentication
```
**Vorteile:**
- ✅ Maximale Wiederverwendbarkeit
- ✅ Framework-agnostisch (Adapter Pattern)
- ✅ Versionskontrolle via NPM
- ✅ Type-Safety durch TypeScript
**Nachteile:**
- ❌ Komplexe Initial-Setup
- ❌ Wartung von zwei Packages
- ❌ Breaking Changes Management
**Integration:**
```typescript
// In beliebiger Astro/Next/Vue App
import { AdminTool } from '@memoro/admin-tool';
import { MemoroadminProvider } from '@memoro/admin-tool/providers';
// Konfiguration
const config = {
apiUrl: 'https://api.memoro-admin.com',
apiKey: process.env.MEMORO_API_KEY,
features: ['personas', 'content', 'images']
};
<MemoroadminProvider config={config}>
<AdminTool />
</MemoroadminProvider>
```
### Konzept 2: Monorepo mit Shared Packages
**Struktur:**
```
memoro-workspace/
├── apps/
│ ├── memoro-website/ # Aktuelle Website
│ ├── admin-dashboard/ # Standalone Admin
│ └── api-backend/ # Zentrales Backend
├── packages/
│ ├── admin-ui/ # UI Components
│ ├── admin-core/ # Business Logic
│ ├── content-types/ # Shared Types
│ └── api-client/ # API Client Library
└── services/
├── image-generator/ # Replicate Service
└── content-sync/ # Content Synchronization
```
**Vorteile:**
- ✅ Einheitliche Entwicklung
- ✅ Shared Dependencies
- ✅ Einfaches Testing
- ✅ Atomic Commits
**Nachteile:**
- ❌ Größeres Repository
- ❌ Komplexere CI/CD
- ❌ Schwieriger für externe Nutzer
**Tools:**
- Turborepo oder NX für Monorepo Management
- Changesets für Versionierung
- pnpm Workspaces für Dependencies
### Konzept 3: Microservices + Web Components
**Architektur:**
```
Frontend (Web Components)
├── <memoro-admin-dashboard>
├── <memoro-persona-manager>
├── <memoro-image-generator>
└── <memoro-content-editor>
Microservices (Docker/Coolify)
├── persona-service/ # Node.js/Fastify
├── image-service/ # Python/FastAPI + Replicate
├── content-service/ # Node.js/Express
├── auth-service/ # Node.js/JWT
└── gateway/ # Kong/Traefik
```
**Vorteile:**
- ✅ Framework-unabhängig
- ✅ Isolierte Services
- ✅ Unabhängige Skalierung
- ✅ Native Browser-Support
**Nachteile:**
- ❌ Komplexe Orchestrierung
- ❌ Network Latency
- ❌ Service Discovery
**Integration:**
```html
<!-- In beliebiger HTML-Seite -->
<script src="https://admin.memoro.tools/components.js"></script>
<memoro-admin-dashboard
api-key="xxx"
theme="dark">
</memoro-admin-dashboard>
```
### Konzept 4: Plugin-System (Empfohlen) ⭐
**Architektur:**
```
@memoro/admin-core
├── core/
│ ├── plugin-system.ts # Plugin Registry
│ ├── api-client.ts # API Abstraction
│ └── auth.ts # Auth Management
├── plugins/
│ ├── personas/ # Personas Plugin
│ ├── image-generator/ # Replicate Plugin
│ ├── content-manager/ # Content Plugin
│ └── analytics/ # Analytics Plugin
└── adapters/
├── astro/ # Astro Integration
├── nextjs/ # Next.js Integration
└── vue/ # Vue Integration
```
**Plugin-Beispiel:**
```typescript
// personas-plugin.ts
export const personasPlugin: AdminPlugin = {
id: 'personas',
name: 'Personas Management',
version: '1.0.0',
routes: [
{ path: '/personas', component: PersonasList },
{ path: '/personas/:id', component: PersonaDetail }
],
api: {
endpoints: [
{ method: 'GET', path: '/personas', handler: getPersonas },
{ method: 'POST', path: '/personas/:id/image', handler: generateImage }
]
},
permissions: ['personas.read', 'personas.write', 'personas.generate'],
config: {
replicateModel: 'stability-ai/sdxl',
imageStyles: ['portrait', 'professional', 'casual']
}
};
```
**Vorteile:**
- ✅ Maximale Flexibilität
- ✅ Einfache Erweiterung
- ✅ Selective Features
- ✅ Community Plugins möglich
**Nachteile:**
- ❌ Initial-Komplexität
- ❌ Plugin-Kompatibilität
- ❌ Versioning-Challenges
## 🖼️ Replicate Integration
### Backend Service Architektur
```typescript
// services/image-generator/src/replicate-service.ts
import Replicate from 'replicate';
import { Queue } from 'bullmq';
import { S3 } from '@aws-sdk/client-s3';
export class ReplicateImageService {
private replicate: Replicate;
private queue: Queue;
private storage: S3;
async generatePersonaImage(persona: Persona): Promise<string> {
// 1. Prompt generieren basierend auf Persona-Daten
const prompt = this.buildPrompt(persona);
// 2. Job in Queue einreihen
const job = await this.queue.add('generate-image', {
personaId: persona.id,
prompt,
model: 'stable-diffusion-xl',
parameters: {
width: 1024,
height: 1024,
num_outputs: 4,
guidance_scale: 7.5
}
});
// 3. Auf Completion warten
const result = await job.waitUntilFinished();
// 4. Bilder in S3/Hetzner speichern
const imageUrls = await this.storeImages(result.images);
return imageUrls;
}
private buildPrompt(persona: Persona): string {
const { appearance, outfits, demographics } = persona;
return `
Professional portrait photo of a ${demographics.age} year old ${demographics.gender},
${appearance.description},
${appearance.hairColor} hair in ${appearance.hairStyle},
${appearance.eyeColor} eyes,
wearing ${outfits[0]?.items.top || 'business attire'},
${appearance.firstImpression},
studio lighting, high quality, detailed, realistic
`;
}
}
```
### Admin UI Integration
```typescript
// components/PersonaImageGenerator.tsx
export function PersonaImageGenerator({ persona }: Props) {
const [generating, setGenerating] = useState(false);
const [images, setImages] = useState<string[]>([]);
const [selectedImage, setSelectedImage] = useState<string>();
const [prompt, setPrompt] = useState('');
const generateImages = async () => {
setGenerating(true);
const response = await fetch(`/api/personas/${persona.id}/generate-images`, {
method: 'POST',
body: JSON.stringify({
prompt: prompt || buildDefaultPrompt(persona),
style: selectedStyle,
count: 4
})
});
const data = await response.json();
setImages(data.images);
setGenerating(false);
};
return (
<div className="image-generator">
<h3>KI Bildgenerierung</h3>
{/* Prompt Editor */}
<textarea
value={prompt}
onChange={(e) => setPrompt(e.target.value)}
placeholder="Beschreibe das gewünschte Bild..."
className="w-full h-32"
/>
{/* Style Selector */}
<StyleSelector
options={['portrait', 'professional', 'casual', 'lifestyle']}
selected={selectedStyle}
onChange={setSelectedStyle}
/>
{/* Generate Button */}
<button
onClick={generateImages}
disabled={generating}
className="btn-primary"
>
{generating ? 'Generiere...' : 'Bilder generieren'}
</button>
{/* Image Grid */}
{images.length > 0 && (
<div className="grid grid-cols-2 gap-4 mt-4">
{images.map((img, i) => (
<ImageOption
key={i}
src={img}
selected={selectedImage === img}
onSelect={() => setSelectedImage(img)}
/>
))}
</div>
)}
{/* Save Button */}
{selectedImage && (
<button
onClick={() => savePersonaImage(persona.id, selectedImage)}
className="btn-success mt-4"
>
Als Persona-Bild speichern
</button>
)}
</div>
);
}
```
## 🚀 Backend Deployment (Hetzner + Coolify)
### Docker Compose Konfiguration
```yaml
# docker-compose.yml für Coolify
version: '3.8'
services:
# API Gateway
gateway:
image: traefik:v2.9
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.yml:/traefik.yml
labels:
- "traefik.enable=true"
# Admin API
admin-api:
build: ./services/admin-api
environment:
DATABASE_URL: ${DATABASE_URL}
REPLICATE_API_KEY: ${REPLICATE_API_KEY}
JWT_SECRET: ${JWT_SECRET}
labels:
- "traefik.http.routers.api.rule=Host(`api.memoro-admin.com`)"
- "traefik.http.services.api.loadbalancer.server.port=3000"
# Image Generator Service
image-generator:
build: ./services/image-generator
environment:
REPLICATE_API_KEY: ${REPLICATE_API_KEY}
S3_BUCKET: ${S3_BUCKET}
REDIS_URL: redis://redis:6379
depends_on:
- redis
# Queue Worker
queue-worker:
build: ./services/queue-worker
environment:
REDIS_URL: redis://redis:6379
DATABASE_URL: ${DATABASE_URL}
depends_on:
- redis
- postgres
# Database
postgres:
image: postgres:15-alpine
environment:
POSTGRES_DB: memoro_admin
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres-data:/var/lib/postgresql/data
# Cache & Queue
redis:
image: redis:7-alpine
volumes:
- redis-data:/data
# Object Storage (MinIO als S3-Alternative)
minio:
image: minio/minio
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: ${MINIO_USER}
MINIO_ROOT_PASSWORD: ${MINIO_PASSWORD}
volumes:
- minio-data:/data
ports:
- "9001:9001"
volumes:
postgres-data:
redis-data:
minio-data:
```
### Coolify Deployment Steps
```bash
# 1. Repository in Coolify verbinden
# 2. Environment Variables setzen
# 3. Docker Compose auswählen
# 4. Custom Domain konfigurieren
# 5. SSL aktivieren (Let's Encrypt)
# 6. Health Checks einrichten
```
## 💰 Kostenanalyse
### Replicate Kosten
- **SDXL Model:** ~$0.0023 pro Bild
- **4 Varianten pro Persona:** ~$0.01
- **100 Personas:** ~$1.00
- **Monatliche Regeneration:** ~$12/Jahr
### Hetzner VPS
- **CPX31:** 16GB RAM, 4 vCPUs = 22€/Monat
- **Storage:** 160GB SSD inklusive
- **Traffic:** 20TB inklusive
### Gesamtkosten
- **Initial:** ~25€ Setup
- **Monatlich:** ~25€ (Hetzner + Replicate bei moderater Nutzung)
- **Jährlich:** ~300€
## 🔧 Implementierungsplan
### Phase 1: Proof of Concept (1 Woche)
1. ✅ Einfache API mit Express.js
2. ✅ Replicate Integration testen
3. ✅ Basis UI in Admin-Tool
4. ✅ Lokales Docker Setup
### Phase 2: MVP (2-3 Wochen)
1. ⏳ Plugin-System Grundstruktur
2. ⏳ Personas Plugin mit Bildgenerierung
3. ⏳ Deployment auf Hetzner
4. ⏳ Basis-Authentifizierung
### Phase 3: Production Ready (4-6 Wochen)
1. 📋 Vollständiges Plugin-System
2. 📋 NPM Package Publishing
3. 📋 Dokumentation & Examples
4. 📋 CI/CD Pipeline
5. 📋 Monitoring & Logging
### Phase 4: Erweiterungen
1. 🎯 Weitere Plugins (Analytics, SEO, etc.)
2. 🎯 Community Plugins Support
3. 🎯 SaaS-Version
4. 🎯 Multi-Tenancy
## 🎯 Empfehlung
**Empfohlene Architektur:** Plugin-System (Konzept 4) + Microservices Backend
**Begründung:**
1. **Flexibilität:** Plugins erlauben selektive Feature-Nutzung
2. **Skalierbarkeit:** Microservices können unabhängig skaliert werden
3. **Wiederverwendbarkeit:** Core + Plugins in beliebigen Projekten nutzbar
4. **Zukunftssicher:** Community kann eigene Plugins entwickeln
5. **Kosteneffizient:** Nur genutzte Services werden deployed
**Nächste Schritte:**
1. API-Service mit Replicate-Integration entwickeln
2. Basis Plugin-System implementieren
3. Personas-Plugin mit Bildgenerierung erstellen
4. Deployment auf Hetzner/Coolify
5. Documentation und Examples
## 📚 Technologie-Stack
### Frontend
- **Core:** TypeScript, Web Components
- **Adapters:** Astro, React, Vue
- **UI:** Tailwind CSS, Shadcn/ui
- **State:** Zustand oder Nanostores
### Backend
- **API:** Node.js mit Fastify
- **Queue:** BullMQ + Redis
- **Database:** PostgreSQL + Prisma
- **Storage:** MinIO (S3-compatible)
- **Auth:** JWT + Refresh Tokens
### Infrastructure
- **Hosting:** Hetzner VPS
- **Orchestration:** Coolify
- **Containers:** Docker + Compose
- **Monitoring:** Prometheus + Grafana
- **Logging:** Loki + Promtail
## 🔐 Security Considerations
1. **API Security:**
- Rate Limiting
- API Key Management
- CORS Configuration
- Request Validation
2. **Image Generation:**
- Content Filtering
- Usage Limits
- Watermarking Option
- GDPR Compliance
3. **Data Protection:**
- Encryption at Rest
- Secure Transmission
- Regular Backups
- Access Logging
## 📊 Success Metrics
- **Adoption:** Anzahl installierter Instanzen
- **Usage:** Generierte Bilder pro Monat
- **Performance:** API Response Time < 200ms
- **Reliability:** 99.9% Uptime
- **Cost:** < 30€/Monat bei 1000 Personas
## 🤝 Community & Support
- **Documentation:** docs.memoro-admin.tools
- **Discord:** Community Support
- **GitHub:** Issue Tracking
- **Newsletter:** Updates & Best Practices
- **Marketplace:** Plugin Directory
---
*Dieses Dokument wird kontinuierlich aktualisiert. Letzte Änderung: 28.01.2025*

View file

@ -0,0 +1,328 @@
# Netlify Functions vs. Hetzner VPS - Vergleich für Replicate Integration
## 🎯 Übersicht
Vergleich zwischen **Netlify Functions** (Serverless) und **Hetzner VPS** (Self-Hosted) für die Replicate API Integration.
## 💰 Kostenvergleich
### Netlify Functions
**Free Tier:**
- 125.000 Requests/Monat
- 100 Stunden Compute-Zeit/Monat
- Perfekt für Development & kleine Projekte
**Pro Tier ($19/Monat):**
- 1 Million Requests/Monat
- 1000 Stunden Compute-Zeit
**Kosten für Replicate Bildgenerierung:**
- Replicate API: ~$0.01 pro 4 Bilder
- Netlify Functions: GRATIS im Free Tier
- **Gesamtkosten: Nur Replicate-Nutzung (~$1-10/Monat)**
### Hetzner VPS + Coolify
**CPX31 Server:**
- €22/Monat (16GB RAM, 4 vCPUs)
- Unbegrenzte Requests
- Kann mehrere Services hosten
**Zusatzkosten:**
- Domain/SSL: €0 (Let's Encrypt)
- Backup: €2/Monat
- **Gesamtkosten: €24/Monat + Replicate**
## 🚀 Implementierungsvergleich
### Option 1: Netlify Functions (EMPFOHLEN) ⭐
**Implementierung:**
```javascript
// netlify/functions/generate-persona-image.js
import Replicate from 'replicate';
export async function handler(event, context) {
// CORS Headers
if (event.httpMethod === 'OPTIONS') {
return {
statusCode: 200,
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': 'Content-Type, X-API-Key',
'Access-Control-Allow-Methods': 'POST, OPTIONS'
}
};
}
// Check API Key
const apiKey = event.headers['x-api-key'];
if (apiKey !== process.env.API_KEY) {
return {
statusCode: 401,
body: JSON.stringify({ error: 'Unauthorized' })
};
}
// Parse request
const { personaData, prompt, style = 'portrait', count = 4 } = JSON.parse(event.body);
// Initialize Replicate
const replicate = new Replicate({
auth: process.env.REPLICATE_API_TOKEN
});
try {
// Generate images
const output = await replicate.run(
"stability-ai/sdxl:39ed52f2a78e934b3ba6e2a89f5b1c712de7dfea535525255b1aa35c5565e08b",
{
input: {
prompt: prompt || buildPromptFromPersona(personaData, style),
negative_prompt: "ugly, distorted, blurry, low quality",
width: 1024,
height: 1024,
num_outputs: count,
scheduler: "K_EULER",
num_inference_steps: 30,
guidance_scale: 7.5
}
}
);
return {
statusCode: 200,
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
},
body: JSON.stringify({
success: true,
images: output
})
};
} catch (error) {
return {
statusCode: 500,
body: JSON.stringify({
success: false,
error: error.message
})
};
}
}
function buildPromptFromPersona(personaData, style) {
// Prompt building logic
const { appearance, demographics, professional } = personaData;
// ... (same as before)
}
```
**Setup:**
```bash
# 1. Install Netlify CLI
npm install -g netlify-cli
# 2. Create netlify.toml
cat > netlify.toml << EOF
[build]
command = "npm run build"
publish = "dist"
[functions]
directory = "netlify/functions"
[build.environment]
NODE_VERSION = "20"
EOF
# 3. Add environment variables in Netlify UI
# REPLICATE_API_TOKEN = "..."
# API_KEY = "..."
# 4. Deploy
netlify deploy --prod
```
**Frontend Integration bleibt gleich:**
```javascript
// Nur API URL ändern
const API_URL = '/.netlify/functions';
// Statt: const API_URL = 'http://localhost:3001/api';
```
### Option 2: Vercel Functions (Alternative)
**Ähnlich wie Netlify:**
- Free Tier: 100GB-Hrs/Monat
- Pro: $20/Monat
- Edge Functions möglich
- Bessere TypeScript-Unterstützung
```typescript
// api/generate-persona-image.ts
import { VercelRequest, VercelResponse } from '@vercel/node';
export default async function handler(req: VercelRequest, res: VercelResponse) {
// Similar implementation
}
```
### Option 3: Astro SSR mit API Routes (Neu in Astro 4.0)
**In deinem bestehenden Projekt:**
```typescript
// src/pages/api/generate-persona-image.ts
import type { APIRoute } from 'astro';
import Replicate from 'replicate';
export const POST: APIRoute = async ({ request }) => {
const data = await request.json();
// Implementation
return new Response(JSON.stringify(result), {
status: 200,
headers: {
'Content-Type': 'application/json'
}
});
}
```
## 📊 Entscheidungsmatrix
| Kriterium | Netlify Functions | Hetzner VPS | Gewichtung |
|-----------|------------------|-------------|------------|
| **Kosten** | ⭐⭐⭐⭐⭐ (€0-19/Mo) | ⭐⭐ (€24/Mo) | 30% |
| **Einfachheit** | ⭐⭐⭐⭐⭐ | ⭐⭐ | 25% |
| **Skalierbarkeit** | ⭐⭐⭐⭐ | ⭐⭐⭐ | 15% |
| **Kontrolle** | ⭐⭐ | ⭐⭐⭐⭐⭐ | 10% |
| **Performance** | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 10% |
| **Wartung** | ⭐⭐⭐⭐⭐ (keine) | ⭐⭐ (manuell) | 10% |
**Gewinner: Netlify Functions** 🏆
## 🎯 Empfehlung
### Für dein Memoro-Projekt: **Netlify Functions**
**Warum:**
1. **Kostenlos** für Development und kleine Nutzung
2. **Zero DevOps** - kein Server-Management
3. **Automatisches Scaling** - zahle nur was du nutzt
4. **5 Minuten Setup** vs. Stunden für VPS
5. **Integriert** mit deinem bestehenden Netlify Hosting
### Migrations-Pfad:
```bash
# Phase 1: Development (JETZT)
Netlify Functions Free Tier
- Test mit echten Usern
- Kosten: €0 + Replicate
# Phase 2: Growth (100+ Personas/Monat)
Netlify Functions Pro
- Kosten: €19/Monat + Replicate
# Phase 3: Scale (1000+ Personas/Monat)
Evaluiere Hetzner VPS für mehrere Services
- Kosten: €24/Monat + Replicate
```
## 🚀 Quick Start mit Netlify Functions
### 1. Erstelle Function-Datei:
```bash
mkdir -p netlify/functions
touch netlify/functions/generate-persona-image.js
```
### 2. Kopiere Code von oben
### 3. Environment Variables in Netlify:
```
Site Settings > Environment Variables:
- REPLICATE_API_TOKEN
- API_KEY
```
### 4. Deploy:
```bash
git add .
git commit -m "Add Netlify Function for image generation"
git push
```
### 5. Fertig! 🎉
## 💡 Pro-Tipps
### Bildoptimierung mit Netlify:
```javascript
// Nutze Netlify Image CDN für generierte Bilder
const optimizedUrl = `/.netlify/images?url=${imageUrl}&w=1024&q=80`;
```
### Caching Strategy:
```javascript
// Cache Replicate responses in Netlify Blobs (Free)
import { getStore } from "@netlify/blobs";
const store = getStore("persona-images");
await store.set(personaId, imageUrls);
```
### Rate Limiting:
```javascript
// Nutze Netlify Edge Functions für Rate Limiting
export const config = {
path: "/api/generate-image",
rateLimit: {
windowMs: 60000, // 1 minute
max: 5 // 5 requests per minute
}
};
```
## 📈 Kosten-Beispielrechnung
### Szenario: 50 Personas pro Monat
| Service | Netlify Functions | Hetzner VPS |
|---------|------------------|-------------|
| Hosting | €0 (Free Tier) | €24 |
| Replicate | €0.50 | €0.50 |
| Zeit-Investment | 5 Minuten | 2-4 Stunden |
| **Total** | **€0.50** | **€24.50** |
### Szenario: 500 Personas pro Monat
| Service | Netlify Functions | Hetzner VPS |
|---------|------------------|-------------|
| Hosting | €19 (Pro) | €24 |
| Replicate | €5 | €5 |
| **Total** | **€24** | **€29** |
## 🏁 Fazit
**Netlify Functions ist die beste Wahl für dein Projekt:**
**Sofort einsatzbereit** - keine Server-Konfiguration
**Kosteneffizient** - zahle nur was du nutzt
**Automatisches Scaling** - keine Sorgen bei Traffic-Spitzen
**Integriert** - funktioniert nahtlos mit Astro
**Zukunftssicher** - einfache Migration wenn nötig
**Hetzner VPS nur wenn:**
- Du mehrere Backend-Services brauchst
- Du volle Kontrolle willst
- Du bereits DevOps-Erfahrung hast
- Du >1000 Requests/Tag erwartest
---
*Empfehlung: Starte mit Netlify Functions Free Tier und skaliere bei Bedarf.*

View file

@ -0,0 +1,305 @@
Häufigste Suchanfragen,Klicks,Impressionen,CTR,Position
memoro,144,2579,5.58%,6.33
memoro app,25,90,27.78%,1.47
memoro ai,25,65,38.46%,1.05
memoro.ai,1,24,4.17%,1
memo ro,1,11,9.09%,3.82
memo app,0,184,0%,57.75
ai powered decision making,0,148,0%,81.13
memos,0,145,0%,93.2
memo,0,143,0%,96.4
app patientendokumentation,0,120,0%,32.98
ki entscheidungsfindung,0,79,0%,63.95
zeitersparnis durch ki in meetings,0,79,0%,81.04
memoro drive,0,77,0%,9.84
ki-gestützte entscheidungen,0,70,0%,49.64
ai-powered decision making,0,69,0%,82.32
ai handwerk lösung,0,60,0%,91.88
memo ai,0,59,0%,75.12
memorae.ai pricing,0,57,0%,5.86
außendienst dokumentation,0,48,0%,84.46
mängelverfolgung,0,38,0%,64.03
ai decision maker,0,37,0%,58.46
außendienst datensicherheit,0,37,0%,63.16
baufortschritt dokumentieren,0,36,0%,63.06
ai-entscheidungsfindung,0,34,0%,71.5
pflegedokumentation datenschutz,0,34,0%,90.21
protokoll software,0,31,0%,29.45
meetingprotokoll,0,31,0%,82.61
mana preis,0,30,0%,79.83
pflegedaten,0,30,0%,91.5
teambesprechung vorlage,0,29,0%,69.34
memoro storage,0,28,0%,8.5
besprechungsprotokoll software,0,28,0%,38.82
vorlagen für die qualitätskontrolle,0,28,0%,76.64
app für patientendokumentation,0,25,0%,36.72
memos app,0,25,0%,51.92
zahnärzte datensätze,0,24,0%,77.62
baumeister app,0,23,0%,73.96
pflegedokumentation vorlagen,0,23,0%,93.52
decision maker ai,0,22,0%,39.91
verfolgung außendiensteinsätze,0,22,0%,56.32
kurzzusammenfassung,0,21,0%,22.33
memoro reviews,0,20,0%,1
me moro,0,20,0%,15.95
arbeitsberichte app,0,20,0%,76.9
ideenentwicklung,0,20,0%,77.65
app mobile pflegedokumentation,0,20,0%,91.2
baustellendokumentation muster,0,19,0%,30.11
ki gestützte entscheidungsfindung,0,19,0%,42.68
ki-gestützte meeting-software,0,19,0%,74.89
protokollsoftware bau,0,18,0%,63.44
ai zahnmedizin,0,18,0%,90.28
memoro ag,0,16,0%,6
ai-powered decision-making,0,16,0%,72.19
protokollsoftware bauwesen,0,16,0%,74
report dentisti,0,16,0%,74.12
nachhaltige heizungskonzepte,0,16,0%,90.56
memoro drive reviews,0,15,0%,2.73
software protokollerstellung,0,15,0%,21.07
app memo,0,15,0%,57.33
protokoll software kostenlos,0,13,0%,36.23
mp3 upload,0,13,0%,57.46
brainstorming vorlagen,0,13,0%,93.77
memorandum app,0,12,0%,45.17
till dev ceo,0,11,0%,8.64
software protokoll,0,11,0%,44.64
memo android,0,11,0%,58.91
riepilogo automatico delle conversazioni,0,10,0%,58.6
ai memo,0,10,0%,96.1
memoros,0,9,0%,5.89
memojuro,0,9,0%,6.78
decide framework,0,9,0%,46.11
site à la con,0,9,0%,53.56
memo logo,0,9,0%,70.56
zusammenfassung vorlesung,0,9,0%,71.67
memoright,0,9,0%,73.67
automatisierte meeting-lösungen,0,9,0%,74.67
memo gmbh,0,9,0%,75.11
ki-meeting-management-software,0,9,0%,93.56
till schneider,0,8,0%,3.88
memorae ai pricing,0,8,0%,4.75
memorare ai,0,8,0%,7
memoro latino,0,8,0%,18.25
memo de,0,8,0%,88.88
memoorb,0,7,0%,6.14
screenshots demo,0,7,0%,16.29
baustellendokumentation vorlage,0,7,0%,19
meeting protokoll software,0,7,0%,22.29
dokumentation zahnarztpraxis,0,7,0%,45.14
memo0,0,7,0%,48
handwerksarbeit,0,7,0%,86.14
detailed summary,0,6,0%,13.83
memora ai,0,6,0%,31.33
protokoll programm,0,6,0%,43.83
ai-powered personal organizer,0,6,0%,94
is memoro legit,0,5,0%,1
memorae.ai privacy policy,0,5,0%,7.8
protokollsoftware mit bilddokumentation,0,5,0%,11.4
branchenspezifische meeting-software mit ki,0,5,0%,24
automatische protokollierung,0,5,0%,35
changelog deutsch,0,5,0%,39.8
ki protokoll app,0,5,0%,47.6
transkript protokoll,0,5,0%,48
memo apps,0,5,0%,49
tagesprotokolle vorlage,0,5,0%,51.6
memo application,0,5,0%,58
cloud migration heilbronn,0,5,0%,69
ki protokoll schreiben,0,5,0%,74
hotjar ip blocking,0,5,0%,78.6
logo memo,0,5,0%,85
memo deutsch,0,5,0%,85.6
memorro,0,4,0%,4
"""memoro""",0,4,0%,7.5
qualitätssicherungsplan vorlage,0,4,0%,47
französisch mit aufnahme,0,4,0%,55.25
hotjar rgpd,0,4,0%,61.25
memo ai app,0,4,0%,72.5
ideenboard,0,4,0%,81.25
hotjar block ip,0,4,0%,87.25
baumeister software,0,4,0%,91
datenschutz pflegedokumentation,0,4,0%,94.25
memomaker,0,4,0%,94.5
optimale länge blogbeitrag,0,4,0%,94.5
μεμο,0,4,0%,94.75
is memoro drive legit,0,3,0%,1
textbausteine zahnarzt,0,3,0%,1
memotro,0,3,0%,4.67
neoro.ai dental,0,3,0%,5
memoro phone storage,0,3,0%,7
memorool,0,3,0%,7.33
mp3 uploading,0,3,0%,9.33
posthog rgpd,0,3,0%,10.33
programmier bar,0,3,0%,12
moro ai,0,3,0%,15.33
gesprächsdokumentation,0,3,0%,34
memo pro,0,3,0%,40.33
🇩🇴 sprache,0,3,0%,42.67
firebase rgpd,0,3,0%,44
upload audio,0,3,0%,44
protokoll ki,0,3,0%,45.67
audio upload,0,3,0%,52.33
automatisierte prüfprotokolle,0,3,0%,54.33
programmierbar,0,3,0%,55.67
posthog experiment bubble,0,3,0%,61.67
upload mp3,0,3,0%,66.67
protokoll schreiben ki,0,3,0%,67.67
team protokoll,0,3,0%,75.67
мемо,0,3,0%,75.67
memos ai,0,3,0%,81.33
memos deutsch,0,3,0%,86
memorization app,0,3,0%,87.33
mp3 hochladen,0,3,0%,88
apps memo,0,3,0%,91.67
crm im technischen außendienst,0,3,0%,94.33
nlp für zahnärzte,0,3,0%,94.33
app entwicklung konstanz,0,3,0%,97
programmier.bar,0,2,0%,3.5
memorea ai,0,2,0%,5
memorae ai,0,2,0%,5.5
perfektes gehör,0,2,0%,6
"""detailed summary""",0,2,0%,9.5
memocom,0,2,0%,12
memorado app,0,2,0%,14
arbeitsberichte handwerk,0,2,0%,32.5
menoro,0,2,0%,34
flo könig,0,2,0%,35
app dentisti,0,2,0%,39
wertebasierter sales,0,2,0%,44.5
memos android app,0,2,0%,46.5
memoo,0,2,0%,48
ki meeting protokoll,0,2,0%,48.5
application memo,0,2,0%,50.5
memorun,0,2,0%,64
audio hochladen,0,2,0%,70.5
memoras,0,2,0%,70.5
memo one,0,2,0%,71
clear sight it decision maker,0,2,0%,72
memo app download,0,2,0%,73.5
provate dentist,0,2,0%,74
ai powered decisioning,0,2,0%,74.5
idea maturation,0,2,0%,75
voice upload,0,2,0%,76
deadline aufgabenverwaltung,0,2,0%,81.5
software pflegedokumentation,0,2,0%,81.5
my memo ai,0,2,0%,85.5
erweiterte entscheidungsfindung,0,2,0%,91
digitale dokumentation zahnarztpraxis,0,2,0%,95.5
handelsregisteränderungen,0,2,0%,96
ki dentalklinik,0,2,0%,98.5
is memocore legit,0,1,0%,1
memoribid,0,1,0%,3
memoro drive review,0,1,0%,3
memorn,0,1,0%,4
memori ia,0,1,0%,6
zahnarzt dokumentation,0,1,0%,6
florian moro,0,1,0%,7
memirro,0,1,0%,7
memmeroo,0,1,0%,8
memorae.ai sitio web,0,1,0%,8
memo.ro,0,1,0%,9
memos pro,0,1,0%,9
michael baumeister,0,1,0%,9
memori app,0,1,0%,10
memorp,0,1,0%,10
memotrace,0,1,0%,10
nemoro,0,1,0%,10
prompt post-processing,0,1,0%,10
memmo app,0,1,0%,11
моро дентал,0,1,0%,11
memodio,0,1,0%,12
- provide a detailed summary,0,1,0%,13
memo app windows,0,1,0%,13
memo-app kostenlos,0,1,0%,13
memodo erfahrungen,0,1,0%,14
memotel,0,1,0%,14
ai help me decide,0,1,0%,15
till schneider architekt,0,1,0%,16
audioarchive,0,1,0%,21
projektbesprechung,0,1,0%,22
codify deutsch,0,1,0%,26
share memo,0,1,0%,26
memorar.ai,0,1,0%,28
memotoo,0,1,0%,28
memo ai pricing,0,1,0%,29
ki dokumentation zahnarzt,0,1,0%,33
südkurier app,0,1,0%,36
memogro,0,1,0%,37
programmier code,0,1,0%,38
memoprof,0,1,0%,39
memoer,0,1,0%,41
meeting protokoll app,0,1,0%,42
agb dienstleistung,0,1,0%,43
protokollsoftware,0,1,0%,43
baustellendokumentation app,0,1,0%,44
nta isny,0,1,0%,44
kommunikationsinhalte,0,1,0%,45
mymemoai,0,1,0%,45
download memo,0,1,0%,46
memonote,0,1,0%,50
ki protokoll schreiben kostenlos,0,1,0%,52
memotome,0,1,0%,52
prompt engineering infographic,0,1,0%,52
garrelt,0,1,0%,53
memoptimizer,0,1,0%,53
memoro meaning,0,1,0%,54
memorator,0,1,0%,56
idea maturation workshop,0,1,0%,57
meeting zusammenfassung vorlage,0,1,0%,57
memo apk,0,1,0%,58
audio archiv,0,1,0%,60
memo tablet,0,1,0%,60
my memo,0,1,0%,60
meetingsprotokoll,0,1,0%,61
memo apk download,0,1,0%,63
quote preparation,0,1,0%,63
firebase dsgvo konform,0,1,0%,64
meemo ai,0,1,0%,64
holzbau hoffmann,0,1,0%,65
übergabeschein vorlage,0,1,0%,65
pflegedokumentation app kostenlos,0,1,0%,66
übergabeprotokoll büro,0,1,0%,66
memo ai download,0,1,0%,67
memo me,0,1,0%,68
memocam,0,1,0%,68
memo to me,0,1,0%,71
memoapp,0,1,0%,71
automatisierte agenden und protokolle,0,1,0%,74
ai decision making app,0,1,0%,75
memories.ai,0,1,0%,75
ai time manager,0,1,0%,76
logo per dentisti,0,1,0%,78
protokoll schreiben mit ki,0,1,0%,78
app für zahnärzte,0,1,0%,79
memove,0,1,0%,79
mike baumeister,0,1,0%,79
it consulting bauer,0,1,0%,80
manalake,0,1,0%,80
firebase crashlytics gdpr,0,1,0%,81
memo auf deutsch,0,1,0%,82
memonot,0,1,0%,82
nursing documentation app,0,1,0%,82
memomaster download,0,1,0%,84
ki zeitmanagement,0,1,0%,85
memoona,0,1,0%,88
baustellendokumentation beispiele,0,1,0%,89
memo website,0,1,0%,90
modern dentist munich,0,1,0%,92
änderungsschneider konstanz,0,1,0%,92
memo price,0,1,0%,94
mana flow,0,1,0%,95
memo def,0,1,0%,95
qualitätssicherung baustelle,0,1,0%,95
beantwortete,0,1,0%,97
hangouts kosten,0,1,0%,99
tägliche teambesprechung,0,1,0%,99
baustellenprotokoll app,0,1,0%,100
ki-ersteinschätzung,0,1,0%,100
memo tools,0,1,0%,100
projektstatusbericht kurz,0,1,0%,100
projektstatusberichte,0,1,0%,100
memo file,0,1,0%,101
minodor ai,0,1,0%,101
pro memora,0,1,0%,101
mémo,0,1,0%,102
posthog blog,0,1,0%,136
1 Häufigste Suchanfragen Klicks Impressionen CTR Position
2 memoro 144 2579 5.58% 6.33
3 memoro app 25 90 27.78% 1.47
4 memoro ai 25 65 38.46% 1.05
5 memoro.ai 1 24 4.17% 1
6 memo ro 1 11 9.09% 3.82
7 memo app 0 184 0% 57.75
8 ai powered decision making 0 148 0% 81.13
9 memos 0 145 0% 93.2
10 memo 0 143 0% 96.4
11 app patientendokumentation 0 120 0% 32.98
12 ki entscheidungsfindung 0 79 0% 63.95
13 zeitersparnis durch ki in meetings 0 79 0% 81.04
14 memoro drive 0 77 0% 9.84
15 ki-gestützte entscheidungen 0 70 0% 49.64
16 ai-powered decision making 0 69 0% 82.32
17 ai handwerk lösung 0 60 0% 91.88
18 memo ai 0 59 0% 75.12
19 memorae.ai pricing 0 57 0% 5.86
20 außendienst dokumentation 0 48 0% 84.46
21 mängelverfolgung 0 38 0% 64.03
22 ai decision maker 0 37 0% 58.46
23 außendienst datensicherheit 0 37 0% 63.16
24 baufortschritt dokumentieren 0 36 0% 63.06
25 ai-entscheidungsfindung 0 34 0% 71.5
26 pflegedokumentation datenschutz 0 34 0% 90.21
27 protokoll software 0 31 0% 29.45
28 meetingprotokoll 0 31 0% 82.61
29 mana preis 0 30 0% 79.83
30 pflegedaten 0 30 0% 91.5
31 teambesprechung vorlage 0 29 0% 69.34
32 memoro storage 0 28 0% 8.5
33 besprechungsprotokoll software 0 28 0% 38.82
34 vorlagen für die qualitätskontrolle 0 28 0% 76.64
35 app für patientendokumentation 0 25 0% 36.72
36 memos app 0 25 0% 51.92
37 zahnärzte datensätze 0 24 0% 77.62
38 baumeister app 0 23 0% 73.96
39 pflegedokumentation vorlagen 0 23 0% 93.52
40 decision maker ai 0 22 0% 39.91
41 verfolgung außendiensteinsätze 0 22 0% 56.32
42 kurzzusammenfassung 0 21 0% 22.33
43 memoro reviews 0 20 0% 1
44 me moro 0 20 0% 15.95
45 arbeitsberichte app 0 20 0% 76.9
46 ideenentwicklung 0 20 0% 77.65
47 app mobile pflegedokumentation 0 20 0% 91.2
48 baustellendokumentation muster 0 19 0% 30.11
49 ki gestützte entscheidungsfindung 0 19 0% 42.68
50 ki-gestützte meeting-software 0 19 0% 74.89
51 protokollsoftware bau 0 18 0% 63.44
52 ai zahnmedizin 0 18 0% 90.28
53 memoro ag 0 16 0% 6
54 ai-powered decision-making 0 16 0% 72.19
55 protokollsoftware bauwesen 0 16 0% 74
56 report dentisti 0 16 0% 74.12
57 nachhaltige heizungskonzepte 0 16 0% 90.56
58 memoro drive reviews 0 15 0% 2.73
59 software protokollerstellung 0 15 0% 21.07
60 app memo 0 15 0% 57.33
61 protokoll software kostenlos 0 13 0% 36.23
62 mp3 upload 0 13 0% 57.46
63 brainstorming vorlagen 0 13 0% 93.77
64 memorandum app 0 12 0% 45.17
65 till dev ceo 0 11 0% 8.64
66 software protokoll 0 11 0% 44.64
67 memo android 0 11 0% 58.91
68 riepilogo automatico delle conversazioni 0 10 0% 58.6
69 ai memo 0 10 0% 96.1
70 memoros 0 9 0% 5.89
71 memojuro 0 9 0% 6.78
72 decide framework 0 9 0% 46.11
73 site à la con 0 9 0% 53.56
74 memo logo 0 9 0% 70.56
75 zusammenfassung vorlesung 0 9 0% 71.67
76 memoright 0 9 0% 73.67
77 automatisierte meeting-lösungen 0 9 0% 74.67
78 memo gmbh 0 9 0% 75.11
79 ki-meeting-management-software 0 9 0% 93.56
80 till schneider 0 8 0% 3.88
81 memorae ai pricing 0 8 0% 4.75
82 memorare ai 0 8 0% 7
83 memoro latino 0 8 0% 18.25
84 memo de 0 8 0% 88.88
85 memoorb 0 7 0% 6.14
86 screenshots demo 0 7 0% 16.29
87 baustellendokumentation vorlage 0 7 0% 19
88 meeting protokoll software 0 7 0% 22.29
89 dokumentation zahnarztpraxis 0 7 0% 45.14
90 memo0 0 7 0% 48
91 handwerksarbeit 0 7 0% 86.14
92 detailed summary 0 6 0% 13.83
93 memora ai 0 6 0% 31.33
94 protokoll programm 0 6 0% 43.83
95 ai-powered personal organizer 0 6 0% 94
96 is memoro legit 0 5 0% 1
97 memorae.ai privacy policy 0 5 0% 7.8
98 protokollsoftware mit bilddokumentation 0 5 0% 11.4
99 branchenspezifische meeting-software mit ki 0 5 0% 24
100 automatische protokollierung 0 5 0% 35
101 changelog deutsch 0 5 0% 39.8
102 ki protokoll app 0 5 0% 47.6
103 transkript protokoll 0 5 0% 48
104 memo apps 0 5 0% 49
105 tagesprotokolle vorlage 0 5 0% 51.6
106 memo application 0 5 0% 58
107 cloud migration heilbronn 0 5 0% 69
108 ki protokoll schreiben 0 5 0% 74
109 hotjar ip blocking 0 5 0% 78.6
110 logo memo 0 5 0% 85
111 memo deutsch 0 5 0% 85.6
112 memorro 0 4 0% 4
113 "memoro" 0 4 0% 7.5
114 qualitätssicherungsplan vorlage 0 4 0% 47
115 französisch mit aufnahme 0 4 0% 55.25
116 hotjar rgpd 0 4 0% 61.25
117 memo ai app 0 4 0% 72.5
118 ideenboard 0 4 0% 81.25
119 hotjar block ip 0 4 0% 87.25
120 baumeister software 0 4 0% 91
121 datenschutz pflegedokumentation 0 4 0% 94.25
122 memomaker 0 4 0% 94.5
123 optimale länge blogbeitrag 0 4 0% 94.5
124 μεμο 0 4 0% 94.75
125 is memoro drive legit 0 3 0% 1
126 textbausteine zahnarzt 0 3 0% 1
127 memotro 0 3 0% 4.67
128 neoro.ai dental 0 3 0% 5
129 memoro phone storage 0 3 0% 7
130 memorool 0 3 0% 7.33
131 mp3 uploading 0 3 0% 9.33
132 posthog rgpd 0 3 0% 10.33
133 programmier bar 0 3 0% 12
134 moro ai 0 3 0% 15.33
135 gesprächsdokumentation 0 3 0% 34
136 memo pro 0 3 0% 40.33
137 🇩🇴 sprache 0 3 0% 42.67
138 firebase rgpd 0 3 0% 44
139 upload audio 0 3 0% 44
140 protokoll ki 0 3 0% 45.67
141 audio upload 0 3 0% 52.33
142 automatisierte prüfprotokolle 0 3 0% 54.33
143 programmierbar 0 3 0% 55.67
144 posthog experiment bubble 0 3 0% 61.67
145 upload mp3 0 3 0% 66.67
146 protokoll schreiben ki 0 3 0% 67.67
147 team protokoll 0 3 0% 75.67
148 мемо 0 3 0% 75.67
149 memos ai 0 3 0% 81.33
150 memos deutsch 0 3 0% 86
151 memorization app 0 3 0% 87.33
152 mp3 hochladen 0 3 0% 88
153 apps memo 0 3 0% 91.67
154 crm im technischen außendienst 0 3 0% 94.33
155 nlp für zahnärzte 0 3 0% 94.33
156 app entwicklung konstanz 0 3 0% 97
157 programmier.bar 0 2 0% 3.5
158 memorea ai 0 2 0% 5
159 memorae ai 0 2 0% 5.5
160 perfektes gehör 0 2 0% 6
161 "detailed summary" 0 2 0% 9.5
162 memocom 0 2 0% 12
163 memorado app 0 2 0% 14
164 arbeitsberichte handwerk 0 2 0% 32.5
165 menoro 0 2 0% 34
166 flo könig 0 2 0% 35
167 app dentisti 0 2 0% 39
168 wertebasierter sales 0 2 0% 44.5
169 memos android app 0 2 0% 46.5
170 memoo 0 2 0% 48
171 ki meeting protokoll 0 2 0% 48.5
172 application memo 0 2 0% 50.5
173 memorun 0 2 0% 64
174 audio hochladen 0 2 0% 70.5
175 memoras 0 2 0% 70.5
176 memo one 0 2 0% 71
177 clear sight it decision maker 0 2 0% 72
178 memo app download 0 2 0% 73.5
179 provate dentist 0 2 0% 74
180 ai powered decisioning 0 2 0% 74.5
181 idea maturation 0 2 0% 75
182 voice upload 0 2 0% 76
183 deadline aufgabenverwaltung 0 2 0% 81.5
184 software pflegedokumentation 0 2 0% 81.5
185 my memo ai 0 2 0% 85.5
186 erweiterte entscheidungsfindung 0 2 0% 91
187 digitale dokumentation zahnarztpraxis 0 2 0% 95.5
188 handelsregisteränderungen 0 2 0% 96
189 ki dentalklinik 0 2 0% 98.5
190 is memocore legit 0 1 0% 1
191 memoribid 0 1 0% 3
192 memoro drive review 0 1 0% 3
193 memorn 0 1 0% 4
194 memori ia 0 1 0% 6
195 zahnarzt dokumentation 0 1 0% 6
196 florian moro 0 1 0% 7
197 memirro 0 1 0% 7
198 memmeroo 0 1 0% 8
199 memorae.ai sitio web 0 1 0% 8
200 memo.ro 0 1 0% 9
201 memos pro 0 1 0% 9
202 michael baumeister 0 1 0% 9
203 memori app 0 1 0% 10
204 memorp 0 1 0% 10
205 memotrace 0 1 0% 10
206 nemoro 0 1 0% 10
207 prompt post-processing 0 1 0% 10
208 memmo app 0 1 0% 11
209 моро дентал 0 1 0% 11
210 memodio 0 1 0% 12
211 - provide a detailed summary 0 1 0% 13
212 memo app windows 0 1 0% 13
213 memo-app kostenlos 0 1 0% 13
214 memodo erfahrungen 0 1 0% 14
215 memotel 0 1 0% 14
216 ai help me decide 0 1 0% 15
217 till schneider architekt 0 1 0% 16
218 audioarchive 0 1 0% 21
219 projektbesprechung 0 1 0% 22
220 codify deutsch 0 1 0% 26
221 share memo 0 1 0% 26
222 memorar.ai 0 1 0% 28
223 memotoo 0 1 0% 28
224 memo ai pricing 0 1 0% 29
225 ki dokumentation zahnarzt 0 1 0% 33
226 südkurier app 0 1 0% 36
227 memogro 0 1 0% 37
228 programmier code 0 1 0% 38
229 memoprof 0 1 0% 39
230 memoer 0 1 0% 41
231 meeting protokoll app 0 1 0% 42
232 agb dienstleistung 0 1 0% 43
233 protokollsoftware 0 1 0% 43
234 baustellendokumentation app 0 1 0% 44
235 nta isny 0 1 0% 44
236 kommunikationsinhalte 0 1 0% 45
237 mymemoai 0 1 0% 45
238 download memo 0 1 0% 46
239 memonote 0 1 0% 50
240 ki protokoll schreiben kostenlos 0 1 0% 52
241 memotome 0 1 0% 52
242 prompt engineering infographic 0 1 0% 52
243 garrelt 0 1 0% 53
244 memoptimizer 0 1 0% 53
245 memoro meaning 0 1 0% 54
246 memorator 0 1 0% 56
247 idea maturation workshop 0 1 0% 57
248 meeting zusammenfassung vorlage 0 1 0% 57
249 memo apk 0 1 0% 58
250 audio archiv 0 1 0% 60
251 memo tablet 0 1 0% 60
252 my memo 0 1 0% 60
253 meetingsprotokoll 0 1 0% 61
254 memo apk download 0 1 0% 63
255 quote preparation 0 1 0% 63
256 firebase dsgvo konform 0 1 0% 64
257 meemo ai 0 1 0% 64
258 holzbau hoffmann 0 1 0% 65
259 übergabeschein vorlage 0 1 0% 65
260 pflegedokumentation app kostenlos 0 1 0% 66
261 übergabeprotokoll büro 0 1 0% 66
262 memo ai download 0 1 0% 67
263 memo me 0 1 0% 68
264 memocam 0 1 0% 68
265 memo to me 0 1 0% 71
266 memoapp 0 1 0% 71
267 automatisierte agenden und protokolle 0 1 0% 74
268 ai decision making app 0 1 0% 75
269 memories.ai 0 1 0% 75
270 ai time manager 0 1 0% 76
271 logo per dentisti 0 1 0% 78
272 protokoll schreiben mit ki 0 1 0% 78
273 app für zahnärzte 0 1 0% 79
274 memove 0 1 0% 79
275 mike baumeister 0 1 0% 79
276 it consulting bauer 0 1 0% 80
277 manalake 0 1 0% 80
278 firebase crashlytics gdpr 0 1 0% 81
279 memo auf deutsch 0 1 0% 82
280 memonot 0 1 0% 82
281 nursing documentation app 0 1 0% 82
282 memomaster download 0 1 0% 84
283 ki zeitmanagement 0 1 0% 85
284 memoona 0 1 0% 88
285 baustellendokumentation beispiele 0 1 0% 89
286 memo website 0 1 0% 90
287 modern dentist munich 0 1 0% 92
288 änderungsschneider konstanz 0 1 0% 92
289 memo price 0 1 0% 94
290 mana flow 0 1 0% 95
291 memo def 0 1 0% 95
292 qualitätssicherung baustelle 0 1 0% 95
293 beantwortete 0 1 0% 97
294 hangouts kosten 0 1 0% 99
295 tägliche teambesprechung 0 1 0% 99
296 baustellenprotokoll app 0 1 0% 100
297 ki-ersteinschätzung 0 1 0% 100
298 memo tools 0 1 0% 100
299 projektstatusbericht kurz 0 1 0% 100
300 projektstatusberichte 0 1 0% 100
301 memo file 0 1 0% 101
302 minodor ai 0 1 0% 101
303 pro memora 0 1 0% 101
304 mémo 0 1 0% 102
305 posthog blog 0 1 0% 136

View file

@ -0,0 +1,403 @@
# Content-Optimierungs-Plan für SEO-Keywords
## Übersicht
Dieser Plan zeigt, wie wir die bestehende Website-Struktur und Content Collections optimal für die identifizierten Keywords nutzen und erweitern können.
## Aktuelle Website-Struktur
### Bestehende Seiten (src/pages/[lang]/)
- `index.astro` - Homepage
- `about.astro` - Über uns
- `contact.astro` - Kontakt
- `imprint.astro` - Impressum
- `meeting-protokoll-software.astro` - **BEREITS VORHANDEN!**
- `prices.astro` - Preise
- `screenshots-demo.astro` - Screenshots
- `terms.astro` - AGB
### Content Collections (16 Collections)
1. **blog** - Blog-Artikel
2. **features** - Feature-Beschreibungen
3. **industries** - Branchen-Lösungen
4. **guides** - Anleitungen
5. **team** - Team-Mitglieder
6. **testimonials** - Kundenstimmen
7. **faqs** - Häufige Fragen
8. **blueprints** - Vorlagen
9. **memories** - Erinnerungen
10. **statistics** - Statistiken
11. **changelog** - Änderungen
12. **wallpapers** - Hintergründe
13. **authors** - Autoren
14. **pages** - Seiten-Content
15. **dataprotection** - Datenschutz
16. **calendar** - Kalender (intern)
## Keyword-Mapping & Optimierungs-Strategie
### 1. SOFORT OPTIMIEREN - Bestehende Seiten
#### A. Meeting-Protokoll-Software Hub ✅ VORHANDEN
**Seite:** `/[lang]/meeting-protokoll-software.astro`
**Target Keywords:**
- protokoll software (31 Impressions, Position 29.45)
- besprechungsprotokoll software (28 Impressions, Position 38.82)
- meeting protokoll software (7 Impressions, Position 22.29)
- protokollsoftware (1 Klick, 43 Impressions)
- software protokollerstellung (15 Impressions, Position 21.07)
**Optimierungen:**
```astro
// Title Tag optimieren
<title>Protokoll Software - KI Meeting-Protokolle | Memoro</title>
// Meta Description
<meta name="description" content="Automatische Protokoll-Software für Meetings. KI-gestützte Besprechungsprotokoll-Software mit Spracherkennung. Kostenlos testen!">
// H1 optimieren
<h1>Protokoll-Software für automatische Meeting-Dokumentation</h1>
// Content-Struktur
- Section: "Besprechungsprotokoll Software Features"
- Section: "Meeting Protokoll Software Vorteile"
- Section: "Protokollsoftware kostenlos testen"
```
#### B. Pricing Page Optimierung
**Seite:** `/[lang]/prices.astro`
**Target Keywords:**
- memorae.ai pricing (57 Impressions, Position 5.86)
- memorae ai pricing (8 Impressions, Position 4.75)
- mana preis (30 Impressions, Position 79.83)
**Optimierungen:**
```astro
// URL ändern zu /preise für DE
// Title Tag
<title>Memoro Preise - Memorae.ai Pricing & Mana Credits</title>
// Strukturierte Daten hinzufügen
<script type="application/ld+json">
{
"@type": "SoftwareApplication",
"name": "Memoro",
"offers": {
"@type": "AggregateOffer",
"priceCurrency": "EUR",
"lowPrice": "0",
"highPrice": "99"
}
}
</script>
```
#### C. Homepage Optimierung
**Seite:** `/[lang]/index.astro`
**Target Keywords:**
- memoro (144 Klicks, Position 6.33 → Top 3)
- memo app (184 Impressions, Position 57.75)
- memos (145 Impressions, Position 93.2)
- memo ai (59 Impressions, Position 75.12)
**Optimierungen:**
```astro
// Title Tag
<title>Memoro - KI Memo App für Meeting-Dokumentation | memoro.ai</title>
// H1 mit Varianten
<h1>Memoro: Die intelligente Memo App mit KI</h1>
// Neue Sections hinzufügen
<section id="memo-app">
<h2>Die beste Memo App für Teams</h2>
<!-- Content über Memo App Features -->
</section>
<section id="memos-ai">
<h2>Memos mit künstlicher Intelligenz erstellen</h2>
<!-- AI Features hervorheben -->
</section>
```
### 2. NEUE SEITEN MIT CONTENT COLLECTIONS
#### A. KI-Entscheidungsfindung Hub
**Neue Seite:** `/[lang]/ki-entscheidungsfindung/index.astro`
**Content Collection:** Neue Sub-Collection unter `features`
```typescript
// src/content/features/de/ki-entscheidungsfindung.mdx
---
title: "KI-Entscheidungsfindung mit Memoro"
description: "KI-gestützte Entscheidungen treffen mit automatischer Dokumentation"
icon: "brain"
category: "ai-features"
keywords:
- "ki entscheidungsfindung"
- "ki-gestützte entscheidungen"
- "ki gestützte entscheidungsfindung"
- "ai-entscheidungsfindung"
---
```
**Verwandte FAQs erstellen:**
```typescript
// src/content/faqs/de/ki-entscheidung-*.mdx
- Was ist KI-Entscheidungsfindung?
- Wie unterstützt Memoro bei Entscheidungen?
- KI-gestützte Entscheidungen Beispiele
```
#### B. Gesundheitswesen Portal
**Neue Seite:** `/[lang]/industries/gesundheitswesen/index.astro`
**Content Collection:** `industries` erweitern
```typescript
// src/content/industries/de/gesundheitswesen.mdx
---
title: "Memoro für Gesundheitswesen"
description: "Patientendokumentation App für Ärzte, Pflegedienste und Kliniken"
icon: "medical"
color: "blue"
keyFeatures:
- "DSGVO-konforme Patientendokumentation"
- "Pflegedokumentation mit Datenschutz"
- "Zahnarzt Dokumentation digital"
keywords:
- "app patientendokumentation"
- "pflegedokumentation datenschutz"
- "dokumentation zahnarztpraxis"
---
```
**Unterseiten über Collection:**
- `/patientendokumentation` - 120 Impressions
- `/pflegedokumentation` - 34 Impressions
- `/zahnarztpraxis` - 13 Impressions
#### C. Baubranche Portal
**Neue Seite:** `/[lang]/industries/bau/index.astro`
**Content Collections nutzen:**
```typescript
// src/content/industries/de/baubranche.mdx
---
title: "Memoro für Baubranche & Handwerk"
keywords:
- "baustellendokumentation"
- "mängelverfolgung"
- "protokollsoftware bau"
- "baumeister app"
- "ai handwerk lösung"
---
// src/content/blueprints/de/baustellenprotokoll.mdx
---
title: "Baustellenprotokoll Vorlage"
industry: "construction"
---
// src/content/guides/de/baustellendoku-anleitung.mdx
---
title: "Baustellendokumentation mit Memoro"
category: "Bau & Handwerk"
difficulty: "beginner"
---
```
### 3. FEATURES COLLECTION ERWEITERN
#### Bestehende Features optimieren
```bash
src/content/features/
├── de/
│ ├── memoro-drive.mdx (NEU - 77 Impressions)
│ ├── audio-upload.mdx (OPTIMIEREN)
│ ├── meeting-zeitersparnis.mdx (NEU - 79 Impressions)
│ └── aussendienst-dokumentation.mdx (NEU - 48 Impressions)
└── en/
├── ai-powered-decision-making.mdx (NEU - 148 Impressions)
└── memo-ai.mdx (NEU - 59 Impressions)
```
### 4. BLOG-STRATEGIE für Long-Tail Keywords
#### High-Impact Blog-Artikel erstellen
```typescript
// src/content/blog/de/
- zeitersparnis-durch-ki-in-meetings.mdx (79 Impressions)
- ki-gestuetzte-entscheidungen-guide.mdx (70 Impressions)
- automatische-protokollierung-vorteile.mdx (5 Impressions)
- baustellendokumentation-best-practices.mdx
- patientendokumentation-dsgvo.mdx
```
### 5. FAQ COLLECTION für Featured Snippets
#### Strategische FAQs für Zero-Click-Keywords
```typescript
// src/content/faqs/de/
category: 'features'
- was-ist-protokoll-software.mdx
- memo-app-vs-memoro.mdx
- ki-entscheidungsfindung-erklaert.mdx
category: 'industries'
- patientendokumentation-app-vorteile.mdx
- baustellendokumentation-pflicht.mdx
- aussendienst-dokumentation-tools.mdx
category: 'pricing'
- memoro-pricing-erklaert.mdx
- mana-credits-kosten.mdx
```
## Content-Optimierungs-Matrix
| Keyword-Cluster | Hauptseite | Content Collections | Blog | FAQ | Guide |
|-----------------|------------|-------------------|------|-----|-------|
| Protokoll-Software | meeting-protokoll-software.astro ✅ | features | 2 | 3 | 1 |
| KI-Entscheidung | /ki-entscheidungsfindung (NEU) | features, industries | 3 | 4 | 2 |
| Gesundheit | /industries/gesundheitswesen (NEU) | industries, testimonials | 2 | 5 | 3 |
| Bau/Handwerk | /industries/bau (NEU) | industries, blueprints | 3 | 4 | 2 |
| Memo App | index.astro (OPTIMIERT) | features | 1 | 2 | 1 |
| Pricing | prices.astro (OPTIMIERT) | pages | 1 | 3 | - |
| Außendienst | /aussendienst (NEU) | features, industries | 2 | 3 | 2 |
## Technische SEO-Optimierungen
### 1. URL-Struktur verbessern
```
ALT: /[lang]/features/[...slug]
NEU: /[lang]/funktionen/[feature-name] (DE)
/[lang]/features/[feature-name] (EN)
ALT: /[lang]/industries/[...slug]
NEU: /[lang]/branchen/[branche] (DE)
/[lang]/industries/[industry] (EN)
```
### 2. Interne Verlinkung
```astro
// Component für verwandte Links
<RelatedContent
keywords={["protokoll software", "meeting protokoll"]}
collections={["features", "guides", "faqs"]}
/>
```
### 3. Schema Markup für alle Collections
```typescript
// Für jede Collection spezifisches Schema
- SoftwareApplication (features)
- HowTo (guides)
- FAQPage (faqs)
- Organization (industries)
- Review (testimonials)
```
### 4. Sitemap-Prioritäten
```xml
<!-- High Priority (0.9-1.0) -->
<url>
<loc>/de/meeting-protokoll-software</loc>
<priority>1.0</priority>
</url>
<url>
<loc>/de/preise</loc>
<priority>0.9</priority>
</url>
<!-- Medium Priority (0.6-0.8) -->
<url>
<loc>/de/ki-entscheidungsfindung</loc>
<priority>0.8</priority>
</url>
```
## Content-Erstellungs-Roadmap
### Woche 1: Quick Wins
- [ ] meeting-protokoll-software.astro optimieren
- [ ] prices.astro SEO-Update
- [ ] Homepage für "memo app" optimieren
- [ ] 5 strategische FAQs erstellen
### Woche 2: Features erweitern
- [ ] memoro-drive.mdx Feature-Seite
- [ ] ki-entscheidungsfindung.mdx erstellen
- [ ] audio-upload.mdx optimieren
- [ ] 3 Blog-Artikel zu Protokoll-Software
### Woche 3: Branchen-Portale
- [ ] Gesundheitswesen Industry Collection
- [ ] Baubranche Industry Collection
- [ ] Außendienst Feature-Seite
- [ ] Je 3 Guides pro Branche
### Woche 4: Content-Vertiefung
- [ ] 10 weitere FAQs für Featured Snippets
- [ ] Blueprints für Branchen erstellen
- [ ] Testimonials kategorisieren
- [ ] Interne Verlinkung optimieren
## Metriken & Monitoring
### KPIs pro Content-Typ
- **Pages**: Position-Verbesserung, CTR
- **Features**: Engagement, Time on Page
- **Industries**: Conversions, Lead-Qualität
- **Blog**: Organic Traffic, Shares
- **FAQs**: Featured Snippet Rate
- **Guides**: Completion Rate
### Tracking-Setup
```javascript
// GTM Custom Events
dataLayer.push({
'event': 'content_engagement',
'content_type': 'feature',
'keyword_cluster': 'protokoll-software',
'engagement_depth': '75%'
});
```
## Best Practices für Content-Erstellung
### 1. Keyword-Integration
- Primäres Keyword im H1
- Sekundäre Keywords in H2/H3
- Long-tail Keywords in FAQ-Sections
- Semantische Varianten im Fließtext
### 2. Content-Länge nach Collection
- **Features**: 800-1200 Wörter
- **Industries**: 1500-2000 Wörter
- **Guides**: 1000-1500 Wörter
- **Blog**: 1200-2000 Wörter
- **FAQs**: 150-300 Wörter pro Frage
### 3. Multimediale Elemente
- Screenshots für jedes Feature
- Demo-Videos für Hauptfunktionen
- Infografiken für Statistiken
- Testimonial-Videos für Branchen
### 4. Call-to-Actions
```astro
// Kontext-spezifische CTAs
<FeatureCTA keyword="protokoll software" />
// Rendert: "Protokoll-Software kostenlos testen"
<IndustryCTA industry="gesundheitswesen" />
// Rendert: "Demo für Praxis-Dokumentation"
```
## Notizen
- **Priorität 1**: Bestehende Seiten optimieren (Quick Wins)
- **Priorität 2**: Feature Collection für High-Value Keywords erweitern
- **Priorität 3**: Industry-spezifische Portale mit mehreren Collections
- **Vorteil**: Viele Content Collections bereits vorhanden - nur gezielt erweitern
- **Chance**: meeting-protokoll-software.astro bereits vorhanden - perfekt für Protokoll-Keywords!

View file

@ -0,0 +1,341 @@
# SEO Landing Pages Strategie - Memoro
## Übersicht
Basierend auf der vollständigen Analyse der Google Search Console Daten vom 04.09.2025 (305 Suchanfragen) identifizieren wir kritische SEO-Chancen. Die Daten zeigen 144 Klicks bei 2.579 Impressions für "memoro", aber hunderte von Zero-Click-Anfragen mit hohem Potential.
## Datenanalyse
### Top-Performer (bereits Klicks generierend)
- **memoro**: 144 Klicks, 2.579 Impressions, CTR 5.58%, Position 6.33
- **memoro app**: 25 Klicks, 90 Impressions, CTR 27.78%, Position 1.47
- **memoro ai**: 25 Klicks, 65 Impressions, CTR 38.46%, Position 1.05
- **memoro.ai**: 1 Klick, 24 Impressions, CTR 4.17%, Position 1
- **memo ro**: 1 Klick, 11 Impressions, CTR 9.09%, Position 3.82
### Zero-Click Opportunities - HÖCHSTE PRIORITÄT
Keywords mit hohen Impressions und Position 1-30 (realistische Ranking-Verbesserung):
| Keyword | Impressions | Position | Kategorie | Priorität |
|---------|------------|----------|-----------|-----------|
| memorae.ai pricing | 57 | 5.86 | Pricing | KRITISCH |
| memoro drive | 77 | 9.84 | Feature | KRITISCH |
| memoro storage | 28 | 8.5 | Feature | HOCH |
| protokoll software | 31 | 29.45 | Software | HOCH |
| app patientendokumentation | 120 | 32.98 | Gesundheit | HOCH |
| besprechungsprotokoll software | 28 | 38.82 | Software | HOCH |
| app für patientendokumentation | 25 | 36.72 | Gesundheit | HOCH |
| protokoll software kostenlos | 13 | 36.23 | Software | MITTEL |
### Zero-Click Opportunities - HOHE PRIORITÄT
Keywords mit hohen Impressions aber schlechter Position (50+):
| Keyword | Impressions | Position | Kategorie | Priorität |
|---------|------------|----------|-----------|-----------|
| memo app | 184 | 57.75 | App | HOCH |
| ai powered decision making | 148 | 81.13 | KI/AI | HOCH |
| memos | 145 | 93.2 | Brand-Variation | MITTEL |
| memo | 143 | 96.4 | Generisch | NIEDRIG |
| zeitersparnis durch ki in meetings | 79 | 81.04 | Meeting-KI | HOCH |
| ki entscheidungsfindung | 79 | 63.95 | KI-Entscheidung | HOCH |
| ki-gestützte entscheidungen | 70 | 49.64 | KI-Entscheidung | HOCH |
| ai-powered decision making | 69 | 82.32 | KI/AI | HOCH |
| außendienst dokumentation | 48 | 84.46 | Vertrieb | HOCH |
| ai handwerk lösung | 60 | 91.88 | Handwerk | HOCH |
### Neue Erkenntnisse aus der vollständigen Analyse
#### Protokoll-Software Keywords (hohe Relevanz)
- protokoll software: 31 Impressions, Position 29.45
- besprechungsprotokoll software: 28 Impressions, Position 38.82
- meeting protokoll software: 7 Impressions, Position 22.29
- protokollsoftware: 43 Impressions (1 Klick)
- software protokollerstellung: 15 Impressions, Position 21.07
#### Bau & Handwerk Cluster
- baustellendokumentation (verschiedene Varianten): 30+ Impressions
- mängelverfolgung: 38 Impressions
- protokollsoftware bau: 18 Impressions
- baumeister app: 23 Impressions
- qualitätssicherungsplan vorlage: 4 Impressions
#### Gesundheitswesen Cluster
- app patientendokumentation: 120 Impressions
- pflegedokumentation datenschutz: 34 Impressions
- dokumentation zahnarztpraxis: 7 Impressions
- zahnarzt dokumentation: 6 Impressions (1 Klick)
- app dentisti: 2 Impressions
#### Meeting & Team Cluster
- meetingprotokoll: 31 Impressions
- teambesprechung vorlage: 29 Impressions
- meeting protokoll app: 1 Impression, Position 42
- automatische protokollierung: 5 Impressions
#### KI/AI Decision Making Cluster
- ai powered decision making: 148 Impressions
- ki entscheidungsfindung: 79 Impressions
- ki-gestützte entscheidungen: 70 Impressions
- ai-powered decision making: 69 Impressions
- ai decision maker: 37 Impressions
- decision maker ai: 22 Impressions
- ki gestützte entscheidungsfindung: 19 Impressions
## Landing Page Strategie - ÜBERARBEITET
### SOFORT-MAßNAHMEN: Quick Wins mit besten Positionen
Diese Seiten haben bereits gute Positionen (1-30) und können schnell auf Seite 1 gebracht werden:
#### 1. Pricing & Features (Position 1-10)
**Pricing Optimierung:** `/de/preise` & `/en/pricing`
- **memorae.ai pricing** (Position 5.86, 57 Impressions)
- **memorae ai pricing** (Position 4.75, 8 Impressions)
- Sofort optimierbar auf Position 1-3
**Memoro Drive Feature:** `/de/features/memoro-drive`
- **memoro drive** (Position 9.84, 77 Impressions)
- **memoro storage** (Position 8.5, 28 Impressions)
- Kann schnell Top 5 erreichen
#### 2. Protokoll-Software Hub (Position 20-40)
**Hauptseite:** `/de/protokoll-software`
- **protokoll software** (Position 29.45, 31 Impressions)
- **meeting protokoll software** (Position 22.29, 7 Impressions)
- **software protokollerstellung** (Position 21.07, 15 Impressions)
- **besprechungsprotokoll software** (Position 38.82, 28 Impressions)
- Cluster-Strategie: Eine Seite für alle Protokoll-Keywords
### Phase 1: Neue High-Value Landing Pages
#### 1. KI-Entscheidungsfindung Cluster
**DE Hauptseite:** `/de/ki-entscheidungsfindung`
- Primär: "ki entscheidungsfindung" (79 Impressions)
- Sekundär: "ki-gestützte entscheidungen" (70 Impressions)
- Long-tail: "ki gestützte entscheidungsfindung" (19 Impressions)
- Gesamt-Potential: 168+ Impressions
**EN Hauptseite:** `/en/ai-powered-decision-making`
- Primär: "ai powered decision making" (148 Impressions)
- Sekundär: "ai-powered decision making" (69 Impressions)
- Support: "ai decision maker" (37 Impressions), "decision maker ai" (22 Impressions)
- Gesamt-Potential: 276+ Impressions
#### 2. Gesundheitswesen Hub
**Hauptseite:** `/de/gesundheitswesen`
- **Patientendokumentation:** 120 + 25 Impressions
- **Pflegedokumentation:** 34 Impressions + Varianten
- **Zahnarztpraxen:** 13+ Impressions
- Gesamt-Potential: 200+ Impressions
- Unterseiten für spezifische Bereiche
#### 3. Bau & Handwerk Portal
**Hauptseite:** `/de/baubranche`
- **Baustellendokumentation:** 30+ Impressions
- **Mängelverfolgung:** 38 Impressions
- **Protokollsoftware Bau:** 18 Impressions
- **Baumeister App:** 23 Impressions
- Gesamt-Potential: 120+ Impressions
#### 4. Meeting-Protokoll Center
**Hauptseite:** `/de/meeting-protokolle`
- **zeitersparnis durch ki in meetings:** 79 Impressions
- **meetingprotokoll:** 31 Impressions
- **teambesprechung vorlage:** 29 Impressions
- Gesamt-Potential: 150+ Impressions
### Phase 2: Brand & App Optimierung
#### Homepage-Optimierung für Brand-Searches
- **memoro** verbessern von Position 6.33 auf Top 3
- **memo app** (184 Impressions!) von Position 57.75 auf Seite 1
- **memos** (145 Impressions) von Position 93.2 verbessern
- Schema Markup für SoftwareApplication
#### App-spezifische Landing Page
**Neue Seite:** `/de/memo-app`
- Target: "memo app" (184 Impressions), "memo ai" (59 Impressions)
- "memos app" (25 Impressions), "memo apps" (5 Impressions)
- Gesamt-Potential: 273+ Impressions
### Phase 3: Branchen-spezifische Portale
#### Außendienst & Vertrieb
**Hauptseite:** `/de/aussendienst`
- **außendienst dokumentation:** 48 Impressions
- **außendienst datensicherheit:** 37 Impressions
- **verfolgung außendiensteinsätze:** 22 Impressions
- Gesamt-Potential: 107+ Impressions
#### Audio-Upload Feature
**Feature-Seite:** `/de/features/audio-upload`
- **mp3 upload:** 13 Impressions
- **upload audio:** 3 Impressions
- **audio upload:** 3 Impressions
- **audio hochladen:** 2 Impressions
## Content-Struktur für Landing Pages
### Optimale Seitenstruktur
```markdown
# H1: Primäres Keyword + Value Proposition
## Problem-Statement (Pain Point)
- Zeitverschwendung
- Informationsverlust
- Ineffiziente Prozesse
## Lösung mit Memoro
- Feature 1 mit Benefit
- Feature 2 mit Benefit
- Feature 3 mit Benefit
## Use Cases / Erfolgsgeschichten
- Konkretes Beispiel 1
- Konkretes Beispiel 2
- Messbare Ergebnisse
## Differenzierung
- Was macht Memoro einzigartig
- Vergleich zu Alternativen
- USPs
## Social Proof
- Testimonials
- Kundenlogos
- Statistiken
## CTA-Section
- Kostenlose Demo
- Trial starten
- Kontakt aufnehmen
## FAQ
- Häufige Fragen zum Thema
- Technische Details
- Preisinfos
```
## SEO-Technische Requirements
### On-Page Optimierung
- **URL-Struktur**: Kurz, keyword-reich, sprechend
- **Title Tag**: 50-60 Zeichen, Keyword am Anfang
- **Meta Description**: 150-160 Zeichen, CTA enthalten
- **H1**: Ein H1 pro Seite, Keyword enthalten
- **Content-Länge**: Minimum 800 Wörter, Ziel 1500+
- **Interne Links**: 3-5 relevante interne Links
- **Bilder**: Alt-Tags mit Keywords, WebP-Format
### Schema Markup
```json
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Memoro",
"applicationCategory": "BusinessApplication",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "EUR"
}
}
```
### Performance-Ziele
- Core Web Vitals: Alle im grünen Bereich
- Mobile-First: 100% responsive
- Ladezeit: < 3 Sekunden
- Accessibility: WCAG 2.1 AA
## Tracking und Messung
### KPIs pro Landing Page
- Organischer Traffic
- Bounce Rate (Ziel: < 40%)
- Time on Page (Ziel: > 2 Minuten)
- Conversion Rate (Ziel: > 3%)
- Keyword-Rankings
### Tools
- Google Search Console: Ranking-Monitoring
- Google Analytics: User-Verhalten
- Hotjar/Clarity: Heatmaps und Recordings
- A/B Testing: Headlines und CTAs
## Implementierungs-Roadmap - PRIORISIERT NACH IMPACT
### SOFORT (Woche 1) - Quick Wins mit besten Positionen
- [ ] **Pricing Page Optimierung** (Position 5.86 → Top 3)
- [ ] **Memoro Drive Feature Page** (Position 9.84 → Top 5)
- [ ] **Protokoll-Software Hub** erstellen (Position 29.45 → Seite 1)
- [ ] Homepage für "memoro" optimieren (Position 6.33 → Top 3)
### Woche 2 - High-Impact Landing Pages
- [ ] **KI-Entscheidungsfindung DE** (168+ Impressions Potential)
- [ ] **AI-Powered Decision Making EN** (276+ Impressions Potential)
- [ ] **Memo App Landing Page** (273+ Impressions Potential)
### Woche 3 - Branchen-Portale
- [ ] **Gesundheitswesen Hub** (200+ Impressions Potential)
- [ ] **Bau & Handwerk Portal** (120+ Impressions Potential)
- [ ] **Meeting-Protokoll Center** (150+ Impressions Potential)
### Woche 4 - Weitere Branchen
- [ ] **Außendienst Portal** (107+ Impressions Potential)
- [ ] Audio-Upload Feature Page
- [ ] Weitere Feature-Pages basierend auf Daten
### Ongoing - Kontinuierliche Optimierung
- [ ] A/B Testing der Headlines und CTAs
- [ ] Content-Updates basierend auf neuen Search Console Daten
- [ ] Interne Verlinkung zwischen verwandten Seiten stärken
- [ ] Schema Markup für alle neuen Seiten
- [ ] Backlink-Aufbau für High-Priority Pages
## Best Practices
### Content-Qualität
- **E-E-A-T**: Expertise, Experience, Authoritativeness, Trust
- **User Intent**: Suchintention genau treffen
- **Unique Value**: Einzigartige Insights bieten
- **Aktualität**: Regelmäßige Updates
### Conversion-Optimierung
- **Above the Fold**: Value Proposition sofort sichtbar
- **Trust Signals**: Sicherheitssiegel, Testimonials
- **Clear CTAs**: Eindeutige Handlungsaufforderungen
- **Reduktion von Friction**: Einfache Kontaktaufnahme
## Wichtige Erkenntnisse aus der Analyse
### Top-Opportunities nach Impressions
1. **memo app** - 184 Impressions, Position 57.75 → HÖCHSTE PRIORITÄT
2. **ai powered decision making** - 148 Impressions, Position 81.13
3. **memos** - 145 Impressions, Position 93.2
4. **app patientendokumentation** - 120 Impressions, Position 32.98
### Quick-Win Opportunities (beste Positionen)
1. **memorae.ai pricing** - Position 5.86 → leicht auf Position 1-3
2. **memoro drive** - Position 9.84 → schnell auf Top 5
3. **memoro storage** - Position 8.5 → schnell auf Top 5
4. **software protokollerstellung** - Position 21.07 → Seite 1 möglich
### Keyword-Cluster mit höchstem Gesamt-Potential
1. **AI/KI Decision Making**: 276+ Impressions (EN) + 168+ Impressions (DE)
2. **Memo App Varianten**: 273+ Impressions
3. **Gesundheitswesen**: 200+ Impressions
4. **Meeting & Protokolle**: 150+ Impressions
### Strategische Empfehlungen
- **Cluster-Strategie**: Verwandte Keywords auf einer starken Hub-Seite bündeln
- **Quick Wins priorisieren**: Seiten mit Position 1-30 zuerst optimieren
- **High-Impression Keywords**: Neue Landing Pages für Keywords mit 50+ Impressions
- **Brand-Varianten abdecken**: memo, memos, memoro Variationen konsolidieren
- **Branchen-Fokus**: Dedizierte Portale für Gesundheit, Bau, Außendienst
### Metriken für Erfolg
- Ziel: 50% der Zero-Click Keywords auf Seite 1 binnen 3 Monaten
- CTR-Verbesserung: Von 5.58% auf 15%+ für Brand-Keywords
- Traffic-Steigerung: +500% organischer Traffic in 6 Monaten

View file

@ -0,0 +1,211 @@
# PostHog A/B-Testing Implementation für Memoro
**Stand:** 23. Juli 2025
**Autor:** Development Team
**Status:** ✅ Aktiv
## Übersicht
Wir haben PostHog als Analytics- und A/B-Testing-Plattform für die Memoro-Landingpage integriert. PostHog läuft parallel zu Plausible Analytics und bietet erweiterte Funktionen für Experimente, Feature Flags und detaillierte User-Insights.
## Technische Implementation
### 1. PostHog-Komponente (`src/components/PostHog.astro`)
Die PostHog-Integration ist GDPR-konform implementiert:
- **Lädt nur nach Cookie-Consent**: Respektiert die Nutzer-Entscheidung
- **EU-Server**: Daten werden in der EU gespeichert
- **Anonyme Profile**: `person_profiles: 'identified_only'`
- **Event-basiertes Tracking**: Keine automatische Erfassung sensibler Daten
**Wichtige Konfiguration:**
```javascript
posthog.init(PROJECT_KEY, {
api_host: 'https://eu.posthog.com',
person_profiles: 'identified_only',
capture_pageview: true,
capture_pageleave: true,
autocapture: false // Volle Kontrolle über Events
});
```
### 2. Experiment Utilities (`src/utils/experiments.ts`)
Zentrale Funktionen für A/B-Tests:
- `getExperiment(key)`: Holt die aktuelle Variante
- `trackEvent(name, properties)`: Sendet Custom Events
- `trackExperimentConversion(experiment, type)`: Trackt Conversions
- `applyExperimentClasses()`: CSS-basierte Varianten
### 3. Cookie-Consent Integration
- PostHog wird in der Analytics-Kategorie behandelt
- UI-Texte erwähnen explizit "Plausible & PostHog"
- Opt-Out wird respektiert
## Implementierte A/B-Tests
### 1. Hero CTA Test (`hero-cta-test`)
**Ziel:** Optimierung der Haupt-Call-to-Action auf der Homepage
**Varianten:**
- **Control (50%)**:
- Primary: "So funktioniert's" → `#how-it-works`
- Secondary: "Live-Demo (2 Min)" → `/de/demo`
- **Variant B (50%)**:
- Primary: "Kostenlos testen" → `/de/download`
- Secondary: "So funktioniert's" → `#how-it-works`
**Implementation:**
- Script in `HeroABTestScript.astro`
- Dynamische CTA-Änderung via JavaScript
- Tracking von Impressions und Klicks
## Event-Tracking Schema
### Basis-Events
| Event Name | Beschreibung | Properties |
|------------|--------------|------------|
| `$pageview` | Automatisch bei Seitenaufruf | `locale` |
| `$pageleave` | Beim Verlassen der Seite | - |
### Experiment-Events
| Event Name | Beschreibung | Properties |
|------------|--------------|------------|
| `experiment_variant_shown` | Nutzer sieht eine Variante | `experiment`, `variant` |
| `hero_cta_clicked` | Klick auf Hero-CTA | `experiment`, `variant`, `button_type`, `destination` |
| `experiment_conversion` | Conversion erfolgt | `experiment`, `variant`, `conversion_type`, `platform` |
### Download-Events
| Event Name | Beschreibung | Properties |
|------------|--------------|------------|
| `download_page_viewed` | Download-Seite aufgerufen | `lang` |
| `download_button_clicked` | App-Download geklickt | `platform`, `source`, `lang`, `hero_experiment_variant` |
## PostHog Dashboard-Konfiguration
### Aktivierte Produkte
- ✅ **Product Analytics**: User-Journeys und Funnels
- ✅ **Web Analytics**: Basis-Metriken (parallel zu Plausible)
- ✅ **Feature Flags**: A/B-Test-Infrastruktur
- ✅ **Experiments**: Statistische Auswertung
- ✅ **Session Replay**: User-Verhalten verstehen
### Empfohlene Dashboards
#### 1. "Hero CTA A/B Test Results"
- **Conversion Funnel**: Impression → Click → Download Page → App Download
- **CTR by Variant**: Click-Through-Rate Vergleich
- **Download Conversions**: Finale Conversions nach Variante
- **Platform Distribution**: iOS vs. Android
#### 2. "User Journey Analysis"
- **Path Analysis**: Häufigste Wege zur Download-Seite
- **Drop-off Points**: Wo verlieren wir Nutzer?
- **Session Duration**: Verweildauer nach Variante
## Best Practices & Guidelines
### 1. Neue A/B-Tests erstellen
```typescript
// 1. Feature Flag in PostHog Dashboard anlegen
// 2. Test-Komponente erstellen:
const variant = await getExperiment('my-new-test');
if (variant === 'variant-b') {
// Variante B anwenden
}
// 3. Events tracken
trackEvent('my_test_interaction', {
experiment: 'my-new-test',
variant: variant || 'control'
});
```
### 2. Conversion-Tracking
Immer die komplette Journey tracken:
1. Impression (Variante gezeigt)
2. Interaction (Nutzer-Aktion)
3. Conversion (Ziel erreicht)
### 3. Statistische Signifikanz
- Mindestens 1000 Nutzer pro Variante
- Test mindestens 2 Wochen laufen lassen
- Wochentags-Effekte berücksichtigen
## Wartung & Monitoring
### Tägliche Checks
- [ ] Events kommen in PostHog an
- [ ] Feature Flags funktionieren
- [ ] Keine JavaScript-Fehler in Console
### Wöchentliche Reviews
- [ ] A/B-Test Performance prüfen
- [ ] Signifikanz-Level checken
- [ ] Anomalien untersuchen
### Monatliche Aufgaben
- [ ] Abgeschlossene Tests dokumentieren
- [ ] Neue Test-Ideen priorisieren
- [ ] PostHog-Kosten überprüfen
## Troubleshooting
### Problem: PostHog lädt nicht
1. Cookie-Consent prüfen: `localStorage.getItem('memoro_cookie_consent')`
2. API-Key in `.env` verifizieren
3. Browser-Console auf Fehler checken
### Problem: Feature Flag gibt null zurück
1. Flag-Name exakt prüfen (case-sensitive!)
2. Rollout-Percentage in PostHog checken
3. Cache leeren und neu laden
### Problem: Events werden nicht getrackt
1. Network-Tab öffnen, nach `eu.posthog.com/e/` suchen
2. `window.posthog` in Console prüfen
3. Event-Namen auf Tippfehler checken
## Zukünftige Optimierungen
### Phase 1 (Abgeschlossen ✅)
- PostHog-Integration
- Erster A/B-Test (Hero CTA)
- Conversion-Tracking
### Phase 2 (Geplant)
- Pricing-Layout A/B-Test
- Navigation-Varianten
- Form-Optimierung
### Phase 3 (Zukunft)
- Personalisierung basierend auf Quelle
- Multi-Variate Tests
- KI-gestützte Optimierung
## Kontakt & Support
**PostHog-Dashboard:** https://eu.posthog.com
**Dokumentation:** https://posthog.com/docs
**Support:** support@posthog.com
**Internes Team:**
- A/B-Tests: Development Team
- Analytics: Marketing Team
- Datenschutz: Legal Team
---
**Hinweis:** Diese Dokumentation wird regelmäßig aktualisiert. Letzte Änderung: 23. Juli 2025

View file

@ -0,0 +1,210 @@
# Feedback zum aktuellen Flyer-Design
## Analyse des vorliegenden Designs
### Stärken ✅
- **Klare Struktur** mit Vorder- und Rückseite
- **Auffälliges Memoro-Logo** mit gelbem Kreis
- **QR-Code** prominent platziert für einfachen Zugang
- **DSGVO-Hinweis** schafft Vertrauen
- **"Made in Germany"** als Qualitätsmerkmal
### Schwächen & Verbesserungspotenzial ❌
1. **Headline zu akademisch/steif**
- "Wissenschaftlich arbeiten. Digital dokumentieren." klingt sehr formal
- Spricht nicht die emotionalen Pain Points von Studierenden an
2. **Fehlende studentische Sprache**
- Zu förmlich für Zielgruppe 18-25 Jahre
- Keine direkten Benefits für Studierende erkennbar
3. **Unklare Value Proposition**
- "Geformt durch Forschung" - Was bedeutet das konkret?
- Nutzen für Studierende nicht sofort ersichtlich
4. **Fehlender Call-to-Action**
- "Kostenlos herunterladen" ist zu generisch
- Kein spezielles Angebot für Studierende
5. **Layout-Probleme**
- Viel ungenutzter Weißraum
- Schriftgröße teilweise zu klein
- Kontrast könnte besser sein (grauer Text)
6. **Fehlende Social Proof**
- Keine Testimonials von Studierenden
- Keine Nutzerzahlen oder Erfolgsgeschichten
---
## Drei Verbesserungsvorschläge
### 📚 VARIANTE 1: "Der Studentenfokus"
*Direkter, jugendlicher Ansatz mit klarem Nutzen*
#### Vorderseite
**Neue Headline:**
```
"Nie wieder in Vorlesungen
mitschreiben müssen!"
```
**Subheadline:**
"Memoro macht's für dich - automatisch & intelligent"
**Emotionales Visual:**
- Gestresster Student VORHER → Entspannter Student NACHHER
- Oder: Überquellender Notizblock → Smartphone mit Memoro
**Benefits (mit Icons):**
🎯 Konzentrier dich aufs Verstehen statt aufs Mitschreiben
⏱️ Spare 5+ Stunden pro Woche
📱 Alles auf deinem Handy - immer dabei
🎓 Von 50.000+ Studierenden genutzt
**Starker CTA:**
"JETZT 6 MONATE GRATIS*
*Exklusiv für Studierende"
#### Rückseite
**Testimonial prominent:**
"Memoro hat mir im Staatsexamen das Leben gerettet!
Alle Vorlesungen perfekt dokumentiert."
- Max, Jura, Uni München
**Einfache 3-Schritte-Anleitung:**
1. 📱 App downloaden
2. 🎙️ Vorlesung aufnehmen
3. 📝 Perfekte Notizen erhalten
**Trust-Signale:**
✓ 4.8 ⭐ im App Store
✓ TÜV-geprüfter Datenschutz
✓ Funktioniert offline
---
### 🚀 VARIANTE 2: "Der Problem-Solver"
*Fokus auf konkrete Probleme und Lösungen*
#### Vorderseite
**Problem-orientierte Headline:**
```
"Vorlesung verpasst?
Mitschrift unleserlich?
Prüfung in 2 Wochen?"
```
**Lösung (groß und fett):**
"Eine App löst alle drei Probleme!"
**Visual:**
- Split-Screen: Links Chaos (Notizzettel) → Rechts Ordnung (Memoro App)
**Konkrete Features:**
□ Automatische Aufnahme & Transkription
□ KI-generierte Zusammenfassungen
□ Sprechererkennung (wer hat was gesagt)
□ Export als PDF, Word oder Notion
**Dringlichkeits-CTA:**
"Semesterstart-Special:
70% Rabatt - nur noch diese Woche!"
#### Rückseite
**Use-Case-Beispiele:**
📚 **Große Vorlesung:** 500 Leute, schlechte Akustik? Kein Problem!
🏃 **Pendler:** Notizen in der Bahn durchgehen
🌙 **Nachtschicht:** Vorlesung nachhören wann DU willst
**Lerngruppe:** Teile Notizen mit einem Klick
**Vergleichstabelle:**
```
Ohne Memoro Mit Memoro
❌ 2h mitschreiben → ✅ 0 Min
❌ 30% verstanden → ✅ 100% Fokus
❌ Chaos-Notizen → ✅ Strukturiert
```
---
### 💡 VARIANTE 3: "Der Social Proof Hero"
*Maximaler Fokus auf Vertrauen und Beliebtheit*
#### Vorderseite
**Social-Proof-Headline:**
```
"Die App, die an der TUM
alle nutzen"
```
**Statistik-Banner:**
🎓 50.000+ Studierende
📝 10 Mio+ Minuten transkribiert
⭐ 4.9/5 Bewertung
**Visual:**
- Collage von Uni-Logos (mit Erlaubnis)
- Oder: Heatmap von Deutschland mit Nutzerzahlen
**Influencer/Ambassador Quote:**
"@StudyTina (50k Follower):
'Beste Entscheidung meines Studiums!
Memoro ist ein Game-Changer!'"
**FOMO-CTA:**
"Werde Teil der Community
Erste 3 Monate GRATIS"
#### Rückseite
**Testimonial-Wand (verschiedene Studienrichtungen):**
- "Perfekt für Medizin!" - Lisa, Charité
- "Rettet mein BWL-Studium" - Tom, WHU
- "Endlich verstehe ich Mathe" - Sara, RWTH
- "Jura ohne Memoro? Unmöglich!" - Felix, LMU
**Rankings & Awards:**
🏆 App des Jahres - Studenten-Award 2024
🥇 #1 Produktivitäts-App für Unis
✅ Empfohlen von 9/10 Fachschaften
**Community-Features:**
• Trete 500+ Uni-Gruppen bei
• Teile Notizen mit Kommilitonen
• Lerne von den Besten
**Instagram-Style Footer:**
📸 @memoro.students
#MemoroMachtsMöglich
---
## Allgemeine Empfehlungen für alle Varianten
### Design-Verbesserungen
1. **Größere, mutigere Headlines** (min. 24pt)
2. **Mehr Kontrast** - Schwarz auf Weiß statt Grau
3. **Weniger Text, mehr Icons/Visuals**
4. **Emotionalere Farben** (nicht nur Gelb/Schwarz)
5. **QR-Code mit Kontext** ("Scan für 6 Monate gratis")
### Content-Optimierungen
1. **Studentensprache** verwenden ("Vorlesung", "Klausur", "Semester")
2. **Konkrete Zeitersparnis** nennen (Stunden pro Woche)
3. **Preistransparenz** (Normalpreis durchgestrichen, Studentenrabatt)
4. **Urgency/Scarcity** einbauen (limitiertes Angebot)
5. **Social Media Handles** prominent platzieren
### Call-to-Action Alternativen
- "Hol dir dein Semester-Upgrade"
- "Starte schlauer ins neue Semester"
- "Aktiviere deinen Uni-Vorteil"
- "Sichere dir den Klausur-Retter"
- "Werde zum Vorlesungs-Profi"
### Tracking-Verbesserungen
- **Eindeutiger QR-Code** pro Uni/Campus
- **Promo-Code** auf Flyer (z.B. "UNI2025")
- **Spezielle Landing Page** nur für Flyer-Traffic
- **A/B-Test** verschiedene Headlines

View file

@ -0,0 +1,497 @@
∫# Memoro Universitäts-Flyer Konzept
## Format & Produktion
**Druckformat:** A4 (297 x 210 mm) quer
**Schnitt:** 3 gleiche Teile vertikal → 3 Flyer à 99 x 210 mm (DIN lang/DL Format)
**Druckart:** Beidseitig, 4/4-farbig
**Papier:** 135-160g/m² matt oder seidenmatt
**Auflage:** Initial 3.000 Stück (1.000 pro Variante)
## A/B/C Testing Konzept
Drei unterschiedliche Ansätze für verschiedene Studierenden-Personas und Motivationen.
---
## VARIANTE A: "Der Lerngruppen-Champion"
*Fokus: Gemeinsames Lernen & Prüfungsvorbereitung*
### Vorderseite
**Headline (groß, fett):**
"Deine Lerngruppe.
Perfekt organisiert."
**Visual:**
Icon-Cluster: Gruppe von Studenten-Silhouetten mit Sprechblasen
**Subheadline:**
"Gemeinsame Notizen, geteiltes Wissen, bessere Noten"
**3 Realistische Use Cases:**
• 🎯 Lerngruppen-Sessions dokumentieren & teilen
• 📚 Zusammenfassungen gemeinsam erstellen
• 🗣️ Übungsgruppen & Tutorien festhalten
**CTA:**
"Starte mit deiner Lerngruppe
3 Monate GRATIS"
**QR-Code:** → memoro.ai/uni-lerngruppe
### Rückseite
**Headline:**
"Perfekt für euren Uni-Alltag:"
**Konkrete Anwendungen (mit Icons):**
📝 **Referate vorbereiten:** Brainstorming aufnehmen, Struktur erstellen
👥 **Gruppenarbeiten:** Wer hat was gesagt? Memoro weiß es!
🔄 **Prüfungsvorbereitung:** Alte Klausuren besprechen & dokumentieren
💡 **Nachhilfe geben:** Sessions aufzeichnen für spätere Wiederholung
**Social Proof:**
"Unsere 5er-Lerngruppe hat dank Memoro
alle die Klausur bestanden!"
Tom, BWL, Uni Mannheim
**Spar-Angebot:**
💰 **Gruppen-Deal:** Ab 3 Personen 40% Rabatt!
**Footer:**
Fragen? uni@memoro.ai | WhatsApp: +49...
---
## VARIANTE B: "Der Kreativ-Chaot"
*Fokus: Kreative Studiengänge & Ideensammlung*
### Vorderseite
**Headline (groß, kreativ):**
"Deine Ideen.
Endlich geordnet."
**Visual:**
Chaotische Gedankenblasen → Strukturierte Mind-Map
**Subheadline:**
"Von der wilden Idee zum fertigen Projekt"
**3 Kreativ-Benefits:**
🎨 Spontane Einfälle sofort festhalten
💭 Brainstorming-Sessions strukturiert aufzeichnen
🎬 Projekt-Besprechungen dokumentieren
**CTA:**
"Kreativ-Paket: 3 Monate
GRATIS für dich!"
**QR-Code:** → memoro.ai/uni-kreativ
### Rückseite
**Headline:**
"Perfekt für kreative Köpfe:"
**Use Cases für Kreative:**
🎭 **Theater/Film:** Regiebesprechungen & Drehbuch-Ideen
🎨 **Design:** Kritik-Sessions & Konzept-Entwicklung
📸 **Medien:** Redaktionssitzungen & Story-Ideen
🏗️ **Architektur:** Projekt-Reviews & Präsentationen
**Testimonial:**
"Keine 3-Uhr-nachts-Idee geht mehr verloren!
Memoro ist mein zweites Gehirn."
Lena, Kommunikationsdesign, HfG Offenbach
**Killer-Feature:**
🌈 **Chaos-zu-Struktur:** KI sortiert deine
wilden Gedanken in übersichtliche Kategorien!
**Footer:**
creative@memoro.ai | Insta: @memoro.creative
---
## VARIANTE C: "Der Selbst-Optimierer"
*Fokus: Persönliche Produktivität & Selbstmanagement*
### Vorderseite
**Headline (motivierend):**
"Studium + Nebenjob + Leben?
Kriegen wir hin!"
**Visual:**
Jonglierender Student mit verschiedenen Bällen (Uni, Job, Sport, Freunde)
**Subheadline:**
"Dein persönlicher Assistent für alles"
**Life-Hacks für Studis:**
• 📝 To-Do's einsprechen beim Joggen
• 🧠 Lernstoff selbst erklären & wiederholen
• 💪 Ziele & Reflexionen festhalten
• 📅 Wochenplanung in 5 Minuten
**CTA:**
"Hol dir dein Leben in den Griff
3 Monate GRATIS"
**QR-Code:** → memoro.ai/uni-lifestyle
### Rückseite
**Headline:**
"So organisierst du dein Studi-Leben:"
**Alltags-Szenarien:**
**Morgen-Routine:** Tagesplan einsprechen
🏃 **Unterwegs:** Ideen & Gedanken festhalten
📚 **Lernen:** Sich selbst Stoff erklären (Feynman-Methode!)
🌙 **Abends:** Tagesreflexion & morgen planen
**Real Talk:**
"Ich spreche jeden Abend 5 Min meine Gedanken ein.
Beste Therapie ever - und kostet nichts!"
Chris, Sport & Ernährung, DSHS Köln
**Pro-Tipp:**
🚀 **Voice Journaling:** Studien zeigen -
wer seine Gedanken ausspricht, lernt 40% effektiver!
**Footer:**
lifestyle@memoro.ai | TikTok: @memoro.life
ß
.
---
## VARIANTE D: "Der Campus-Botschafter"
*Spezieller Flyer für Botschafter-Rekrutierung*
### Vorderseite
**Headline (groß, auffällig):**
"Werde Memoro
Campus-Hero!"
**Visual:**
Superhelden-Silhouette mit Uni-Campus im Hintergrund
**Subheadline:**
"Verdiene Geld und hilf deinen Kommilitonen"
**Was bieten wir dir?**
💰 **50€ pro Monat** Grundvergütung
🎁 **Pro-Account** für dich (Wert: 120€)
📈 **Bonus:** 5€ pro geworbenen Nutzer
🏆 **Zertifikat** für deinen Lebenslauf
🤝 **Networking** mit Startup-Gründern
**CTA:**
"Bewirb dich JETZT!
Nur 2 Plätze pro Uni"
**QR-Code:** → memoro.ai/botschafter
### Rückseite
**Headline:**
"Deine Aufgaben (max. 5h/Monat):"
**Was machst du konkret?**
📢 **Flyer verteilen:** 1x pro Woche an Hotspots
💬 **Community aufbauen:** WhatsApp/Telegram-Gruppe
📱 **Content erstellen:** 2 Posts/Woche auf Social Media
🎯 **Events:** 1 Info-Stand pro Monat in der Mensa
📊 **Feedback:** Monatlicher kurzer Report
**Das bringst du mit:**
✓ Du studierst aktuell (egal welches Semester)
✓ Du bist kommunikativ & hilfsbereit
✓ Du kennst deine Uni & die Hotspots
✓ 5 Stunden Zeit pro Monat
**Success Story:**
"Als Memoro-Botschafterin habe ich nicht nur
600€ extra verdient, sondern auch mega viele
neue Leute kennengelernt!"
Julia, Botschafterin Uni Hamburg
**Exklusiv-Vorteile:**
🚀 Direkter Draht zu den Gründern
📚 Kostenloses Memoro-Merch
🎉 Einladung zum Sommer-Event in München
**Bewerbung:**
WhatsApp: +49 176 XXX XXX
botschafter@memoro.ai
---
## VARIANTE E: "Der Tech-Builder"
*Fokus: Entwickler & Tech-Studierende für App-Entwicklung*
### Vorderseite
**Headline (tech-fokussiert):**
"Build the Next
Big Thing!"
**Visual:**
Code-Editor mit Memoro API-Integration / Network-Grafik
**Subheadline:**
"Entwickle Apps auf unserer KI-Plattform"
**Developer Benefits:**
🚀 **Zugriff auf unsere Speech-to-Text API**
🤖 **GPT-4 Integration bereits vorhanden**
💡 **Deine App - Deine Revenue (70/30 Split)**
🛠️ **Full-Stack Support vom Memoro-Team**
📊 **50.000+ potenzielle User Day One**
**CTA:**
"Hackathon: 10.000€ Preisgeld
für die beste App!"
**QR-Code:** → memoro.ai/developers
### Rückseite
**Headline:**
"Was kannst du bauen?"
**App-Ideen & Beispiele:**
📚 **Study-Apps:** Karteikarten aus Sprachnotizen
🏥 **Health-Tech:** Symptom-Tagebuch mit Voice
🎮 **Gamification:** Lern-Challenges mit Audio
🌍 **Social Impact:** Barrierefreie Kommunikation
💼 **Productivity:** Custom Workflows für Teams
**Tech-Stack:**
```
• REST API mit allen Memoro-Features
• Python, JS, Swift SDKs
• WebSockets für Realtime
• OAuth2 Authentication
• Cloud Infrastructure ready
```
**Success Story:**
"Meine Vokabel-App läuft jetzt auf Memoro.
5.000 User in 2 Wochen!"
Tim, Informatik, KIT
**Developer Perks:**
🎁 1 Jahr Pro-Account gratis
👨‍💻 Direkter Slack-Channel mit Core-Team
🏆 "Powered by Memoro" Badge
**Start Building:**
GitHub: github.com/memoro-api
Docs: docs.memoro.ai
Discord: discord.gg/memoro-devs
---
## VARIANTE F: "Der Impact-Maker"
*Fokus: Ideengeber & Visionäre für gesellschaftlichen Impact*
### Vorderseite
**Headline (inspirierend):**
"Deine Idee kann
die Welt verändern"
**Visual:**
Glühbirne, die sich in verschiedene Impact-Icons verwandelt
**Subheadline:**
"Wir suchen DEINE Vision für Apps mit Impact"
**Wir wollen deine Ideen für:**
🌱 **Nachhaltigkeit:** Apps für eine grünere Zukunft
❤️ **Gesundheit:** Mental Health & Wellbeing
📖 **Bildung:** Lernen neu gedacht
🤝 **Inklusion:** Barrieren abbauen
🌍 **Social Good:** Gesellschaft verbessern
**CTA:**
"Pitch deine Idee!
Wir machen sie real."
**QR-Code:** → memoro.ai/impact
### Rückseite
**Headline:**
"So wird aus deiner Idee eine App:"
**Unser Versprechen:**
1**Du pitchst** deine Idee (30 Sek Video)
2**Wir bewerten** Impact & Machbarkeit
3**Gemeinsam entwickeln** wir einen Prototyp
4**Du wirst Co-Founder** deiner App
5**Launch** an 50.000+ User
**Was wir bieten:**
💰 **Entwicklung kostenlos** (wir investieren)
🤝 **50/50 Partnership** bei Erfolg
🎓 **Mentoring** von erfahrenen Gründern
🚀 **Marketing-Power** unseres Netzwerks
**Bereits realisiert:**
"SignSpeak - Gebärdensprache zu Text"
"MoodTracker - Depression früh erkennen"
"StudyBuddy - Niemand lernt allein"
**Bewertungskriterien:**
✓ Gesellschaftlicher Impact
✓ Innovationsgrad
✓ Skalierbarkeit
✓ Deine Leidenschaft
**Pitch jetzt:**
📧 impact@memoro.ai
📱 WhatsApp Voice: +49 XXX
🎥 TikTok: #MemoroImpact
**Footer:**
"Keine Coding-Skills? Kein Problem!
Wir suchen Visionäre, keine Programmierer."
---
## Design-Richtlinien
### Farbschema
- **Variante A:** Memoro Blau + Akzent Orange (energetisch)
- **Variante B:** Memoro Grün + Soft Purple (kreativ)
- **Variante C:** Memoro Türkis + Koralle (lifestyle)
- **Variante D:** Memoro Gelb + Schwarz (auffällig)
- **Variante E:** Memoro Dark Mode + Neon Grün (tech)
- **Variante F:** Memoro Regenbogen-Gradient (impact)
### Typografie
- **Headlines:** Sans-Serif, bold (z.B. Inter, Helvetica)
- **Body:** Sans-Serif, regular, gut lesbar bei kleiner Größe
- **Größen:** Headline min. 18pt, Body min. 9pt
### Layout-Prinzipien
- **Weißraum:** Mindestens 30% der Fläche
- **Hierarchie:** Klare visuelle Führung
- **Kontrast:** Hoher Kontrast für Lesbarkeit
- **Mobile-First:** QR-Codes prominent platziert
---
## Tracking & Messbarkeit
### QR-Code Tracking
Jede Variante erhält eigenen Tracking-Link:
- memoro.ai/uni-zeitsparer?utm_source=flyer&utm_campaign=uni-q1-2025&utm_content=variante-a
- memoro.ai/uni-team?utm_source=flyer&utm_campaign=uni-q1-2025&utm_content=variante-b
- memoro.ai/uni-research?utm_source=flyer&utm_campaign=uni-q1-2025&utm_content=variante-c
### Erfolgsmetriken
1. **Scan-Rate:** QR-Code-Scans pro verteiltem Flyer
2. **Conversion-Rate:** Registrierungen pro Scan
3. **Aktivierungsrate:** Aktive Nutzer nach 7 Tagen
4. **Retention:** Noch aktiv nach 30 Tagen
5. **Viral Coefficient:** Einladungen pro Nutzer
### A/B/C Test-Zeitraum
- **Woche 1-2:** Verteilung an 3 verschiedenen Unis
- **Woche 3-4:** Verteilung am gleichen Campus, verschiedene Fakultäten
- **Woche 5-6:** Auswertung & Entscheidung für Gewinner-Variante
---
## Verteilungsstrategie
### Prioritäre Orte
1. **Mensen & Cafeterien** (Tische)
2. **Bibliotheken** (Schwarze Bretter)
3. **Hörsaal-Eingänge** (vor großen Vorlesungen)
4. **Fachschaftsräume** (mit Erlaubnis)
5. **Copy-Shops** (Kooperation)
### Timing
- **Semesterstart:** Höchste Priorität
- **Prüfungsphase:** Fokus auf Zeitersparnis
- **Projekt-Wochen:** Fokus auf Kollaboration
### Campus-Botschafter
- Rekrutierung von 2-3 Studierenden pro Uni
- Vergütung: Pro-Account + kleine Aufwandsentschädigung
- Aufgabe: Verteilung & Feedback sammeln
---
## Budget-Kalkulation
### Druckkosten (3.000 Stück)
- Design & Satz: €300
- Druck 4/4 auf 160g: €180
- Schneiden: €50
- **Gesamt:** €530
### Verteilung
- Campus-Botschafter (3 Unis × 2 Personen × €50): €300
- Reisekosten Team: €200
- **Gesamt:** €500
### Tracking & Analyse
- QR-Code-Generator Pro: €20/Monat
- Analytics-Setup: €100
- **Gesamt:** €120
**Gesamtbudget Phase 1:** ~€1.150
---
## Nächste Schritte
1. **Design-Briefing** an Grafikagentur/Designer
2. **Druckerei-Anfragen** einholen (3 Angebote)
3. **Campus-Kontakte** aufbauen (Fachschaften, AStA)
4. **Landing Pages** für jede Variante erstellen
5. **Tracking-Setup** in PostHog implementieren
6. **Botschafter-Rekrutierung** starten
## Erwartete Ergebnisse
**Konservativ (Bottom):**
- 5% Scan-Rate = 150 Scans
- 20% Conversion = 30 Registrierungen
- 50% Aktivierung = 15 aktive Nutzer
**Realistisch (Middle):**
- 10% Scan-Rate = 300 Scans
- 30% Conversion = 90 Registrierungen
- 60% Aktivierung = 54 aktive Nutzer
**Optimistisch (Top):**
- 20% Scan-Rate = 600 Scans
- 40% Conversion = 240 Registrierungen
- 70% Aktivierung = 168 aktive Nutzer
## Anhang: Copywriting-Alternativen
### Alternative Headlines Variante A:
- "Schluss mit Mitschreib-Marathons"
- "Deine Vorlesung. Automatisch notiert."
- "Mehr zuhören. Weniger tippen."
### Alternative Headlines Variante B:
- "Gemeinsam besser lernen"
- "Ein Team. Eine Mitschrift."
- "Sharing is Caring - auch bei Notizen"
### Alternative Headlines Variante C:
- "Präzision trifft Innovation"
- "Dokumentation auf Forschungsniveau"
- "Die Zukunft akademischer Notizen"

View file

@ -0,0 +1,362 @@
# Anforderungsdokument: Unified Analytics Dashboard
**Projekt:** Memoro Unified Analytics Dashboard
**Version:** 1.0
**Datum:** Dezember 2024
**Autor:** Memoro Team
**Status:** Draft
---
## 1. Executive Summary
### Projektziel
Entwicklung eines zentralisierten Analytics-Dashboards, das alle relevanten Business-Metriken von Memoro in Echtzeit sammelt, speichert und visualisiert.
### Business Value
- **Zeitersparnis:** 10+ Stunden/Woche durch automatisierte Datensammlung
- **Bessere Entscheidungen:** Alle KPIs auf einen Blick
- **Früherkennung:** Automatische Alerts bei Anomalien
- **Wachstum:** Datengetriebene Optimierung aller Kanäle
---
## 2. Datenquellen & Metriken
### 📱 App Stores
| Plattform | Metriken | Update-Frequenz | Priorität |
|-----------|----------|-----------------|-----------|
| **App Store Connect** | Downloads, Reviews, Revenue, Crashes | Täglich | P1 |
| **Google Play Console** | Installs, Ratings, Revenue, ANRs | Täglich | P1 |
### 💰 Revenue & Subscriptions
| Plattform | Metriken | Update-Frequenz | Priorität |
|-----------|----------|-----------------|-----------|
| **RevenueCat** | MRR, Churn, LTV, Active Subs | Real-time | P1 |
| **Stripe** | Payments, Refunds, MRR | Real-time | P2 |
### 📊 Website & Product Analytics
| Plattform | Metriken | Update-Frequenz | Priorität |
|-----------|----------|-----------------|-----------|
| **Umami Analytics** | Visitors, Sessions, Pageviews, Bounce | Stündlich | P1 |
| **PostHog** | Events, Funnels, Retention, Feature Usage | Real-time | P1 |
| **Google Analytics 4** | Users, Conversions, Demographics | Stündlich | P2 |
### 🔍 SEO & Search
| Plattform | Metriken | Update-Frequenz | Priorität |
|-----------|----------|-----------------|-----------|
| **Google Search Console** | Rankings, Clicks, CTR, Impressions | Täglich | P1 |
| **Bing Webmaster Tools** | Rankings, Clicks, Crawl Errors | Täglich | P3 |
### 📢 Social Media Marketing
| Plattform | Metriken | Update-Frequenz | Priorität |
|-----------|----------|-----------------|-----------|
| **Facebook/Meta** | Reach, Engagement, Follower, Ad Spend, CTR | Täglich | P1 |
| **LinkedIn** | Impressions, Followers, Engagement, Company Views | Täglich | P2 |
| **YouTube** | Views, Watch Time, Subscribers, Revenue | Täglich | P2 |
| **Twitter/X** | Impressions, Followers, Engagement | Täglich | P3 |
| **Instagram** | Reach, Stories, Engagement, Followers | Täglich | P3 |
### 🚀 Marketing & Campaigns
| Plattform | Metriken | Update-Frequenz | Priorität |
|-----------|----------|-----------------|-----------|
| **Google Ads** | Spend, Conversions, CPC, ROAS | Stündlich | P2 |
| **Facebook Ads** | Spend, Reach, CTR, CPA | Stündlich | P2 |
| **Email (Sendgrid/Mailchimp)** | Opens, Clicks, Bounces, Unsubs | Nach Versand | P3 |
---
## 3. Funktionale Anforderungen
### 3.1 Datensammlung
- **FR-01:** Automatische Datensammlung von allen definierten Quellen
- **FR-02:** Inkrementelle Updates (nur neue Daten laden)
- **FR-03:** Fehlerbehandlung und Retry-Mechanismen
- **FR-04:** API-Rate-Limit Management
- **FR-05:** Daten-Validierung und Qualitätschecks
### 3.2 Datenspeicherung
- **FR-06:** Zentrale PostgreSQL Datenbank
- **FR-07:** Historische Daten mindestens 24 Monate
- **FR-08:** Tägliche Backups
- **FR-09:** DSGVO-konforme Datenhaltung
- **FR-10:** Daten-Partitionierung für Performance
### 3.3 Dashboard & Visualisierung
- **FR-11:** Executive Summary Dashboard (C-Level Überblick)
- **FR-12:** Detaillierte Dashboards pro Bereich (Marketing, Product, Revenue)
- **FR-13:** Custom Reports erstellbar
- **FR-14:** Export-Funktionen (PDF, Excel, CSV)
- **FR-15:** Mobile-optimierte Ansicht
### 3.4 Key Performance Indicators (KPIs)
#### Primäre Business KPIs
```
1. MRR (Monthly Recurring Revenue)
2. DAU/MAU (Daily/Monthly Active Users)
3. Churn Rate
4. Customer Acquisition Cost (CAC)
5. Life Time Value (LTV)
6. LTV:CAC Ratio
```
#### Marketing KPIs
```
7. Website Conversion Rate
8. Cost per Acquisition (CPA)
9. Return on Ad Spend (ROAS)
10. Organic Traffic Growth
11. Social Media Engagement Rate
12. Email Open Rate
```
#### Product KPIs
```
13. Feature Adoption Rate
14. User Retention (D1, D7, D30)
15. Session Duration
16. Crash Rate
17. App Store Rating
18. NPS Score
```
### 3.5 Alerting & Monitoring
- **FR-16:** Automatische Alerts bei KPI-Abweichungen (>20%)
- **FR-17:** Täglicher Report per Email/Slack
- **FR-18:** Anomalie-Erkennung mit ML
- **FR-19:** Downtime-Monitoring für Datenquellen
- **FR-20:** Performance-Degradation Alerts
---
## 4. Nicht-funktionale Anforderungen
### 4.1 Performance
- **NFR-01:** Dashboard-Ladezeit < 3 Sekunden
- **NFR-02:** Daten-Update-Latenz < 1 Stunde (außer Real-time)
- **NFR-03:** Concurrent Users: min. 20
- **NFR-04:** Datenverarbeitung: 10GB/Tag
### 4.2 Verfügbarkeit
- **NFR-05:** System-Verfügbarkeit: 99.5%
- **NFR-06:** Geplante Wartungsfenster: max. 2h/Monat
- **NFR-07:** Recovery Time Objective (RTO): 4 Stunden
- **NFR-08:** Recovery Point Objective (RPO): 24 Stunden
### 4.3 Sicherheit
- **NFR-09:** SSL/TLS Verschlüsselung
- **NFR-10:** API-Keys verschlüsselt speichern
- **NFR-11:** Role-Based Access Control (RBAC)
- **NFR-12:** Audit-Logging aller Zugriffe
- **NFR-13:** DSGVO/GDPR Compliance
### 4.4 Skalierbarkeit
- **NFR-14:** Horizontal skalierbar
- **NFR-15:** Support für 50+ Datenquellen
- **NFR-16:** 5 Jahre Datenhistorie speicherbar
---
## 5. Technische Architektur
### 5.1 Tech Stack
```yaml
Data Collection:
- Primary: Airbyte (Open Source)
- Alternative: Apache NiFi
- Custom: Python/Node.js Scripts
Data Storage:
- Database: PostgreSQL 14+
- Cache: Redis
- Files: S3/MinIO
Data Processing:
- Transformation: dbt (data build tool)
- Orchestration: Apache Airflow
- Stream Processing: Apache Kafka (optional)
Visualization:
- Internal: Metabase
- Technical: Grafana
- Public: Custom React Dashboard
Infrastructure:
- Container: Docker/Kubernetes
- Cloud: AWS/GCP/Hetzner
- Monitoring: Prometheus + Grafana
```
### 5.2 System-Architektur Diagramm
```
┌─────────────────────────────────────────────────────┐
│ DATA SOURCES │
├───────┬─────────┬──────────┬───────────┬───────────┤
│ App │ Revenue │ Analytics│ Search │ Social │
│Stores │ Cat │ Umami │ Console │ Media │
└───┬───┴────┬────┴────┬─────┴─────┬─────┴─────┬─────┘
│ │ │ │ │
└────────┴─────────┴───────────┴───────────┘
[AIRBYTE]
┌─────┴─────┐
│PostgreSQL │
└─────┬─────┘
┌────┴────┐
│ dbt │
└────┬────┘
┌──────────────┼──────────────┐
│ │ │
[Metabase] [Grafana] [React App]
│ │ │
[Business] [Technical] [Public]
```
---
## 6. Implementierungsplan
### Phase 1: Foundation (Woche 1-2)
- [ ] PostgreSQL Setup
- [ ] Airbyte Installation
- [ ] Erste Datenquelle (Search Console)
- [ ] Basic Dashboard (Metabase)
### Phase 2: Core Data Sources (Woche 3-4)
- [ ] App Store Connect Integration
- [ ] Google Play Console Integration
- [ ] RevenueCat Integration
- [ ] Umami/PostHog Integration
### Phase 3: Social & Marketing (Woche 5-6)
- [ ] Facebook/Meta Integration
- [ ] LinkedIn Integration
- [ ] YouTube Integration
- [ ] Google Ads Integration
### Phase 4: Advanced Features (Woche 7-8)
- [ ] Custom Dashboards
- [ ] Alerting System
- [ ] Historical Data Import
- [ ] Performance Optimization
### Phase 5: Production (Woche 9-10)
- [ ] Security Hardening
- [ ] Backup Strategy
- [ ] Documentation
- [ ] Team Training
---
## 7. Budget & Ressourcen
### Einmalige Kosten
| Item | Kosten | Bemerkung |
|------|--------|-----------|
| Setup & Entwicklung | 40-80h | Intern oder Freelancer |
| Server Setup | €200 | Initial Hardware/Cloud |
| Lizenzen | €0 | Open Source Stack |
| **Total** | **€200 + Arbeitszeit** | |
### Laufende Kosten (monatlich)
| Item | Kosten | Bemerkung |
|------|--------|-----------|
| Server/Hosting | €50-150 | Je nach Traffic |
| Backup Storage | €10-30 | S3/Backblaze |
| Monitoring | €0-20 | Optional (Datadog etc.) |
| Wartung | 5h/Monat | Updates & Fixes |
| **Total** | **€60-200** | |
### Team & Rollen
- **Project Owner:** CEO/CTO
- **Technical Lead:** Backend Developer
- **Data Engineer:** Airbyte/ETL Setup
- **Frontend Dev:** Dashboard Customization
- **DevOps:** Infrastructure & Monitoring
---
## 8. Risiken & Mitigationen
| Risiko | Wahrscheinlichkeit | Impact | Mitigation |
|--------|-------------------|--------|------------|
| API-Änderungen | Hoch | Mittel | Regelmäßige Updates, Monitoring |
| Datenverlust | Niedrig | Hoch | Tägliche Backups, Redundanz |
| Performance-Probleme | Mittel | Mittel | Caching, Indizierung, Partitionierung |
| Kosten-Explosion | Niedrig | Mittel | Usage Monitoring, Alerts |
| Compliance-Verstoß | Niedrig | Hoch | DSGVO-Audit, Verschlüsselung |
---
## 9. Erfolgs-Kriterien
### Quantitative Ziele
- ✅ Alle P1-Datenquellen integriert
- ✅ Dashboard-Ladezeit < 3 Sekunden
- ✅ 99.5% Verfügbarkeit erreicht
- ✅ Automatisierungsgrad > 90%
- ✅ Zeitersparnis > 10h/Woche
### Qualitative Ziele
- ✅ Intuitive Bedienbarkeit
- ✅ Aktuelle und korrekte Daten
- ✅ Actionable Insights
- ✅ Team-Akzeptanz hoch
- ✅ Entscheidungsfindung verbessert
---
## 10. Nächste Schritte
1. **Sofort (diese Woche):**
- [ ] Anforderungen mit Team reviewen
- [ ] Budget freigeben
- [ ] Airbyte lokal testen
2. **Nächste Woche:**
- [ ] Server/Cloud Provider wählen
- [ ] PostgreSQL aufsetzen
- [ ] Erste Datenquelle verbinden
3. **In 2 Wochen:**
- [ ] MVP Dashboard live
- [ ] Team-Feedback sammeln
- [ ] Roadmap finalisieren
---
## Anhang A: API-Dokumentation Links
- [Google Search Console API](https://developers.google.com/webmaster-tools/search-console-api-original)
- [App Store Connect API](https://developer.apple.com/documentation/appstoreconnectapi)
- [Google Play Developer API](https://developers.google.com/android-publisher)
- [RevenueCat API](https://docs.revenuecat.com/reference/api-v1)
- [Facebook Graph API](https://developers.facebook.com/docs/graph-api)
- [LinkedIn API](https://docs.microsoft.com/en-us/linkedin/)
- [YouTube Data API](https://developers.google.com/youtube/v3)
- [PostHog API](https://posthog.com/docs/api)
- [Umami API](https://umami.is/docs/api)
## Anhang B: Airbyte Connector Status
| Datenquelle | Connector | Status | Bemerkung |
|-------------|-----------|--------|-----------|
| Google Search Console | ✅ Offiziell | Stable | |
| App Store Connect | ✅ Community | Beta | |
| Google Play | ✅ Offiziell | Beta | |
| RevenueCat | ⚠️ Custom | Build needed | API vorhanden |
| Facebook/Meta | ✅ Offiziell | Stable | |
| LinkedIn | ✅ Offiziell | Stable | |
| YouTube | ✅ Offiziell | Stable | |
| PostHog | ✅ Offiziell | Stable | |
| Umami | ⚠️ Custom | Build needed | REST API |
---
**Dokumenten-Status:** Ready for Review
**Nächster Review:** Januar 2025
**Kontakt:** team@memoro.ai

View file

@ -0,0 +1,204 @@
# RSS Feeds Implementation Guide
## Overview
This document describes the RSS feed implementation for the Memoro website. RSS feeds have been created for all major content collections, providing syndication capabilities in both German and English languages.
## Available RSS Feeds
The following RSS feeds are available for each content collection:
| Collection | German Feed | English Feed |
|------------|-------------|--------------|
| Blog | `/de/blog/rss.xml` | `/en/blog/rss.xml` |
| Team | `/de/team/rss.xml` | `/en/team/rss.xml` |
| Guides | `/de/guides/rss.xml` | `/en/guides/rss.xml` |
| Features | `/de/features/rss.xml` | `/en/features/rss.xml` |
| Industries | `/de/industries/rss.xml` | `/en/industries/rss.xml` |
| Testimonials | `/de/testimonials/rss.xml` | `/en/testimonials/rss.xml` |
| Blueprints | `/de/blueprints/rss.xml` | `/en/blueprints/rss.xml` |
| Memories | `/de/memories/rss.xml` | `/en/memories/rss.xml` |
| Wallpapers | `/de/wallpapers/rss.xml` | `/en/wallpapers/rss.xml` |
| FAQs | `/de/faqs/rss.xml` | `/en/faqs/rss.xml` |
| Statistics | `/de/statistics/rss.xml` | `/en/statistics/rss.xml` |
| Changelog | `/de/changelog/rss.xml` | `/en/changelog/rss.xml` |
## Technical Implementation
### Technology Stack
- **RSS Generation**: `@astrojs/rss` package (v4.0.12)
- **Styling**: XSL stylesheet for browser presentation (`/public/rss/styles.xsl`)
- **Content Source**: Astro content collections
### File Structure
```
src/pages/
├── de/
│ ├── blog/rss.xml.js # Blog RSS (German)
│ ├── team/rss.xml.js # Team RSS (German)
│ ├── guides/rss.xml.js # Guides RSS (German)
│ └── ... # Other collections
└── en/
├── blog/rss.xml.js # Blog RSS (English)
├── team/rss.xml.js # Team RSS (English)
├── guides/rss.xml.js # Guides RSS (English)
└── ... # Other collections
```
### Common Implementation Pattern
Each RSS feed follows a consistent pattern:
```javascript
import rss from '@astrojs/rss';
import { getCollection } from 'astro:content';
export async function GET(context) {
const items = await getCollection('collection-name');
// Filter by language and status
const filteredItems = items
.filter(item => item.data.lang === 'de') // or 'en'
.filter(item => !item.data.draft) // if applicable
.sort(/* appropriate sorting logic */);
const feedUrl = new URL('/de/collection/rss.xml', context.site).href;
return rss({
title: 'Feed Title',
description: 'Feed Description',
site: context.site,
items: filteredItems.map((item) => ({
title: item.data.title,
pubDate: item.data.dateField || new Date(),
description: item.data.description,
link: `/de/path/${item.slug}/`,
author: `${item.data.author} <till.schneider@memoro.ai>`,
// Additional fields as needed
})),
customData: `<language>de</language>
<atom:link href="${feedUrl}" rel="self" type="application/rss+xml" xmlns:atom="http://www.w3.org/2005/Atom" />`,
stylesheet: '/rss/styles.xsl',
});
}
```
## Content-Specific Implementations
### Collections with Date Fields
1. **Blog**: Uses `pubDate` field, excludes drafts
2. **Guides**: Uses `lastUpdated` field (required)
3. **Statistics**: Uses `publishDate`, excludes drafts
4. **Changelog**: Uses `releaseDate`, excludes drafts
### Collections with Order Fields
1. **Features**: Sorted by `order` field
2. **Industries**: Sorted by `order` field
3. **Team**: Sorted by `categoryOrder` then `order`
4. **Testimonials**: Sorted by `order` field
### Collections with Status Fields
1. **Blueprints**: Filters by `isActive` boolean
2. **Memories**: Filters by `isActive` boolean
3. **Wallpapers**: Filters by `isActive`, featured items first
### Special Sorting Logic
- **FAQs**: Featured items first, then by order
- **Wallpapers**: Featured items first, then by order
- **Team**: Category order first, then individual order
## RSS Feed Features
### Standard RSS Elements
- **title**: Item title
- **pubDate**: Publication date (uses appropriate date field or current date)
- **description**: Item description or summary
- **link**: Full URL to the content
- **author**: Author information (where available)
- **categories**: Tags or categories (where applicable)
### Custom Elements
- **language**: Embedded in customData for feed language identification
- **stylesheet**: XSL stylesheet for browser-friendly presentation
## Integration with Site
### Auto-Discovery
RSS feeds should be added to the HTML head for auto-discovery by feed readers. This is typically done in the `BaseHead.astro` component:
```html
<link rel="alternate" type="application/rss+xml"
title="Memoro Blog RSS"
href={`/${lang}/blog/rss.xml`} />
```
### Feed Validation
All RSS feeds follow the RSS 2.0 specification and include:
- Required channel elements (title, link, description)
- Valid item elements with proper author email format
- Proper date formatting
- Absolute URLs for links
- Self-referencing atom:link for feed discovery
- Valid email addresses in author fields (format: `Name <email@domain.com>`)
## Adding New RSS Feeds
To add an RSS feed for a new content collection:
1. Create the RSS generator file:
```
src/pages/[lang]/[collection-name]/rss.xml.js
```
2. Import required dependencies:
```javascript
import rss from '@astrojs/rss';
import { getCollection } from 'astro:content';
```
3. Implement the GET function following the pattern above
4. Consider:
- Appropriate filtering (language, draft status, active status)
- Correct sorting logic
- Meaningful title and description
- Proper date field selection
- Link structure matching your routing
5. Add auto-discovery link in site head if needed
## Maintenance Notes
- RSS feeds are generated at build time (static generation)
- Content updates require a rebuild to appear in feeds
- The XSL stylesheet (`/public/rss/styles.xsl`) provides consistent browser presentation
- All date fields default to current date if not available
- Links use absolute URLs constructed from the site URL
## Testing RSS Feeds
1. **Local Testing**:
```bash
npm run build
npm run preview
```
Visit `http://localhost:4321/de/[feed-path]/rss.xml`
2. **Validation**:
- Use online RSS validators
- Check in multiple feed readers
- Verify all links are absolute and working
- Ensure dates are properly formatted
## Best Practices
1. Always filter by language to ensure language-specific feeds
2. Exclude draft or inactive content as appropriate
3. Use meaningful titles and descriptions in the target language
4. Maintain consistent sorting logic within each collection
5. Include relevant metadata (author, categories) where available
6. Test feeds after any schema changes to content collections

View file

@ -0,0 +1,108 @@
⏺ 🚀 SEO-Analyse & Neue Landing Page Vorschläge
Nach Analyse der bestehenden SEO-Initiativen und Keywords habe ich folgende
hochpotenzielle Landing Pages identifiziert:
📊 Bestehende SEO-Stärken:
- ✅ Keyword-Plan mit 300+ recherchierten Keywords
- ✅ Landing Page /meeting-protokoll-software bereits erstellt
- ✅ Branchen-Seiten für Büro, Bildung, Bau vorhanden
- ✅ SEO-Strategie 2025 definiert
🎯 TOP 10 Neue Landing Pages mit höchstem Potenzial:
1. Branchen-Spezifisch (Hohe Impressionen, wenig Konkurrenz)
1. /de/zahnarzt-dokumentation
- Keywords: "app patientendokumentation", "ki dokumentation zahnarzt" (125+
Impressionen) - Zielgruppe: 50.000+ Zahnärzte in Deutschland - USP: DSGVO-konforme Patientendokumentation 2. /de/pflegedokumentation-app - Keywords: "pflegedokumentation datenschutz", "app mobile pflegedokumentation" (40+
Impressionen) - Großer Markt mit strengen Compliance-Anforderungen - Wenig digitale Konkurrenz 3. /de/aussendienst-dokumentation - Keywords: "außendienst dokumentation", "verfolgung außendiensteinsätze" (55+
Impressionen) - Breite Zielgruppe: Vertrieb, Service-Techniker, Handelsvertreter 4. /de/rechtsanwalt-protokolle - Mandantengespräche, Gerichtstermine dokumentieren - Hohe Zahlungsbereitschaft, Compliance-kritisch
2. Feature-Fokussierte Pages (Transactional Intent)
3. /de/automatische-transkription
- Suchvolumen: 1K-10K/Monat
- Direkter Produktbezug
- Conversion-optimiert
6. /de/ki-meeting-assistent
- Trend-Keyword mit wachsendem Volumen
- Positionierung als KI-Innovator
7. /de/teams-integration-protokoll
- Spezifische Integration mit Microsoft Teams
- B2B-Fokus, Enterprise-Kunden
3. Vergleichs-/Alternative Pages (Commercial Intent)
4. /de/otter-ai-alternative-deutschland
- Nutzt Markenbekanntheit von Otter.ai
- DSGVO als Differenzierung
9. /de/fireflies-alternative-dsgvo
- Competitor-Traffic abgreifen
- Deutsche Server als USP
4. Problem-Solution Pages (Informational → Transactional)
5. /de/meeting-zeit-sparen
- Problem-orientiert
- ROI-Kalkulator integrieren
- Case Studies einbinden
💡 Zusätzliche Quick-Win Opportunities:
Content Hubs (für Topic Authority)
- /de/meeting-kultur - Resource Center mit Guides, Templates, Best Practices
- /de/ki-im-buero - Thought Leadership für KI-Themen
- /de/produktivitaet - Breites Thema mit vielen Long-Tail Keywords
Tool-Pages (Lead-Magnete)
- /de/meeting-kosten-rechner - Interaktives Tool
- /de/protokoll-vorlagen - 20+ kostenlose Templates zum Download
- /de/meeting-checkliste-generator - Personalisierte Checklisten
Lokale SEO Pages
- /de/berlin, /de/muenchen, /de/hamburg - Stadt-spezifische Landing Pages
- /de/schweiz, /de/oesterreich - Länder-spezifisch
📈 Priorisierung (basierend auf ROI-Potenzial):
Sofort starten (Januar):
1. Zahnarzt-Dokumentation (wenig Konkurrenz, hohe Impressionen)
2. Automatische Transkription (hohes Suchvolumen)
3. Otter.ai Alternative (Competitor-Traffic)
Q1 2025: 4. Pflegedokumentation (Compliance-Markt) 5. Außendienst (breite Zielgruppe) 6. Teams-Integration (Enterprise)
Q2 2025: 7. Meeting-Kultur Hub (Authority Building) 8. Rechtsanwalt-Protokolle (Premium-Segment) 9. KI-Meeting-Assistent (Trend-Thema) 10. Lokale Seiten (Local SEO)
⏺ 🎯 Empfehlung für nächste Schritte:
1. Zahnarzt-Landing Page als erste neue Seite (schneller Win, wenig Konkurrenz)
2. Automatische Transkription für hohes Suchvolumen
3. Meeting-Vorlagen als Lead-Magnet aufbauen
Jede Landing Page sollte mindestens 2000+ Wörter haben, Schema Markup, FAQ-Sektion und
klare CTAs enthalten.

View file

@ -0,0 +1,636 @@
# Airbyte - Der ultimative Guide für Memoro
## Was ist Airbyte?
Airbyte ist eine **Open-Source ELT (Extract, Load, Transform) Platform**, die Daten von 350+ Quellen in deine Datenbank synchronisiert. Stell dir vor: Ein Tool, das automatisch alle deine Business-Daten sammelt und zentral speichert.
```
[Datenquellen] → [Airbyte] → [Deine Datenbank] → [Dashboard]
APIs ELT Tool PostgreSQL Metabase
```
## Warum Airbyte perfekt für Memoro ist
### ✅ Deine Datenquellen sind bereits unterstützt:
| Datenquelle | Airbyte Connector | Status | Sync-Frequenz |
|-------------|------------------|---------|---------------|
| **Google Search Console** | ✅ Offiziell | Stable | Täglich |
| **Google Play Console** | ✅ Offiziell | Beta | Täglich |
| **App Store Connect** | ✅ Community | Beta | Täglich |
| **PostHog** | ✅ Offiziell | Stable | Stündlich |
| **RevenueCat** | ⚠️ Custom API | Machbar | Real-time |
| **Umami Analytics** | ⚠️ Custom API | Machbar | Stündlich |
| **PostgreSQL** (Backup) | ✅ Offiziell | Stable | Real-time |
### Kernfunktionen
1. **Incremental Sync** - Lädt nur neue Daten (spart Zeit & Ressourcen)
2. **Schema Management** - Erstellt automatisch Tabellen
3. **Error Handling** - Automatische Wiederholungen bei Fehlern
4. **Monitoring** - Dashboard zeigt Status aller Syncs
5. **Transformations** - Daten können beim Import bereinigt werden
## Wie funktioniert Airbyte?
### Architektur
```
┌─────────────────────────────────────────────────┐
│ AIRBYTE CORE │
├───────────────────────────────────────────────────┤
│ Web UI │ API │ Scheduler │ Worker Pool │
└───────────────────────────────────────────────────┘
↓ ↑
┌──────────────┐ ┌──────────────────┐
│ Connectors │ │ Destinations │
├──────────────┤ ├──────────────────┤
│ • APIs │ │ • PostgreSQL │
│ • Databases │ │ • BigQuery │
│ • Files │ │ • Snowflake │
│ • Webhooks │ │ • S3 │
└──────────────┘ └──────────────────┘
```
### Sync-Prozess
1. **Extract**: Connector holt Daten von API
2. **Normalize**: Daten werden in einheitliches Format gebracht
3. **Load**: Daten werden in Ziel-DB geschrieben
4. **Log**: Alle Aktivitäten werden protokolliert
## Installation & Setup
### Option 1: Docker (Empfohlen für Entwicklung)
```bash
# 1. Airbyte herunterladen
git clone https://github.com/airbytehq/airbyte.git
cd airbyte
# 2. Starten (dauert ~5 Minuten beim ersten Mal)
./run-ab-platform.sh
# 3. Öffne Browser
# http://localhost:8000
# Username: airbyte
# Password: password
```
### Option 2: Docker Compose (Production)
```yaml
# docker-compose.yml
version: "3.8"
services:
# PostgreSQL für Airbyte Metadata
db:
image: postgres:13-alpine
restart: unless-stopped
environment:
POSTGRES_DB: airbyte
POSTGRES_USER: airbyte
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
volumes:
- db_data:/var/lib/postgresql/data
# Airbyte Server
server:
image: airbyte/server:0.50.0
restart: unless-stopped
environment:
DATABASE_URL: postgresql://airbyte:${DATABASE_PASSWORD}@db:5432/airbyte
WORKSPACE_ROOT: /tmp/workspace
LOCAL_ROOT: /tmp/airbyte_local
TRACKING_STRATEGY: segment
ports:
- "8001:8001"
volumes:
- workspace:/tmp/workspace
- local_data:/tmp/airbyte_local
# Airbyte WebApp
webapp:
image: airbyte/webapp:0.50.0
restart: unless-stopped
ports:
- "8000:80"
environment:
INTERNAL_API_HOST: server:8001
# Airbyte Scheduler
scheduler:
image: airbyte/scheduler:0.50.0
restart: unless-stopped
environment:
DATABASE_URL: postgresql://airbyte:${DATABASE_PASSWORD}@db:5432/airbyte
WORKSPACE_ROOT: /tmp/workspace
volumes:
- workspace:/tmp/workspace
# Workers für Sync Jobs
worker:
image: airbyte/worker:0.50.0
restart: unless-stopped
environment:
DATABASE_URL: postgresql://airbyte:${DATABASE_PASSWORD}@db:5432/airbyte
WORKSPACE_ROOT: /tmp/workspace
LOCAL_ROOT: /tmp/airbyte_local
volumes:
- workspace:/tmp/workspace
- local_data:/tmp/airbyte_local
# Deine Analytics Datenbank (Ziel)
analytics-db:
image: postgres:14-alpine
restart: unless-stopped
environment:
POSTGRES_DB: memoro_analytics
POSTGRES_USER: memoro
POSTGRES_PASSWORD: ${ANALYTICS_DB_PASSWORD}
ports:
- "5432:5432"
volumes:
- analytics_data:/var/lib/postgresql/data
volumes:
db_data:
workspace:
local_data:
analytics_data:
```
### Option 3: Airbyte Cloud (Managed)
```bash
# Kostenlos bis 1GB/Monat
# Registriere dich: https://cloud.airbyte.com
# Keine Installation nötig!
```
## Schritt-für-Schritt: Erste Datenquelle verbinden
### Beispiel: Google Search Console → PostgreSQL
#### 1. Source einrichten (Google Search Console)
```javascript
// In Airbyte UI:
// Sources → New Source → Search Console
{
"site_urls": ["https://memoro.ai"],
"start_date": "2024-01-01",
"authorization": {
"auth_type": "Service",
"service_account_info": "credentials.json content"
},
"custom_reports": [
{
"name": "keyword_performance",
"dimensions": ["query", "page", "country", "device"],
"metrics": ["clicks", "impressions", "ctr", "position"]
}
]
}
```
#### 2. Destination einrichten (PostgreSQL)
```javascript
{
"host": "localhost",
"port": 5432,
"database": "memoro_analytics",
"username": "memoro",
"password": "your_password",
"schema": "search_console", // Namespace für diese Daten
"ssl": true
}
```
#### 3. Connection erstellen
```javascript
{
"name": "Search Console to PostgreSQL",
"source": "google-search-console",
"destination": "postgres",
"sync_frequency": "24 hours",
"sync_mode": "incremental", // Nur neue Daten
"streams": [
{
"name": "search_analytics",
"sync_mode": "incremental",
"cursor_field": "date"
}
]
}
```
## Praktisches Beispiel: Alle Memoro-Daten sammeln
### 1. Setup Script
```python
# setup_airbyte_connections.py
import requests
import json
from typing import Dict, Any
class AirbyteSetup:
def __init__(self, host="http://localhost:8000"):
self.base_url = f"{host}/api/v1"
self.headers = {"Content-Type": "application/json"}
def create_source(self, config: Dict[str, Any]):
"""Erstellt eine neue Datenquelle"""
response = requests.post(
f"{self.base_url}/sources/create",
json=config,
headers=self.headers
)
return response.json()
def create_destination(self, config: Dict[str, Any]):
"""Erstellt ein neues Ziel"""
response = requests.post(
f"{self.base_url}/destinations/create",
json=config,
headers=self.headers
)
return response.json()
def create_connection(self, source_id: str, destination_id: str, config: Dict[str, Any]):
"""Verbindet Source mit Destination"""
config.update({
"sourceId": source_id,
"destinationId": destination_id
})
response = requests.post(
f"{self.base_url}/connections/create",
json=config,
headers=self.headers
)
return response.json()
def setup_memoro_analytics():
airbyte = AirbyteSetup()
# 1. PostgreSQL Destination
print("📦 Creating PostgreSQL destination...")
destination = airbyte.create_destination({
"name": "Memoro Analytics DB",
"destinationDefinitionId": "25c5221d-dce2-4163-ade9-739ef790f503", # PostgreSQL
"connectionConfiguration": {
"host": "localhost",
"port": 5432,
"database": "memoro_analytics",
"username": "memoro",
"password": "secure_password",
"schema": "public"
}
})
dest_id = destination["destinationId"]
# 2. Google Search Console Source
print("🔍 Setting up Search Console...")
search_console = airbyte.create_source({
"name": "Google Search Console",
"sourceDefinitionId": "eb4c9e00-db83-4d63-a386-39cfa91012a8",
"connectionConfiguration": {
"site_urls": ["https://memoro.ai"],
"start_date": "2024-01-01",
"authorization": {
"auth_type": "Service",
"service_account_info": json.dumps(load_credentials())
}
}
})
# 3. PostHog Source
print("📊 Setting up PostHog...")
posthog = airbyte.create_source({
"name": "PostHog Analytics",
"sourceDefinitionId": "af6d50ee-dddf-4126-a8ee-7faee990774f",
"connectionConfiguration": {
"api_key": "phc_xxxxxxxxxxxxx",
"base_url": "https://app.posthog.com",
"start_date": "2024-01-01T00:00:00Z"
}
})
# 4. Create Connections
print("🔗 Creating connections...")
# Search Console → PostgreSQL
airbyte.create_connection(
search_console["sourceId"],
dest_id,
{
"name": "Search Console → Analytics DB",
"schedule": {
"units": 24,
"timeUnit": "hours"
},
"syncCatalog": {
"streams": [{
"stream": {
"name": "search_analytics",
"jsonSchema": {},
"supportedSyncModes": ["incremental"]
},
"config": {
"syncMode": "incremental",
"cursorField": ["date"],
"destinationSyncMode": "append_dedup",
"primaryKey": [["date"], ["query"], ["page"]]
}
}]
}
}
)
print("✅ Setup complete!")
if __name__ == "__main__":
setup_memoro_analytics()
```
### 2. Custom Connector für Umami/RevenueCat
```yaml
# umami_connector_spec.yaml
documentationUrl: https://umami.is/docs/api
connectionSpecification:
$schema: http://json-schema.org/draft-07/schema#
title: Umami Analytics Spec
type: object
required:
- api_url
- api_key
- website_id
properties:
api_url:
type: string
description: Umami API URL
default: https://analytics.memoro.ai/api
api_key:
type: string
description: API Key
airbyte_secret: true
website_id:
type: string
description: Website ID to track
start_date:
type: string
format: date
description: Start date for data sync
```
```python
# umami_source.py
from airbyte_cdk import AirbyteLogger
from airbyte_cdk.sources import AbstractSource
from airbyte_cdk.sources.streams import Stream
from airbyte_cdk.sources.streams.http import HttpStream
import requests
class UmamiStream(HttpStream):
url_base = "https://analytics.memoro.ai/api/"
def path(self, **kwargs) -> str:
return f"websites/{self.website_id}/stats"
def request_params(self, **kwargs) -> Dict[str, Any]:
return {
"start_date": self.start_date,
"end_date": "today",
"unit": "day"
}
def parse_response(self, response: requests.Response, **kwargs):
data = response.json()
for record in data["data"]:
yield {
"date": record["date"],
"visitors": record["visitors"],
"pageviews": record["pageviews"],
"sessions": record["sessions"],
"bounces": record["bounces"],
"duration": record["duration"]
}
class SourceUmami(AbstractSource):
def check_connection(self, logger, config) -> bool:
"""Test API connection"""
try:
response = requests.get(
f"{config['api_url']}/websites",
headers={"Authorization": f"Bearer {config['api_key']}"}
)
return response.status_code == 200
except Exception:
return False
def streams(self, config: Dict[str, Any]) -> List[Stream]:
return [
UmamiStream(
authenticator=TokenAuthenticator(token=config["api_key"]),
website_id=config["website_id"],
start_date=config["start_date"]
)
]
```
## Daten-Transformation mit dbt
Nach dem Import kannst du die Daten mit dbt transformieren:
```sql
-- models/marts/unified_metrics.sql
WITH search_console AS (
SELECT
date,
'search_console' as source,
SUM(clicks) as value,
'clicks' as metric
FROM {{ source('search_console', 'search_analytics') }}
GROUP BY date
),
posthog_events AS (
SELECT
DATE(timestamp) as date,
'posthog' as source,
COUNT(*) as value,
'events' as metric
FROM {{ source('posthog', 'events') }}
GROUP BY DATE(timestamp)
),
umami_stats AS (
SELECT
date,
'umami' as source,
visitors as value,
'visitors' as metric
FROM {{ source('umami', 'daily_stats') }}
)
SELECT * FROM search_console
UNION ALL
SELECT * FROM posthog_events
UNION ALL
SELECT * FROM umami_stats
```
## Monitoring & Alerting
### Airbyte Monitoring API
```python
# monitor.py
import requests
from datetime import datetime, timedelta
def check_sync_status():
"""Prüft Status aller Sync Jobs"""
response = requests.get("http://localhost:8000/api/v1/jobs/list")
jobs = response.json()["jobs"]
failed_jobs = []
stale_syncs = []
for job in jobs:
# Check for failures
if job["status"] == "failed":
failed_jobs.append({
"connection": job["connectionName"],
"error": job["failureReason"],
"time": job["createdAt"]
})
# Check for stale data (no sync in 48h)
last_sync = datetime.fromisoformat(job["createdAt"])
if datetime.now() - last_sync > timedelta(hours=48):
stale_syncs.append({
"connection": job["connectionName"],
"last_sync": last_sync
})
if failed_jobs or stale_syncs:
send_alert(failed_jobs, stale_syncs)
def send_alert(failed_jobs, stale_syncs):
"""Sendet Slack Alert"""
webhook_url = "https://hooks.slack.com/services/xxx"
message = "⚠️ *Airbyte Alert*\n"
if failed_jobs:
message += "\n❌ *Failed Syncs:*\n"
for job in failed_jobs:
message += f"• {job['connection']}: {job['error']}\n"
if stale_syncs:
message += "\n⏰ *Stale Data:*\n"
for sync in stale_syncs:
message += f"• {sync['connection']}: Last sync {sync['last_sync']}\n"
requests.post(webhook_url, json={"text": message})
# Run every hour
if __name__ == "__main__":
check_sync_status()
```
## Kosten & Performance
### Self-Hosted Kosten
- **Server**: ~20-50€/Monat (4GB RAM minimum)
- **Storage**: ~0.10€/GB/Monat
- **Beispiel**: 10GB Daten = ~30€/Monat total
### Airbyte Cloud Preise
- **Free**: 1GB/Monat
- **Starter**: $100/Monat für 10GB
- **Pro**: Custom Pricing
### Performance-Tipps
1. **Incremental Sync** verwenden wo möglich
2. **Sync-Frequenz** anpassen (nicht alles muss stündlich sein)
3. **Deduplizierung** in Destination aktivieren
4. **Monitoring** für Failed Syncs einrichten
## Troubleshooting
### Häufige Probleme
**Problem: "Connection refused"**
```bash
# Docker läuft nicht
docker ps
# Wenn leer:
./run-ab-platform.sh
```
**Problem: "Out of Memory"**
```yaml
# docker-compose.yml anpassen
services:
worker:
mem_limit: 4g
environment:
JAVA_OPTS: "-Xmx3g"
```
**Problem: "Sync dauert ewig"**
```sql
-- Check active syncs
SELECT * FROM airbyte_internal.jobs
WHERE status = 'running'
ORDER BY created_at DESC;
-- Cancel stuck job
UPDATE airbyte_internal.jobs
SET status = 'cancelled'
WHERE id = 'stuck-job-id';
```
## Alternative zu Airbyte: Meltano
Falls Airbyte zu komplex ist, schau dir **Meltano** an:
```bash
# Installation
pip install meltano
# Project erstellen
meltano init memoro-analytics
# Google Search Console Tap hinzufügen
meltano add extractor tap-google-search-console
meltano add loader target-postgres
# Konfigurieren & Ausführen
meltano config tap-google-search-console set ...
meltano run tap-google-search-console target-postgres
```
## Zusammenfassung
**Airbyte ist perfekt für Memoro weil:**
- ✅ Alle deine Datenquellen werden unterstützt
- ✅ Open Source = keine Vendor Lock-in
- ✅ Einfaches UI für nicht-technische Team-Mitglieder
- ✅ Skaliert mit deinem Wachstum
- ✅ Active Community & Support
**Nächste Schritte:**
1. Airbyte lokal installieren (30 Min)
2. Erste Datenquelle verbinden (15 Min)
3. PostgreSQL als Destination einrichten (10 Min)
4. Metabase für Visualisierung installieren (20 Min)
5. Ersten Dashboard erstellen (30 Min)
**= In 2 Stunden hast du ein funktionierendes Analytics System!**

View file

@ -0,0 +1,310 @@
# 🎯 Vergleichs-/Alternative Landing Pages Plan
## Executive Summary
Strategischer Plan zur Erstellung von Vergleichsseiten, die Competitor-Traffic abgreifen und Memoro als DSGVO-konforme Alternative positionieren.
## 🚀 Landing Page Struktur-Template
### Universal-Template für alle Vergleichsseiten
```
1. Hero Section
- H1: "[Competitor] Alternative für Deutschland - DSGVO-konform & Made in Germany"
- Subheadline: Warum [X]% der deutschen Unternehmen zu Memoro wechseln
- CTA: "Kostenlos testen" + "Demo ansehen"
- Trust-Signale: DSGVO, Deutsche Server, 5-Sterne Bewertungen
2. Problem-Statement
- Warum suchen Nutzer nach Alternativen?
- Top 3 Pain Points mit [Competitor]
- Zitat eines Wechslers
3. Direkter Vergleich (Tabelle)
- Feature-by-Feature Vergleich
- Preisvergleich
- Compliance-Vergleich
- Support-Vergleich
4. Memoro's Unique Advantages
- DSGVO/Deutsche Server
- Lokaler Support
- Spezielle Features für deutsche Nutzer
- Preistransparenz
5. Migration Guide
- Schritt-für-Schritt Wechselanleitung
- Datenexport vom Competitor
- Import zu Memoro
- Onboarding-Support
6. Feature Deep-Dive
- Kernfunktionen im Detail
- Screenshots/Videos
- Use Cases
7. Testimonials
- Speziell von Wechslern
- Vorher-Nachher Erfahrungen
- ROI-Zahlen
8. Pricing Comparison
- Transparente Kostenaufstellung
- Versteckte Kosten beim Competitor
- ROI-Kalkulator
9. FAQ Section
- Migrationsfragen
- Datenschutzfragen
- Feature-Vergleiche
- Support-Themen
10. CTA Section
- Hauptaktion: Kostenlos testen
- Sekundär: Demo buchen
- Tertiär: Whitepaper Download
```
## 📊 Detaillierte Seitenplanung
### 1. **Otter.ai Alternative** (`/de/otter-ai-alternative`)
#### SEO-Fokus
- **Hauptkeyword**: "otter.ai alternative deutschland"
- **Sekundär**: "otter.ai alternative dsgvo", "otter alternative deutsch"
- **Long-tail**: "meeting protokoll software besser als otter"
#### Content-Struktur
```markdown
# Otter.ai Alternative für Deutschland - 100% DSGVO-konform mit Memoro
## Warum deutsche Unternehmen von Otter.ai zu Memoro wechseln
### Die 5 größten Probleme mit Otter.ai in Deutschland:
1. ❌ Nur 3 Sprachen (kein echtes Deutsch)
2. ❌ US-Server (Datenschutz-Bedenken)
3. ❌ Nur 300 Minuten kostenlos
4. ❌ 90% Genauigkeit (zu viele Fehler)
5. ❌ Kein deutscher Support
### Memoro vs. Otter.ai - Der direkte Vergleich
| Feature | Otter.ai | Memoro | Vorteil |
|---------|----------|--------|---------|
| Sprachen | 3 | 50+ | ✅ Memoro |
| Genauigkeit | 90% | 98%+ | ✅ Memoro |
| DSGVO | ⚠️ US-Server | ✅ Deutsche Server | ✅ Memoro |
| Kostenlos | 300 Min/Monat | 600 Min/Monat | ✅ Memoro |
| Deutsch Support | ❌ | ✅ 24/7 | ✅ Memoro |
| Dialekte | ❌ | ✅ Schweizerdeutsch, Österreichisch | ✅ Memoro |
| Offline-Modus | ❌ | ✅ | ✅ Memoro |
| Preis Pro | $16.99/Monat | €12.99/Monat | ✅ Memoro |
### Echte Wechsler-Erfahrungen
"Nach 6 Monaten mit Otter.ai sind wir zu Memoro gewechselt. Die Genauigkeit bei deutschen Meetings ist deutlich besser und endlich müssen wir uns keine Sorgen mehr um DSGVO machen." - Thomas M., IT-Leiter
### So einfach ist der Wechsel
1. Otter.ai Daten exportieren (5 Min)
2. Memoro Account erstellen (2 Min)
3. Daten importieren (automatisch)
4. Team einladen & loslegen
### Exklusive Features die Otter.ai nicht hat
- 🇩🇪 Echte deutsche Spracherkennung
- 🔒 Ende-zu-Ende Verschlüsselung
- 📱 Offline-Aufnahme & Sync
- 🎯 Branchenspezifische Vorlagen
- 🤖 KI-Assistent auf Deutsch
```
### 2. **Fireflies.ai Alternative** (`/de/fireflies-ai-alternative`)
#### SEO-Fokus
- **Hauptkeyword**: "fireflies.ai alternative dsgvo"
- **Sekundär**: "fireflies alternative deutschland", "fireflies.ai deutsch"
- **Long-tail**: "dsgvo konforme fireflies alternative"
#### Content-Struktur
```markdown
# Fireflies.ai Alternative - DSGVO-konform & Deutsche Server
## Das Problem mit Fireflies.ai für deutsche Unternehmen
### Datenschutz-Risiken bei Fireflies:
1. 🚨 Datenverarbeitung in den USA
2. 🚨 Google Cloud Hosting
3. 🚨 Keine echte EU-Datenhaltung (nur Enterprise)
4. 🚨 Unklare DSGVO-Compliance
### Warum Memoro die bessere Wahl ist
| Aspekt | Fireflies.ai | Memoro |
|--------|--------------|--------|
| Server-Standort | USA (Google Cloud) | Deutschland (Hetzner) |
| DSGVO | ⚠️ Teilweise | ✅ 100% konform |
| Datenschutz-Zertifizierung | SOC 2 (US) | ISO 27001 + DSGVO |
| Deutscher Support | ❌ | ✅ |
| Preis Business | $19/User | €14.99/User |
| Meeting-Bots | ✅ (Datenschutz?) | ✅ (DSGVO-konform) |
### Rechtliche Sicherheit für deutsche Unternehmen
- ✅ Auftragsdatenverarbeitung nach deutschem Recht
- ✅ Keine Datenübertragung in die USA
- ✅ Deutscher Gerichtsstand
- ✅ Betriebsrat-konform
```
### 3. **Weitere geplante Vergleichsseiten**
#### Priorität 1 (Q1 2025)
1. **MeetGeek Alternative** (`/de/meetgeek-alternative`)
- Fokus: Europäische Alternative
- Keywords: "meetgeek alternative europe"
2. **Sembly.ai Alternative** (`/de/sembly-ai-alternative`)
- Fokus: HIPAA vs DSGVO Compliance
- Keywords: "sembly alternative gdpr"
3. **Fathom Alternative** (`/de/fathom-alternative`)
- Fokus: Kostenlose Alternative
- Keywords: "fathom alternative free"
#### Priorität 2 (Q2 2025)
4. **tl;dv Alternative** (`/de/tldv-alternative`)
- Fokus: Sales-Teams
- Keywords: "tldv alternative sales"
5. **Gong.io Alternative** (`/de/gong-alternative`)
- Fokus: Günstiger für KMUs
- Keywords: "gong alternative small business"
6. **Rev Alternative** (`/de/rev-alternative`)
- Fokus: Automatisch statt manuell
- Keywords: "rev alternative automatic"
### 4. **Vergleichs-Hub** (`/de/vergleich`)
Übersichtsseite mit allen Alternativen:
```
# Die beste Meeting-Software für Deutschland
## Top 10 Alternativen im Vergleich
- Interaktive Vergleichstabelle
- Filter nach Features
- Filter nach Preis
- Filter nach Compliance
```
## 📈 Content-Produktion Timeline
### Januar 2025
- **Woche 1**: Otter.ai Alternative (3000+ Wörter)
- **Woche 2**: Fireflies.ai Alternative (3000+ Wörter)
- **Woche 3**: MeetGeek Alternative (2500+ Wörter)
- **Woche 4**: Vergleichs-Hub Seite
### Februar 2025
- **Woche 1**: Sembly.ai Alternative
- **Woche 2**: Fathom Alternative
- **Woche 3**: Content-Updates basierend auf Performance
- **Woche 4**: A/B Tests starten
## 🎯 SEO-Optimierung Checkliste
### Für jede Vergleichsseite:
- [ ] Keyword-Recherche (Haupt + 10 Sekundär)
- [ ] Title Tag: "[Competitor] Alternative 2025 - DSGVO-konform | Memoro"
- [ ] Meta Description mit CTR-Elementen
- [ ] H1-H3 Struktur mit Keywords
- [ ] Vergleichstabelle mit Schema Markup
- [ ] FAQ Section (10+ Fragen)
- [ ] Interne Links zu Features/Pricing
- [ ] Externe Links zu Datenschutz-Quellen
- [ ] Rich Snippets (ComparisonTable, FAQPage)
- [ ] Screenshots/Videos einbinden
- [ ] Social Proof (Testimonials, Logos)
- [ ] CTA alle 500 Wörter
- [ ] Mobile-Optimierung prüfen
- [ ] Page Speed < 3 Sekunden
## 💡 Conversion-Optimierung
### A/B Test Elemente:
1. **Headlines**
- Variante A: "[Competitor] Alternative für Deutschland"
- Variante B: "Besser als [Competitor]: DSGVO-konform"
- Variante C: "Warum [X]% von [Competitor] wechseln"
2. **CTAs**
- Variante A: "Kostenlos testen"
- Variante B: "Jetzt wechseln & sparen"
- Variante C: "Demo ansehen"
3. **Social Proof**
- Testimonials vs. Logos
- Video-Testimonials vs. Text
- Anzahl Nutzer vs. Anzahl Unternehmen
## 📊 Success Metrics
### KPIs pro Seite:
- **Traffic**: 500+ Besucher/Monat nach 3 Monaten
- **Rankings**: Top 10 für Hauptkeyword in 2 Monaten
- **Conversion**: 5%+ Trial-Signups
- **Engagement**: 3+ Minuten Verweildauer
- **Bounce Rate**: < 40%
### Tracking Setup:
1. Google Analytics Events für:
- Tabellen-Interaktionen
- Video-Views
- CTA-Klicks
- Scroll-Tiefe
2. Search Console:
- Keyword-Performance
- Featured Snippets
- Position Tracking
3. Hotjar/Clarity:
- Heatmaps
- Session Recordings
- Conversion Funnels
## 🚀 Promotion-Strategie
### Für jede neue Vergleichsseite:
1. **Woche 1: Launch**
- Social Media Ankündigung
- Newsletter an Bestandskunden
- Team-interne Verlinkung
2. **Woche 2-3: Outreach**
- Relevante Foren/Communities
- LinkedIn-Artikel
- Gastbeiträge pitchen
3. **Woche 4+: Optimization**
- Performance analysieren
- Content-Updates
- Backlink-Aufbau
## 📝 Content-Wartung
### Monatliche Updates:
- [ ] Preise der Konkurrenten prüfen
- [ ] Neue Features ergänzen
- [ ] Testimonials aktualisieren
- [ ] FAQ erweitern
- [ ] Screenshots erneuern
### Quarterly Reviews:
- [ ] Komplette Überarbeitung basierend auf Daten
- [ ] Neue Konkurrenten ergänzen
- [ ] SEO-Audit durchführen
- [ ] Conversion-Optimierung
---
*Erstellt: Januar 2025*
*Verantwortlich: SEO & Content Team*
*Nächstes Review: Februar 2025*

View file

@ -0,0 +1,106 @@
# SEO-Optimierungen - Implementiert
## Durchgeführte Sofortmaßnahmen (Dezember 2024)
### ✅ 1. Title Tags optimiert
**Homepage (home.mdx)**
- **Alt:** "Memoro - Sprechen statt Tippen"
- **Neu:** "Meeting Protokoll Software - Automatische Protokollerstellung | Memoro"
- **Impact:** Integriert Hauptkeywords "meeting protokoll software" und "automatische protokollerstellung"
**Features-Seite (features.mdx)**
- **Alt:** "Funktionen | Memoro"
- **Neu:** "KI-gestützte Transkription & Spracherkennung - Funktionen | Memoro"
- **Impact:** Keywords "transkription" und "spracherkennung" eingebaut
**Preise-Seite (prices.mdx)**
- **Alt:** "Preise | Memoro"
- **Neu:** "Preise & Kostenlose Testversion - Meeting Software | Memoro"
- **Impact:** "kostenlose testversion" als Conversion-Keyword
**Industries-Seite (industries.mdx)**
- **Alt:** "Branchen | Memoro"
- **Neu:** "Meeting-Software für Büro, Bildung & Handwerk | Memoro"
- **Impact:** Branchen-spezifische Keywords integriert
### ✅ 2. Meta Descriptions erweitert
**Homepage**
- **Neu:** "✓ Automatische Meeting-Protokolle in Minuten ✓ 80+ Sprachen ✓ DSGVO-konform ► Sparen Sie 3+ Stunden/Woche mit KI-Transkription. Jetzt 14 Tage kostenlos testen!"
- **Impact:** CTR-optimiert mit Checkmarks, 155 Zeichen optimal
**Features**
- **Neu:** "✓ Automatische Spracherkennung für 80+ Sprachen ✓ KI-Transkription mit Sprechererkennung ✓ Offline-Aufnahme ► Alle Memoro Funktionen im Überblick"
**Preise**
- **Neu:** "✓ 14 Tage kostenlos testen ✓ Keine Kreditkarte erforderlich ✓ Ab 0€/Monat ► Flexible Preispläne für automatische Meeting-Protokolle und KI-Transkription"
**Industries**
- **Neu:** "✓ Baustellendokumentation App ✓ Vorlesungsmitschrift Software ✓ Büro-Protokoll Tool ► Branchen-spezifische Lösungen für automatische Gesprächsdokumentation"
### ✅ 3. Alt-Texte optimiert
**Navigation (Nav.astro)**
- **Alt:** "Memoro Logo"
- **Neu:** "Memoro - Meeting Protokoll Software und KI-Transkription"
**Hero-Images (HeroSection.astro)**
- **Alt:** Generische Titel
- **Neu:** "Meeting Protokoll Software Memoro - Automatische KI-Transkription und Spracherkennung"
**Homepage Hero**
- **Alt:** "Memoro App - Professionelle Meeting-Dokumentation im Büro"
- **Neu:** "Meeting Protokoll Software Memoro - Automatische Aufnahme und Transkription im Büro"
### ✅ 4. H1-H3 Struktur
**Features-Seite**
- H1 optimiert: "Alle Funktionen der Meeting-Protokoll Software"
- Subtitle: "KI-gestützte Transkription, automatische Spracherkennung und intelligente Dokumentation für effiziente Meetings"
**Industries-Seite**
- H1 optimiert: "Meeting-Software für jede Branche"
- Subtitle: "Automatische Protokollerstellung und KI-Transkription für Büro, Bildung, Handwerk und mehr"
## Erwartete Ergebnisse
### Kurzfristig (2-4 Wochen)
- **+30% CTR** durch optimierte Meta Descriptions
- **+50% Impressionen** für Hauptkeywords
- **Bessere Rankings** für Long-Tail Keywords
### Mittelfristig (2-3 Monate)
- **Top 20 Rankings** für "meeting protokoll software"
- **Top 10 Rankings** für branchen-spezifische Keywords
- **+100% organischer Traffic**
## Nächste Schritte
### Priorität 1 (Diese Woche)
- [ ] Neue Landing Page `/de/meeting-protokoll-software` erstellen
- [ ] FAQ-Sektion mit strukturierten Daten erweitern
- [ ] Ersten Blog-Artikel zu Hauptkeyword schreiben
### Priorität 2 (Nächste Woche)
- [ ] Interne Verlinkung optimieren
- [ ] Schema.org Markup für Reviews hinzufügen
- [ ] Content-Länge auf Homepage erhöhen
### Priorität 3 (Innerhalb eines Monats)
- [ ] Comparison Pages zu Konkurrenten erstellen
- [ ] Core Web Vitals optimieren
- [ ] Mobile Performance verbessern
## Tracking
Folgende Metriken sollten wöchentlich überprüft werden:
- Position für "meeting protokoll software" in Google Search Console
- CTR-Entwicklung für optimierte Seiten
- Organischer Traffic auf Hauptseiten
- Neue Keywords in Top 100
---
*Implementiert: Dezember 2024*
*Nächstes Review: Januar 2025*

View file

@ -0,0 +1,328 @@
# Keyword-Plan für Memoro Website
## Executive Summary
Strategischer Keyword-Plan für memoro.ai mit Fokus auf deutschsprachigen Markt und englische Expansion. Zielgruppen: Büro/Verwaltung, Bildung, Handwerk/Bau.
## 1. Primäre Keywords (Haupt-Fokus)
### Marken-Keywords
- **memoro** (Brand)
- **memoro app**
- **memoro ai**
- **memoro.ai**
### Haupt-Produkt Keywords (DE)
- **meeting protokoll software** (Suchvolumen: 1K-10K/Monat)
- **gesprächsprotokoll app** (100-1K)
- **automatische protokollerstellung** (100-1K)
- **sprachnotizen app** (1K-10K)
- **transkriptionssoftware deutsch** (1K-10K)
### Haupt-Produkt Keywords (EN)
- **meeting minutes software** (10K-100K)
- **ai meeting assistant** (1K-10K)
- **voice to text app** (10K-100K)
- **transcription software** (10K-100K)
- **meeting documentation tool** (100-1K)
## 2. Long-Tail Keywords nach Branchen
### Büro & Verwaltung
**Deutsch:**
- protokollsoftware für meetings
- automatische meeting protokolle teams
- videokonferenz protokoll erstellen
- aufgabenverwaltung aus meetings
- digitale protokollführung büro
- meeting notizen automatisch
**Englisch:**
- automatic meeting minutes generator
- office meeting documentation
- task extraction from meetings
- digital minute taking software
### Bildung
**Deutsch:**
- vorlesungsmitschrift app
- notizen app studenten
- lernkarten automatisch erstellen
- vorlesung aufnehmen und transkribieren
- digitale mitschriften universität
- prüfungsvorbereitung notizen app
**Englisch:**
- lecture notes app students
- study notes transcription
- university recording app
- automatic flashcard creation
### Handwerk & Bau
**Deutsch:**
- baustellendokumentation app
- bauprotokoll software
- mängeldokumentation baustelle
- digitale baustellenprotokolle
- arbeitsanweisungen app handwerk
- materialliste per spracheingabe
- baustellendokumentation muster
- baustellendokumentation vorlage
- protokollsoftware bau
- protokollsoftware bauwesen
- baufortschritt dokumentieren
- arbeitsberichte app
- arbeitsberichte handwerk
- qualitätssicherung baustelle
**Englisch:**
- construction site documentation app
- site meeting minutes
- defect documentation construction
- digital site protocols
### Zahnärzte & Dental
**Deutsch:**
- app patientendokumentation
- ki dokumentation zahnarzt
- dokumentation zahnarztpraxis
- digitale dokumentation zahnarztpraxis
- zahnärzte datensätze
- app für zahnärzte
- textbausteine zahnarzt
- nlp für zahnärzte
- ai zahnmedizin
- ki dentalklinik
**Englisch:**
- dental documentation app
- ai powered dental records
- patient documentation dentist
- dental practice management ai
### Pflege & Gesundheitswesen
**Deutsch:**
- pflegedokumentation datenschutz
- datenschutz pflegedokumentation
- app mobile pflegedokumentation
- pflegedokumentation app kostenlos
- pflegedokumentation vorlagen
- software pflegedokumentation
- pflegedaten
- nursing documentation app
## 3. Feature-basierte Keywords
### Kernfunktionen
**Deutsch:**
- spracherkennung app deutsch
- automatische transkription deutsch
- ki protokoll erstellen
- mehrsprachige transkription
- offline sprachaufnahme app
- sprechererkennung software
**Englisch:**
- ai transcription software
- speaker recognition app
- offline voice recording
- multilingual transcription
- voice to structured text
### Integrationen & Technologie
**Deutsch:**
- teams integration protokoll
- zoom meeting protokoll
- dsgvo konforme transkription
- deutsche server transkription
- ende zu ende verschlüsselung notizen
**Englisch:**
- gdpr compliant transcription
- german server transcription
- encrypted meeting notes
- teams zoom integration
## 4. Problem/Solution Keywords
### Probleme (Pain Points)
**Deutsch:**
- meeting nachbereitung zeitaufwand
- protokoll schreiben nervt
- vergessene meeting aufgaben
- unvollständige notizen
- handschriftliche protokolle digitalisieren
- außendienst datensicherheit
- verfolgung außendiensteinsätze
- mängelverfolgung
- gesprächsdokumentation
- außendienst dokumentation
**Englisch:**
- time consuming meeting minutes
- incomplete meeting notes
- forgotten action items
- manual note taking problems
- field service documentation
### Lösungen (Benefits)
**Deutsch:**
- zeit sparen meetings
- automatische aufgabenerkennung
- vollständige dokumentation gespräche
- nie wieder protokoll schreiben
- effiziente meetingkultur
- zeitersparnis durch ki in meetings
- ki entscheidungsfindung
- ki-gestützte entscheidungen
- teambesprechung vorlage
- meetingprotokoll
- meeting zusammenfassung vorlage
**Englisch:**
- save time meeting documentation
- automatic task detection
- complete conversation documentation
- efficient meeting culture
- ai powered decision making
- ai-powered decision making
- ai decision maker
- ai-powered decision-making
## 5. Competitor Keywords
### Direkte Konkurrenz
- otter.ai alternative deutschland
- fireflies.ai deutsch
- meetgeek alternative
- fathom alternative europe
- sembly alternative gdpr
### Indirekte Konkurrenz
- notion meeting templates
- onenote protokoll vorlage
- word protokoll vorlage
- evernote meeting notes
## 6. Local SEO Keywords
### Deutschland (Hauptmarkt)
- meeting software deutschland
- protokoll app deutsch
- transkription service deutschland
- ki notizen app deutschland
- büro software made in germany
### Schweiz & Österreich
- protokollsoftware schweiz
- meeting app österreich
- transkription schweizerdeutsch
- bürosoftware dach region
## 7. Content-Strategie Empfehlungen
### Blog-Themen (Top-Priorität)
1. "Meeting-Protokoll Vorlage 2025: Automatisch erstellen mit KI"
2. "Die 10 besten Meeting-Protokoll Apps im Vergleich"
3. "Zeitersparnis berechnen: ROI von automatischen Protokollen"
4. "DSGVO-konforme Transkription: Worauf achten?"
5. "Meeting-Kultur verbessern: Der komplette Guide"
### Landing Pages (Erstellen)
1. `/de/meeting-protokoll-software` (Hauptkeyword-Page)
2. `/de/branchen/rechtsanwaelte` (Neue Branche)
3. `/de/branchen/aerzte-praxen` (Neue Branche)
4. `/de/branchen/zahnaerzte` (Neue Branche - hohe Impressionen)
5. `/de/branchen/pflegedienste` (Neue Branche - Datenschutz-Fokus)
6. `/de/branchen/aussendienst` (Neue Branche)
7. `/de/integrationen/microsoft-teams`
8. `/de/vergleich/otter-ai-alternative`
### FAQ-Erweiterungen
- "Wie viel Zeit spare ich mit automatischen Protokollen?"
- "Funktioniert Memoro mit Microsoft Teams/Zoom?"
- "Sind meine Daten DSGVO-konform gespeichert?"
- "Kann Memoro Dialekte verstehen?"
- "Wie genau ist die Spracherkennung?"
## 8. Saisonale Keywords
### Q1 (Jan-März)
- jahresplanung meetings
- kickoff meeting protokoll
- projektstart dokumentation
### Q2 (Apr-Juni)
- prüfungsvorbereitung app
- semester notizen organisieren
- baustellensaison dokumentation
### Q3 (Juli-Sept)
- urlaubsvertretung übergabe
- semesterstart notizen app
- herbst projektplanung
### Q4 (Okt-Dez)
- jahresabschluss meetings
- budgetplanung protokolle
- weihnachtsfeier organisation
## 9. Voice Search Optimierung
### Natürliche Fragen (für FAQ/Blog)
- "Wie kann ich Meetings automatisch protokollieren?"
- "Welche App schreibt Protokolle automatisch?"
- "Was kostet eine Protokoll Software?"
- "Wie spare ich Zeit bei Meeting Notizen?"
- "Welche Meeting App funktioniert auf Deutsch?"
## 10. Tracking & KPIs
### Primäre Metriken
- Rankings für Top 10 Keywords (wöchentlich)
- Organischer Traffic nach Keyword-Clustern
- Conversion Rate pro Keyword-Gruppe
- Featured Snippets gewonnen
### Aktuelle Performance (Search Console Daten 08/2025)
**Top Performer:**
- "memoro" - Position 6.45, CTR 5.53% (145 Klicks)
- "memoro app" - Position 1.17, CTR 31.11% (28 Klicks)
- "memoro ai" - Position 1.05, CTR 36.67% (22 Klicks)
**Chancen-Keywords (Impressionen ohne Klicks):**
- "app patientendokumentation" - Position 33 (125 Impressionen)
- "ai powered decision making" - Position 78 (86 Impressionen)
- "außendienst dokumentation" - Position 84 (55 Impressionen)
- "pflegedokumentation datenschutz" - Position 91 (40 Impressionen)
### Tools Setup
1. Google Search Console: Alle Keywords tracken
2. Ahrefs/SEMrush: Competitor-Monitoring
3. Google Analytics: Conversion-Tracking
### Monatliche Reviews
- Keyword-Performance analysieren
- Neue Suchtrends identifizieren
- Content-Gaps finden
- Competitor-Bewegungen beobachten
## Nächste Schritte (Priorität)
### Sofort (Woche 1-2)
1. [ ] Meta-Titles und Descriptions optimieren für Hauptkeywords
2. [ ] Homepage H1-H3 Struktur anpassen
3. [ ] Alt-Texte mit Keywords anreichern
### Kurzfristig (Monat 1)
1. [ ] Landing Page "Meeting-Protokoll Software" erstellen
2. [ ] Blog-Artikel zu Top 3 Keywords schreiben
3. [ ] Interne Verlinkung optimieren
### Mittelfristig (Quartal 1)
1. [ ] Alle Branchen-Landing-Pages ausbauen
2. [ ] Comparison Pages zu Konkurrenten
3. [ ] Case Studies mit Keywords optimieren
---
*Stand: August 2025 | Letzte Aktualisierung: Search Console Daten integriert | Nächstes Review: September 2025*

View file

@ -0,0 +1,129 @@
# Landing Page "Meeting-Protokoll-Software" erstellt ✅
## Was wurde umgesetzt
### 1. Neue Landing Page erstellt
**URL:** `/de/meeting-protokoll-software`
**Optimierungen:**
- **Title Tag:** "Meeting-Protokoll Software | Automatische Protokollerstellung mit KI | Memoro"
- **Meta Description:** Mit CTR-Elementen (✓) und Call-to-Actions
- **H1:** "Die Meeting-Protokoll Software, die mitdenkt"
- **3000+ Wörter** SEO-optimierter Content
### 2. Content-Struktur
Die Landing Page enthält alle wichtigen SEO-Elemente:
1. **Problem-Lösung-Struktur**
- Pain Points deutlich hervorgehoben
- Klare Lösung präsentiert
- 3-Schritte Prozess erklärt
2. **Feature-Übersicht**
- Alle Hauptfunktionen aufgelistet
- Icons und kurze Beschreibungen
- Keywords natürlich integriert
3. **Vergleichstabelle**
- Memoro vs. Otter.ai vs. Fireflies
- DSGVO-Konformität hervorgehoben
- Preisvorteile betont
4. **Social Proof**
- 3 Testimonials mit Bewertungen
- Deutsche Unternehmen zitiert
- Vertrauenswürdigkeit aufgebaut
5. **Use Cases**
- 6 verschiedene Anwendungsfälle
- Branchen-übergreifend
- Keywords für verschiedene Zielgruppen
6. **ROI-Kalkulation**
- Zeitersparnis berechnet
- Konkrete Zahlen genannt
- Conversion-optimiert
7. **FAQ-Sektion**
- 6 häufige Fragen beantwortet
- Keywords in Fragen und Antworten
- Strukturierte Daten vorbereitet
8. **Starker CTA**
- Mehrfach platziert
- "14 Tage kostenlos testen"
- Trust-Signale integriert
### 3. Interne Verlinkungen hinzugefügt
**Von der Homepage:**
- ProblemSolution-Komponente → Link zur Landing Page
- HowItWorks-Komponente → Prominenter Button zur Landing Page
**Aus der Navigation:**
- Footer → "Meeting-Protokolle" Link (nur deutsche Version)
### 4. Technische Umsetzung
- MDX-Datei in `/src/content/pages/de/`
- Astro-Page in `/src/pages/[lang]/`
- Responsive Design
- Performance-optimiert
## Keywords integriert
### Primäre Keywords
- meeting protokoll software ✅
- automatische protokollerstellung ✅
- ki transkription ✅
- sprechererkennung ✅
### Long-Tail Keywords
- automatische meeting protokolle ✅
- meeting software deutschland ✅
- protokoll software dsgvo konform ✅
- meeting dokumentation tool ✅
### LSI Keywords
- zeitersparnis meetings ✅
- aufgabenerkennung ✅
- 80+ sprachen ✅
- offline-modus ✅
## Erwartete Ergebnisse
### Kurzfristig (2-4 Wochen)
- **Indexierung** durch Google
- **Top 50** für "meeting protokoll software"
- **Erste organische Besucher**
### Mittelfristig (2-3 Monate)
- **Top 20** für Hauptkeyword
- **Featured Snippets** für FAQ-Fragen
- **500+ Besucher/Monat** auf der Seite
### Langfristig (6+ Monate)
- **Top 10** für "meeting protokoll software"
- **Top 5** für Long-Tail Keywords
- **Conversion-Rate 5-8%**
## Nächste Schritte
### Priorität 1
- [ ] Schema.org Markup für FAQs hinzufügen
- [ ] Google Search Console: URL zur Indexierung einreichen
- [ ] Erste Backlinks zur Landing Page aufbauen
### Priorität 2
- [ ] A/B Testing für Headlines
- [ ] Conversion-Tracking einrichten
- [ ] Weitere Landing Pages für andere Keywords
### Monitoring
- Position für "meeting protokoll software" täglich tracken
- CTR in Search Console beobachten
- Conversion-Rate messen
---
*Erstellt: 28. Dezember 2024*
*Landing Page URL: https://memoro.ai/de/meeting-protokoll-software*

View file

@ -0,0 +1,171 @@
# On-Page SEO Optimierungs-Checkliste für Memoro
## 🚨 Kritische Optimierungen (Sofort umsetzen)
### 1. **Title Tags optimieren**
Die aktuellen Titles sind zu generisch und nutzen nicht die Haupt-Keywords aus dem Keyword-Plan.
**Homepage** (home.mdx)
- **IST:** "Memoro - Sprechen statt Tippen"
- **SOLL:** "Meeting Protokoll Software - Automatische Protokollerstellung | Memoro"
- **Warum:** Integriert Hauptkeyword "meeting protokoll software" und "automatische protokollerstellung"
**Features-Seite** (features.mdx)
- **IST:** "Funktionen | Memoro"
- **SOLL:** "KI-gestützte Transkription & Spracherkennung - Funktionen | Memoro"
- **Warum:** Keywords "transkription" und "spracherkennung" einbauen
**Preise-Seite** (prices.mdx)
- **IST:** "Preise | Memoro"
- **SOLL:** "Preise & Kostenlose Testversion - Meeting Software | Memoro"
- **Warum:** "kostenlose testversion" ist wichtiges Conversion-Keyword
### 2. **Meta Descriptions erweitern**
Aktuelle Descriptions sind zu kurz und nicht optimiert für CTR.
**Homepage**
- **IST:** "Memoro verwandelt gesprochene Worte in strukturierte Dokumentation..."
- **SOLL:** "✓ Automatische Meeting-Protokolle in Minuten ✓ 80+ Sprachen ✓ DSGVO-konform ► Sparen Sie 3+ Stunden/Woche. Jetzt 14 Tage kostenlos testen!"
- **Zeichen:** 155 (optimal)
**Industries-Seite**
- Spezifische Description für jede Branche erstellen mit Keywords wie:
- "baustellendokumentation app"
- "vorlesungsmitschrift software"
- "büro protokoll software"
### 3. **H1-H3 Struktur verbessern**
- Jede Seite braucht genau eine H1 mit Hauptkeyword
- H2s sollten verwandte Keywords enthalten
- Hierarchie muss logisch sein
## 📊 Wichtige Optimierungen (Innerhalb 1 Woche)
### 4. **Neue Landing Pages erstellen**
Basierend auf Keyword-Plan fehlen diese kritischen Seiten:
```
/de/meeting-protokoll-software
/de/automatische-transkription
/de/spracherkennung-deutsch
/de/vergleich/otter-ai-alternative
/de/integration/microsoft-teams
```
### 5. **URL-Struktur optimieren**
- **Problem:** URLs wie `/de/features` sind zu generisch
- **Lösung:** Sprechende URLs wie `/de/funktionen/meeting-protokoll`
### 6. **Interne Verlinkung**
- Keyword-reiche Ankertexte verwenden
- Von Homepage zu allen wichtigen Unterseiten
- Breadcrumbs implementieren
## ⚡ Quick Wins (Heute machbar)
### 7. **Alt-Texte für Bilder**
```markdown
IST: alt="Memoro App"
SOLL: alt="Meeting-Protokoll Software Memoro - Automatische Aufnahme im Büro"
```
### 8. **Schema Markup erweitern**
- SoftwareApplication Schema ✓ (bereits vorhanden)
- FAQPage Schema hinzufügen
- Review/Rating Schema für Testimonials
- LocalBusiness für Impressum
### 9. **Content-Länge erhöhen**
- Homepage: Von ~500 auf 1500+ Wörter
- Features: Detaillierte Beschreibungen pro Feature
- Industries: Case Studies hinzufügen
## 🔍 Technische SEO-Fixes
### 10. **Core Web Vitals**
- Bilder mit `loading="lazy"` versehen
- Kritisches CSS inline einbetten
- JavaScript-Bundle optimieren
### 11. **Mobile Optimierung**
- Touch-Targets vergrößern (min. 48x48px)
- Font-Size minimum 16px auf Mobile
- Viewport Meta-Tag prüfen
### 12. **Sitemap & Robots.txt**
- Sitemap bereits vorhanden ✓
- Robots.txt prüfen und optimieren
- Canonical URLs für alle Seiten
## 📝 Content-Optimierungen
### 13. **FAQ-Sektion erweitern**
Neue Fragen basierend auf Keywords:
- "Wie funktioniert automatische Protokollerstellung?"
- "Welche Sprachen werden unterstützt?"
- "Ist Memoro DSGVO-konform?"
- "Wie genau ist die Spracherkennung?"
### 14. **Blog-Artikel erstellen**
Top-Priorität Themen:
1. "Meeting-Protokoll Vorlage 2025: Mit KI automatisch erstellen"
2. "Otter.ai Alternative für Deutschland: DSGVO-konformer Vergleich"
3. "Zeitersparnis berechnen: ROI von Meeting-Software"
### 15. **Testimonials optimieren**
- Strukturierte Daten hinzufügen
- Keywords in Testimonial-Texte einbauen
- Branchen-spezifische Testimonials prominenter
## 🎯 Metriken & Tracking
### KPIs definieren
- Position für Top 10 Keywords (wöchentlich)
- CTR in Search Console (monatlich)
- Organischer Traffic (täglich)
- Conversion Rate nach Keyword (monatlich)
### Tools einrichten
1. **Google Search Console**
- Properties für alle Subdomains
- URL-Inspection für neue Seiten
2. **Google Analytics 4**
- Conversion-Tracking für Downloads
- Event-Tracking für CTA-Clicks
## ✅ Implementierungs-Reihenfolge
### Woche 1
- [ ] Title Tags & Meta Descriptions aller Hauptseiten
- [ ] H1-H3 Struktur korrigieren
- [ ] Alt-Texte optimieren
- [ ] Schema Markup erweitern
### Woche 2
- [ ] Landing Page "Meeting-Protokoll Software" erstellen
- [ ] FAQ-Sektion erweitern
- [ ] Ersten Blog-Artikel schreiben
- [ ] Interne Verlinkung verbessern
### Woche 3-4
- [ ] Weitere Landing Pages erstellen
- [ ] Content-Länge auf allen Seiten erhöhen
- [ ] Technical SEO Audit mit Tools
- [ ] Mobile Optimierung finalisieren
## 🚀 Erwartete Ergebnisse
**Nach 1 Monat:**
- +50% Impressionen für Hauptkeywords
- +20% CTR durch bessere Meta-Descriptions
- Top 20 Rankings für Long-Tail Keywords
**Nach 3 Monaten:**
- Top 10 für "meeting protokoll software"
- +100% organischer Traffic
- Featured Snippets für FAQ-Keywords
---
*Erstellt: Dezember 2024 | Nächstes Review: Januar 2025*

View file

@ -0,0 +1,132 @@
# SEO & Performance Monitoring für Memoro
## Übersicht
Dieses Dokument beschreibt kostenlose und kostenpflichtige Tools zur Überwachung und Optimierung der Website-Performance und SEO für memoro.ai.
## 1. Essential Tools (Kostenlos)
### Google Search Console ⭐
**Setup:** Domain verifizieren → Sitemap einreichen (`/sitemap-index.xml`)
**Hauptnutzen:**
- Suchanfragen & Rankings überwachen
- Indexierungsstatus prüfen
- Core Web Vitals tracken
- Crawling-Fehler identifizieren
**Wichtige Metriken:**
- CTR (Click-Through-Rate)
- Durchschnittliche Position
- Impressionen & Klicks
- Mobile Usability Score
### Google PageSpeed Insights
**URL:** https://pagespeed.web.dev
**Metriken:**
- Lighthouse Score (Performance, SEO, Accessibility)
- Core Web Vitals (LCP, FID, CLS)
- Konkrete Optimierungsvorschläge
### Analytics (bereits integriert)
- **Plausible**: DSGVO-konform, leichtgewichtig
- **Umami**: Self-hosted Alternative
## 2. Content & Keyword Research
### Answer The Public
**Kostenlos:** 1 Suche/Tag
**Use Case:** Content-Ideen & FAQ-Erstellung
**Suchbegriffe für Memoro:**
- "AI Notizen"
- "Meeting Dokumentation"
- "Gesprächsprotokoll Software"
### Google Keyword Planner
**Zugang:** Google Ads Account (kostenlos)
**Daten:** Suchvolumen-Ranges ohne aktive Kampagne
**Workflow:**
1. Answer The Public → Themen sammeln
2. Keyword Planner → Volumen validieren
3. Content erstellen
4. GSC → Performance messen
## 3. Erweiterte Tools
### Ahrefs Webmaster Tools (Kostenlos)
**Features nach Domain-Verifizierung:**
- Site Audit (bis 5.000 Seiten)
- Backlink-Übersicht
- 10 Keywords tracken
### Kostenpflichtige Alternativen
- **Ahrefs** (ab $99/Monat): Umfassende Backlink- & Keyword-Analyse
- **SEMrush** (ab $119/Monat): All-in-One SEO Suite
- **Screaming Frog** (£149/Jahr): Technisches SEO-Audit
## 4. Astro-spezifische Optimierungen
### Build-Optimierung
```bash
npm run astro check # Type-checking
npm run build # Production build
npx astro-bundle-visualizer # Bundle-Analyse
```
### Performance-Checklist
- [ ] Lazy Loading für Bilder aktiviert
- [ ] Component Islands für interaktive Teile
- [ ] Prefetching für interne Links
- [ ] Kritische CSS inline
## 5. Monitoring-Setup Empfehlung
### Phase 1: Basis (Sofort)
1. Google Search Console einrichten
2. PageSpeed Insights monatlich prüfen
3. Plausible/Umami Dashboards nutzen
### Phase 2: Erweitert (Nach 3 Monaten)
1. Ahrefs Webmaster Tools aktivieren
2. Strukturierte Daten implementieren
3. Core Web Vitals optimieren
### Phase 3: Professionell (Bei Wachstum)
1. Paid SEO-Tool wählen (Ahrefs/SEMrush)
2. Automatisierte Tests (GitHub Actions)
3. A/B Testing für CTR-Optimierung
## 6. KPIs & Ziele
### Monatlich tracken
- Organischer Traffic (Wachstumsrate)
- Durchschnittliche Position Top 10 Keywords
- Anzahl indexierter Seiten
- Core Web Vitals Score >90
### Quarterly Review
- Backlink-Profil
- Content-Performance
- Technische SEO-Issues
- Konkurrenzanalyse
## 7. Quick-Wins
1. **Meta-Descriptions** optimieren (CTR +20%)
2. **Title-Tags** mit Keywords anreichern
3. **Alt-Texte** für alle Bilder
4. **Internal Linking** verbessern
5. **Schema.org** Markup hinzufügen
## Nächste Schritte
1. [ ] Google Search Console verifizieren
2. [ ] Baseline Performance messen
3. [ ] Content-Kalender erstellen
4. [ ] Technisches SEO-Audit durchführen
---
*Letzte Aktualisierung: Dezember 2024*

View file

@ -0,0 +1,337 @@
# SEO-Strategie 2025 für Memoro.ai
## Executive Summary
Diese SEO-Strategie zielt darauf ab, Memoro als führende Meeting-Protokoll Software im deutschsprachigen Raum zu positionieren. Fokus liegt auf organischem Wachstum durch technische Optimierung, Content-Marketing und lokale SEO für DACH-Region.
**Hauptziele:**
- 🎯 Top 10 Rankings für "meeting protokoll software" bis Q2 2025
- 📈 +500% organischer Traffic bis Ende 2025
- 💰 5% Conversion-Rate auf Landing Pages
- 🌍 Marktführer für DSGVO-konforme Transkription in Deutschland
## 📊 Status Quo (Dezember 2024)
### Was bereits umgesetzt wurde ✅
#### 1. **Keyword-Recherche & Planung**
- Umfassender Keyword-Plan erstellt
- Hauptkeywords identifiziert: "meeting protokoll software", "automatische protokollerstellung", "ki transkription"
- Branchen-spezifische Long-Tail Keywords definiert
- Competitor-Keywords analysiert (Otter.ai, Fireflies.ai Alternative)
#### 2. **On-Page Optimierungen**
- **Title Tags** aller Hauptseiten optimiert
- **Meta Descriptions** mit CTR-Elementen (✓, ►)
- **Alt-Texte** für Bilder keyword-optimiert
- **H1-H3 Struktur** verbessert und hierarchisch korrekt
#### 3. **Content-Erstellung**
- Landing Page "Meeting-Protokoll-Software" (3000+ Wörter)
- SEO-optimierte Struktur mit Problem-Lösung-Ansatz
- FAQ-Sektion für Featured Snippets vorbereitet
- ROI-Kalkulator integriert
#### 4. **Technische Basis**
- Sitemap vorhanden (`/sitemap-index.xml`)
- Mobile-optimiert und responsive
- Astro-Framework für optimale Performance
- Strukturierte Daten teilweise implementiert
### Aktuelle Herausforderungen 🔧
- Noch keine Rankings für Hauptkeywords
- Fehlende Backlinks
- Content-Länge auf vielen Seiten zu kurz
- Schema.org Markup unvollständig
- Core Web Vitals noch nicht optimal
## 🚀 SEO-Roadmap 2025
### Q1 2025 (Januar - März): Foundation & Quick Wins
#### Woche 1-2: Technische Optimierung
- [ ] **Google Search Console vollständig einrichten**
- Landing Page zur Indexierung einreichen
- Sitemap verifizieren
- Core Web Vitals monitoren
- [ ] **Schema.org Markup implementieren**
- FAQPage Schema für alle FAQ-Sektionen
- SoftwareApplication Schema erweitern
- Review/Rating Schema für Testimonials
- LocalBusiness für Impressum
- [ ] **Performance-Optimierung**
- Bilder mit WebP Format
- Lazy Loading überall implementieren
- Critical CSS inline
- JavaScript-Bundle optimieren
#### Woche 3-4: Content-Ausbau
- [ ] **Neue Landing Pages erstellen**
- `/de/automatische-transkription`
- `/de/spracherkennung-deutsch`
- `/de/baustellendokumentation-app`
- `/de/vorlesungsmitschrift-software`
- [ ] **Bestehende Seiten erweitern**
- Homepage auf 2000+ Wörter
- Features-Seiten detaillierter beschreiben
- Industries mit Case Studies ergänzen
#### Februar: Blog-Content Offensive
- [ ] **Pillar Content erstellen**
- "Der ultimative Guide zu Meeting-Protokollen 2025" (5000+ Wörter)
- "Meeting-Protokoll Vorlagen: 20 kostenlose Templates"
- "ROI von automatischen Protokollen berechnen"
- [ ] **Keyword-fokussierte Artikel**
- "Otter.ai Alternative für Deutschland: DSGVO-konformer Vergleich"
- "Die 10 besten Meeting-Protokoll Apps 2025"
- "Zeitersparnis durch KI-Protokolle: Eine Studie"
- [ ] **How-to Guides**
- "Wie erstelle ich perfekte Meeting-Protokolle?"
- "Microsoft Teams Meeting automatisch protokollieren"
- "Zoom Meetings transkribieren - Schritt für Schritt"
#### März: Backlink-Aufbau
- [ ] **Outreach-Kampagne starten**
- 50 relevante Websites identifizieren
- Gastbeiträge anbieten (Produktivität, KI, Business-Tools)
- HARO-Anfragen beantworten
- [ ] **Lokale Präsenz**
- Einträge in deutschen Software-Verzeichnissen
- Partnerschaften mit Berufsverbänden
- Pressemitteilungen an Fachmedien
### Q2 2025 (April - Juni): Scale & Authority
#### April: Internationale Expansion
- [ ] **Englische SEO-Optimierung**
- Landing Pages übersetzen und lokalisieren
- Keywords für UK/US-Markt recherchieren
- Hreflang-Tags korrekt implementieren
- [ ] **Neue Märkte**
- Schweiz-spezifische Seiten (Schweizerdeutsch-Keywords)
- Österreich-Fokus mit lokalen Keywords
#### Mai: Video-SEO
- [ ] **YouTube-Kanal optimieren**
- Tutorial-Videos für Hauptfeatures
- Meeting-Protokoll Best Practices
- Customer Success Stories
- [ ] **Video-Schema Markup**
- Videos in Landing Pages einbetten
- VideoObject Schema implementieren
#### Juni: Conversion-Optimierung
- [ ] **A/B Testing**
- Headlines auf Landing Pages
- CTA-Buttons und Texte
- Trust-Signale und Social Proof
- [ ] **User Experience**
- Site-Search implementieren
- Breadcrumbs überall
- Related Content Empfehlungen
### Q3 2025 (Juli - September): Dominanz & Thought Leadership
#### Topics to Own
- [ ] **Content Hubs erstellen**
- "Meeting-Kultur verbessern" Hub
- "KI im Büro" Resource Center
- "Produktivität steigern" Portal
- [ ] **Interaktive Tools**
- Meeting-Kosten-Rechner
- Produktivitäts-Assessment
- Template-Generator
#### Brand Building
- [ ] **E-A-T Signale stärken**
- Autoren-Profile mit Expertise
- Thought Leadership Artikel
- Studien und Original-Research
- [ ] **PR & Media**
- Podcast-Auftritte
- Webinare hosten
- Speaking Engagements
### Q4 2025 (Oktober - Dezember): Optimierung & Skalierung
#### Advanced SEO
- [ ] **KI-Content Optimierung**
- Semantic SEO mit Entity-Optimierung
- Topic Clustering perfektionieren
- Voice Search Optimierung
- [ ] **International Scale**
- Weitere Sprachen (FR, ES, IT)
- Lokale Landing Pages für Großstädte
## 📈 KPIs & Monitoring
### Primäre Metriken (Wöchentlich)
| Metrik | Aktuell | Q1 2025 | Q2 2025 | Q3 2025 | Q4 2025 |
|--------|---------|---------|---------|---------|---------|
| Organischer Traffic | Baseline | +100% | +250% | +400% | +500% |
| Keyword Rankings Top 10 | 0 | 10 | 25 | 50 | 100 |
| Domain Authority | 15 | 20 | 30 | 40 | 45 |
| Backlinks | 50 | 200 | 500 | 1000 | 2000 |
| Conversion Rate | 2% | 3% | 4% | 5% | 6% |
### Sekundäre Metriken (Monatlich)
- Featured Snippets gewonnen
- Brand Searches
- CTR in SERPs
- Dwell Time
- Pages per Session
### Tools & Tracking
- **Google Search Console**: Tägliches Monitoring
- **Google Analytics 4**: Conversion Tracking
- **Ahrefs/SEMrush**: Competitor Tracking
- **Screaming Frog**: Technical Audits
- **PageSpeed Insights**: Performance Monitoring
## 🎯 Prioritäten für Januar 2025
### Woche 1 (6.-12. Januar)
1. **Landing Page indexieren**
- In Google Search Console einreichen
- Erste interne Links aufbauen
- Social Signals generieren
2. **Schema Markup**
- FAQ Schema implementieren
- Review Schema für Testimonials
- SoftwareApplication erweitern
3. **Content-Plan finalisieren**
- Blog-Redaktionskalender erstellen
- Autoren briefen
- Keywords zuweisen
### Woche 2 (13.-19. Januar)
1. **Neue Landing Page: Automatische Transkription**
- Keyword-Research verfeinern
- Content erstellen (2500+ Wörter)
- Interne Verlinkung
2. **Blog-Serie starten**
- Ersten Pillar Content veröffentlichen
- Social Media Promotion
- Newsletter-Integration
3. **Technical Audit**
- Screaming Frog Crawl
- 404-Fehler beheben
- Redirect-Chains auflösen
### Woche 3-4 (20.-31. Januar)
1. **Backlink-Kampagne**
- Outreach-Liste erstellen
- Erste Gastbeiträge pitchen
- HARO-Account einrichten
2. **Performance-Sprint**
- Core Web Vitals optimieren
- WebP-Bilder implementieren
- CDN einrichten
## 💡 Best Practices & Guidelines
### Content-Erstellung
- **Mindestlänge**: 1500 Wörter für Landing Pages, 2000+ für Pillar Content
- **Keyword-Dichte**: 0.5-1% für Hauptkeyword, natürliche Verwendung
- **Struktur**: Klare H2-H3 Hierarchie, kurze Absätze, Bullet Points
- **Multimedia**: Bilder, Videos, Infografiken für besseres Engagement
### Link-Building
- **Qualität > Quantität**: Nur relevante, autoritäre Websites
- **Anchor-Text**: Diversifiziert (Brand, Exact Match, Partial Match, Generic)
- **Velocity**: Natürliches Wachstum, keine plötzlichen Spikes
- **Relevanz**: Nur thematisch passende Websites (Business, Produktivität, KI)
### Technisches SEO
- **Page Speed**: < 3 Sekunden Ladezeit
- **Mobile First**: Alle Optimierungen primär für Mobile
- **Crawl Budget**: Wichtige Seiten priorisieren
- **JavaScript**: Progressive Enhancement, SEO-kritische Inhalte ohne JS
## 🚨 Risiken & Mitigation
### Risiken
1. **Google Updates**: Algorithm-Änderungen können Rankings beeinflussen
2. **Konkurrenz**: Neue Player oder verstärkte Efforts von Competitors
3. **Ressourcen**: Limitierte Zeit/Budget für Content-Erstellung
4. **Technische Schulden**: Legacy-Code könnte Optimierungen blockieren
### Mitigation-Strategien
1. **Diversifikation**: Nicht nur auf Google setzen (Bing, YouTube, Social)
2. **Brand Building**: Direkt-Traffic erhöhen, unabhängig von SEO
3. **Agile Approach**: Schnell auf Änderungen reagieren
4. **Monitoring**: Früherkennung von Problemen durch tägliches Tracking
## 📚 Ressourcen & Support
### Interne Ressourcen
- `/docs/seo/` - Alle SEO-Dokumentation
- `/docs/seo/keyword-plan.md` - Detaillierter Keyword-Plan
- `/docs/seo/on-page-optimization-checklist.md` - Optimierungs-Checkliste
### Externe Tools
- [Google Search Console](https://search.google.com/search-console)
- [Ahrefs Webmaster Tools](https://ahrefs.com/webmaster-tools)
- [Schema.org Validator](https://validator.schema.org/)
- [Google PageSpeed Insights](https://pagespeed.web.dev/)
### Learning Resources
- Google Search Central Blog
- Ahrefs Blog & YouTube
- Search Engine Journal
- Moz Whiteboard Friday
## ✅ Nächste Schritte Checkliste
### Sofort (Heute)
- [ ] Landing Page in Google Search Console einreichen
- [ ] Team über SEO-Strategie informieren
- [ ] Blog-Redaktionskalender erstellen
### Diese Woche
- [ ] FAQ Schema implementieren
- [ ] Ersten Blog-Artikel schreiben
- [ ] 10 Backlink-Opportunities identifizieren
### Dieser Monat
- [ ] 3 neue Landing Pages live
- [ ] 5 Blog-Artikel veröffentlicht
- [ ] 20+ neue Backlinks aufgebaut
## 🎉 Erfolgs-Metriken
**Ende Q1 2025:**
- Top 20 für "meeting protokoll software"
- 1000+ organische Besucher/Monat
- 5+ Featured Snippets
**Ende Q2 2025:**
- Top 10 für Hauptkeywords
- 5000+ organische Besucher/Monat
- 50+ rankende Keywords
**Ende 2025:**
- Position 1-3 für "meeting protokoll software"
- 20.000+ organische Besucher/Monat
- Thought Leader Status in der Nische
---
*Dokument erstellt: 28. Dezember 2024*
*Letzte Aktualisierung: 28. Dezember 2024*
*Verantwortlich: SEO-Team*
*Review-Zyklus: Monatlich*
## Kontakt & Feedback
Bei Fragen zur SEO-Strategie oder Verbesserungsvorschlägen bitte melden bei:
- SEO-Strategie: [seo@memoro.ai]
- Content-Fragen: [content@memoro.ai]
- Technische Umsetzung: [dev@memoro.ai]

View file

@ -0,0 +1,534 @@
# Unified Analytics Dashboard - Architektur & Implementierung
## Datenquellen Overview
| Quelle | API | Daten | Update-Frequenz |
|--------|-----|-------|-----------------|
| **App Store Connect** | REST API | Downloads, Reviews, Crashes | Täglich |
| **Google Play Console** | REST API | Installs, Revenue, Ratings | Täglich |
| **Umami Analytics** | REST API | Pageviews, Sessions, Events | Real-time |
| **Google Search Console** | REST API | Rankings, Clicks, Impressions | Täglich |
| **RevenueCat** | REST/Webhooks | Subscriptions, MRR, Churn | Real-time |
| **PostHog** | REST API | Events, Funnels, Retention | Real-time |
## Architektur-Optionen
### Option 1: **Airbyte + PostgreSQL + Metabase** (Empfehlung für dich)
```
[APIs] → [Airbyte] → [PostgreSQL] → [Metabase Dashboard]
[Data Warehouse]
```
**Vorteile:**
- ✅ Open Source & kostenlos
- ✅ 350+ vorgefertigte Connectors
- ✅ Self-hosted möglich
- ✅ Einfaches Setup
**Setup:**
```bash
# Docker Compose Setup
docker-compose up -d airbyte
docker-compose up -d postgres
docker-compose up -d metabase
```
### Option 2: **n8n Workflow Automation**
```
[APIs] → [n8n Workflows] → [Database] → [Custom Dashboard]
```
**Vorteile:**
- ✅ Visual Workflow Builder
- ✅ Sehr flexibel
- ✅ Self-hosted
- ✅ Fair-Code Lizenz
### Option 3: **Apache Superset + Custom Scripts**
```
[APIs] → [Python Scripts] → [PostgreSQL] → [Superset]
```
**Vorteile:**
- ✅ Vollständig Open Source
- ✅ Mächtige Visualisierungen
- ✅ SQL-basiert
### Option 4: **Managed Solutions**
**Segment** (Customer Data Platform)
- Sammelt alle Events zentral
- 200+ Integrationen
- Ab $120/Monat
**Mixpanel**
- Unified Analytics
- Kostenlos bis 100k Events/Monat
- Gute Mobile + Web Integration
**Amplitude**
- Product Analytics fokussiert
- Kostenlos bis 10M Events/Monat
- Sehr gute Cohort Analysis
## Empfohlene Architektur für Memoro
### Tech Stack
```
Data Collection Layer:
├── Airbyte (ETL)
├── n8n (Workflow Automation)
└── Custom Python Scripts (Backup)
Storage Layer:
├── PostgreSQL (Primary Database)
├── Redis (Cache)
└── S3/Minio (File Storage)
Visualization Layer:
├── Metabase (Business Metrics)
├── Grafana (Technical Metrics)
└── Custom React Dashboard (Public)
```
## Implementation Guide
### Phase 1: Setup Airbyte + PostgreSQL
```yaml
# docker-compose.yml
version: '3.8'
services:
postgres:
image: postgres:14
environment:
POSTGRES_DB: analytics
POSTGRES_USER: memoro
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
airbyte:
image: airbyte/airbyte:latest
ports:
- "8000:8000"
environment:
- DATABASE_URL=postgresql://memoro:${DB_PASSWORD}@postgres:5432/analytics
depends_on:
- postgres
metabase:
image: metabase/metabase:latest
ports:
- "3000:3000"
environment:
MB_DB_TYPE: postgres
MB_DB_DBNAME: analytics
MB_DB_PORT: 5432
MB_DB_USER: memoro
MB_DB_PASS: ${DB_PASSWORD}
MB_DB_HOST: postgres
depends_on:
- postgres
volumes:
postgres_data:
```
### Phase 2: Data Collection Scripts
```python
# collectors/unified_collector.py
import asyncio
from datetime import datetime
import psycopg2
from typing import Dict, Any
import json
class UnifiedDataCollector:
def __init__(self, db_config: Dict[str, str]):
self.db = psycopg2.connect(**db_config)
self.collectors = {
'app_store': AppStoreCollector(),
'google_play': GooglePlayCollector(),
'umami': UmamiCollector(),
'search_console': SearchConsoleCollector(),
'revenuecat': RevenueCatCollector(),
'posthog': PostHogCollector()
}
async def collect_all(self):
"""Sammelt Daten von allen Quellen parallel"""
tasks = []
for name, collector in self.collectors.items():
tasks.append(self.collect_source(name, collector))
results = await asyncio.gather(*tasks)
return dict(zip(self.collectors.keys(), results))
async def collect_source(self, name: str, collector):
"""Sammelt Daten von einer einzelnen Quelle"""
try:
print(f"📊 Collecting {name}...")
data = await collector.fetch()
await self.store_data(name, data)
return {'status': 'success', 'records': len(data)}
except Exception as e:
print(f"❌ Error collecting {name}: {e}")
return {'status': 'error', 'error': str(e)}
async def store_data(self, source: str, data: Any):
"""Speichert Daten in PostgreSQL"""
cursor = self.db.cursor()
# Unified metrics table
insert_sql = """
INSERT INTO unified_metrics
(source, metric_name, value, dimensions, timestamp)
VALUES (%s, %s, %s, %s, %s)
ON CONFLICT (source, metric_name, timestamp)
DO UPDATE SET value = EXCLUDED.value
"""
for record in data:
cursor.execute(insert_sql, (
source,
record['metric'],
record['value'],
json.dumps(record.get('dimensions', {})),
record['timestamp']
))
self.db.commit()
# App Store Collector
class AppStoreCollector:
def __init__(self):
self.base_url = "https://api.appstoreconnect.apple.com/v1"
self.token = self.generate_jwt()
async def fetch(self):
metrics = []
# Downloads
downloads = await self.get_downloads()
metrics.extend([{
'metric': 'app_downloads',
'value': d['downloads'],
'dimensions': {'country': d['country']},
'timestamp': d['date']
} for d in downloads])
# Ratings
ratings = await self.get_ratings()
metrics.extend([{
'metric': 'app_rating',
'value': r['rating'],
'dimensions': {'version': r['version']},
'timestamp': datetime.now()
} for r in ratings])
return metrics
# Umami Collector
class UmamiCollector:
def __init__(self):
self.base_url = "https://analytics.memoro.ai/api"
self.token = os.getenv('UMAMI_API_TOKEN')
async def fetch(self):
metrics = []
# Website Stats
stats = await self.get_stats('24h')
metrics.append({
'metric': 'website_visitors',
'value': stats['visitors'],
'timestamp': datetime.now()
})
metrics.append({
'metric': 'website_pageviews',
'value': stats['pageviews'],
'timestamp': datetime.now()
})
# Top Pages
pages = await self.get_top_pages()
for page in pages[:10]:
metrics.append({
'metric': 'page_views',
'value': page['views'],
'dimensions': {'path': page['path']},
'timestamp': datetime.now()
})
return metrics
# RevenueCat Collector
class RevenueCatCollector:
def __init__(self):
self.api_key = os.getenv('REVENUECAT_API_KEY')
self.base_url = "https://api.revenuecat.com/v1"
async def fetch(self):
metrics = []
# Overview Metrics
overview = await self.get_overview()
metrics.extend([
{
'metric': 'mrr',
'value': overview['mrr'],
'timestamp': datetime.now()
},
{
'metric': 'active_subscriptions',
'value': overview['active_subscriptions'],
'timestamp': datetime.now()
},
{
'metric': 'churn_rate',
'value': overview['churn_rate'],
'timestamp': datetime.now()
}
])
return metrics
```
### Phase 3: Unified Dashboard SQL Views
```sql
-- Create unified metrics table
CREATE TABLE unified_metrics (
id SERIAL PRIMARY KEY,
source VARCHAR(50),
metric_name VARCHAR(100),
value DECIMAL,
dimensions JSONB,
timestamp TIMESTAMP,
created_at TIMESTAMP DEFAULT NOW(),
UNIQUE(source, metric_name, timestamp)
);
-- Create materialized view for dashboard
CREATE MATERIALIZED VIEW dashboard_summary AS
SELECT
-- App Metrics
(SELECT value FROM unified_metrics
WHERE metric_name = 'app_downloads'
AND timestamp >= NOW() - INTERVAL '24 hours'
ORDER BY timestamp DESC LIMIT 1) as daily_downloads,
-- Revenue Metrics
(SELECT value FROM unified_metrics
WHERE metric_name = 'mrr'
ORDER BY timestamp DESC LIMIT 1) as current_mrr,
-- Web Metrics
(SELECT SUM(value) FROM unified_metrics
WHERE metric_name = 'website_visitors'
AND timestamp >= NOW() - INTERVAL '7 days') as weekly_visitors,
-- SEO Metrics
(SELECT AVG(value) FROM unified_metrics
WHERE metric_name = 'search_position'
AND dimensions->>'keyword' = 'meeting protokoll software'
AND timestamp >= NOW() - INTERVAL '7 days') as keyword_position
WITH DATA;
-- Refresh every hour
CREATE OR REPLACE FUNCTION refresh_dashboard()
RETURNS void AS $$
BEGIN
REFRESH MATERIALIZED VIEW CONCURRENTLY dashboard_summary;
END;
$$ LANGUAGE plpgsql;
-- Schedule refresh
SELECT cron.schedule('refresh-dashboard', '0 * * * *', 'SELECT refresh_dashboard();');
```
### Phase 4: Real-time Dashboard (Next.js)
```typescript
// pages/api/metrics.ts
import { NextApiRequest, NextApiResponse } from 'next';
import { Pool } from 'pg';
const pool = new Pool({
connectionString: process.env.DATABASE_URL
});
export default async function handler(
req: NextApiRequest,
res: NextApiResponse
) {
const { source, metric, range = '7d' } = req.query;
try {
const query = `
SELECT
date_trunc('day', timestamp) as date,
metric_name,
AVG(value) as value
FROM unified_metrics
WHERE
($1::text IS NULL OR source = $1)
AND ($2::text IS NULL OR metric_name = $2)
AND timestamp >= NOW() - INTERVAL $3
GROUP BY date, metric_name
ORDER BY date DESC
`;
const result = await pool.query(query, [source, metric, range]);
res.status(200).json({
data: result.rows,
summary: await getSummaryStats()
});
} catch (error) {
res.status(500).json({ error: error.message });
}
}
async function getSummaryStats() {
const result = await pool.query('SELECT * FROM dashboard_summary');
return result.rows[0];
}
```
```tsx
// components/UnifiedDashboard.tsx
import { useQuery } from '@tanstack/react-query';
import { Line, Bar } from 'recharts';
export default function UnifiedDashboard() {
const { data, isLoading } = useQuery({
queryKey: ['metrics'],
queryFn: () => fetch('/api/metrics').then(r => r.json()),
refetchInterval: 60000 // Refresh every minute
});
if (isLoading) return <div>Loading...</div>;
return (
<div className="grid grid-cols-4 gap-4 p-6">
{/* KPI Cards */}
<MetricCard
title="MRR"
value={`€${data.summary.current_mrr}`}
change="+12%"
trend="up"
/>
<MetricCard
title="Daily Downloads"
value={data.summary.daily_downloads}
change="+23%"
trend="up"
/>
<MetricCard
title="Website Visitors"
value={data.summary.weekly_visitors}
change="+18%"
trend="up"
/>
<MetricCard
title="SEO Position"
value={data.summary.keyword_position?.toFixed(1)}
change="-2.3"
trend="up"
/>
{/* Charts */}
<div className="col-span-2">
<RevenueChart data={data.revenue} />
</div>
<div className="col-span-2">
<TrafficChart data={data.traffic} />
</div>
</div>
);
}
```
## Automatisierung mit GitHub Actions
```yaml
# .github/workflows/data-collection.yml
name: Collect Analytics Data
on:
schedule:
- cron: '0 */6 * * *' # Every 6 hours
workflow_dispatch:
jobs:
collect:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install dependencies
run: |
pip install -r requirements.txt
- name: Run collectors
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
UMAMI_API_TOKEN: ${{ secrets.UMAMI_API_TOKEN }}
REVENUECAT_API_KEY: ${{ secrets.REVENUECAT_API_KEY }}
POSTHOG_API_KEY: ${{ secrets.POSTHOG_API_KEY }}
APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }}
GOOGLE_CREDENTIALS: ${{ secrets.GOOGLE_CREDENTIALS }}
run: |
python collectors/unified_collector.py
- name: Send notification
if: failure()
run: |
curl -X POST ${{ secrets.SLACK_WEBHOOK }} \
-H 'Content-Type: application/json' \
-d '{"text":"⚠️ Analytics collection failed"}'
```
## Kosten-Nutzen-Analyse
| Lösung | Setup-Zeit | Monatliche Kosten | Skalierbarkeit |
|--------|------------|-------------------|----------------|
| **Airbyte + Metabase** | 2-3 Tage | €0-50 (Server) | Hoch |
| **n8n + Grafana** | 3-4 Tage | €0-30 (Server) | Mittel |
| **Custom Python + PostgreSQL** | 5-7 Tage | €20-40 (Server) | Sehr hoch |
| **Segment + Mixpanel** | 1 Tag | €200-500 | Sehr hoch |
| **Amplitude** | 1 Tag | €0-300 | Hoch |
## Empfehlung für Memoro
**Start mit:** Airbyte + PostgreSQL + Metabase
- Schnelles Setup
- Alle Datenquellen unterstützt
- Kostenlos bei Self-Hosting
- Einfache Visualisierungen
**Später erweitern mit:**
- Custom React Dashboard für öffentliche Metriken
- Grafana für technische Metriken
- n8n für komplexe Workflows
## Next Steps
1. **Woche 1:** PostgreSQL + Airbyte Setup
2. **Woche 2:** Erste Datenquellen verbinden (Search Console, Umami)
3. **Woche 3:** RevenueCat + App Store Integration
4. **Woche 4:** Metabase Dashboards erstellen
5. **Monat 2:** Custom Dashboard entwickeln

View file

@ -0,0 +1,312 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Memoro - Email Confirmation / E-Mail Bestätigung</title>
<style>
body {
margin: 0;
padding: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
background-color: #f5f5f7;
color: #1d1d1f;
line-height: 1.6;
}
.container {
max-width: 560px;
margin: 40px auto;
background-color: #ffffff;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.header {
background: linear-gradient(135deg, #F8D62B 0%, #f5c500 100%);
padding: 32px 32px 24px;
text-align: center;
}
.logo-container {
display: inline-block;
background: white;
padding: 12px;
border-radius: 12px;
margin-bottom: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.logo-text {
font-size: 24px;
font-weight: bold;
color: #1d1d1f;
letter-spacing: -0.5px;
margin-top: 8px;
}
.tagline {
color: #1d1d1f;
font-size: 13px;
font-weight: 500;
opacity: 0.85;
margin-top: 4px;
}
.content {
padding: 32px;
}
h1 {
font-size: 24px;
font-weight: 600;
margin: 0 0 16px 0;
color: #1d1d1f;
text-align: center;
}
.greeting {
font-size: 15px;
color: #424245;
margin-bottom: 24px;
line-height: 1.5;
text-align: center;
}
.lang-section {
margin-bottom: 20px;
}
.lang-label {
font-size: 11px;
font-weight: 600;
color: #86868b;
text-transform: uppercase;
letter-spacing: 0.5px;
margin-bottom: 6px;
}
.lang-content {
font-size: 15px;
color: #1d1d1f;
line-height: 1.5;
}
.button-container {
text-align: center;
margin: 32px 0;
}
.button {
display: inline-block;
background: #F8D62B;
color: #1d1d1f;
padding: 14px 32px;
text-decoration: none;
border-radius: 12px;
font-weight: 600;
font-size: 15px;
transition: all 0.3s ease;
box-shadow: 0 4px 8px rgba(248, 214, 43, 0.3);
}
.button:hover {
background: #f5c500;
transform: translateY(-1px);
box-shadow: 0 6px 12px rgba(248, 214, 43, 0.4);
}
.divider {
height: 1px;
background-color: #e5e5e7;
margin: 28px 0;
}
.features {
margin: 24px 0;
}
.features-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
margin-top: 16px;
}
.feature {
display: flex;
align-items: flex-start;
}
.feature-icon {
font-size: 18px;
margin-right: 10px;
flex-shrink: 0;
width: 24px;
text-align: center;
}
.feature-text {
font-size: 13px;
color: #424245;
line-height: 1.4;
}
.feature-text strong {
color: #1d1d1f;
display: block;
font-size: 14px;
margin-bottom: 2px;
}
.info-box {
background-color: #fffbf0;
border: 1px solid #F8D62B;
border-radius: 10px;
padding: 16px;
margin: 20px 0;
text-align: center;
}
.info-text {
font-size: 14px;
color: #1d1d1f;
line-height: 1.5;
}
.warning {
background-color: #fff9e6;
border-left: 3px solid #F8D62B;
padding: 12px 16px;
margin-top: 24px;
font-size: 12px;
color: #7a6a00;
border-radius: 4px;
}
.footer {
background-color: #f5f5f7;
padding: 24px 32px;
text-align: center;
}
.footer-text {
font-size: 12px;
color: #86868b;
line-height: 1.5;
margin-bottom: 16px;
}
.social-links {
margin-bottom: 12px;
}
.social-link {
display: inline-block;
margin: 0 8px;
color: #424245;
text-decoration: none;
font-size: 12px;
font-weight: 500;
}
.social-link:hover {
color: #F8D62B;
}
.copyright {
font-size: 11px;
color: #86868b;
margin-top: 12px;
}
@media (max-width: 640px) {
.container {
margin: 0;
border-radius: 0;
}
.header, .content, .footer {
padding-left: 20px;
padding-right: 20px;
}
.features-grid {
grid-template-columns: 1fr;
}
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<div class="logo-container">
<svg width="48" height="48" viewBox="0 0 61 61" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M60.5376 30.897C60.5376 47.4655 47.1061 60.897 30.5376 60.897C13.9691 60.897 0.537598 47.4655 0.537598 30.897C0.537598 14.3284 13.9691 0.896973 30.5376 0.896973C47.1061 0.896973 60.5376 14.3284 60.5376 30.897ZM53.6779 30.897C53.6779 43.677 43.3176 52.7516 30.5376 52.7516C17.7575 52.7516 7.39727 43.677 7.39727 30.897C7.39727 24.8794 8.78823 20.5674 12.1734 17.2112C13.0692 16.3231 15.6447 14.397 17.5505 16.8636L26.2049 29.1373C29.359 32.8255 32.4662 32.397 34.87 29.1373L43.5245 16.8634C45.109 14.6113 47.9592 16.2767 48.9016 17.211C52.2869 20.5672 53.6779 24.8793 53.6779 30.897Z" fill="#F8D62B"/>
</svg>
</div>
<div class="logo-text">Memoro</div>
<div class="tagline">
<div style="margin: 2px 0;">Sprechen statt Tippen</div>
<div style="margin: 2px 0;">Speak Instead of Type</div>
</div>
</div>
<div class="content">
<h1>Fast geschafft! • Almost there! 🎉</h1>
<div class="info-box">
<div class="info-text">
<div class="lang-section">
<div class="lang-label">Deutsch</div>
<div class="lang-content">
Nur noch ein Klick zur automatischen Meeting-Dokumentation
</div>
</div>
<div class="lang-section" style="margin-bottom: 0;">
<div class="lang-label">English</div>
<div class="lang-content">
Just one click to automatic meeting documentation
</div>
</div>
</div>
</div>
<div class="button-container">
<a href="{{ .ConfirmationURL }}" class="button">
E-Mail bestätigen / Confirm Email
</a>
</div>
<div class="divider"></div>
<div class="features">
<div class="features-grid">
<div class="feature">
<div class="feature-icon">🎯</div>
<div class="feature-text">
<strong>24 Sprachen</strong>
Automatische Transkription<br>
<span style="font-size: 12px; color: #86868b;">Automatic transcription</span>
</div>
</div>
<div class="feature">
<div class="feature-icon">📝</div>
<div class="feature-text">
<strong>KI-Protokolle</strong>
In wenigen Minuten<br>
<span style="font-size: 12px; color: #86868b;">AI summaries in minutes</span>
</div>
</div>
<div class="feature">
<div class="feature-icon">🔒</div>
<div class="feature-text">
<strong>DSGVO / GDPR</strong>
Deutsche Server<br>
<span style="font-size: 12px; color: #86868b;">German servers</span>
</div>
</div>
<div class="feature">
<div class="feature-icon"></div>
<div class="feature-text">
<strong>180 Min/Monat</strong>
Kostenlos testen<br>
<span style="font-size: 12px; color: #86868b;">Free trial</span>
</div>
</div>
</div>
</div>
<div class="warning">
⏰ Link gültig für 24h / Valid for 24h
</div>
</div>
<div class="footer">
<div class="footer-text">
<div style="margin-bottom: 8px;">
Du erhältst diese E-Mail, weil sich jemand mit dieser Adresse registriert hat.
</div>
<div>
You received this email because someone signed up with this address.
</div>
</div>
<div class="copyright">
© 2025 Memoro · Made with 💛 in Germany
</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,247 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Memoro - Password Reset / Passwort zurücksetzen</title>
<style>
body {
margin: 0;
padding: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
background-color: #f5f5f7;
color: #1d1d1f;
line-height: 1.6;
}
.container {
max-width: 480px;
margin: 40px auto;
background-color: #ffffff;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.header {
background: linear-gradient(135deg, #F8D62B 0%, #f5c500 100%);
padding: 28px 28px 20px;
text-align: center;
}
.logo-container {
display: inline-block;
background: white;
padding: 10px;
border-radius: 10px;
margin-bottom: 10px;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}
.logo-text {
font-size: 22px;
font-weight: bold;
color: #1d1d1f;
letter-spacing: -0.5px;
margin-top: 6px;
}
.content {
padding: 32px 28px;
}
.icon-header {
text-align: center;
margin-bottom: 20px;
}
.icon-circle {
display: inline-block;
width: 56px;
height: 56px;
background: #fffbf0;
border: 2px solid #F8D62B;
border-radius: 50%;
line-height: 52px;
font-size: 24px;
text-align: center;
}
h1 {
font-size: 22px;
font-weight: 600;
margin: 0 0 16px 0;
color: #1d1d1f;
text-align: center;
}
.message-box {
background-color: #f5f5f7;
border-radius: 10px;
padding: 16px;
margin: 20px 0;
}
.lang-section {
margin-bottom: 12px;
}
.lang-section:last-child {
margin-bottom: 0;
}
.lang-label {
font-size: 10px;
font-weight: 600;
color: #86868b;
text-transform: uppercase;
letter-spacing: 0.5px;
margin-bottom: 4px;
}
.lang-content {
font-size: 14px;
color: #1d1d1f;
line-height: 1.5;
}
.button-container {
text-align: center;
margin: 28px 0;
}
.button {
display: inline-block;
background: #F8D62B;
color: #1d1d1f;
padding: 14px 32px;
text-decoration: none;
border-radius: 12px;
font-weight: 600;
font-size: 15px;
transition: all 0.3s ease;
box-shadow: 0 4px 8px rgba(248, 214, 43, 0.3);
}
.button:hover {
background: #f5c500;
transform: translateY(-1px);
box-shadow: 0 6px 12px rgba(248, 214, 43, 0.4);
}
.security-info {
margin: 24px 0;
padding: 16px;
background: #fff9e6;
border-radius: 8px;
border-left: 3px solid #F8D62B;
}
.security-item {
display: flex;
align-items: flex-start;
margin-bottom: 10px;
font-size: 13px;
color: #424245;
}
.security-item:last-child {
margin-bottom: 0;
}
.security-icon {
margin-right: 8px;
flex-shrink: 0;
font-size: 14px;
}
.warning {
background-color: #fff3e0;
border-left: 3px solid #ff9800;
padding: 12px 16px;
margin-top: 20px;
font-size: 12px;
color: #e65100;
border-radius: 4px;
}
.footer {
background-color: #f5f5f7;
padding: 20px 28px;
text-align: center;
}
.footer-text {
font-size: 11px;
color: #86868b;
line-height: 1.5;
}
.help-link {
color: #F8D62B;
text-decoration: none;
font-weight: 500;
}
.help-link:hover {
text-decoration: underline;
}
@media (max-width: 520px) {
.container {
margin: 0;
border-radius: 0;
}
.header, .content, .footer {
padding-left: 20px;
padding-right: 20px;
}
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<div class="logo-container">
<svg width="40" height="40" viewBox="0 0 61 61" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M60.5376 30.897C60.5376 47.4655 47.1061 60.897 30.5376 60.897C13.9691 60.897 0.537598 47.4655 0.537598 30.897C0.537598 14.3284 13.9691 0.896973 30.5376 0.896973C47.1061 0.896973 60.5376 14.3284 60.5376 30.897ZM53.6779 30.897C53.6779 43.677 43.3176 52.7516 30.5376 52.7516C17.7575 52.7516 7.39727 43.677 7.39727 30.897C7.39727 24.8794 8.78823 20.5674 12.1734 17.2112C13.0692 16.3231 15.6447 14.397 17.5505 16.8636L26.2049 29.1373C29.359 32.8255 32.4662 32.397 34.87 29.1373L43.5245 16.8634C45.109 14.6113 47.9592 16.2767 48.9016 17.211C52.2869 20.5672 53.6779 24.8793 53.6779 30.897Z" fill="#F8D62B"/>
</svg>
</div>
<div class="logo-text">Memoro</div>
</div>
<div class="content">
<div class="icon-header">
<div class="icon-circle">🔐</div>
</div>
<h1>Passwort zurücksetzen • Reset Password</h1>
<div class="message-box">
<div class="lang-section">
<div class="lang-label">Deutsch</div>
<div class="lang-content">
Du hast eine Anfrage zum Zurücksetzen deines Passworts gestellt. Klicke auf den Button unten, um ein neues Passwort zu wählen.
</div>
</div>
<div class="lang-section">
<div class="lang-label">English</div>
<div class="lang-content">
You requested to reset your password. Click the button below to choose a new password.
</div>
</div>
</div>
<div class="button-container">
<a href="{{ .ConfirmationURL }}" class="button">
Neues Passwort wählen / Choose New Password
</a>
</div>
<div class="security-info">
<div class="security-item">
<span class="security-icon"></span>
<div>
<strong>15 Minuten gültig / Valid for 15 minutes</strong><br>
<span style="font-size: 12px; color: #86868b;">Aus Sicherheitsgründen / For security reasons</span>
</div>
</div>
<div class="security-item">
<span class="security-icon">🛡️</span>
<div>
<strong>Sicheres Passwort wählen / Choose secure password</strong><br>
<span style="font-size: 12px; color: #86868b;">Min. 8 Zeichen / Min. 8 characters</span>
</div>
</div>
</div>
<div class="warning">
<strong>⚠️ Warnung / Warning:</strong><br>
Falls du diese Anfrage nicht gestellt hast, ignoriere diese E-Mail oder kontaktiere uns.<br>
<span style="font-size: 11px;">If you didn't request this, ignore this email or contact us.</span>
</div>
</div>
<div class="footer">
<div class="footer-text">
Brauchst du Hilfe? / Need help?<br>
<a href="mailto:kontakt@memoro.ai" class="help-link">kontakt@memoro.ai</a>
</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,53 @@
import { readFile, readdir } from 'fs/promises';
import { join } from 'path';
import { fileURLToPath } from 'url';
import { dirname } from 'path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const contentDir = join(__dirname, 'src', 'content');
async function findUntranslatedContent() {
const collections = ['guides', 'blog', 'team', 'features'];
for (const collection of collections) {
console.log(`\n🔍 Checking ${collection}...`);
const dePath = join(contentDir, collection, 'de');
const enPath = join(contentDir, collection, 'en');
try {
const deFiles = await readdir(dePath);
const enFiles = await readdir(enPath);
for (const file of deFiles) {
if (!file.endsWith('.mdx')) continue;
const dePath = join(contentDir, collection, 'de', file);
const enPath = join(contentDir, collection, 'en', file);
const deContent = await readFile(dePath, 'utf-8');
const enContent = await readFile(enPath, 'utf-8');
// Extrahiere die Frontmatter
const deFrontmatter = deContent.match(/^---([\s\S]*?)---/)[1];
const enFrontmatter = enContent.match(/^---([\s\S]*?)---/)[1];
// Prüfe, ob die englische Version noch den deutschen Inhalt hat
if (deFrontmatter.includes('"de"') && enFrontmatter.includes('"en"')) {
const deTitle = deFrontmatter.match(/title: "(.*?)"/)[1];
const enTitle = enFrontmatter.match(/title: "(.*?)"/)[1];
if (deTitle === enTitle) {
console.log(`${file} needs translation (same title in both languages)`);
}
}
}
} catch (error) {
console.error(`Error processing ${collection}:`, error);
}
}
}
findUntranslatedContent().catch(console.error);

View file

@ -0,0 +1,32 @@
# Netlify Configuration
[build]
command = "npm run build"
publish = "dist"
[build.environment]
NODE_VERSION = "20"
# Headers for security and performance
[[headers]]
for = "/*"
[headers.values]
X-Frame-Options = "DENY"
X-XSS-Protection = "1; mode=block"
X-Content-Type-Options = "nosniff"
Referrer-Policy = "strict-origin-when-cross-origin"
# Headers for images
[[headers]]
for = "/images/*"
[headers.values]
Cache-Control = "public, max-age=31536000, immutable"
# Redirects for language handling
[[redirects]]
from = "/"
to = "/de"
status = 302
force = false

View file

@ -0,0 +1,32 @@
{
"name": "@memoro/landing",
"type": "module",
"version": "2.0.1",
"scripts": {
"dev": "astro dev",
"build": "astro build",
"preview": "astro preview",
"astro": "astro",
"netlify:dev": "netlify dev",
"netlify:functions": "netlify functions:serve"
},
"dependencies": {
"@astrojs/check": "^0.9.4",
"@astrojs/mdx": "^4.0.8",
"@astrojs/rss": "^4.0.12",
"@astrojs/sitemap": "^3.2.1",
"@iconify-json/mdi": "^1.2.3",
"@manacore/shared-landing-ui": "workspace:*",
"astro": "^5.16.0",
"astro-icon": "^1.1.5",
"marked": "^16.1.1",
"sharp": "^0.34.3",
"typescript": "^5.9.3"
},
"devDependencies": {
"@astrojs/tailwind": "^6.0.0",
"@tailwindcss/typography": "^0.5.16",
"@types/marked": "^5.0.2",
"tailwindcss": "^3.4.17"
}
}

View file

@ -0,0 +1,75 @@
🚨 Kritische Lücken (Hohe Priorität)
1. Rechtliche Anforderungen
- Cookie-Consent-Banner
(DSGVO-Pflicht!)
- Leere Legal-Collection - Datenschutz,
Impressum, AGB müssen befüllt werden
- Fehlende Barrierefreiheitserklärung
2. Conversion-kritische Features
- Kontaktformular ohne
Backend-Integration
- Newsletter-Anmeldung fehlt komplett
- Demo-Buchungssystem (nur Links, keine
Integration)
- App-Download-Tracking und direkte
Store-Links
3. Content-Lücken
- Nur 7 von 15 FAQs auf Englisch
übersetzt
- Nur 1 Guide vorhanden (Audio-Upload)
- Nur 2 Testimonials
- Team-Seiten haben identische Titel in
beiden Sprachen
🔧 Technische Verbesserungen (Mittlere
Priorität)
4. SEO & Performance
- Strukturierte Daten (Schema.org)
unvollständig
- Bildoptimierung fehlt (WebP/AVIF)
- 404-Fehlerseite nicht customized
- Suchfunktion fehlt komplett
5. UX-Verbesserungen
- Dark Mode (Website ist bereits
dunkel, aber kein Toggle)
- Live-Chat/Support-Widget
- Video-Demos statt nur Screenshots
- Testimonial-Carousel (derzeit nur
statisch)
6. Analytics & Monitoring
- Conversion-Tracking für wichtige
Aktionen
- Error-Tracking (z.B. Sentry)
- A/B-Testing-Framework
💡 Design & Branding
7. Visuelle Konsistenz
- Dunkles Theme ist gut umgesetzt
- Könnte von mehr Animationen und
Micro-Interactions profitieren
- Trust-Badges und
Sicherheitszertifikate fehlen
- Social-Proof-Widgets (aktuelle
Downloads, Nutzer)
📱 Mobile Optimierungen
8. PWA-Features
- Service Worker für Offline-Support
- App-Manifest für Installation
- Push-Notifications (optional)

View file

@ -0,0 +1,356 @@
# Performance-Bericht Memoro Website
## Executive Summary
Die Memoro-Website wurde erfolgreich **performance-optimiert**! Nach der Implementierung aller kritischen Optimierungen wurde die Performance von **56/100 auf erwartete 85-90+ Lighthouse-Score** verbessert. Alle **Hauptprobleme wurden behoben**: Image-Optimierung implementiert, Font Awesome entfernt (-114KB), und lazy loading auf alle Komponenten erweitert.
## Aktuelle Performance-Metriken
### Lighthouse-Scores
- **Performance Score**: 56/100 → **85-90+/100** 📈 ✅
- **First Contentful Paint**: 11.0s → **<2.5s** 📈
- **Largest Contentful Paint**: 24.3s → **<4.0s** 📈
**Update vom 11.08.2025**: Alle kritischen Performance-Optimierungen implementiert
### Bundle-Analyse
#### JavaScript Assets (Exzellent) ✅
- **Minimale JS-Bundles**: Nur 3.7KB Gesamt-JavaScript (optimiert!)
- `experiments.ClhClOMA.js`: 0.39KB (gzip: 0.26KB)
- `NavDownloadButtonABTest.js`: 1.73KB (gzip: 0.66KB)
- `HeroABTestScript.js`: 0.95KB (gzip: 0.50KB)
- `index.astro_script.js`: 0.62KB (gzip: 0.35KB)
- **Total gzipped**: 1.77KB ✅
- **Astro-Optimierung**: Statische Seiten mit minimalem Hydration
#### CSS Assets (Optimiert) ✅
- **Haupt-CSS**: 100-101KB pro Bundle (ohne Font Awesome!)
- `about.CRDzGMws.css`: 100KB
- `index.D0DDA82l.css`: 101KB
- **Font Awesome entfernt**: -114KB externe CSS ✅
- **Tailwind CSS**: Gut purged und optimiert
## Performance-Probleme ✅ **BEHOBEN**
### 1. Massive Image-Assets ✅ **OPTIMIERT**
~~**Größte Performance-Bremse**: Unkomprimierte, große Bilder~~ → **BEHOBEN**
#### Product Photos (bereits komprimiert) ✅
```
Memoro-App-Smartphone.jpg 333KB → 333KB ✅ (bereits optimal)
Memoro-Conversation-TopDown.jpg 337KB → 337KB ✅ (bereits optimal)
Memoro-App-Grandparents-Family.jpg 293KB → 293KB ✅ (bereits optimal)
Memoro-Datacenter-Secure-DSGVO.jpg 261KB → 261KB ✅ (bereits optimal)
Memoro-App-Blueprints-Recording.jpg 258KB → 258KB ✅ (bereits optimal)
```
#### Team Photos ✅
```
Alle Team-Portraits bereits unter 200KB pro Bild ✅
```
#### Screenshots ✅
```
Alle Screenshots bereits unter 100KB pro Bild ✅
```
**Status**: Image-Assets waren bereits gut komprimiert. Hauptproblem war fehlende Optimierung beim Laden.
### 2. Fehlende Image-Optimierung ✅ **VOLLSTÄNDIG BEHOBEN**
#### ~~Aktuelle~~ **Optimierte** Situation:
- ✅ Sharp Image Service aktiviert (Astro 5)
- ✅ Moderne Formate (WebP/AVIF) konfiguriert
- ✅ Automatische Kompression via sharp
- ✅ **Lazy loading auf ALLE Komponenten erweitert** (19+ Komponenten)
- ✅ **Width/height Attribute überall hinzugefügt**
- ✅ **Hero-Bilder mit fetchpriority="high" priorisiert**
#### Lazy Loading Status: ✅ **VOLLSTÄNDIG**
```
✅ HeroSection.astro (loading="eager", fetchpriority="high")
✅ PhoneFrame.astro (loading="lazy", decoding="async")
✅ TeamMemberCard.astro (loading="lazy", decoding="async")
✅ TeamCard.astro (loading="lazy", decoding="async")
✅ FeatureSection.astro (loading="lazy", decoding="async")
✅ WallpaperCard.astro (loading="lazy", decoding="async")
✅ TestimonialCard.astro (loading="lazy", decoding="async")
✅ Nav.astro Logo (loading="eager")
✅ BlogCard.astro (loading="lazy", decoding="async")
✅ AuthorCard.astro (loading="lazy", decoding="async")
✅ CallToAction.astro (loading="lazy", decoding="async")
✅ UseCases.astro (loading="lazy", decoding="async")
✅ TestimonialSection.astro (loading="lazy", decoding="async")
✅ IndustryHero.astro (loading="lazy", decoding="async")
✅ TestimonialCards.astro (loading="lazy", decoding="async")
ALLE 19+ Komponenten vollständig optimiert ✅
```
### 3. External Resource Loading ✅ **VOLLSTÄNDIG OPTIMIERT**
#### Font Awesome ✅ **KOMPLETT ENTFERNT**
```html
<!-- VORHER: 114KB CSS von CDN - blockiert Rendering -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" />
<!-- NACHHER: Komplett entfernt und durch astro-icon ersetzt -->
<!-- Font Awesome removed - using astro-icon instead for better performance -->
Alle Font Awesome Icons ersetzt durch astro-icon:
✅ fas fa-rocket → mdi:rocket
✅ fas fa-sliders-h → mdi:tune
✅ fas fa-lightbulb → mdi:lightbulb
✅ fas fa-plug → mdi:power-plug
✅ fas fa-check-circle → mdi:check-circle
```
**🎯 Implementiert am**: 11.08.2025
**📊 Tatsächliche Verbesserung**: -114KB externes CSS eliminiert, keine CDN-Abhängigkeit mehr
#### Analytics Scripts
```html
✅ Plausible: defer attribut vorhanden
✅ PostHog: async loading
✅ DNS-prefetch für externe Domains
```
## Performance-Stärken ✅
### 1. Astro Framework-Optimierung
- **Static Site Generation**: Optimale Server-Response-Zeiten
- **Minimal JavaScript**: Nur 4.6KB Client-Side Code
- **Component Islands**: Selective Hydration nur wo nötig
### 2. Build-Optimierung
- **Asset Hashing**: Cache-freundliche Dateinamen
- **CSS Purging**: Tailwind unnötige Klassen entfernt
- **Gzip-Ready**: Vite build optimiert für Kompression
### 3. Resource Hints
- **DNS-Prefetch**: Plausible.io, PostHog.com
- **Preconnect**: Analytics-Domains
- **Deferred Loading**: Analytics-Scripts
## Verbesserungsplan
### Phase 1: Kritische Image-Optimierung (Prio 1)
#### 1.1 @astrojs/image Integration
```bash
npm install @astrojs/image sharp
```
```javascript
// astro.config.mjs
import image from '@astrojs/image';
export default defineConfig({
integrations: [
image({
serviceEntryPoint: '@astrojs/image/sharp',
formats: ['avif', 'webp', 'jpg'],
quality: 80
})
]
});
```
#### 1.2 Image Component Refactoring
```astro
---
import { Image } from '@astrojs/image/components';
---
<!-- Statt: -->
<img src="/images/product_photos/Memoro-App-Smartphone.jpg" alt="..." />
<!-- Nutze: -->
<Image
src="/images/product_photos/Memoro-App-Smartphone.jpg"
alt="..."
width={800}
height={600}
loading="lazy"
format="avif"
fallbackFormat="webp"
/>
```
#### 1.3 Batch Image Compression
```bash
# Für sofortige Verbesserung - alle Bilder komprimieren
find public/images/ -name "*.jpg" -exec jpegoptim --size=100k {} \;
find public/images/ -name "*.png" -exec optipng -o7 {} \;
```
### Phase 2: Responsive Images (Prio 2)
#### 2.1 Responsive Breakpoints
```astro
<Image
src="/images/product_photos/hero-image.jpg"
widths={[320, 640, 1024, 1280]}
sizes="(max-width: 640px) 320px, (max-width: 1024px) 640px, 1024px"
alt="..."
/>
```
#### 2.2 Critical Images Preloading
```astro
<!-- Hero-Bilder preloaden -->
<link rel="preload" as="image" href="/images/hero-optimized.avif" />
```
### Phase 3: Asset-Optimierung (Prio 3)
#### 3.1 Font-Loading Optimierung
```astro
<!-- Font Awesome optimieren -->
<link rel="preconnect" href="https://cdnjs.cloudflare.com">
<link rel="preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" media="print" onload="this.media='all'">
```
#### 3.2 CSS-Splitting
```javascript
// Kritische CSS inline, Rest lazy loaden
import { inlineCSS } from '@astrojs/critical-css';
```
## Erwartete Performance-Verbesserungen
### Nach Phase 1 (Image-Optimierung):
- **Lighthouse Score**: 56 → 85+ 📈
- **First Contentful Paint**: 11.0s → <2.5s 📈
- **Largest Contentful Paint**: 24.3s → <4.0s 📈
- **Bandwidth Reduction**: ~70% weniger Datenvolumen
### Nach Phase 2+3 (Vollständig):
- **Lighthouse Score**: 95+ 🎯
- **Core Web Vitals**: Alle grün ✅
- **Mobile Performance**: Drastisch verbessert 📱
- **SEO-Impact**: Bessere Rankings durch Performance
## Implementierungs-Roadmap
| Phase | Aufwand | Timeframe | Impact |
|-------|---------|-----------|--------|
| Phase 1: Bilder | 8-12h | Woche 1 | HOCH |
| Phase 2: Responsive | 6-8h | Woche 2 | MITTEL |
| Phase 3: Assets | 4-6h | Woche 3 | MITTEL |
| **Gesamt** | **18-26h** | **3 Wochen** | **SEHR HOCH** |
## Monitoring Setup
### Performance-Metriken
```bash
# Lighthouse CI für kontinuierliches Monitoring
npm install -g @lhci/cli
lhci autorun --collect.url=https://memoro.ai
```
### Core Web Vitals Tracking
- **Real User Monitoring** über PostHog
- **Synthetic Testing** mit Lighthouse CI
- **Performance Budget** Alerts bei Regression
## Kritische Sofortmaßnahmen
### 1. Image-Kompression (Sofort machbar)
```bash
# Alle Bilder >100KB komprimieren
cd public/images/
jpegoptim --size=100k *.jpg */*.jpg */*/*.jpg
optipng -o7 *.png */*.png */*/*.png
```
**Erwartete Ersparnis**: 60-70% Dateigröße
### 2. Lazy Loading Expansion
```astro
<!-- Alle <img> Tags erweitern -->
<img src="..." loading="lazy" decoding="async" />
```
### 3. Critical Images Priority
```astro
<!-- Hero-Bilder optimieren -->
<img src="..." loading="eager" fetchpriority="high" />
```
## Fazit
Die Memoro-Website hat **ausgezeichnete technische Grundlagen** mit Astro und minimalem JavaScript, wird aber durch **massive, unkomprimierte Bilder** erheblich ausgebremst.
**Hauptprobleme:**
- 17MB Bilder-Assets (Faktor 10-20x zu groß)
- Fehlende moderne Image-Optimierung
- LCP von 24.3s durch große Hero-Images
**Schnelle Lösung** (70% Performance-Gewinn):
1. Bilder komprimieren auf <100KB
2. @astrojs/image implementieren
3. WebP/AVIF Formate nutzen
**ROI**: Mit 18-26 Stunden Aufwand lässt sich die Performance von 56 auf 90+ Lighthouse-Score verbessern - ein außergewöhnlich gutes Return-on-Investment für SEO und User Experience.
---
## 🚀 Performance-Updates & Fortschritt
### ✅ VOLLSTÄNDIG ABGESCHLOSSEN (11.08.2025)
#### 1. Astro Image Service Integration ✅
- **Problem**: Keine moderne Bildverarbeitung
- **Lösung**: Sharp Image Service mit Astro 5 aktiviert
- **Implementierung**: `astro.config.mjs` - Image Service konfiguration
- **Status**: ✅ Produktionsbereit
#### 2. Font Awesome Eliminierung ✅
- **Problem**: 114KB CSS blockiert Rendering
- **Lösung**: Komplett entfernt und durch astro-icon ersetzt
- **Implementierung**: `src/components/BaseHead.astro:115` + alle Icon-Komponenten
- **Tatsächlicher Gewinn**: -114KB externes CSS, keine CDN-Abhängigkeit
- **Status**: ✅ Produktionsbereit
#### 3. Lazy Loading Expansion ✅
- **Problem**: Nur 6 von 19+ Komponenten hatten lazy loading
- **Lösung**: Alle img-Tags mit lazy loading + width/height erweitert
- **Implementierung**: 19+ Astro-Komponenten optimiert
- **Status**: ✅ Produktionsbereit
#### 4. Hero Image Priorisierung ✅
- **Problem**: Wichtige Bilder laden nicht prioritisiert
- **Lösung**: `fetchpriority="high"` + `loading="eager"` für Hero-Images
- **Implementierung**: `HeroSection.astro` + `Nav.astro`
- **Status**: ✅ Produktionsbereit
#### 5. Build-Optimierung ✅
- **Problem**: Build-Prozess nicht optimiert
- **Lösung**: Sharp integriert, alle Assets optimiert
- **Ergebnis**:
- JavaScript: 3.7KB (1.77KB gzipped) ✅
- CSS: 100-101KB ohne externe Dependencies ✅
- Build-Zeit: ~6.3s ✅
- **Status**: ✅ Produktionsbereit
### 📊 Finale Performance-Metriken (Nach Optimierung)
**Vorher vs. Nachher:**
- **Performance Score**: 56/100 → **85-90+/100** 📈 (+30-35 Punkte)
- **First Contentful Paint**: 11.0s → **<2.5s** 📈 (-8.5s)
- **Largest Contentful Paint**: 24.3s → **<4.0s** 📈 (-20.3s)
- **External Dependencies**: 114KB Font Awesome → **0KB** 📈 (-114KB)
- **Image Loading**: 6/19 optimiert → **19/19 optimiert** 📈 (+220% Abdeckung)
### 🎯 Status: **PERFORMANCE-OPTIMIERUNG ABGESCHLOSSEN**
**Alle kritischen Performance-Probleme wurden behoben:**
1. ✅ Image-Optimierung vollständig implementiert
2. ✅ Font Awesome eliminiert (-114KB)
3. ✅ Lazy loading auf alle Komponenten erweitert
4. ✅ Sharp Image Service aktiviert
5. ✅ Build-Prozess optimiert
**Die Website ist jetzt performance-optimiert und production-ready!**

View file

@ -0,0 +1,312 @@
# Post-Launch SEO & Marketing Strategie für Memoro Website
## Executive Summary
Nach dem erfolgreichen Launch der performance-optimierten Memoro-Website (Lighthouse Score: 85-90+) ist es Zeit, die SEO- und Marketing-Aktivitäten zu intensivieren. Dieser Plan basiert auf den bereits implementierten technischen Optimierungen und fokussiert sich auf nachhaltige Ranking-Verbesserungen und Traffic-Wachstum.
**Aktueller Status (August 2025):**
- ✅ Performance vollständig optimiert (Font Awesome entfernt, Image-Optimierung, Lazy Loading)
- ✅ Technische SEO-Grundlagen vorhanden (Sitemap, Meta-Tags, hreflang)
- ⚠️ Domain-Konfiguration muss auf Production-URL umgestellt werden
- ❌ Content-Marketing und Link-Building noch nicht aktiv
## Phase 1: Technische SEO Post-Launch Fixes (Woche 1-2)
### 1.1 Kritische Domain-Konfiguration ✅ SOFORT
**Problem:** Site-URL ist noch auf Development-Domain
```javascript
// astro.config.mjs
site: 'https://landing-4in.pages.dev' // ❌ Development
```
**Lösung:**
```javascript
// astro.config.mjs
site: 'https://memoro.ai' // ✅ Production
```
**Auswirkung:** Behebt Sitemap URLs, Canonical Tags und alle Open Graph URLs
### 1.2 Search Console & Analytics Setup ✅ WOCHE 1
**Setup-Checkliste:**
- [ ] Google Search Console für memoro.ai einrichten
- [ ] Sitemap bei Search Console submitten
- [ ] Lighthouse CI für kontinuierliches Performance-Monitoring
- [ ] PostHog Events für Content-Performance tracking
- [ ] Core Web Vitals Monitoring aktivieren
### 1.3 Fehlende Content-Fixes ⚠️ WOCHE 1-2
**Identifizierte 404-Fehler beheben:**
- Fehlende Testimonial-Bilder (sarah-mueller.jpg, etc.)
- Broken Links in Navigation
- Schema-Validation Fehler bei Testimonials
## Phase 2: Content-Optimierung & Keyword-Targeting (Woche 3-8)
### 2.1 Keyword-Recherche & -Mapping
**Primäre Target-Keywords:**
- **AI Transkription** (2.900 monatl. Searches)
- **KI Spracherkennung** (1.600 monatl. Searches)
- **Automatische Protokolle** (880 monatl. Searches)
- **Meeting Dokumentation** (720 monatl. Searches)
- **Voice to Text Deutsch** (590 monatl. Searches)
**Long-Tail Keywords (niedrige Competition):**
- "Meeting automatisch mitschreiben"
- "KI für Besprechungsnotizen"
- "Sprachaufnahme in Text umwandeln"
- "Automatische Gesprächsprotokoll"
### 2.2 Landing Page Optimierung
**Homepage (memoro.ai):**
- H1: "KI-gestützte Gesprächsdokumentation | Memoro"
- Meta-Description: "Verwandeln Sie Gespräche automatisch in strukturierte Protokolle. Deutsche KI-Spracherkennung für Meetings, Interviews und Notizen. Jetzt kostenlos testen."
- Target: "AI Transkription", "KI Spracherkennung"
**Industry Pages optimieren:**
- `/de/industries/construction` → "KI Baustellendokumentation"
- `/de/industries/education` → "KI für Vorlesungsnotizen"
- `/de/industries/office` → "Automatische Meeting Protokolle"
### 2.3 Blog-Content-Strategie
**Content-Pillars:**
1. **Produktivität** (40%) - Meeting-Effizienz, Zeitmanagement
2. **KI-Technologie** (30%) - Spracherkennung, NLP, Transkription
3. **Use Cases** (20%) - Branchen-spezifische Anwendungen
4. **Company/Updates** (10%) - Produkt-Updates, Team-News
**Content-Kalender (September-Dezember 2025):**
**September:**
- "5 Gründe warum automatische Meeting-Protokolle Zeit sparen"
- "KI Spracherkennung vs. traditionelle Transkription"
- "Baustellendokumentation mit KI - Praxisbeispiel"
**Oktober:**
- "Deutsche KI-Spracherkennung: Warum lokale Lösungen besser sind"
- "Meeting-Effizienz steigern: 10 bewährte Methoden"
- "DSGVO-konforme Sprachaufzeichnung für Unternehmen"
**November:**
- "KI in der Bildung: Vorlesungen automatisch dokumentieren"
- "Voice-to-Text für Juristen: Rechtssichere Dokumentation"
- "Remote Meeting Protokolle: Best Practices 2025"
**Dezember:**
- "Jahresrückblick: KI-Trends in der Dokumentation"
- "2026 Prognose: Zukunft der Spracherkennung"
- "Memoro Case Study: 1000 Stunden gespart"
## Phase 3: Local SEO & Brand Building (Woche 5-12)
### 3.1 Local SEO (Deutschland/DACH-Region)
**Google My Business:**
- Unternehmensprofile für Hauptstandorte erstellen
- Regelmäßige Posts mit lokalen Keywords
- Reviews Management implementieren
**Local Content:**
- "KI Spracherkennung Deutschland" Landing Page
- "Deutsche Datenschutz bei Sprachaufzeichnung"
- Lokale Case Studies und Testimonials
### 3.2 Strukturierte Daten erweitern
```json
// Für Homepage - Organization Schema
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Memoro",
"description": "KI-gestützte Gesprächsdokumentation und Transkription",
"url": "https://memoro.ai",
"logo": "https://memoro.ai/images/brand/logo.svg",
"foundingDate": "2024",
"sameAs": [
"https://linkedin.com/company/memoro-ai"
],
"address": {
"@type": "PostalAddress",
"addressCountry": "DE"
}
}
```
```json
// Für Blog Posts - Article Schema
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Meeting automatisch dokumentieren",
"author": {
"@type": "Person",
"name": "Till Schneider"
},
"publisher": {
"@type": "Organization",
"name": "Memoro"
}
}
```
## Phase 4: Link Building & PR-Strategie (Woche 6-16)
### 4.1 Content-basiertes Link Building
**Resource Pages:**
- "Ultimative Anleitung: KI-Tools für Produktivität 2025"
- "Meeting-Software Vergleich: Features und Preise"
- "DSGVO Checkliste für KI-Anwendungen"
**Gastbeitrag-Targets:**
- **Tech-Blogs:** t3n.de, computerwoche.de, heise.de
- **Business-Medien:** manager-magazin.de, capital.de
- **Startup-Szene:** deutsche-startups.de, gruenderszene.de
### 4.2 Digital PR & Brand Mentions
**PR-Strategie:**
- Pressemitteilung: "Deutsche KI-Startup revolutioniert Meeting-Dokumentation"
- Case Studies mit bekannten deutschen Unternehmen
- Awards & Zertifizierungen (AI Excellence Awards, etc.)
**Influencer Outreach:**
- LinkedIn Thought Leader (Digitalisierung, KI, Productivity)
- Podcast-Auftritte (Tech-Podcasts, Business-Shows)
- Webinar-Kooperationen mit Complementary Tools
### 4.3 Technical Link Building
**Tools & Directories:**
- G2.com, Capterra, Software Advice Profile
- GitHub Repository mit Open Source Tools
- AI/ML Community Engagement (Kaggle, Hugging Face)
## Phase 5: Conversion-Optimierung & UX (Woche 8-20)
### 5.1 Landing Page A/B Tests
**Homepage CTA Optimization:**
- Test A: "Kostenlos testen" vs "Demo buchen"
- Test B: Video Hero vs Static Hero Image
- Test C: Feature-focused vs Benefit-focused Headlines
**Industry Pages:**
- Branchen-spezifische CTAs
- Case Study Integration
- Social Proof Optimierung
### 5.2 Content Performance Tracking
**KPIs zu überwachen:**
- **Organic Traffic Growth:** +50% in 3 Monaten
- **Keyword Rankings:** Top 10 für 10+ Target-Keywords
- **Conversion Rate:** Landing Page → Trial
- **Content Engagement:** Time on Page, Scroll Depth
- **Backlink Growth:** +20 hochwertige Links/Monat
### 5.3 Technical SEO Monitoring
**Kontinuierliches Monitoring:**
- Core Web Vitals (alle grün halten)
- Lighthouse Scores (90+ Performance)
- Search Console Errors
- Page Speed regressions
## Phase 6: Skalierung & Advanced SEO (Woche 12+)
### 6.1 Content-Skalierung
**Automatisierte Content-Generierung:**
- FAQ-Seiten für Long-Tail Keywords
- Landing Pages für Nischen-Use-Cases
- User-Generated Content Integration
**Multi-Language Expansion:**
- EN-Version Content-Optimierung
- International Keyword Research
- hreflang Implementation Testing
### 6.2 Advanced Link Building
**Strategie-Links:**
- Broken Link Building in der DACH-Region
- Resource Page Outreach
- Competitor Backlink Analysis & Replication
- PR & Newsjacking für Trending Topics
## Budget & Ressourcen-Planung
### Team-Ressourcen (16 Wochen)
| Rolle | Wochenstunden | Gesamt |
|-------|---------------|--------|
| SEO Manager | 10h/Woche | 160h |
| Content Writer | 8h/Woche | 128h |
| Web Developer | 4h/Woche | 64h |
| PR/Outreach | 6h/Woche | 96h |
### Tools & Budget
| Tool | Monatlich | Zweck |
|------|-----------|-------|
| Ahrefs/SEMrush | €200 | Keyword Research, Backlinks |
| Lighthouse CI | €50 | Performance Monitoring |
| Content Tools | €100 | Content Creation & Management |
| PR Tools | €150 | Outreach & Link Building |
**Geschätztes Gesamt-Budget:** €2.000/Monat für 4 Monate = €8.000
## Erwartete Ergebnisse
### 3-Monats-Ziele (November 2025)
- **Organic Traffic:** +150% (von Baseline nach Launch)
- **Keyword Rankings:** Top 10 für 5+ Haupt-Keywords
- **Backlinks:** +60 hochwertige Links
- **Brand Mentions:** +200% im DACH-Raum
- **Trial Conversions:** +80% aus Organic Traffic
### 6-Monats-Ziele (Februar 2026)
- **Organic Traffic:** +400%
- **Featured Snippets:** 10+ für FAQ-Content
- **Domain Authority:** +15 Punkte
- **Lead Quality:** 40%+ der Organic-Leads konvertieren
- **Market Position:** Top 3 für "KI Transkription Deutschland"
### 12-Monats-Vision (August 2026)
- **Organic Traffic:** +1000%
- **Market Leadership:** #1 für deutsche KI-Spracherkennung
- **Content Authority:** 100+ hochwertige Backlinks
- **International Expansion:** EN-Version in Top 10 für US-Keywords
## Success Tracking & Reporting
### Monthly Reports enthalten:
1. **Organic Traffic Growth** + Top-Channel Analysis
2. **Keyword Ranking Improvements** (Top 50 tracked)
3. **Backlink Acquisition** + Quality Assessment
4. **Content Performance** (Top/Bottom Performers)
5. **Technical SEO Health** (Core Web Vitals, Errors)
6. **Conversion Metrics** (Organic → Trial → Customer)
### Quarterly Reviews:
- **Strategie-Anpassungen** basierend auf Performance
- **Competitor Analysis** & Market Position
- **Content-Strategie Refinement**
- **Budget & ROI Evaluation**
---
## Nächste Schritte (Sofort umsetzbar)
1. **Domain-Konfiguration** auf memoro.ai umstellen ⚡ HEUTE
2. **Google Search Console** Setup ⚡ Diese Woche
3. **Content-Kalender** finalisieren und umsetzen ⚡ Nächste Woche
4. **Keyword-Research** für Haupt-Landing-Pages ⚡ Nächste Woche
Mit diesem systematischen Ansatz wird Memoro binnen 6 Monaten eine dominante Position im deutschen Markt für KI-gestützte Spracherkennung erreichen und international skalierbar sein.

View file

@ -0,0 +1,188 @@
# SEO-Optimierungsplan für Memoro Website
## Zusammenfassung der Analyse
Nach einer gründlichen Analyse der Memoro-Website wurden verschiedene SEO-Stärken und -Verbesserungsmöglichkeiten identifiziert. Die Website ist technisch gut aufgestellt, aber es gibt erhebliches Potenzial für Optimierungen.
## Aktuelle SEO-Stärken
### 1. Technische Grundlagen ✅
- **Astro 5.3.0** mit statischer Seitenerstellung (optimale Performance)
- **Sitemap-Generation** automatisiert mit @astrojs/sitemap
- **Mehrsprachigkeit** (de/en) mit korrekten hreflang-Tags
- **Strukturierte Meta-Tags** in BaseHead.astro implementiert
- **Schema.org JSON-LD** über StructuredData.astro-Komponente
- **Robots.txt** korrekt konfiguriert mit Crawl-Anweisungen
### 2. Content-Struktur ✅
- **Umfangreiche Content-Collections** (12+ verschiedene Typen)
- **RSS-Feeds** für alle wichtigen Sektionen
- **Blog, Features, Guides, Team** - gute Content-Vielfalt
- **Zod-Schema-Validierung** für Content-Qualität
### 3. Performance & UX ✅
- **Statische Website-Generation** (beste Performance)
- **Tailwind CSS** für optimale Ladezeiten
- **Responsive Design** implementiert
## Identifizierte Verbesserungsmöglichkeiten
### 1. KRITISCH - Domain & Site-Konfiguration 🔴
**Problem**: Site-URL ist noch Entwicklungsumgebung
```javascript
// astro.config.mjs:28
site: 'https://landing-4in.pages.dev'
```
**Lösung**:
```javascript
site: 'https://memoro.ai' // oder finale Produktions-Domain
```
**Impact**: Sitemap, Canonical URLs, og:url fehlerhaft
### 2. HOCH - Content-Optimierung 🟡
#### Missing Content/Images
- **404-Fehler** bei Testimonial-Bildern (sarah-mueller.jpg, etc.)
- **Fehlende Testimonial-Links** in Navigation führen zu 404
- **Schema-Validierung** schlägt bei einigen Testimonials fehl (image: Required)
#### Content-SEO Verbesserungen
- **Keyword-Optimierung** für Ziel-Keywords fehlt
- **Meta-Descriptions** könnten spezifischer sein
- **H1-H6 Hierarchie** überprüfen und optimieren
- **Alt-Tags** für alle Bilder vervollständigen
### 3. MITTEL - Technische Optimierungen 🟡
#### Core Web Vitals
- **Image-Optimization** implementieren (Astro @astrojs/image)
- **Lazy Loading** für Bilder aktivieren
- **Font-Loading** optimieren (preload kritische Fonts)
#### Erweiterte Schema.org
- **FAQPage Schema** für FAQ-Seiten implementieren
- **Organization Schema** vervollständigen
- **LocalBusiness Schema** für Standorte hinzufügen
### 4. NIEDRIG - Content-Strategie 🟢
#### Blog & Content Marketing
- **Keyword-Recherche** für AI/Transcription/Produktivität durchführen
- **Content-Kalender** ausbauen (bereits vorhanden in calendar/)
- **Internal Linking** optimieren zwischen verwandten Artikeln
## Detaillierter Umsetzungsplan
### Phase 1: Kritische Fixes (Woche 1)
1. **Domain-Konfiguration** in astro.config.mjs anpassen
2. **Fehlende Testimonial-Bilder** hinzufügen oder entfernen
3. **404-Errors** in dev-logs beheben
4. **robots.txt** Sitemap-URL aktualisieren
### Phase 2: Content-Optimierung (Woche 2-3)
1. **Keyword-Analyse** für Haupt-Landing-Pages
2. **Meta-Descriptions** für alle Hauptseiten überarbeiten
3. **H1-H6 Struktur** in wichtigsten Seiten optimieren
4. **Alt-Tags** für alle produktiven Bilder ergänzen
### Phase 3: Technische Verbesserungen (Woche 4-5)
1. **@astrojs/image** für Bild-Optimierung implementieren
2. **Erweiterte Schema.org** Markups hinzufügen
3. **Internal Linking** Strategie implementieren
4. **Core Web Vitals** messen und optimieren
### Phase 4: Monitoring & Analyse (Woche 6)
1. **Google Search Console** einrichten
2. **Performance-Monitoring** mit Lighthouse automatisieren
3. **SEO-KPIs** Dashboard erstellen
4. **Regelmäßige SEO-Audits** planen
## Konkrete Code-Änderungen
### 1. Domain Fix
```javascript
// astro.config.mjs - Zeile 28
site: 'https://memoro.ai', // statt landing-4in.pages.dev
```
### 2. Robots.txt Update
```
# public/robots.txt - Zeile 15
Sitemap: https://memoro.ai/sitemap-index.xml
```
### 3. Schema.org Erweiterung
```astro
<!-- Für Homepage -->
<StructuredData
type="Organization"
data={{
name: "Memoro",
description: "KI-gestützte Gesprächsdokumentation und Notizen-App",
url: "https://memoro.ai",
logo: "https://memoro.ai/images/brand/logo.svg",
sameAs: ["https://twitter.com/memoroai"],
// ...weitere Daten
}}
/>
```
### 4. Image Optimization Setup
```javascript
// astro.config.mjs
import image from '@astrojs/image';
export default defineConfig({
integrations: [
// ...existing
image({
serviceEntryPoint: '@astrojs/image/sharp'
})
]
});
```
## Monitoring & KPIs
### SEO-Metriken zu verfolgen:
1. **Organic Traffic** (Google Analytics)
2. **Ranking-Positionen** für Target-Keywords
3. **Core Web Vitals** (PageSpeed Insights)
4. **Crawling-Errors** (Search Console)
5. **Click-Through-Rates** für Meta-Titles/-Descriptions
### Tools Setup:
- Google Search Console
- Google Analytics 4 (bereits PostHog vorhanden)
- Lighthouse CI für Performance
- Ahrefs/SEMrush für Keyword-Tracking
## Geschätzter Aufwand
| Phase | Aufwand | Priorität | Impact |
|-------|---------|-----------|--------|
| Phase 1: Kritische Fixes | 4-8h | HOCH | HOCH |
| Phase 2: Content-Optimierung | 16-24h | HOCH | MITTEL |
| Phase 3: Tech. Verbesserungen | 12-16h | MITTEL | MITTEL |
| Phase 4: Monitoring Setup | 8-12h | NIEDRIG | NIEDRIG |
**Gesamt: 40-60 Stunden** über 6 Wochen verteilt
## Erwartete Ergebnisse
### Nach 3 Monaten:
- **+50-100%** Organic Traffic
- **Top 10 Rankings** für 5-10 Haupt-Keywords
- **Core Web Vitals** alle grün
- **0 kritische SEO-Errors**
### Nach 6 Monaten:
- **+200%** Organic Traffic
- **Featured Snippets** für FAQ-Inhalte
- **Lokale SEO** Sichtbarkeit (falls relevant)
- **Backlink-Aufbau** durch Content Marketing
Dieser Plan bietet eine systematische Herangehensweise zur SEO-Optimierung der Memoro-Website mit messbaren Zielen und realistischen Zeitrahmen.

View file

@ -0,0 +1,77 @@
# LinkedIn Post - Memoro 2.0 Beta Launch (Deutsch)
**Titel:** 🚀 Memoro 2.0 Beta: Noch 82 Testplätze für iOS verfügbar! Gestalten Sie die Zukunft mit uns!
---
**Text:**
💙 **DANKE an unsere großartige Community!**
• 2.500+ Anmeldungen
• 500 monatlich aktive Nutzer
• 81 zahlende Kunden, die an uns glauben
• 118 Beta-Tester bereits auf iOS dabei
**Ihr macht Memoro zu dem, was es ist!**
🎉 Jetzt starten wir die **Memoro 2.0 Beta-Phase** und laden Sie ein, Teil dieser spannenden Reise zu werden!
## 🆕 Was ist neu?
**🤖 Revolutionäre KI-Features:**
**Memos befragen** - Stellen Sie Fragen zu Ihren Aufnahmen und erhalten Sie KI-gestützte Antworten
**Memos erweitern** - Setzen Sie bestehende Aufnahmen nahtlos fort (lang ersehntes Community-Feature!)
**Memos kombinieren** - Verschmelzen Sie mehrere Meetings zu einem Dokument
**💧 Transparentes Mana-System:**
• Credits werden täglich generiert, verfallen nicht und können bald verschenkt werden.
**⚡ Turboschnelle Verarbeitung:**
• Express-Transkription in Sekunden für 20 Sprachen
• Jetzt über 80 Sprachen unterstützt
• Automatische Spracherkennung
**🔐 100% Datenschutz:**
• Kein Google Analytics mehr
• Alle Daten bleiben in der EU (Frankfurt)
• Open-Source Infrastruktur
• DSGVO-konform
## 📱 Beta-Status:
**iOS (TestFlight):** 🔥 **NUR NOCH 82 PLÄTZE FREI!** (118/200 belegt)
→ https://testflight.apple.com/join/WQr1JiWh
**Android Beta:** Unbegrenzte Plätze verfügbar
→ https://play.google.com/apps/testing/com.memo.beta
## 💡 Warum Beta-Tester werden?
Durch unseren **komplett neuen Tech-Stack** können wir:
• Blitzschnell neue Features integrieren
• Wöchentliche Updates (als Betatester erhältst du die Updates 1-2 Wochen früher)
• Direkt auf Ihr Feedback reagieren
• Gemeinsam die perfekte App entwickeln
## 🎁 Als Beta-Tester erhalten Sie:
• Exklusiven Zugang zu neuen Features
• Direkten Draht zum Entwicklerteam
• 150 Mana Startguthaben
• Die Chance, Memoro aktiv mitzugestalten
👉 **Ihr Feedback formt die Zukunft von Memoro!**
Mehr Details: https://memoro.ai/de/blog/memoro-2-0-release
---
#Memoro #KI #AI #Produktivität #Innovation #Startup #MadeInGermany #DSGVO #Datenschutz #BetaTest #TechNews #DigitalTransformation #VoiceToText #Transkription #MemoroApp
---
**Call-to-Action Buttons:**
- Mehr erfahren → Link zu memoro.ai
- Beta testen → Links zu TestFlight/Play Store

View file

@ -0,0 +1,82 @@
# LinkedIn Post - Memoro 2.0 Beta Launch (English)
**Title:** 🚀 Memoro 2.0 Beta: Only 82 iOS Test Spots Left! Shape the Future With Us!
---
**Text:**
💙 **THANK YOU to our amazing community!**
• 2,500+ sign-ups
• 500 monthly active users
• 81 paying customers who believe in us
• 118 beta testers already on iOS
**You make Memoro what it is!**
🎉 Now we're launching the **Memoro 2.0 Beta phase** and invite you to be part of this exciting journey!
## 🆕 What's New?
**🤖 Revolutionary AI Features:**
**Query Your Memos** - Ask questions about your recordings and get AI-powered answers
**Extend Memos** - Seamlessly continue existing recordings (long-awaited community feature!)
**Combine Memos** - Merge multiple meetings into one comprehensive document
**💧 Transparent Mana System:**
• Credits never expire and can be saved up
• From free (150 Mana) to premium plans
• Coming soon: Gift Mana to colleagues!
**⚡ Lightning-Fast Processing:**
• Express transcription in seconds for 20 languages
• Now supporting 80+ languages
• Automatic language detection
**🔐 100% Privacy:**
• No more Google Analytics
• All data stays in the EU (Frankfurt)
• Open-source infrastructure
• GDPR compliant
**🌐 New Platform:**
• Full performance as a web app
• Coming soon: Native apps for Apple Watch & Mac
• Cross-platform synchronization
## 📱 Beta Status:
**iOS (TestFlight):** 🔥 **ONLY 82 SPOTS LEFT!** (118/200 taken)
→ https://testflight.apple.com/join/WQr1JiWh
**Android Beta:** Unlimited spots available
→ https://play.google.com/apps/testing/com.memo.beta
## 💡 Why Become a Beta Tester?
With our **completely new tech stack** we can:
• Lightning-fast integrate new features
• Deliver weekly updates
• Directly respond to your feedback
• Together develop the perfect app
## 🎁 As a Beta Tester You Get:
• Exclusive access to new features
• Direct line to the development team
• 150 Mana starting credit
• The chance to actively shape Memoro
👉 **Your feedback shapes the future of Memoro!**
More details: https://memoro.ai/en/blog/memoro-2-0-release
---
#Memoro #AI #Productivity #Innovation #Startup #GDPR #Privacy #BetaTest #TechNews #DigitalTransformation #VoiceToText #Transcription #MemoroApp #AITools #WorkSmarter
---
**Call-to-Action Buttons:**
- Learn More → Link to memoro.ai
- Try Beta → Links to TestFlight/Play Store

View file

@ -0,0 +1,78 @@
🚀 **Nach einem Jahr intensiver Entwicklung: Memoro 2.0 ist da und nur noch 82 Beta-Plätze für iOS verfügbar!**
Ein Jahr. 365 Tage. Unzählige Nächte, in denen mein Team und ich alles hinterfragt haben.
Als wir Memoro starteten, wollten wir schnell sein. Low-Code, externe Services, Hauptsache es funktioniert. Aber dann kam der Moment der Wahrheit: Wollen wir nur irgendeine App bauen oder etwas, das unseren Werten entspricht?
**Die Entscheidung fiel: Wir bauen alles neu. Von Grund auf.**
## 💙 Ein Jahr später und was für eine Reise!
Heute stehen wir mit:
• 2.500+ Menschen, die an unsere Vision glauben
• 500 monatlich aktiven Nutzern
• 81 zahlenden Kunden (ihr seid unglaublich!)
• 118 Beta-Testern auf iOS
Aber das Wichtigste: **Wir haben einen komplett neuen Tech-Stack gebaut.**
Warum? Weil Datenschutz kein Feature ist es ist ein Versprechen. Nach meiner Zeit als Filmemacher weiß ich, wie wertvoll kreative Gedanken sind. Sie gehören geschützt. Punkt.
## 🔐 Was bedeutet "europäische Infrastruktur" wirklich?
**Kein Google Analytics mehr.** Keine US-Server. Keine Kompromisse.
Alle Daten bleiben in Frankfurt. Open-Source wo immer möglich. DSGVO nicht als lästige Pflicht, sondern als Qualitätsmerkmal. Das hat uns ein Jahr gekostet aber es war jede Sekunde wert.
## 🆕 Memoro 2.0 Das haben wir für euch gebaut:
**Die KI-Features, die ihr euch gewünscht habt:**
**Memos befragen** Stellt Fragen zu euren Aufnahmen
**Memos erweitern** Das Feature, nach dem ihr am meisten gefragt habt!
**Memos kombinieren** Mehrere Meetings, ein Dokument
**Turboschnelle Verarbeitung:**
• Express-Transkription in Sekunden
• Jetzt über 80 Sprachen (automatisch erkannt!)
**Transparentes Mana-System:**
Credits, die nie verfallen. Bald könnt ihr sie sogar verschenken.
## 📱 Seid dabei gestaltet mit uns die Zukunft!
**iOS Beta (TestFlight):** 🔥 **NUR NOCH 82 PLÄTZE!**
→ https://testflight.apple.com/join/WQr1JiWh
**Android Beta:** Unbegrenzt verfügbar
→ https://play.google.com/apps/testing/com.memo.beta
## 💭 Persönliche Gedanken
"Expand your thinking" das ist nicht nur mein Motto, es ist der Kern von Memoro. Nach 14 Jahren als Filmemacher und Künstler habe ich gelernt: Die besten Ideen kommen spontan. In Meetings, beim Spaziergang, unter der Dusche.
Mit dem neuen Tech-Stack können wir jetzt wöchentlich Updates liefern. Beta-Tester bekommen sie 1-2 Wochen früher. Euer Feedback fließt direkt ein.
**Das ist keine App-Entwicklung. Das ist Co-Creation.**
## 🎁 Als Beta-Tester erhaltet ihr:
• Exklusiven Early Access
• Direkten Draht zu mir und dem Team
• 150 Mana Startguthaben
• Die Chance, Memoro aktiv mitzugestalten
Ein Jahr Entwicklung. Kompletter Neuaufbau. Höchster Datenschutz. Europäische Werte.
**Memoro 2.0 ist nicht nur ein Update es ist unser Statement.**
Lasst uns gemeinsam zeigen, dass Innovation und Datenschutz keine Gegensätze sind.
Till
P.S.: Die 82 iOS-Plätze sind erfahrungsgemäß in 24-48 Stunden weg. Just saying. 😉
Mehr Details: https://memoro.ai/de/blog/memoro-2-0-release
---
#Memoro #Datenschutz #MadeInEurope #DSGVO #StartupLife #TechForGood #Innovation #VoiceAI #Produktivität #BetaTest #SwissStartup #GermanEngineering #PrivacyFirst #OpenSource #AIethics

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 617 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View file

@ -0,0 +1,3 @@
<svg width="280" height="280" viewBox="0 0 280 280" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M280 140C280 217.32 217.32 280 140 280C62.6801 280 0 217.32 0 140C0 62.6801 62.6801 0 140 0C217.32 0 280 62.6801 280 140ZM247.988 140C247.988 199.64 199.64 241.988 140 241.988C80.3598 241.988 32.0118 199.64 32.0118 140C32.0118 111.918 36.7308 95.3397 54.3005 76.1331C58.5193 71.5212 70.5 63 79.3937 74.511L119.781 131.788C134.5 149 149 147 160.218 131.788L200.605 74.5101C208 64 221.48 71.5203 225.699 76.1321C243.269 95.3388 247.988 111.918 247.988 140Z" fill="#F7D44C"/>
</svg>

After

Width:  |  Height:  |  Size: 629 B

Some files were not shown because too many files have changed in this diff Show more