No description
  • TypeScript 98.2%
  • JavaScript 1.5%
  • Shell 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-24 21:14:38 +02:00
.claude chore: scaffold rollnote-app from the ng-native template 2026-10-13 23:03:17 +02:00
.forgejo/workflows chore: format check in CI, document guards and append-only migrations 2026-10-14 20:26:37 +02:00
assets feat(ui): calm layout, quick frame logging, pages over the tab bar 2026-10-19 22:45:08 +02:00
docs build(android): local release pipeline, derived versionCode, release signing (sub-project 6d) 2026-10-16 13:52:33 +02:00
plugins fix(ui): smaller titles and folder labels, icon-only new shoot button, shorter tab bar 2026-10-20 19:22:52 +02:00
scripts build(android): local release pipeline, derived versionCode, release signing (sub-project 6d) 2026-10-16 13:52:33 +02:00
src feat(changelog): no What's New sheet on launch, the Profile row leads to it 2026-10-24 20:32:59 +02:00
.env.production feat(shell): environments, router and http providers, tab shell 2026-10-14 18:08:44 +02:00
.gitignore build(android): local release pipeline, derived versionCode, release signing (sub-project 6d) 2026-10-16 13:52:33 +02:00
.nvmrc chore: CI workflow, bump to 0.2.0 2026-10-14 19:56:49 +02:00
AGENTS.md chore: scaffold rollnote-app from the ng-native template 2026-10-13 23:03:17 +02:00
app.json feat(shoots): duplicate a frame from its row, release 0.12.0 2026-10-24 20:21:00 +02:00
babel.config.js feat(db): drizzle schema, migrations, database provider 2026-10-14 18:42:53 +02:00
CLAUDE.md feat(changelog): no What's New sheet on launch, the Profile row leads to it 2026-10-24 20:32:59 +02:00
drizzle.config.ts feat(db): drizzle schema, migrations, database provider 2026-10-14 18:42:53 +02:00
eslint.config.mjs chore: scaffold rollnote-app from the ng-native template 2026-10-13 23:03:17 +02:00
LICENSE chore: use the AGPL-3.0 licence like the other Rollnote repos 2026-10-13 23:04:05 +02:00
metro.config.js feat(db): drizzle schema, migrations, database provider 2026-10-14 18:42:53 +02:00
package.json feat(shoots): duplicate a frame from its row, release 0.12.0 2026-10-24 20:21:00 +02:00
pnpm-lock.yaml fix(ui): design review of the shoot and frame screens 2026-10-19 21:27:30 +02:00
pnpm-workspace.yaml chore: approve pnpm build scripts explicitly 2026-10-14 20:00:38 +02:00
README.md chore: CI workflow, bump to 0.2.0 2026-10-14 19:56:49 +02:00
tsconfig.json chore: scaffold rollnote-app from the ng-native template 2026-10-13 23:03:17 +02:00
vitest.config.mts feat(db): drizzle schema, migrations, database provider 2026-10-14 18:42:53 +02:00

rollnote-app

Android app for Rollnote, built with ng-native (Angular on Expo, real native views, no DOM). It is offline-first: SQLite on the device is the source of truth, and a sync engine reconciles it with rollnote-api through the /sync/* endpoints. Sign-in uses Better-Auth (username, password, TOTP).

Prerequisites

  • Node 24+ (see .nvmrc) and pnpm 11
  • Android SDK and an AVD (this machine uses one named rollnote)
  • A running rollnote-api with the sync endpoints, on port 3000

Commands

pnpm start         # Metro dev server
pnpm android       # build and install the debug app on the running emulator
pnpm test          # Vitest (Node, no device needed)
pnpm typecheck     # ngc --noEmit
pnpm lint          # ESLint
pnpm format        # Prettier
pnpm db:generate   # generate a drizzle-kit migration after a schema change

Never set CI=1 for Metro: it disables the file watcher.

Pointing a dev build at the API

The API base URL comes from EXPO_PUBLIC_API_URL, inlined by Expo at build time. It defaults to http://10.0.2.2:3000, which is the host machine as seen from the Android emulator. To use another API:

EXPO_PUBLIC_API_URL=http://192.168.1.20:3000 pnpm android

Branches and CI

Work happens on feature branches and goes through a PR against main. CI does not run on push: add the run-ci label to the PR to run lint, typecheck and tests. After a new push, remove and re-add the label.

More

  • CLAUDE.md for the stack, layout and coding rules
  • AGENTS.md for ng-native's own component rules
  • ../docs/superpowers/specs/2026-10-13-native-foundation-design.md for the design (repo layout, auth, local database, sync engine)