Skip to content

Commit 53e33d8

Browse files
committed
docs: update CLAUDE.md — Xcode Cloud, entitlements, distros/safari tracked, Plausible
1 parent 8f69e64 commit 53e33d8

1 file changed

Lines changed: 25 additions & 10 deletions

File tree

CLAUDE.md

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ NostrKey browser extension — cross-browser Nostr key management, encrypted vau
77
NostrKey is **the hand that holds the baseball card**. It manages your private keys, signs events, encrypts data, and connects you to your NostrKeep relay and npub.bio identity. Free, open source (MIT), forked from ursuscamp/nostore.
88

99
## Current Version
10-
v1.5.6 — Live on Chrome Web Store, Android (Google Play). iOS + macOS Safari submitted to App Store (pending review, 2026-03-03).
10+
v1.5.9 (build 5.5.0) — Chrome/Firefox live. iOS + macOS Safari resubmitted to App Store 2026-03-17.
1111

1212
## Tech Stack
1313
- Vanilla JS (Alpine.js was removed)
@@ -27,6 +27,8 @@ npm run watch # Watch mode (JS, Safari)
2727
npm run watch-tailwind # Watch mode (CSS)
2828
```
2929

30+
**Important:** After changing extension source code, run `npm run build` and commit the updated `distros/safari/` along with your source changes. Xcode Cloud needs `distros/safari/` in the repo.
31+
3032
## Chrome Dev
3133
1. `npm run build:chrome`
3234
2. `chrome://extensions/` → Developer mode → Load unpacked → `distros/chrome/`
@@ -49,19 +51,23 @@ NIP-01, NIP-04 (deprecated), NIP-07, NIP-19, NIP-44, NIP-46, NIP-49, NIP-78
4951
src/ # Extension source (JS, CSS, HTML)
5052
dev/apple/ # Xcode project (Safari/iOS wrapper)
5153
dev/qa/ # QA automation (screenshot capture/resize)
52-
dev/qa/screenshots/ # App Store screenshots (gitignored except HOWTO.md)
53-
HOWTO.md # Full screenshot capture procedure
54-
macos/ # 2560x1600 (8 screenshots)
55-
iphone/ # 1284x2778 (8 screenshots)
56-
ipad/ # 2048x2732 (8 screenshots)
57-
distros/ # Build output (gitignored)
58-
docs/ # Website, privacy, terms
54+
distros/safari/ # Safari build output (TRACKED in git for Xcode Cloud)
55+
distros/chrome/ # Chrome build output (gitignored)
56+
distros/firefox/ # Firefox build output (gitignored)
57+
docs/ # Website (nostrkey.com), privacy, terms
58+
docs/python.html # Python SDK docs page (nostrkey.com/python)
5959
docs/test.html # Extension test page (nostrkey.com/test)
6060
docs_project_info/ # Project docs (testing, submission, vision)
61+
ci_scripts/ # Xcode Cloud CI scripts
6162
build.js # esbuild config
6263
tailwind.config.js # Tailwind config
6364
```
6465

66+
## Xcode Cloud
67+
- `ci_scripts/ci_post_clone.sh` exists as backup but `distros/safari/` is tracked in git, so Xcode Cloud builds work without running it.
68+
- Builds auto-trigger on push to `main`.
69+
- Archives both iOS and macOS targets.
70+
6571
## Safari / App Store Build
6672
```bash
6773
# Archive for macOS
@@ -83,6 +89,11 @@ xcodebuild archive -project dev/apple/NostrKey.xcodeproj \
8389
- Extension: `com.nostrkey.Extension`
8490
- Team: `H48PW6TC25`
8591

92+
**macOS Entitlements** (Guideline 2.4.5(i)):
93+
- `com.apple.security.app-sandbox` — required
94+
- `com.apple.security.network.client` — outgoing WebSocket connections
95+
- Do NOT add `network.server` — Apple rejects it (NostrKey is client-only)
96+
8697
## Architecture
8798
Extension uses background service worker + sidepanel UI. Mobile apps (iOS/Android) wrap this in dual-WebView architecture with native bridges (IOSBridge.swift / AndroidBridge.kt).
8899

@@ -93,9 +104,13 @@ Extension uses background service worker + sidepanel UI. Mobile apps (iOS/Androi
93104
- Xcode project lives at `dev/apple/NostrKey.xcodeproj`
94105
- WCAG AA contrast, aria-labels, reduced-motion support
95106

107+
## Analytics
108+
Plausible (privacy-friendly, cookieless) on all public docs pages. Script: `pa-IB1d6aIMpkIZgRxSc6Med.js`.
109+
96110
## Related Repos
97-
- `nostrkey.app.ios.src` — iOS app (WKWebView wrapper, v1.1.1)
98-
- `nostrkey.app.android.src` — Android app (WebView wrapper, v1.1.1)
111+
- `nostrkey.app.OC-python.src` — Python SDK for AI entities (v0.2.0, `pip install nostrkey`)
112+
- `nostrkey.app.ios.src` — iOS app (WKWebView wrapper)
113+
- `nostrkey.app.android.src` — Android app (WebView wrapper)
99114
- `nostrkey.bizdocs.src` — business strategy docs
100115
- `npub-bio-landingpage` — npub.bio (uses NostrKey for NIP-07 connect)
101116
- `nostrkeep.srvr.relay.src` — NostrKeep relay (NostrKey points keys here)

0 commit comments

Comments
 (0)