Memoneo is a self-hosted notes stack with:
- a CLI to encrypt and sync markdown notes
- an Android app for transcribed voice notes
- backend services for auth and note APIs
- Memoneo CLI - local markdown workflow and sync client
- Memoneo app - Android app for recording and syncing voice notes
@memoneo/shared- shared frontend package used by the app and CLI
- Memoneo API - note API and releaseable backend service
- Memoneo auth - authentication and authorization service
Recording a voice message and uploading it to the Memoneo server:
demo_app.webm.mov
Syncing the text note to your computer via the CLI:
demo_cli.webm.mov
Memoneo uses Changesets for package-based releases.
- From the repo root, run
pnpm changeset. - Select the packages that should be released and choose the version bump.
- Merge the changeset into
main. - GitHub updates the
Version packagesPR. - Merging that PR creates tags like
api@v0.1.0and publishes the release artifacts.
Releaseable packages:
@memoneo/api@memoneo/auth@memoneo/cli@memoneo/app@memoneo/shared
Published artifacts:
api: release tarball and GHCR imageauth: release tarball, binary, and GHCR imagecli: standalone binaries for Linux, macOS, and Windowsapp: Android APKshared: packed.tgzpackage
Recommended checks before merging releaseable work:
cd backend/api
pnpm test
pnpm check
cd ../auth
go test ./...
go build .
cd ../../frontend
pnpm test
pnpm typecheck
pnpm lint
pnpm build:cli
pnpm build:app:android