managarten/memoro/apps/web
Till-JS bd869dfe09 feat: unify navigation with shared PillNavigation component
- Add PillNavigation and PillDropdown to @manacore/shared-ui
- Features: glassmorphism design, horizontal/sidebar toggle, collapsible FAB
- Configurable per app: nav items, primary color, logo, language switcher
- Integrate into ManaCore, ManaDeck, and Memoro web apps
- Remove old local navigation components (Sidebar, Navbar, PillNavigation)
- Add navigation stores for persistent user preferences

Apps now share consistent navigation UX with app-specific branding.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 01:31:23 +01:00
..
docs chore: initial commit - consolidate 4 projects into monorepo 2025-11-22 23:38:24 +01:00
src feat: unify navigation with shared PillNavigation component 2025-11-25 01:31:23 +01:00
static chore: initial commit - consolidate 4 projects into monorepo 2025-11-22 23:38:24 +01:00
.env.example chore: initial commit - consolidate 4 projects into monorepo 2025-11-22 23:38:24 +01:00
.gitignore chore: initial commit - consolidate 4 projects into monorepo 2025-11-22 23:38:24 +01:00
.npmrc chore: initial commit - consolidate 4 projects into monorepo 2025-11-22 23:38:24 +01:00
APPLE_SIGNIN_COMPLETE_GUIDE.md chore: initial commit - consolidate 4 projects into monorepo 2025-11-22 23:38:24 +01:00
GOOGLE_SIGNIN_COMPLETE_GUIDE.md chore: initial commit - consolidate 4 projects into monorepo 2025-11-22 23:38:24 +01:00
package.json fix: add missing @manacore/shared-branding dependency to web apps 2025-11-24 22:30:44 +01:00
postcss.config.js feat: unify UI components, AppSlider, and login screens across apps 2025-11-24 21:53:44 +01:00
README.md chore: initial commit - consolidate 4 projects into monorepo 2025-11-22 23:38:24 +01:00
svelte.config.js chore: initial commit - consolidate 4 projects into monorepo 2025-11-22 23:38:24 +01:00
tailwind.config.js Commit Message feat: implement comprehensive shared packages architecture for monorepo SUMMARY: Introduce 10 shared packages to unify common code across all 4 web apps, reducing ~3,000 lines of duplicated code and establishing consistent patterns for authentication, UI components, theming, and utilities. NEW SHARED PACKAGES: - @manacore/shared-auth: Unified auth logic (token management, JWT utils, fetch interceptor, storage/device/network adapters) - @manacore/shared-auth-ui: Reusable auth UI (LoginPage, RegisterPage, OAuth buttons for Google/Apple) - @manacore/shared-tailwind: Unified Tailwind config with 4 themes (lume, nature, stone, ocean) and light/dark mode support - @manacore/shared-icons: Phosphor-based icon library (40+ icons) - @manacore/shared-ui: Atomic design system (Text, Button, Badge, Toggle, Input, Modal) - @manacore/shared-i18n: Unified i18n setup with locale detection - @manacore/shared-config: Environment validation with Zod - @manacore/shared-subscriptio n-types: Subscription type definitions - @manacore/shared-subscriptio n-ui: Subscription UI components (planned) EXTENDED PACKAGES: - @manacore/shared-types: Added auth.ts, theme.ts, ui.ts, common.ts - @manacore/shared-utils: Added format.ts, validation.ts APP MIGRATIONS: - memoro/web: Migrated login (549→46 LOC), tailwind (165→12 LOC), removed 15+ duplicate components - manacore/web: Migrated to client-side auth with shared-auth, added new components (Icon, ThemeToggle, Logo) - manadeck/web: Replaced local authService/tokenManager with shared-auth, migrated auth pages - maerchenzauber/web: Added auth setup, stores, components, routes DELETED FILES (migrated to shared packages): - OAuth buttons (Google/Apple) from memoro, manacore, manadeck - Local authService, tokenManager, deviceManager, jwt utils - Duplicate Modal, Toggle, Text components - iconPaths and ManaIcon components - Subscription-related components (CostCard, PackageCard, etc.) BENEFITS: - 92% reduction in login page code - 93% reduction in tailwind config code - Consistent theming across all apps - Single source of truth for auth logic - Easier maintenance and updates BREAKING CHANGES: - Icon imports now from @manacore/shared-icons - Modal imports from @manacore/shared-ui - OAuth config via setGoogleCl ientId()/setAppleConfig() 2025-11-24 21:09:20 +01:00
tsconfig.json chore: initial commit - consolidate 4 projects into monorepo 2025-11-22 23:38:24 +01:00
vite.config.ts chore: initial commit - consolidate 4 projects into monorepo 2025-11-22 23:38:24 +01:00

Memoro Web - SvelteKit Companion App

Web companion application for Memoro, built with SvelteKit. This is a hybrid architecture where the web app shares the same Supabase backend with the React Native mobile apps.

Architecture

  • Frontend: SvelteKit 2.x + TypeScript
  • Styling: TailwindCSS 3.x
  • Backend: Supabase (shared with mobile apps)
  • State Management: Svelte stores
  • Internationalization: svelte-i18n

Features

Core Features

  • Authentication (Email/Password + OAuth)
  • Audio recording (Web Audio API)
  • Memo management (CRUD operations)
  • Real-time updates (Supabase Realtime)
  • Spaces & collaboration
  • Multi-language support (32 languages)
  • Dark mode + 4 theme variants
  • Responsive design

Web-Specific Features

  • Progressive Web App (PWA) support
  • Server-Side Rendering (SSR)
  • SEO optimization
  • Fast page loads

Getting Started

Prerequisites

  • Node.js 18+
  • npm or pnpm
  • Supabase project (use the same one as mobile apps)

Installation

  1. Clone the repository

  2. Install dependencies:

    npm install
    
  3. Copy .env.example to .env and add your Supabase credentials:

    cp .env.example .env
    
  4. Start the development server:

    npm run dev
    
  5. Open http://localhost:5173

Build for Production

npm run build
npm run preview

Project Structure

memoro-web/
├── src/
│   ├── lib/
│   │   ├── components/      # Reusable Svelte components
│   │   ├── stores/          # Svelte stores for state management
│   │   ├── services/        # API services (Supabase, etc.)
│   │   └── utils/           # Utility functions
│   ├── routes/
│   │   ├── (public)/        # Public routes (login, register)
│   │   ├── (protected)/     # Protected routes (dashboard, memos)
│   │   ├── +layout.svelte   # Root layout
│   │   └── +page.svelte     # Home page
│   ├── app.css              # Global styles (TailwindCSS)
│   └── app.html             # HTML shell
├── static/                  # Static assets
└── package.json

Deployment

  1. Push to GitHub
  2. Connect to Vercel
  3. Add environment variables
  4. Deploy

Netlify

  1. Push to GitHub
  2. Connect to Netlify
  3. Build command: npm run build
  4. Publish directory: build
  5. Add environment variables
  6. Deploy

License

Proprietary - All rights reserved