Vertex Report: June to Oct

This is what I have achieved on a per-project basis in Q3 of 2025.
Vertex Report: June to Oct

This is what I have achieved on a per-project basis in Q3 of 2025.

nastro

Nastro is a new Go library that provides a collection of plug-and-play, configurable databases for Nostr. The Store interface provides an easy to use abstraction that allows developers to focus on what to do rather than how to do it.

Despite being in its infancy, nastro already features three high-reliability, high-performance databases:

  • ephemeral: an in-memory, thread-safe ring buffer event store.

  • sqlite: a highly configurable sqlite3 database, where you can customise the schema, the query builder, and the validation policies for both events and filters. Used by the Vertex crawler and relay.

  • badger: a badger-based, high performance nostr database, built by @mleku for his relay orly.

Vertex crawler

The Vertex crawler has received minor updates, yet these are very influential in enabling new and powerful features for other projects. These include:

  • migration to a more performant nastro sqlite database

  • improved configuration management and options

  • The addition of Recorder, a highly efficient event recorder that powers the Vertex statistics. It uses Redis HyperLogLog for deduplication and computing the total number of users, active users, and more on a daily basis.

npub . world

The real-time Nostr search engine, npub.world, has received numerous updates and bug fixes, all aimed at providing a flawless user experience. These include:

  • refactoring of internal libraries

  • a new retry policy for unresponsive profile URLs

  • numerous UI improvements

  • optimised picture resolution for faster load times

  • added keyboard shortcuts across the app (Esc to close, Arrow Keys to move, Enter to select)

  • automatic search after typing

  • fixed keyboard flicker on mobile

  • fixed white screen during load in dark mode

  • improved colors in dark mode

  • added consistent shadows for both light and dark mode

Then it also received two new features:

  • Following and Followers lists are now displayed when clicking on each section respectively. This allows users to find interesting people and their connections.

  • Npub.world Stats: accurate, reliable, spam-free statistics available for everyone to see on the homepage and the dedicated stats page. Powered by the aforementioned Vertex crawler.

rely

rely is my framework for building custom relays that are simpler, more performant and more stable. It has been adopted by projects like Vertex, Zapstore, and ContextVM for all of their operation. Development has continued, allowing for:

  • new methods for the Client interface (SendNotice, DroppedResponses, RemainingCapacity).

  • Improved JSON decoding speed by ~40%.

  • Improved random testing by making the attackers more efficient.

  • Added several new hooks (OnAuth, OnGreedyClient).

  • fixed rare race condition where a client could be unregistered before it got registered

  • improved shutdown, ensuring all clients receive a websocket close.

Furthermore, I am working on the v1 of rely, which incorporates these improvements, as well as a significant architectural overhaul of how subscriptions are used and managed. Preliminary results show a 10–100× improvement in broadcasting speed by using an inverted index approach inspired by strfry. In practice, this means the ability to serve twice as many clients as was previously possible with rely.

Vertex relay

The Vertex relay evolved alongside rely, providing real-world data to inform its development. It has also undergone other significant developments, such as:

  • Migration to the more performant nastro sqlite database

  • Simplified config management and options

  • added NIP-45 COUNT support

However, the most significant new feature is that it now enables any reputable Nostr pubkey (+100k) to use Vertex for free. More information can be found in this blog post.

Smallset

While developing rely v1, I found myself needing to manage particular data structures, namely a large number of small sets.

To address this, I created smallset, a low-level library that defines sets using a sorted slice internally. These sets are faster and more efficient than normal sets based on hash tables for small collections of objects (fewer than 1000).

Looking at the future

The low-level and ‘infrastructure’ work (relays, databases, etc.) took longer than expected, but should now be almost complete. After publishing rely v1 and migrating the Vertex relay to it, I will focus on introducing new features, as outlined in the last report. For example:

  • accepting ecash for DVM requests.

  • designing client-side validation schemes for DVM responses.

  • adding a cache to npub.world to deliver even faster search speed.

  • providing HTTP endpoints that mimic the DVM services (event in, event out), for easier developer integration.

  • adding NSFW detection algorithm to the Vertex services.

Not all of these features will be persued, but only the ones with the highest impact.


No comments yet.