# templasan/pixelmorph architecture

> Architecture diagram of the GitHub repository templasan/pixelmorph, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/templasan/pixelmorph
- Repository: https://github.com/templasan/pixelmorph

## Overview

PixelMorph is a React Native mobile photo/video editor. Its principal workflow is navigating to a project, editing media non-destructively, and exporting the result; the README also describes camera capture, AI features, offline use, collaboration, and community sharing. The graph combines those documented capabilities with the modules and screens visible in the tree. Only selected source was sampled, so links between screens and feature modules are limited where call wiring could not be verified.

Main entry points: [`src/app/navigation/RootNavigator.tsx`](https://github.com/templasan/pixelmorph/blob/main/src/app/navigation/RootNavigator.tsx) (Root navigation), [`src/modules/photo-editor`](https://github.com/templasan/pixelmorph/tree/main/src/modules/photo-editor) (Photo editing), [`src/app/App.tsx`](https://github.com/templasan/pixelmorph/blob/main/src/app/App.tsx) (App shell), [`src/app/screens/StorageScreen.tsx`](https://github.com/templasan/pixelmorph/blob/main/src/app/screens/StorageScreen.tsx) (Storage and integrity)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App shell"]
  node_app["App shell<br/>[App.tsx]"]
  node_navigator["Root navigation<br/>[RootNavigator.tsx]"]
end

subgraph group_projects["Projects and media"]
  node_project_screen["Projects screen<br/>[ProjectsScreen.tsx]"]
  node_project_module["Project management"]
  node_project_store[("Local project store")]
  node_storage_screen["Storage and integrity<br/>[StorageScreen.tsx]"]
end

subgraph group_editing["Editing tools"]
  node_photo_screen["Photo editor screen"]
  node_photo_module["Photo editing"]
  node_history["Undo and redo"]
  node_presets[("Presets storage")]
  node_recent_adjustments[("Recent adjustments")]
  node_video_screen["Video editor screen"]
  node_video_module["Video editing"]
  node_ai_module["AI capabilities"]
end

subgraph group_media["Capture and export"]
  node_camera_screen["Camera screen<br/>[CameraScreen.tsx]"]
  node_camera_module["Camera capture"]
  node_export_module["Media export"]
end

subgraph group_support["Account and community"]
  node_account["Account and access<br/>[AccountScreen.tsx]"]
  node_community["Community"]
  node_tutorials["Tutorials and help"]
end

node_user(("Mobile user"))

node_user -->|"opens app"| node_app
node_app -->|"renders"| node_navigator
node_navigator -->|"routes to"| node_project_screen
node_navigator -->|"routes to"| node_photo_screen
node_navigator -->|"routes to"| node_video_screen
node_navigator -->|"routes to"| node_camera_screen
node_navigator -->|"routes to"| node_storage_screen
node_navigator -->|"routes to"| node_account
node_navigator -->|"routes to"| node_community
node_navigator -->|"routes to"| node_tutorials
node_project_module -->|"persists projects"| node_project_store
node_storage_screen -->|"checks integrity"| node_project_store
node_photo_module -->|"records edits"| node_history
node_photo_module -->|"stores presets"| node_presets
node_photo_module -->|"stores adjustments"| node_recent_adjustments
node_camera_module -->|"supports capture"| node_camera_screen
node_video_module -->|"exports video"| node_export_module
node_photo_module -->|"exports image"| node_export_module

click node_app "https://github.com/templasan/pixelmorph/blob/main/src/app/App.tsx"
click node_navigator "https://github.com/templasan/pixelmorph/blob/main/src/app/navigation/RootNavigator.tsx"
click node_project_screen "https://github.com/templasan/pixelmorph/blob/main/src/app/screens/ProjectsScreen.tsx"
click node_project_module "https://github.com/templasan/pixelmorph/tree/main/src/modules/projects"
click node_project_store "https://github.com/templasan/pixelmorph/blob/main/src/modules/projects/infrastructure/repositories/LocalProjectRepository.ts"
click node_storage_screen "https://github.com/templasan/pixelmorph/blob/main/src/app/screens/StorageScreen.tsx"
click node_photo_screen "https://github.com/templasan/pixelmorph/blob/main/src/app/screens/PhotoEditorScreen.tsx"
click node_photo_module "https://github.com/templasan/pixelmorph/tree/main/src/modules/photo-editor"
click node_history "https://github.com/templasan/pixelmorph/blob/main/src/core/history/usePersistedHistory.ts"
click node_presets "https://github.com/templasan/pixelmorph/blob/main/src/infrastructure/repositories/AsyncStoragePresetsRepository.ts"
click node_recent_adjustments "https://github.com/templasan/pixelmorph/blob/main/src/infrastructure/repositories/AsyncStorageRecentAdjustmentsRepository.ts"
click node_video_screen "https://github.com/templasan/pixelmorph/blob/main/src/app/screens/VideoEditorScreen.tsx"
click node_video_module "https://github.com/templasan/pixelmorph/tree/main/src/modules/video-editor"
click node_camera_screen "https://github.com/templasan/pixelmorph/blob/main/src/app/screens/CameraScreen.tsx"
click node_camera_module "https://github.com/templasan/pixelmorph/tree/main/src/modules/camera"
click node_export_module "https://github.com/templasan/pixelmorph/tree/main/src/modules/export"
click node_ai_module "https://github.com/templasan/pixelmorph/tree/main/src/modules/ai"
click node_account "https://github.com/templasan/pixelmorph/blob/main/src/app/screens/AccountScreen.tsx"
click node_community "https://github.com/templasan/pixelmorph/blob/main/src/app/screens/CommunityScreen.tsx"
click node_tutorials "https://github.com/templasan/pixelmorph/blob/main/src/app/screens/TutorialsScreen.tsx"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_navigator,node_user toneBlue
class node_project_screen,node_project_module,node_project_store,node_storage_screen toneAmber
class node_photo_screen,node_photo_module,node_history,node_presets,node_recent_adjustments,node_video_screen,node_video_module,node_ai_module toneMint
class node_camera_screen,node_camera_module,node_export_module toneRose
class node_account,node_community,node_tutorials toneIndigo
```

## Components

### App shell

- [App shell](https://github.com/templasan/pixelmorph/blob/main/src/app/App.tsx): `src/app/App.tsx`
- [Root navigation](https://github.com/templasan/pixelmorph/blob/main/src/app/navigation/RootNavigator.tsx): `src/app/navigation/RootNavigator.tsx`

### Projects and media

- [Projects screen](https://github.com/templasan/pixelmorph/blob/main/src/app/screens/ProjectsScreen.tsx): `src/app/screens/ProjectsScreen.tsx`
- [Project management](https://github.com/templasan/pixelmorph/tree/main/src/modules/projects): `src/modules/projects`
- [Local project store](https://github.com/templasan/pixelmorph/blob/main/src/modules/projects/infrastructure/repositories/LocalProjectRepository.ts): `src/modules/projects/infrastructure/repositories/LocalProjectRepository.ts`
- [Storage and integrity](https://github.com/templasan/pixelmorph/blob/main/src/app/screens/StorageScreen.tsx): `src/app/screens/StorageScreen.tsx`

### Editing tools

- [Photo editor screen](https://github.com/templasan/pixelmorph/blob/main/src/app/screens/PhotoEditorScreen.tsx): `src/app/screens/PhotoEditorScreen.tsx`
- [Photo editing](https://github.com/templasan/pixelmorph/tree/main/src/modules/photo-editor): `src/modules/photo-editor`
- [Undo and redo](https://github.com/templasan/pixelmorph/blob/main/src/core/history/usePersistedHistory.ts): `src/core/history/usePersistedHistory.ts`
- [Presets storage](https://github.com/templasan/pixelmorph/blob/main/src/infrastructure/repositories/AsyncStoragePresetsRepository.ts): `src/infrastructure/repositories/AsyncStoragePresetsRepository.ts`
- [Recent adjustments](https://github.com/templasan/pixelmorph/blob/main/src/infrastructure/repositories/AsyncStorageRecentAdjustmentsRepository.ts): `src/infrastructure/repositories/AsyncStorageRecentAdjustmentsRepository.ts`
- [Video editor screen](https://github.com/templasan/pixelmorph/blob/main/src/app/screens/VideoEditorScreen.tsx): `src/app/screens/VideoEditorScreen.tsx`
- [Video editing](https://github.com/templasan/pixelmorph/tree/main/src/modules/video-editor): `src/modules/video-editor`
- [AI capabilities](https://github.com/templasan/pixelmorph/tree/main/src/modules/ai): `src/modules/ai`

### Capture and export

- [Camera screen](https://github.com/templasan/pixelmorph/blob/main/src/app/screens/CameraScreen.tsx): `src/app/screens/CameraScreen.tsx`
- [Camera capture](https://github.com/templasan/pixelmorph/tree/main/src/modules/camera): `src/modules/camera`
- [Media export](https://github.com/templasan/pixelmorph/tree/main/src/modules/export): `src/modules/export`

### Account and community

- [Account and access](https://github.com/templasan/pixelmorph/blob/main/src/app/screens/AccountScreen.tsx): `src/app/screens/AccountScreen.tsx`
- [Community](https://github.com/templasan/pixelmorph/blob/main/src/app/screens/CommunityScreen.tsx): `src/app/screens/CommunityScreen.tsx`
- [Tutorials and help](https://github.com/templasan/pixelmorph/blob/main/src/app/screens/TutorialsScreen.tsx): `src/app/screens/TutorialsScreen.tsx`

### Other components

- **Mobile user**

## Connections

- Mobile user → App shell: opens app
- App shell → Root navigation: renders
- Root navigation → Projects screen: routes to
- Root navigation → Photo editor screen: routes to
- Root navigation → Video editor screen: routes to
- Root navigation → Camera screen: routes to
- Root navigation → Storage and integrity: routes to
- Root navigation → Account and access: routes to
- Root navigation → Community: routes to
- Root navigation → Tutorials and help: routes to
- Project management → Local project store: persists projects
- Storage and integrity → Local project store: checks integrity
- Photo editing → Undo and redo: records edits
- Photo editing → Presets storage: stores presets
- Photo editing → Recent adjustments: stores adjustments
- Camera capture → Camera screen: supports capture
- Video editing → Media export: exports video
- Photo editing → Media export: exports image
