Sovereign Engineering organizes cohorts for open-source developers, focusing on how to best leverage freedom tech and emerging AI technologies to create systems that maximize human agency and eliminate tyranny.
The program is grounded in the philosophy that technology should empower individuals, not control them. We believe in building systems that maximize human agency, foster collaboration, and resist centralized forms of control. To learn more about our guiding principles and vision, visit the Philosophy page.
SEC-05: YOLO Mode, has concluded and focused on nostr as a substrate for agent-to-agent and agent-to-human communication and payments, as well as multi-agent orchestration in an open and collaborative environment.
You can read the SEC-05 YOLO Report here.
This is a content-driven website built with Astro, Tailwind CSS, and TypeScript. It serves as the public home for the Sovereign Engineering project, featuring podcasts, philosophy, FAQs, and more.
Visit: https://sovereignengineering.io
The podcast XML feed is available at: https://sovereignengineering.io/dialogues.xml
It is also natively hosted on nostr via castr.me.
/blog renders signed NIP-23 articles from the Sovereign Engineering Nostr account. At build time, src/lib/blog.ts queries public relays for kind 30023 events, verifies signatures, and uses the latest event for each article address. src/data/nostrArticles.json is a signed snapshot used when relays are unavailable. New or edited articles appear after the next site build and deployment. Dead legacy image URLs in older signed posts are mapped to surviving local artwork where available; the signed snapshot itself remains unchanged.
/blog/rss.xml provides full-text RSS for the same verified articles. The blog and article pages link to it for feed discovery. The feed refreshes with the site build.
To check the site without relay access, run BLOG_OFFLINE=1 bun run build.
- .well-known: Exposes public metadata for services and verification (RFC 8615).
- dialogues.xml: Podcast feed for syndication.
- Astro + Tailwind CSS + TypeScript
- Markdown/MDX content for easy editing
- Responsive design
- Project and podcast showcases
- Public
.well-knowndirectory - Custom podcast XML feed
- NIP-23 blog with offline article snapshot
- Node.js v20+
- Bun (recommended) or npm/yarn
bun install
# or
npm installbun dev
# or
npm run devbun build
# or
npm run buildbun preview
# or
npm run previewBuild and run with Docker:
docker build -t sovereignengineering .
docker run -p 3000:80 sovereignengineeringsrc/— Source files (content, layouts, components, styles)public/— Static files served at the site root.well-known/— Public metadata (insidepublic/)dialogues.xml— Podcast feed (insidepublic/)
MIT License. See LICENSE for details.
For questions, suggestions, or contributions, please open an issue or pull request.
bun run build refreshes the alumni follow list and Nostr profile metadata, then downloads and crops avatars to 128 × 128 WebP images before generating the site. Profile discovery uses purplepag.es and relay.vertexlab.io alongside public relays. Signed NIP-65 relay lists are used to query each author’s advertised write relays (up to four per author, with bounded concurrency). Relay requests are time-limited and signatures are verified. Saved profiles fill gaps when relays are unavailable; matching cached avatars survive image-host failures. When an original picture is missing or broken, the avatar downloader tries the account’s cached profile image on npub.world and processes it locally; signed profile metadata remains unchanged. The page serves local images and does not query relays in visitors' browsers. Avatar binaries and their generated manifest are ignored by Git; a clean build downloads them again.
Profiles with neither a public bio nor a usable avatar are hidden from the directory. Profiles with an avatar but no bio omit the bio section; profiles with a bio but no avatar show initials. Changes made during a deployment are used for that build; the committed snapshot remains the fallback for future clean builds. To update that snapshot manually, run bun scripts/extract-alumni-kind0.mjs and bun run cache-alumni-avatars, then commit the profile JSON snapshot only. Do not commit the generated avatar files or manifest.