pull down to refresh

21 sats \ 0 replies \ @PlebTag OP 20 Nov \ parent \ on: Rebuilding Github - but on Nostr nostr
https://github.com/arbadacarbaYK/gittr/blob/main/docs/FILE_FETCHING_INSIGHTS.md#file-opening-flow---correct-strategy-order if you're looking for a more detailed description this might give you some clue as its complicated and can either live within events on ngit servers or link to external sources. Thats the difference import vs. create repo enacts.
User clicks on a file
↓
Strategy 1: Check if file content is embedded in repoData.files array
├─ If found with content → Use embedded content ✅
└─ If not found → Continue to Strategy 2
↓
Strategy 2: Try git-nostr-bridge API
├─ Resolve ownerPubkey:
│ ├─ Check repoData.ownerPubkey
│ ├─ Check localStorage for matching repo
│ ├─ Decode npub from params.entity
│ └─ Fallback to resolveEntityToPubkey utility
├─ Success → Use content from git-nostr-bridge ✅
├─ 404 (not cloned) → Check if GRASP server
│ ├─ If GRASP → Trigger clone → Poll (max 10 attempts, 2s delay) ✅
│ └─ If not GRASP → Continue to Strategy 3
└─ Error → Continue to Strategy 3
↓
Strategy 3: Try external git servers via API proxy
├─ GitHub → /api/git/file-content?sourceUrl=...&path=...&branch=...
├─ GitLab → /api/git/file-content?sourceUrl=...&path=...&branch=...
├─ Codeberg → /api/git/file-content?sourceUrl=...&path=...&branch=...
└─ GRASP → /api/git/file-content?sourceUrl=...&path=...&branch=...
↓
Handle binary vs text files
├─ Binary → Return base64, frontend creates data URL
└─ Text → Return UTF-8 content
yes thats a very good comparison. its about discoverability mostly. fetching from mulitple sources but they can also "live on nostr"
No files are either in an event blob or hybrid, where the blob links to external sources. Thats some rough high level description :P if you click around youll find some of each, in the sidebar youll see where it came from
ofc ive seen it. its mentioned in the readme what i added to it :)
Acknowledgments
Built on NostrGit UI (forked from original)
Uses nostr-relaypool for relay management
Uses gitnostr Go components for Git operations
Implements GRASP Protocol for distributed Git hosting (newer than original NostrGit)
Inspired by GitHub's developer experience
Note: This project (gittr.space) is a fork of NostrGit Page template that has been significantly developed. It is a separate project and platform. Key additions include:
✅ GRASP protocol support (clone/relays tags, client-side proactive sync)
✅ Bitcoin/Lightning payment integration (zaps, bounties)
✅ Enhanced UI features (themes, activity tracking, explore page)
✅ Notification system (Nostr DM, Telegram DM, channel announcements)
✅ All original Go components (git-nostr-bridge, git-nostr-cli, git-nostr-ssh) are included and functional
Maybe this can help you https://github.com/blckbx/NodeTools/blob/main/htlcScan.sh
⚡️ What goes around comes around 🧡 thanks for your work and awesome tutorials @DarthCoin
GENESIS