# Project pack: Standard Notes @ 8929036

Facts about **Standard Notes** for an AI following the [BespokeAI handover guide](https://handoff.bespokeai.software/guide/v2.md). This pack is pinned to one version and never changes after publication.

> Standard Notes is a minimalist, privacy-first notes app. Everything you write is encrypted on your device before it syncs, and apps are available for web, desktop and phones. The app and its encryption library are open source and independently audited.

## Version and source
- Repository: https://github.com/standardnotes/app
- Pinned commit: `8929036bd13900789528f6b00ecedecf1b3c7652`. Use exactly this version.
- Fresh checkout: use the setup below in an empty folder. If you already have this exact source checked out, keep your branch and use the development command instead; do not clone again or reset local changes.
- Or download a zip: https://github.com/standardnotes/app/archive/8929036bd13900789528f6b00ecedecf1b3c7652.zip
- Official docs: https://standardnotes.com/help
- Live demo: https://app.standardnotes.com/. The official web app. Create a free account; don't reuse an important password.
- Licence: **AGPL-3.0-only**. Free to use and change. If other people use your changed version, including over a network (for example a website you host for them), you must offer them your source code under the same licence. Using it privately for yourself or your household has no extra obligations.

## Running the pinned source
- Fresh pinned-source setup (skip clone and checkout in an existing worktree):

  ```sh
  git clone https://github.com/standardnotes/app bespoke-standard-notes
  cd bespoke-standard-notes
  git checkout --detach 8929036bd13900789528f6b00ecedecf1b3c7652
  # Prepare development requirements and local configuration first.
  yarn install
  yarn build:web
  yarn start:web
  ```

The commands below are a starting point from the reviewed source. Prepare the listed tools, local configuration and companion services before starting the app. These instructions have not yet been validated in participant sessions.

### Separate trial of the current release
This tries an upstream release, which may differ from the pinned source above. It does not run your source changes. Use only sample data and a separate data directory or volume. Check the upstream documentation before running it.

  ```sh
  Open https://app.standardnotes.com and create a free account, or download a desktop app from https://standardnotes.com/download.
  ```

- Needs: Node 22 and Yarn for development
- Develop: `yarn start:web`
- Test: `yarn test`
- Check/lint: `yarn lint`
- Build: `yarn build:web`
- Stack: typescript (React, Electron, React Native, Yarn workspaces, Lerna). Difficulty for a non-developer with an AI: **advanced**. A Yarn monorepo with web, desktop and mobile apps plus the encryption library (snjs). Appearance and editors are extension points; core changes need care because they touch encryption.

## Customisation points (settings → extend → code)
- **themes-and-editors** [extend]: Colours, layouts and alternative editors such as Markdown or tasks. → `Extensions manager (theme and editor packages)`
- **backups-and-import** [settings]: Automatic encrypted backups and imports from other apps. → `Preferences → Backups`
- **web-ui** [code]: Navigation, lists and note screens. → `packages/web/src`
- **app-core** [code]: Sync and encryption behaviour (take great care). → `packages/snjs and packages/services`

## Must keep working
- End-to-end encryption in packages/snjs and packages/encryption.
- Account and sync flows.
- Offline editing and conflict handling.

## Staying updatable
Use themes and editor extensions where possible. Treat encryption and sync code as off limits unless you are an expert.

## Data, costs and safety
- Personal data: **yes**. Stored in: Encrypted notes in the sync server and an encrypted local copy on each device. If you lose your password, nobody can recover your notes. Keep an offline encrypted backup.
- Service: Standard Notes sync server (required, free tier; paid plans add editors and features): Keeps encrypted notes in step across devices.
- Never paste your password, keys or session tokens into an AI chat.
- Changes to encryption or sync can make notes unreadable. Test only with a throwaway account.

---

# Customising Standard Notes

Standard Notes keeps its code in a Yarn monorepo. Most personal customising is done with themes and editor extensions. Edit source only for interface changes, and avoid the encryption libraries.

## How the code is laid out

| You want to change… | Look in |
|---|---|
| Web app screens | packages/web/src/ |
| Desktop shell | packages/desktop/ |
| Mobile app | packages/mobile/ |
| Sync, accounts and note models | packages/snjs/, packages/models/, packages/services/ |
| Encryption | packages/encryption/ and packages/sncrypto-*/ (do not change) |
| Themes and editors | packages/features/ and the extensions manager |

## Use the gentlest change first

1. **Settings (no code):** backups, themes, editors, and import.
2. **Extend:** install or build a theme or editor package.
3. **Code:** web interface changes in `packages/web`.

## Recipes

- **New theme:** copy an existing theme package's CSS variables and change the colours.
- **New list layout:** work in `packages/web/src` components, reusing existing hooks for notes.

## Running and checking your changes

- `yarn start:web` runs the web app locally against the hosted sync server or your own test account.
- `yarn lint` and `yarn test` for the package you changed.
- Verify you can still sign out, sign in and see your notes on another device.

## Pitfalls

- Use a throwaway account for experiments.
- Never log or print decrypted note content.

---
Machine-readable: [bespoke.yaml](https://handoff.bespokeai.software/p/standard-notes/8929036/r2/bespoke.yaml) · Hosting options: [hosting.md](https://handoff.bespokeai.software/p/standard-notes/8929036/r2/hosting.md) · Agent skill: [SKILL.md](https://handoff.bespokeai.software/p/standard-notes/8929036/r2/SKILL.md)
