Skip to content

Developer Spotlight: Dan Conway, ngit - #943

Open
dergigi wants to merge 31 commits into
masterfrom
developer-spotlight-dan-conway-ngit
Open

dergigi wants to merge 31 commits into
masterfrom
developer-spotlight-dan-conway-ngit

Conversation

@dergigi

@dergigi dergigi commented Sep 11, 2026

Copy link
Copy Markdown
Member

Adds a developer spotlight for Dan Conway, covering his work on ngit and GRASP, GitWorkshop.dev, and a walkthrough for mirroring GitHub repositories over nostr. Publication date: September 18, 2026.

Includes a wide hero illustration and a matching OpenSats Spotlight social preview. Also lets the homepage render posts without a cover image.


Build preview:

@vercel

vercel Bot commented Sep 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
os-website Ready Ready Preview Sep 18, 2026 4:18pm UTC

Request Review

@dergigi
dergigi requested a review from a team September 11, 2026 13:44
@dergigi dergigi self-assigned this Sep 11, 2026
Corrections, each checked against the linked source:
- OpenSats first funded ngit in July 2023, not July 2024 (First Wave of
  Nostr Grants). Move the grant to its place in the timeline and drop the
  "big news" framing around the April 2024 note, which is unrelated to it.
- Bitchat: India ordered GitHub to geoblock the repositories, not take
  them down (Rest of World; order of 23 July).
- ngit's rewrite began in September 2023; the "let git be git" note is
  from January 2024, so "announced" becomes "began".
- The AI agent's first pull request was opened 25 July and merged 28 July
  2026; describe that instead of the keypair date.
- Tornado Cash: complete the sentence -- the Fifth Circuit ruled the
  sanction unlawful.
- Encryption sat on the US Munitions List in a different category from
  missiles; say "munitions list".
- Dan's daughters learned binary, not Morse code.

Quotes:
- Match every nostr-linked quote to its note. Correct four obvious typos
  silently, bracket one word ([mediation]), and combine the two-line
  "Let git be git" quote into one.
- Remove literal quotation marks from two blockquotes; the site's
  typography adds its own, so they rendered doubled.
- Drop the 45-minute sync clause.

Tutorial:
- The installer prints "[INFO] Installed ngit v3.0.1 to ..."; the message
  previously quoted does not exist in install.sh.
- nak key encrypt prints the ncryptsec; it does not save a file.
- ngit pushes to a GitHub mirror over SSH, so an SSH key is required
  (ngit.dev/repositories/mirroring). Link step 4 to that guide.
- Link "free community servers" to gitnostr.com. Drop the Git Bash aside:
  install.sh has no Windows branch.

Links and copy:
- Link GRASP to the Thirteenth Wave announcement and ngit.dev/grasp once,
  at first mention. Link the first "nostr", "ngit" and "Git" to their
  OpenSats pages, "nostrverse" to fiatjaf's explainer, and one article
  quote to its section anchor.
- Lowercase "nostr", straight apostrophes, "GitHub" capitalisation, and
  small grammar fixes throughout. Tighten the intro, remove the "Because
  Nostr, being this open protocol" paragraph, and trim two biographical
  details.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A link cannot span a paragraph break; the blank line inside the blockquote left the bracket unclosed and rendered the reference name as text.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The sidebar repeated the body's long blockquotes word for word. It now carries five short lines in Dan's own words that are not blockquotes in the body, matching the other spotlight posts. Also removes '(via nostr key pairs)'.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Replace the 'powerful forces' fragment and the 'Let git be git' line (a body blockquote) with two other lines of Dan's that do not repeat the body.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Replace the Fifth Circuit opinion PDF with Jones Day's note on the decision ("Immutable Code Is Not Property"), which states the outcome up front and carries no ads or paywall.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

@auntydonna015 auntydonna015 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

triple fact-checked everything, dates, quotations, formatting...
next time I'll be editing this it will be to add pictures
pending Dan's ACK

@auntydonna015 auntydonna015 self-assigned this Sep 13, 2026
Author's rewording of the paragraph on GRASP's first release, the rewrite, the v3/v4 launch, and the AI note; links unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@auntydonna015

Copy link
Copy Markdown

would love your review @jonatack if you have time, no worries if not 🙏

August 2026 had three outages (6, 17 and 26 Aug); say so, and link The Register's 26 Aug report, which recaps the month, instead of a single status-page incident.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Comment thread data/blog/developer-spotlight-dan-conway-ngit.mdx
Comment thread data/blog/developer-spotlight-dan-conway-ngit.mdx Outdated
Comment thread data/blog/developer-spotlight-dan-conway-ngit.mdx Outdated
Comment thread data/blog/developer-spotlight-dan-conway-ngit.mdx
Comment thread data/blog/developer-spotlight-dan-conway-ngit.mdx Outdated
Comment thread data/blog/developer-spotlight-dan-conway-ngit.mdx Outdated
Comment thread data/blog/developer-spotlight-dan-conway-ngit.mdx Outdated
Comment thread data/blog/developer-spotlight-dan-conway-ngit.mdx Outdated
Comment thread data/blog/developer-spotlight-dan-conway-ngit.mdx
Comment thread data/blog/developer-spotlight-dan-conway-ngit.mdx Outdated
auntydonna015 and others added 3 commits September 14, 2026 11:43
Co-authored-by: Tuma <119351965+TumaBitcoiner@users.noreply.github.com>
Co-authored-by: Tuma <119351965+TumaBitcoiner@users.noreply.github.com>
Co-authored-by: Tuma <119351965+TumaBitcoiner@users.noreply.github.com>
Intro
- The closing paragraph is reworded and split. It now introduces
  GitWorkshop.dev ("Dan has also built GitWorkshop.dev to make everything
  more user-friendly:"), shows the video, then ends on the hand-off to the
  Git & GitHub 101 section.

Video (public/static/videos/)
- gitworkshop-tour-light.mp4 / gitworkshop-tour-dark.mp4: ~18s, silent.
  A recorded browsing session on the live site: the zappers on ngit-ci,
  Shakespeare's repository and the servers carrying it, and Armada's issues.
  Each theme was recorded in that theme, and the post shows the matching one
  (dark:hidden / hidden dark:block, the same switch the Image component uses).

Links
- GitWorkshop.dev is capitalised throughout and linked once, on its first
  mention. The closing line links "his repositories" to Dan's page instead.

Committed without the local Prettier hook, as before, so unrelated lines
are not restyled.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
"We're forced to ask: how did we end up with most of the world's open
source on Microsoft servers? It began with Git." now reads "So how did we
all end up with most of our code sitting on Microsoft servers? Well, it all
began with Git." The Git link to the topic page is unchanged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

@auntydonna015 auntydonna015 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am finally happy with this piece, I hope Dan likes it!

Comment thread data/blog/developer-spotlight-dan-conway-ngit.mdx Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Images are not visible for me in the ngit tutorial. Don't know if it's just my problem!

Image

Co-authored-by: Tuma <119351965+TumaBitcoiner@users.noreply.github.com>
Arvin21M
Arvin21M previously approved these changes Sep 18, 2026

@Arvin21M Arvin21M left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Scanned the content again quickly in build preview.
  • Clicked on the video walkthrough, as well as the collapsible screenshots.
  • Not noticing anything broken, or any issues with legibility.
  • Good to go from my perspective.
  • :shipit:

@DanConwayDev DanConwayDev left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall it looks fantastic, thanks for all your hard work on it.


> When I embarked on this journey I would never have dreamed that GitHub would not only fail to adapt to the evolving landscape but would let their existing services degrade so much as the demand profile changed.

Microsoft, which Dan calls [a behemoth][behemoth], owns GitHub and uses it to hold the open source world in its grip. But now that we have nostr, there is a real way out. One that doesn't make us fall back into the same old traps.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is all true and reflective of what i think but I also think GitHub has been amazing for open source. and the people at github have been fantastic. It became the home of FOSS because it served the community so well. People are leaving with tears in their eyes because they have loved it so much. eg https://mitchellh.com/writing/ghostty-leaving-github

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its a structural problem. The people running these platforms are generally trying to do good. It's the fact that the platforms are platform that is the problem. Platforms are opressive systems of control by their very nature.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A practical update might be to add a sentance saying how good github has been to the FOSS comunity but there is a structual problem: github is a platform and not a protocol, a platform is a system of control that will serve its own interests whereas a prototcol is freedom-maximising foundation that cannot rug you.

> [Whilst a git repo can be easily pushed to a new git server, this extra social layer cannot.
> This conversation history is usually not cached locally and can be easily lost if GitHub deletes a project.][social-layer]

Git is a simple system for reviewing proposed code changes over [email][git-email].

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this framing of git is slightly off. Its a distributed version control system that allows sharing code. Sending patches over email existed before and outside of git. syncing from different git servers and how changes are managed is central to the collaboration. The current framing maybe overplays the centrality of email.


But convenience always comes at a price. One that the Linux team, for instance, never agreed to pay. [To this day, they still use the email model to review patches.][linux-patches] Which, by the way, is what you might have to start doing too if GitHub were to inexplicably ban your account. Unless, of course, if you've already mirrored your repository using ngit.

The code has always been able to go anywhere; that's what Git is. It's everything else that's the problem: the comments, the PRs, the follows, the stars and basically every communication around the code is just a row in GitHub's database. And it's precisely those things that happen to help you gain credibility online as a developer.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI also


This level of network effect that GitHub had was so impossible to replicate (until today) that competitors just gave up. [Google Code closed shop and told their users to migrate over to GitHub][google-code], and so did [Microsoft, as their CodePlex faced the exact same fate][codeplex]. Soon, the acquisition path became their only hope. Microsoft's offer was just too good to refuse: [an estimated 25 times GitHub's annual revenue that year.][github-acquisition] Peanuts considering how desperate Microsoft actually was to get back into developers' good graces after having [antagonized open source so long][ballmer-cancer].

Undoubtedly the cringiest part about this whole ordeal is how Microsoft built their proprietary Copilot AI-assistant based on all of the code that was hosted on GitHub. The Software Freedom Conservancy [quit GitHub over Copilot and urged all free-software projects to do the same][give-up-github]. Other developers [took Copilot to court][copilot-court] for stripping their code of its licenses and selling it back at a premium, a case that's still being argued as of today.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the cringiest part?
I can see how some people would feel strongly about copyright but I align with the 'information wants to be free' ideal so i dont have a lot of time for copyright. That's why I use the MIT licence.
For me the cringest part is banning FOSS contributors in Iran, India, etc, and tools that help the powerless defend themselves against the powerful, at the behest of authoritarian nation states.


But it just wasn't very user-friendly, or even practical for a lot of people. That's where GitHub saw an opportunity for a new way to use Git based on open collaboration.

On GitHub, anyone can suggest changes to any public project and fork their own copy, and the maintainer decides whether or not to accept them. But Git's collaboration model always requires an invitation from the maintainer before you can really get involved with a project.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this really true? All you needed was the ability to send an email to mailbox.

className="w-full h-auto"
/>

**2. Get your nostr remote signer.**

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a nice guide for setting up a on device remote signer. Maybe I'm out of touch but don't post people who have existing github repositories either already use a remote singer (eg amber) or aren't yet on nostr?


Ok, so first things first. Get git and curl on your terminal (on Windows, use WSL) and make sure you're inside the folder of the repository that you want to mirror (the mirror is public, even if the GitHub repository isn't).

No nostr account yet? Create your key at [nstart.me][nstart] first.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is always ngit account create --name "Alice" see https://ngit.dev/quickstart


No nostr account yet? Create your key at [nstart.me][nstart] first.

Before your first push, make a [personal access token][github-pat] for just this repository with Contents set to Read and write, and keep it in your password manager. GitHub may ask for it again on later pushes, and the push fails if the `Password:` prompt sits there too long.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dont most people who have a github account already have a setup where they can push locally, eg either a PAT or ssh key?


**4. [Announce the repository][ngit-mirroring]**

Keeping GitHub among its servers is what makes it a mirror. Swap in your GitHub URL, the `https://github.com/<user>/<repo>.git` address from GitHub's Code button, and your project's name, then run:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here are the two mirroring options: https://ngit.dev/repositories/mirroring


---

Thank you for reading this far, please consider mirroring one of your repositories today. Found an issue in the tutorial? Contribute and fix it on [git workshop][tutorial-repo]!

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or even better, create your next project directly on github,free from the shackles of permissioned platforms!

@dergigi
dergigi dismissed Arvin21M’s stale review September 18, 2026 21:53

Dismissing approval while we wait for Dan’s final approval before publishing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants