Overview
React Native app using Expo, sharing 80% of code with desktop.
New Package
@readied/storage-sqlite-rn
expo-sqlite adapter with same interface as better-sqlite3:
src/
index.ts
database.ts # expo-sqlite wrapper
repositories/
SQLiteNoteRepository.ts
New App
apps/mobile/
app/
_layout.tsx # Root layout
index.tsx # Note list
note/[id].tsx # Note editor
settings.tsx # Settings
components/
NoteList.tsx
NoteEditor.tsx # TextInput (no CodeMirror)
MarkdownPreview.tsx # react-native-markdown-display
hooks/
useNotes.ts # TanStack Query
stores/
navigationStore.ts
providers/
DatabaseProvider.tsx
QueryProvider.tsx
Config Files
app.json - Expo config
metro.config.js - Monorepo support
babel.config.js
eas.json - EAS Build config
Dependencies
"expo": "~52.0.0",
"expo-router": "~4.0.0",
"expo-sqlite": "~14.0.0",
"@tanstack/react-query": "^5.0.0",
"zustand": "^4.5.0",
"react-native-markdown-display": "^7.0.0"
Shared Packages (80% reuse)
- ✅
@readied/core
- ✅
@readied/storage-core
- ✅
@readied/wikilinks
- ✅
@readied/tasks
- ✅
@readied/embeds
- ✅
@readied/sync-core
- ✅
@readied/licensing
Estimate
~104 hours (13 days)
Pre-requisites
Screens
- Note List - All notes, notebooks, search
- Note Editor - Markdown editing with preview
- Settings - Sync, account, preferences
Acceptance Criteria
Overview
React Native app using Expo, sharing 80% of code with desktop.
New Package
@readied/storage-sqlite-rnexpo-sqlite adapter with same interface as better-sqlite3:
New App
apps/mobile/Config Files
app.json- Expo configmetro.config.js- Monorepo supportbabel.config.jseas.json- EAS Build configDependencies
Shared Packages (80% reuse)
@readied/core@readied/storage-core@readied/wikilinks@readied/tasks@readied/embeds@readied/sync-core@readied/licensingEstimate
~104 hours (13 days)
Pre-requisites
Screens
Acceptance Criteria