mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-17 06:59:40 +02:00
Move inactive projects out of active workspace: - bauntown (community website) - maerchenzauber (AI story generation) - memoro (voice memo app) - news (news aggregation) - nutriphi (nutrition tracking) - reader (reading app) - uload (URL shortener) - wisekeep (AI wisdom extraction) Update CLAUDE.md documentation: - Add presi to active projects - Document archived projects section - Update workspace configuration Archived apps can be re-activated by moving back to apps/ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
545 lines
No EOL
12 KiB
Markdown
545 lines
No EOL
12 KiB
Markdown
# 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/
|
|
``` |