From e73fd256ad5cd5a4212f74c1b7188faada5c3f45 Mon Sep 17 00:00:00 2001 From: thelifeandtimes Date: Tue, 7 Apr 2026 10:45:51 -0700 Subject: [PATCH 1/2] feat: add ~nomryg-nilref contributor spotlight Publish the edited spotlight interview in urbit.org with summary metadata and search terms so it is ready for blog integration and discovery. --- .../contributor-spotlight-nomryg-nilref.md | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 app/content/blog/contributor-spotlight-nomryg-nilref.md diff --git a/app/content/blog/contributor-spotlight-nomryg-nilref.md b/app/content/blog/contributor-spotlight-nomryg-nilref.md new file mode 100644 index 0000000000..6074140653 --- /dev/null +++ b/app/content/blog/contributor-spotlight-nomryg-nilref.md @@ -0,0 +1,127 @@ ++++ + +title = "Contributor Spotlight: ~nomryg-nilref" +date = "2026-04-14" +description = "A conversation with ~nomryg-nilref on beautiful lost causes, forever software, and Obelisk" +summary = "~nomryg-nilref discusses how Urbit's sovereign computing vision resonated with decades of technical experience, why simple software distribution matters, and what Obelisk is trying to fix in relational databases." +# aliases = [] + +[extra] +# author = "" +ship = "~sarlev-sarsen" +image = "" +imageCard = "" +# imageIndex = "" +# imageDark = "" +# imageCardDark = "" +# imageIndexDark = "" +tags = ["spotlight", "obelisk", "databases", "functional-programming"] +search_terms = [ + "contributor spotlight", + "~nomryg-nilref", + "obelisk database", + "urbit database", + "relational database", + "sovereign computing", + "forever software", + "software distribution", + "functional programming", + "f sharp urbit", + "kelvin zero", + "e f codd" +] ++++ + +> **\~sarlev:** What was the first thing that drew you into the idea that we needed to throw away and rewrite the entire network computing stack? + +**\~nomryg-nilref:** I’ve had this strange urge ever since I got involved in technology--I’m not someone who investigates every bleeding-edge thing that comes along--but when I see one that looks beautiful, that matters to me. Beauty plays a role here. Most of us know it when we see it, even if it’s hard to define. + +So the concept of rewriting the entire computing stack from scratch for sovereign computing made immediate sense to me. Pieces of it had already been floating around in my mind, and `~sorreg-namtyv` had brought the whole thing together. + +I’ve got a history of getting drawn into beautiful lost causes in tech. My first was the [Omega computer](https://omega365.com/about/history). When I read about it, I thought, “Of course this is the way.” It was mostly vaporware when I first encountered it, but I got one a year later and kept using it for a long time. Some of the free software around it included the original Vim, though before that I’d already gotten roped into another text editor, Uedit (TK, spelling, details?), so I have never actually learned Vim. + +Later, in 2010, the next thing that really caught my interest was functional programming—specifically F#. It felt like the future. I didn’t have to keep the call stack in my head in the same way anymore, and that was a huge relief. Once I understood type systems better, I realized that type systems plus functional programming were really something special. + +Then I got introduced to `~sorreg-namtyv` the night he was being canceled in real time on social media. I was watching Twitter and Hacker News as it happened, and it was deeply disturbing to me that someone could get canceled from a technical event for political reasons. I didn’t even know what Urbit was until about a year later, when I saw his [LambdaConf talk](https://www.youtube.com/watch?v=bTisf4oxIFo). Then I found out Tlon was in San Francisco, so I started going to their meetups, and just lurked for a long time. + + I finally got on a comet around 2021, and got a ship about a year later. + +> **\~sarlev:** Urbit is trying to build computers and software that last. What does a forever computer mean to you? + +**\~nomryg-nilref:** It kind of means everything. That was my idea back in the Omega days. I wanted personalized software. I wanted it to act the way I wanted it to act. I wanted it to be an extension of my thoughts. + +I had all sorts of half-baked ideas about how a computer could become an extension of me, but I never fully fleshed them out. `~sorreg-namtyv` went a very long way toward doing that, and the philosophy resonates with basically everyone who’s interested in the Urbit project. We all have some sense of where we want to go. We know where Kelvin 0 is. We want software that doesn’t expire, doesn’t break every time there’s a new update, and doesn’t get abandoned. + +Abandoned software is still something the Urbit Foundation needs to work on, but I think we’re getting better there. + +> **\~sarlev:** Even if software gets abandoned, the goal is that it doesn’t die. You can’t force people to keep maintaining things, but maybe you can make it so the software still keeps working for the people who rely on it. + +**\~nomryg-nilref:** Yeah, and I think there’s some tension around that in the Urbit community. There’s the idea that everything must be entirely sovereign, and that bleeds over into anarcho-capitalism and pure libertarianism, both of which I think are failed programs. + +Personally, since almost everybody is developing with very permissive licenses, I’d like to see the Foundation get a little more involved in keeping backups around—especially for projects it funded, but maybe also for others that are critical. Keep secondary mirrors. Keep a copy of the source code just to have it. + +Some ultra-libertarian people would say that’s not sovereign computing anymore because now you’ve introduced a central point of failure. I look at it as a central point of backup. + +> **\~sarlev:** You’d seen a lot of these pieces already—functional programming, type systems, distributed systems. How did your relationship with computers change once you found Urbit and saw them pulled together? + +**\~nomryg-nilref:** Totally. It completely shifted me away from ever being interested in enterprise computing again. Urbit may eventually produce software that can be used in the enterprise, sure, but it’s not enterprise-first. Enterprise use would just be a side effect. + +I haven’t lost interest in F#. I still think it’s a beautiful programming language. I just haven’t programmed in it because it’s tied to the .NET stack, and that doesn’t really interest me anymore. + +That leads into one of my harebrained ideas: are programming languages even relevant anymore in the age of agent-assisted coding? I’m not sure. I still think it’s important for humans to be able to read the code, so I don’t think languages are going away. But Hoon, as the only language we can really program Urbit in, has a lot of limitations. I appreciate it, and I think it’s beautiful in some ways, but it also has real limitations—even for agent-assisted coding. In my experience, agents have about as hard a time with Hoon as humans do. + +So I’ve wondered whether it’s possible to have another programming language for Urbit. My pitch is porting F# over to Urbit. It brings a lot that Urbit could really use, and it’s a good fit because it’s an OCaml-ish language. There’s a full technical spec. The compiler is highly documented. A lot of the .NET-specific material could be stripped away, and the final compilation target could become Nock. + +What F# would bring to the party is a structure that can inline other languages, type providers, and eventually a path toward formal methods through F*. With all the agent-assisted coding going on in the world, I think the need for provable code is only going to grow. + +> **\~sarlev:** You make an interesting point about the need for provable code... In legacy computing, what systemic problems felt fundamental there but feel much less painful on the Urbit side? + +**\~nomryg-nilref:** Software distribution, first of all. And the build system—how could I forget that? That may be the best thing about programming in Hoon. The build system just works, and it’s dead simple. A build system should be dead simple. Everywhere else, it is far from dead simple. + +So despite the difficulty of getting Hoon right—for both humans and agents—that part of computing on Urbit is a huge advantage. + +> **\~sarlev:** Urbit is still a living project. A lot has been solved, but there’s more to do. What system improvements are you most looking forward to? + +**\~nomryg-nilref:** I’m most looking forward to getting my project, Obelisk, out the door. I'm targeting to have the beta live by the end of the month. + +If you know what SQL is in relational databases, Obelisk is a relational database for Urbit-native computing that fixes some of the lingering compromises in SQL. SQL got rushed out the door in the 1970s on machines that could barely handle the workload of a relational database, so it had to make all sorts of compromises. + +Obelisk fixes some of those. For one thing, results are proper sets of data, unlike what goes on in SQL. Another issue is the whole problem of nulls, which people who use SQL every day have learned to live with even though they’re actually fundamental logical problems. + +Another big thing Obelisk brings is time travel. All states of your data still exist. If you changed the database yesterday, that doesn’t mean the prior state is gone. You can see what it looked like at any point in time. That eliminates a lot of the overhead you otherwise need around audits: when did the database change, how did it change, can we go back to what it looked like before. + +> **\~sarlev:** How do you imagine people using it? Is it one database for everything, or something else? + +**\~nomryg-nilref:** Not a single database. I envision a different database for every app, but all of them living on the same database server. That means you can mash up data between different apps because it all lives on the same server, and eventually you could join data across ships as well. + +I’ve got a fairly extensive security model mostly spec’d out in my head and partly on paper, but to begin with it’ll only be available on the same ship. Only apps on your ship will be able to access the server. + +> **\~sarlev:** Given how deep the relational model can get, do you think people will need a lot of database expertise to use Obelisk well? + +**\~nomryg-nilref:** That’s where agent-assisted coding is going to help us. It isn’t trivial to really understand SQL or the relational model. It’s easy enough to learn some basics, but once you want to do sophisticated things, you have to truly understand it. + +Now we have agents. One of the first things I’d like to see with Obelisk—and hopefully other people will help here—is agent-assisted Obelisk programming. You should be able to say, “Agent, keep this data for me,” or “Show me this data,” and have it do the right thing. The prompt will need to be somewhat more complex than that, but hopefully not much more. + +I don’t want to fall into the trap of expecting everybody else to know relational algebra, set theory, and first-order predicate calculus just because those things are second nature to me after decades of dealing with them. + +> **\~sarlev:** Once the beta is out, what’s next on your radar? + +**\~nomryg-nilref:** Kind of all of the above. I want to touch grass more, for sure. But I’ve also got a couple of directions in mind for Obelisk, and it depends on community reaction and feedback from the Core Guild. + +The most important thing is getting version 1.0 out. The main things still missing are views, grouping, `group by`, `order by`, and related features. The [roadmap is published](TK--need link) and I recently updated it, so I know what’s required for version one. + +And then there’s testing. I’ve written a lot of tests, but tests are the burnout part of the work. They make this kind of project a slog sometimes, even though agents have helped a lot. I know someone is going to find bugs; I just don’t know which bugs yet. + +There’s also been interest in making Obelisk a [vane](https://docs.urbit.org/build-on-urbit/core-academy/ca11#vane), and I think it probably should be one. Whether that becomes the next step depends a lot on community and core guild feedback. + +> **\~sarlev:** A personal database that all my apps can interface with does sound like a core part of the personal server idea. + +**\~nomryg-nilref:** Yeah. `~sorreg-namtyv` already came up with the name of what the vane should be: `%codd`, after E.F. Codd, who basically invented relational algebra and was the driving force behind SQL, even if he didn’t have much say in how SQL itself got developed. We'll have to see how it plays with the `%clay` naming conflict, but technically speaking it should be doable. + +In my [Urbit Systems Technical Journal article](https://urbitsystems.tech/article/v03-i01/obelisk-reinventing-sql-for-modern-computing) I pay a bit of homage to E.F. Codd. He figured all this stuff out. It’s actually simple, or at least it can be understood by ordinary people, even if he explained it in very technical terms. + +> **\~sarlev:** If you weren’t working on Urbit, what would you be doing instead? + +**\~nomryg-nilref:** I’d probably be touching grass more. + +But the brainworm is deep enough in me that I feel like I’m doing this to glorify God. If we don’t have a future with Urbit—which appears to be the only serious sovereign-computing project fails—we’re going to be serfs to the regime, literally. From cea8872c3f163e45af4f41ee0fccbdca6a585580 Mon Sep 17 00:00:00 2001 From: thelifeandtimes Date: Tue, 7 Apr 2026 14:41:59 -0700 Subject: [PATCH 2/2] add search and content indexes --- public/content-index.json | 191 +++++++++++++++++++++++++++----------- public/search-index.json | 29 +++++- 2 files changed, 162 insertions(+), 58 deletions(-) diff --git a/public/content-index.json b/public/content-index.json index 247534ade4..786e8307fb 100644 --- a/public/content-index.json +++ b/public/content-index.json @@ -1,6 +1,6 @@ { - "generatedAt": "2026-03-05T23:59:44.390Z", - "total": 334, + "generatedAt": "2026-04-07T21:41:05.446Z", + "total": 339, "entries": [ { "id": "index.md", @@ -140,31 +140,6 @@ "managed hosting" ] }, - { - "id": "blurbs/getting-started-with-urbit.md", - "url": "https://urbit.org/#getting-started-with-urbit", - "type": "blurbs", - "title": "Get Started with Urbit", - "summary": "Begin your Urbit journey by acquiring a self-sovereign ID and learning about Urbit OS, the personal server computing platform that gives you full control over your data.", - "description": "Ready to join the Urbit network? Get your own Urbit ID and start exploring a new way to compute.", - "tags": [ - "getting-started", - "homepage", - "sidebar" - ], - "search_terms": [ - "get started", - "urbit id", - "urbit os", - "join urbit", - "quickstart", - "self sovereign", - "start exploring", - "urbit network", - "buy urbit id", - "learn urbit" - ] - }, { "id": "blurbs/homepage-go-deeper.md", "url": "https://urbit.org/#homepage-go-deeper", @@ -236,6 +211,31 @@ "caring for cactus" ] }, + { + "id": "blurbs/getting-started-with-urbit.md", + "url": "https://urbit.org/#self-hosting", + "type": "blurbs", + "title": "Get Started with Urbit", + "summary": "Begin your Urbit journey by acquiring a self-sovereign ID and learning about Urbit OS, the personal server computing platform that gives you full control over your data.", + "description": "Ready to join the Urbit network? Get your own Urbit ID and start exploring a new way to compute.", + "tags": [ + "getting-started", + "homepage", + "sidebar" + ], + "search_terms": [ + "get started", + "urbit id", + "urbit os", + "join urbit", + "quickstart", + "self sovereign", + "start exploring", + "urbit network", + "buy urbit id", + "learn urbit" + ] + }, { "id": "blog/2019-10-3-roadmap.md", "url": "https://urbit.org/blog/2019-10-3-roadmap", @@ -852,6 +852,21 @@ ], "search_terms": [] }, + { + "id": "blog/contributor-spotlight-nomryg-nilref.md", + "url": "https://urbit.org/blog/contributor-spotlight-nomryg-nilref", + "type": "blog", + "title": "Contributor Spotlight: ~nomryg-nilref", + "summary": "~nomryg-nilref discusses how Urbit's sovereign computing vision resonated with decades of technical experience, why simple software distribution matters, and what Obelisk is trying to fix in relational databases.", + "description": "A conversation with ~nomryg-nilref on beautiful lost causes, forever software, and Obelisk", + "tags": [ + "spotlight", + "obelisk", + "databases", + "functional-programming" + ], + "search_terms": [] + }, { "id": "blog/contributor-spotlight-nordus-mocwyl.md", "url": "https://urbit.org/blog/contributor-spotlight-nordus-mocwyl", @@ -866,6 +881,20 @@ ], "search_terms": [] }, + { + "id": "blog/contributor-spotlight-palfun-foslup.md", + "url": "https://urbit.org/blog/contributor-spotlight-palfun-foslup", + "type": "blog", + "title": "Contributor Spotlight: ~palfun-foslup", + "summary": "Tlon engineer ~palfun-foslup discusses building Gall apps like %pals and %rumors, why user-owned servers lower the barrier for peer-to-peer software, and what Gall 2026 aims to deliver with userspace compatibility and permissions.", + "description": "A conversation with ~palfun-foslup on Gall, userspace, and making simple software", + "tags": [ + "spotlight", + "gall", + "userspace" + ], + "search_terms": [] + }, { "id": "blog/convivial-networks.md", "url": "https://urbit.org/blog/convivial-networks", @@ -1098,6 +1127,20 @@ "community" ] }, + { + "id": "blog/gall-2026.md", + "url": "https://urbit.org/blog/gall-2026", + "type": "blog", + "title": "The Future of Userspace", + "summary": "An overview of the Gall 2026 userspace roadmap, including scoped Eyre permissions, support for alternative agent APIs, and a kelvin-shimming proof of concept for application compatibility across Arvo updates.", + "description": "The Gall 2026 project and what it means for userspace", + "tags": [ + "security", + "gall", + "userspace" + ], + "search_terms": [] + }, { "id": "blog/gifts-q3-2020.md", "url": "https://urbit.org/blog/gifts-q3-2020", @@ -4424,6 +4467,28 @@ "urbit secret" ] }, + { + "id": "blurbs/get-the-urbit-runtime.md", + "url": "https://urbit.org/overview/running-urbit/common-commands#get-the-urbit-runtime", + "type": "blurbs", + "title": "Get the Urbit runtime", + "summary": "Install the Urbit runtime with the guided get-runtime.sh helper or use direct per-platform commands for macOS and Linux.", + "description": "Download the runtime binary for your host platform", + "tags": [ + "runtime", + "install", + "command-line" + ], + "search_terms": [ + "get runtime", + "install runtime", + "download urbit binary", + "get-runtime.sh", + "macos runtime", + "linux runtime", + "install vere" + ] + }, { "id": "blurbs/reduce-your-pier-size.md", "url": "https://urbit.org/overview/running-urbit/common-commands#reduce-your-pier-size", @@ -4581,32 +4646,6 @@ "runtime install" ] }, - { - "id": "blurbs/groundwire-based-urbit-ids.md", - "url": "https://urbit.org/overview/running-urbit/get-urbit-id", - "type": "blurbs", - "title": "Groundwire-based Urbit IDs", - "summary": "Groundwire is an upcoming Bitcoin-based Urbit identity system using ordinal/NFT inscriptions for independent self-issuance with L1 Bitcoin's spam resistance.", - "description": "Groundwire identities are cryptographically owned Urbit address space on the Bitcoin blockchain", - "tags": [ - "bitcoin", - "urbit-id", - "ordinal", - "comet" - ], - "search_terms": [ - "groundwire ids", - "bitcoin urbit", - "ordinal nft", - "inscription nft", - "comet identity", - "bitcoin address space", - "groundwire network", - "l1 bitcoin fees", - "self issued ids", - "groundwire messenger" - ] - }, { "id": "overview/running-urbit/get-urbit-id.md", "url": "https://urbit.org/overview/running-urbit/get-urbit-id", @@ -4670,6 +4709,32 @@ "self sovereign identity" ] }, + { + "id": "blurbs/groundwire-based-urbit-ids.md", + "url": "https://urbit.org/overview/running-urbit/get-urbit-id#groundwire-based-urbit-ids", + "type": "blurbs", + "title": "Groundwire-based Urbit IDs", + "summary": "Groundwire is an upcoming Bitcoin-based Urbit identity system using ordinal/NFT inscriptions for independent self-issuance with L1 Bitcoin's spam resistance.", + "description": "Groundwire identities are cryptographically owned Urbit address space on the Bitcoin blockchain", + "tags": [ + "bitcoin", + "urbit-id", + "ordinal", + "comet" + ], + "search_terms": [ + "groundwire ids", + "bitcoin urbit", + "ordinal nft", + "inscription nft", + "comet identity", + "bitcoin address space", + "groundwire network", + "l1 bitcoin fees", + "self issued ids", + "groundwire messenger" + ] + }, { "id": "blurbs/self-custody-your-id.md", "url": "https://urbit.org/overview/running-urbit/get-urbit-id#self-custody-your-id", @@ -5103,6 +5168,26 @@ "tags": [], "search_terms": [] }, + { + "id": "blurbs/partnerships-outreach.md", + "url": "https://urbit.org/overview/running-urbit/support#partnerships-outreach", + "type": "blurbs", + "title": "Partnerships and outreach", + "summary": "Contact the Urbit Foundation partnerships team for collaborations, events, integrations, and other outreach opportunities.", + "description": "Reach out if you want to collaborate with the Urbit Foundation", + "tags": [ + "support", + "partnerships", + "outreach" + ], + "search_terms": [ + "partnerships", + "collaborate", + "outreach", + "business development", + "partnerships@urbit.org" + ] + }, { "id": "blurbs/support-contact-points.md", "url": "https://urbit.org/overview/running-urbit/support#support-contact-points", diff --git a/public/search-index.json b/public/search-index.json index 4e1aec1dec..698239ec74 100644 --- a/public/search-index.json +++ b/public/search-index.json @@ -1,6 +1,6 @@ { - "generatedAt": "2026-03-31T19:33:14.318Z", - "total": 183, + "generatedAt": "2026-04-07T21:41:05.353Z", + "total": 184, "entries": [ { "id": "blurbs/add-and-remove-applications.md", @@ -454,7 +454,7 @@ "sectionLabel": "Overview", "subsection": "running-urbit", "subsectionLabel": "Running Urbit", - "searchText": "get urbit id learn how to acquire your own urbit identity /overview/running-urbit/get-urbit-id overview running urbit methods for obtaining an urbit id including purchasing layer 1 azimuth identities on nft marketplaces, acquiring layer 2 identities from vendors using bitcoin or fiat, and receiving invitations from existing users. buy-an-urbit-id azimuth-based-urbit-ids urbit-master-ticket-wallets self-custody-your-id" + "searchText": "get urbit id learn how to acquire your own urbit identity /overview/running-urbit/get-urbit-id overview running urbit methods for obtaining an urbit id including purchasing layer 1 azimuth identities on nft marketplaces, acquiring layer 2 identities from vendors using bitcoin or fiat, and receiving invitations from existing users. buy-an-urbit-id azimuth-based-urbit-ids groundwire-based-urbit-ids urbit-master-ticket-wallets self-custody-your-id" }, { "id": "overview/running-urbit/glossary.md", @@ -497,12 +497,12 @@ "authors": [], "publishedTimestamp": null, "source": "blurbs", - "path": "/overview/running-urbit/get-urbit-id", + "path": "/overview/running-urbit/get-urbit-id#groundwire-based-urbit-ids", "section": "overview", "sectionLabel": "Overview", "subsection": "running-urbit", "subsectionLabel": "Running Urbit", - "searchText": "groundwire-based urbit ids groundwire identities are cryptographically owned urbit address space on the bitcoin blockchain bitcoin urbit-id ordinal comet groundwire ids bitcoin urbit ordinal nft inscription nft comet identity bitcoin address space groundwire network l1 bitcoin fees self issued ids groundwire messenger /overview/running-urbit/get-urbit-id overview running urbit groundwire is an upcoming bitcoin-based urbit identity system using ordinal/nft inscriptions for independent self-issuance with l1 bitcoin's spam resistance. bitcoin urbit-id ordinal comet groundwire ids bitcoin urbit ordinal nft inscription nft comet identity bitcoin address space groundwire network l1 bitcoin fees self issued ids groundwire messenger groundwire on tlon https://join.tlon.io/0v6.kumf3.l31r5.f0peh.odf94.kk8ai join the conversation with groundwire using tlon messenger" + "searchText": "groundwire-based urbit ids groundwire identities are cryptographically owned urbit address space on the bitcoin blockchain bitcoin urbit-id ordinal comet groundwire ids bitcoin urbit ordinal nft inscription nft comet identity bitcoin address space groundwire network l1 bitcoin fees self issued ids groundwire messenger /overview/running-urbit/get-urbit-id#groundwire-based-urbit-ids overview running urbit groundwire is an upcoming bitcoin-based urbit identity system using ordinal/nft inscriptions for independent self-issuance with l1 bitcoin's spam resistance. bitcoin urbit-id ordinal comet groundwire ids bitcoin urbit ordinal nft inscription nft comet identity bitcoin address space groundwire network l1 bitcoin fees self issued ids groundwire messenger groundwire on tlon https://join.tlon.io/0v6.kumf3.l31r5.f0peh.odf94.kk8ai join the conversation with groundwire using tlon messenger" }, { "id": "overview/running-urbit/hosting-providers.md", @@ -2158,6 +2158,25 @@ "sectionLabel": "Blog", "searchText": "contributor spotlight: ~mastyr-bottec a conversation with runtime developer ~mastyr-bottec on his work to make urbit store large amounts of data spotlight vere64 runtime /blog/contributor-spotlight-mastyr-bottec blog 2025-11-25 runtime developer ~mastyr-bottec explains vere64 work enabling urbit to store large amounts of data, including migrations and lifting file size limits. ~sarlev-sarsen https://s3.us-east-1.amazonaws.com/urbit.orgcontent/blog/blog_qa+mastyr-bottec_social.png spotlight vere64 runtime contributor spotlight mastyr bottec runtime developer large data loom size runtime migration directed messaging nock runtime storage scaling urbit runtime" }, + { + "id": "blog/contributor-spotlight-nomryg-nilref.md", + "title": "Contributor Spotlight: ~nomryg-nilref", + "description": "A conversation with ~nomryg-nilref on beautiful lost causes, forever software, and Obelisk", + "tags": [ + "spotlight", + "obelisk", + "databases", + "functional-programming" + ], + "searchTerms": [], + "authors": [], + "publishedTimestamp": 1776124800000, + "source": "blog", + "path": "/blog/contributor-spotlight-nomryg-nilref", + "section": "blog", + "sectionLabel": "Blog", + "searchText": "contributor spotlight: ~nomryg-nilref a conversation with ~nomryg-nilref on beautiful lost causes, forever software, and obelisk spotlight obelisk databases functional-programming /blog/contributor-spotlight-nomryg-nilref blog 2026-04-14 ~nomryg-nilref discusses how urbit's sovereign computing vision resonated with decades of technical experience, why simple software distribution matters, and what obelisk is trying to fix in relational databases. ~sarlev-sarsen spotlight obelisk databases functional-programming contributor spotlight ~nomryg-nilref obelisk database urbit database relational database sovereign computing forever software software distribution functional programming f sharp urbit kelvin zero e f codd" + }, { "id": "blog/contributor-spotlight-nordus-mocwyl.md", "title": "Contributor Spotlight: ~nordus-mocwyl",