Checklist app with named lists, item suggestions, and sorting. Built with Expo and Bun.
  • TypeScript 96.7%
  • JavaScript 3.3%
Find a file
Airthee 2b65b33aa5
Migrate cursor rules to CLAUDE.md and GUIDELINE.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 22:43:37 +02:00
.claude/skills/gitnexus chore: add gitnexus 2026-04-19 15:59:12 +02:00
.github/workflows 🔧 add contents write permissions 2026-02-23 20:35:13 +01:00
assets 🎉 Init project 2026-02-22 23:01:23 +01:00
scripts 🔧 add release workflow 2026-02-23 18:57:57 +01:00
src Reuse existing item when adding a duplicate label 2026-04-21 22:31:06 +02:00
.gitignore chore: add gitnexus 2026-04-19 15:59:12 +02:00
.release-it.json 🔧 add release:ci 2026-02-23 20:48:18 +01:00
AGENTS.md chore: add gitnexus 2026-04-19 15:59:12 +02:00
app.json 🔧 set initial version 2026-02-23 19:06:45 +01:00
App.tsx 🎉 Init project 2026-02-22 23:01:23 +01:00
bun.lock 🔧 add release workflow 2026-02-23 18:57:57 +01:00
CLAUDE.md Migrate cursor rules to CLAUDE.md and GUIDELINE.md 2026-04-21 22:43:37 +02:00
eas.json 🔧 add release workflow 2026-02-23 18:57:57 +01:00
eslint-err.txt 🎉 Init project 2026-02-22 23:01:23 +01:00
eslint.config.js 🎉 Init project 2026-02-22 23:01:23 +01:00
GUIDELINE.md Migrate cursor rules to CLAUDE.md and GUIDELINE.md 2026-04-21 22:43:37 +02:00
index.ts 🎉 Init project 2026-02-22 23:01:23 +01:00
metro.config.js 🎉 Init project 2026-02-22 23:01:23 +01:00
package.json chore: release v0.2.0 2026-04-21 22:34:04 +02:00
README.md 🔧 add release workflow 2026-02-23 18:57:57 +01:00
svg.d.ts 🎉 Init project 2026-02-22 23:01:23 +01:00
tsconfig.json 🎉 Init project 2026-02-22 23:01:23 +01:00

Nodo (Expo + Bun)

Task list app similar to Google Keep: named lists, check/uncheck items, suggestions from already checked items, sorting (alphabetical / last added). Local storage. Hexagonal architecture for reuse of the business core on the web later.

Stack

  • Bun dependency and script management
  • Expo React Native (Android, iOS, web)
  • TypeScript

Commands

bun install
bun run start    # Expo dev server
bun run android  # Run on Android
bun run ios      # Run on iOS (macOS)
bun run web      # Run on web

Releases (release-it + GitHub)

Les releases sont gérées par release-it : bump de version (package.json + app.json), tag git, push et création de la release GitHub.

bun run release        # interactif (choix du bump, message, etc.)
bun run release -- minor --ci   # bump minor en mode CI (non interactif)

À chaque publication dune release GitHub, une GitHub Action :

  1. Lance un build Android en local (expo prebuild + Gradle) → APK
  2. Attache lartefact nodo-android.apk à la release (pas de publication Play Store)

Aucun secret requis (build en CI, pas EAS).

Android Build

Build in the cloud via Expo Application Services. Requires an Expo account (free).

bunx eas-cli login
bunx eas-cli build:configure   # creates eas.json if needed
bunx eas-cli build --platform android
  • APK (debug or release): add --profile preview or configure a profile in eas.json with "buildType": "apk".
  • AAB (default): for Play Store publication.

Option 2: Local build

Generates the native Android project then builds with Gradle. Prerequisites: Android SDK, ANDROID_HOME environment variable.

bunx expo prebuild --platform android
cd android && ./gradlew assembleRelease

The APK is in android/app/build/outputs/apk/release/. For AAB (Play Store): ./gradlew bundleReleaseandroid/app/build/outputs/bundle/release/.

Structure (hexagonal)

  • src/domain Entities (Checklist, ChecklistItem), no dependencies
  • src/application Ports (storage) and use cases (list, get, save, create, toggle, add/remove item)
  • src/infrastructure Storage adapter (AsyncStorage)
  • src/presentation Theme (overridable), context, screens and React Native components

Domain and application are plain TypeScript, reusable by a future web app.

Theme

Default Material/Android-style theme. To override: wrap the app with <ThemeProvider initialTheme={customTheme}> or use useTheme().setTheme(...).