Skip to content

Repository files navigation

Çetele logo

Çetele

Privacy-first, decentralized note-taking on Nostr.

React Native Expo TypeScript Nostr Tools

Download on the App Store

“Privacy is necessary for an open society in the electronic age.” — Eric Hughes, A Cypherpunk's Manifesto (1993)

Çetele encrypts notes on the device and synchronizes them through Nostr relays. It uses versioned NIP-44 authenticated encryption and NIP-59 gift wrapping to reduce metadata exposure.

Features

  • End-to-end encrypted notes
  • Decentralized synchronization through configurable Nostr relays
  • Rich-text editing and local offline cache
  • Biometric app lock on supported devices
  • Secure local key storage on mobile and NIP-07 support on web
  • iOS, Android, and web support
  • No account, email, analytics, or telemetry

Getting started

git clone https://github.com/teskilatsiz/cetele.git
cd cetele
npm install
npm run build:web

Native builds require the corresponding platform tools and Expo Application Services:

eas build --platform ios
eas build --platform android

On first launch, create a Nostr identity, import an existing key, or connect a NIP-07 extension on the web. Back up your private key securely: losing it can make encrypted notes unrecoverable.

Security

Çetele uses NIP-44 v2 (secp256k1 ECDH, HKDF, ChaCha20, HMAC-SHA256, and padding) with NIP-59 gift wrapping. NIP-44 does not provide forward secrecy, post-compromise security, or post-quantum security. A compromised device or exposed private key can reveal note content.

See the NIP-44 specification and NIP-59 specification for protocol details and limitations.

Architecture

┌──────────────────┐
│   Your Device    │
│ Notes + Identity │
└────────┬─────────┘
         │ NIP-44 encrypted
         │ NIP-59 gift-wrapped
         ▼
┌──────────────────┐
│   Nostr Relays   │
│ ┌─────┐ ┌─────┐  │
│ │  A  │ │  B  │  │
│ └─────┘ └─────┘  │
└────────┬─────────┘
         │ encrypted synchronization
         ▼
┌──────────────────┐
│  Another Device  │
│ Decrypts locally │
└──────────────────┘

Project structure

cetele/
├── src/app/          # Expo Router routes and layouts
├── src/components/   # Shared and platform-specific UI
├── src/lib/          # Nostr, encryption, export, and theme services
├── src/locales/      # Localization files
├── assets/images/    # App icons and images
├── app.json          # Expo configuration
└── package.json      # Scripts and dependencies

Sources and references

License

MIT

About

Privacy-first note-taking app built on the Nostr protocol. End-to-end encrypted, censorship-resistant and fully decentralized.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages