managarten/apps-archived/memoro/apps/landing/CLAUDE.md
Till-JS 61d181fbc2 chore: archive inactive projects to apps-archived/
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>
2025-11-29 07:03:59 +01:00

112 lines
3.5 KiB
Markdown

# 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