managarten/apps/picture/packages
Wuesteon 4cc1ad2c92 🔧 chore: fix turbo infinite recursion and update dependencies
- Remove recursive `turbo run type-check` from parent packages (chat, zitare, voxel-lava)
- Increase turbo concurrency from 2 to 5
- Add documentation for turbo anti-pattern in CLAUDE.md
- Skip type-check temporarily for apps with pending migrations
- Update picture mobile stores to use camelCase API response properties
- Add shared-nestjs-auth dependency to chat and picture backends
- Clean up unused design-token files from picture package
- Update shared-landing-ui components and feedback service config
2025-12-02 02:43:47 +01:00
..
design-tokens 🔧 chore: fix turbo infinite recursion and update dependencies 2025-12-02 02:43:47 +01:00
mobile-ui style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
shared refactor(picture): remove Supabase dependency, migrate to NestJS backend 2025-12-01 14:22:49 +01:00
README.md refactor: restructure 2025-11-26 03:03:24 +01:00

Picture - Shared Packages

This directory contains shared packages used across the picture monorepo.

Packages

@memoro/mobile-ui

React Native UI component library

  • Framework: React Native (Expo) only
  • Components: 17 UI + Navigation components
  • Target: Mobile app (@picture/mobile)
  • Status: Ready to use

Compatible Apps:

  • Mobile (apps/mobile/)
  • Web (apps/web/) - Not compatible
  • Landing (apps/landing/) - Not compatible

Usage:

# From project root
node packages/mobile-ui/cli/bin/cli.js list
node packages/mobile-ui/cli/bin/cli.js add button

Documentation:


@picture/shared

Shared backend logic and types

  • Framework: Framework-agnostic (TypeScript)
  • Content: Supabase types, API client, utilities
  • Target: All apps

Compatible Apps:

  • Mobile (apps/mobile/)
  • Web (apps/web/)
  • Landing (apps/landing/)

Usage:

import { supabase } from '@picture/shared';
import type { Database } from '@picture/shared/types';

Framework Compatibility Matrix

Package Mobile (RN) Web (Svelte) Landing (Astro)
@memoro/mobile-ui Yes No No
@picture/shared Yes Yes Yes

Why Different Compatibility?

@memoro/mobile-ui - React Native Only

Uses React Native primitives that don't work on web:

import { View, Pressable, Text } from 'react-native';
import Animated from 'react-native-reanimated';

@picture/shared - Framework Agnostic

Pure TypeScript/JavaScript, no UI dependencies:

import { createClient } from '@supabase/supabase-js';
export const supabase = createClient(...);

UI Component Strategy

Mobile App

Uses: @memoro/mobile-ui

  • 17 React Native components
  • CLI tool for installation
  • Path: packages/mobile-ui/

Web App

Uses: Own Svelte components

  • Custom Svelte components
  • Path: apps/web/src/lib/components/ui/
  • Examples: Button.svelte, Card.svelte

Landing Page

Uses: Own Astro components

  • Custom Astro components
  • Path: apps/landing/src/components/
  • Examples: Hero.astro, CTA.astro

Future Packages

@memoro/design-tokens (Planned)

Shared design tokens for visual consistency:

packages/design-tokens/
├── colors.ts        # Brand colors
├── spacing.ts       # Spacing scale
├── typography.ts    # Font styles
└── tailwind.preset.js

Would be used by all apps to maintain consistent branding.

Questions?