Nostr & Decentralized Social

JingleOpen-Source Nostr Relay Framework

Free open-source Nostr relay framework in Go. See features, install steps, safety tips and how Jingle compares with Nostr clients.

Free Open source Windows: Likely v0.1.0 Updated 22 Sept 2024
8 min read Last update 22 Sept 2024 github.com/fiatjaf/jingle

Jingle is a free, open-source framework for running a simple Nostr relay, aimed at developers and hobbyists who want a small server they control. Nostr is a decentralized protocol for social messaging, and relays are the servers that store those messages and pass them along to apps. Jingle for Windows is one way to get started, since the project publishes its builds through GitHub Releases.

The project is small and early. Its latest version is v0.1.0, and the last code update came in September 2024, so it suits people who are comfortable experimenting rather than running a large production service. Its strength is simplicity: a readable Go codebase, optional web pages, relay icons and scripted request filtering, without a heavy setup.

02

What Is a Nostr Relay and Why Run One?

Nostr is an open protocol for sending signed messages between apps. Users write events, sign them with their keys, and send them to relays. A relay receives those events, stores them and returns them to any client that asks.

Because anyone can run a relay, no single server owns the network. A user can publish to several relays at once, and if one goes offline the others still carry the content. Running your own relay adds a different kind of control: you decide what your server keeps, how long it stays online and which clients can reach it.

That role is what makes relay software worth studying. Relays sit between the people writing messages and the apps displaying them, so understanding how they accept, filter and serve events explains much of how Nostr behaves in practice. Jingle gives you a compact starting point for that exploration.

03

Who Is Jingle For?

Jingle suits three kinds of people. Developers who are learning Nostr internals can read a small Go codebase and see how a relay handles connections and requests. Hobbyists who like tinkering with self-hosted services can run a relay on their own machine to see how it behaves.

Small communities form the third group. A group of friends or a project team might want a relay with a simple landing page, a recognizable icon and rules about which requests get answered. Jingle covers those basics without much ceremony.

It is less suited to people who only want to post and read messages. For that, a client such as those in the similar programs list is a better fit. Jingle is the server side of the picture, and it rewards people who are comfortable with command lines and configuration files.

04

Practical Scenarios for a Small Relay

Consider a developer building a Nostr client. Testing against a public relay means dealing with real traffic and unpredictable data. A local Jingle relay gives a controlled environment where events are predictable and logs are easy to follow.

Another example is a small interest group that wants a shared space with its own identity. The HTML files can hold an introduction and community guidelines, and the relay icon makes the endpoint look tidy when clients display relay information. The group can then tune its filter scripts to decline certain request types.

A third scenario is teaching. An instructor can run a relay on a single laptop during a workshop, showing students how events travel from client to relay and back. Because the project is small and open, the whole flow can be explained using the actual code in front of the class.

05

Key features

A Simple Relay Framework

Jingle is built as a relay framework rather than a finished end-user application, so its core stays small and focused on accepting and serving Nostr events. You get the basic building blocks of a relay without a long feature list to learn first. That makes the code easier to read and to change when you want the relay to behave differently.

Scripted Request Filtering With Tengo

A reject-filter.tengo script lets you define rules that decide which incoming requests the relay turns down. A companion script applies similar logic to REQ messages, the requests clients send to ask for events. Tengo is a small scripting language designed to embed in Go programs, so filtering rules can be adjusted without rewriting the core.

Optional Web Pages and Relay Icons

If you place index.html or other .html files in the relay's folder, they are served from the root of the relay's HTTP server, which lets you publish a simple landing page. Adding an icon.png, icon.jpg or icon.gif file sets the icon included in the relay's NIP-11 information, which clients can read. Both features are optional.
06

Supported coins

Jingle works with the Nostr protocol, which is the only network the project documentation mentions. It is a relay framework, so it stores and serves Nostr events rather than handling cryptocurrency coins or tokens.

07

How to install Jingle on Windows

  1. 1

    Download From the Official Source

    Download only from the official website, which for this project means the GitHub Releases page at github.com/fiatjaf/jingle. Choose the Windows file from the latest release, and avoid mirrors or repackaged copies.

  2. 2

    Verify the File

    Compare the SHA-256 checksum of the downloaded file with the value listed on the release page. If the release includes a signature, verify that as well. Do not run a file whose hash does not match.

  3. 3

    Place the Program in a Folder

    Extract the archive, if the release comes as one, into a dedicated folder such as one you create under Documents. Keeping relay files together makes it easier to add HTML pages and icons later.

  4. Prepare Optional Files

    If you want a landing page, put index.html or other .html files in the folder the relay serves. For a relay icon, add icon.png, icon.jpg or icon.gif. Both steps are optional.

08

How to use Jingle

Running Jingle is straightforward once the files are in place. The steps below assume you want a local relay for testing or a small private setup.

  1. Open Command Prompt or PowerShell in the folder where Jingle is installed, so you can read the program's output as it starts.
  2. Read the README in the GitHub repository for the startup options, including the address and port the relay listens on.
  3. Start the relay with those options and watch the log for confirmation that the HTTP server is running.
  4. Open the relay's HTTP address in a browser to confirm that your index.html page appears, or that the default response is what you expect.
  5. Point a Nostr client at the relay's WebSocket address, for example a local address with your chosen port, and publish a test event.
  6. Add or edit reject-filter.tengo, restart the relay, and test whether requests behave as your rules describe.
  7. Stop the relay when you finish, and keep your configuration files free of private keys.
09

Pros & cons

Pros
  • Free and open source, with the source code available on GitHub
  • Small, focused codebase that is easy to read for Go developers
  • Optional static web pages and relay icons for a simple public face
  • Scripted request filtering with Tengo rules
Cons
  • Early release: the latest version is v0.1.0
  • The last code update was in September 2024, so recent activity may be limited
  • Windows support is described as likely rather than confirmed, so verify the release files
  • A framework rather than a ready-made end-user app, which suits technical users
10

Is Jingle safe?

Download Jingle only from the official GitHub repository or its Releases page at github.com/fiatjaf/jingle. Compare the file's SHA-256 checksum with the value published on the release page, or verify a signature if one is provided. A relay accepts incoming connections, so open only the ports you need and keep your firewall on. Antivirus tools may flag unfamiliar executables, so review the checksum and source before making any exception. Never enter a Nostr private key or seed phrase on a third-party website. The last code update was in September 2024 and the version is v0.1.0, so compare the latest version on the official website before installing.

  • Official source only. Download from github.com/fiatjaf/jingle. Ignore ads and lookalike domains.
  • Check the SHA-256. Compare the installer hash with the value the developer publishes before running it.
  • Never share your seed phrase. No developer, support agent or website — including CryptApps — will ever ask for it.
11

Alternatives

Most Nostr software on this list is client-side. Amethyst and Vega are apps for reading and posting, and Gossip is a desktop client written in Rust. NAK and Nostr Commander RS are command-line tools for working with Nostr from a terminal. Jingle is different because it is a relay framework. It runs the server that stores and serves events, so you would typically pair it with one of the clients above to test your setup. If you want to read or post on Nostr today, start with a client. If you want to host a relay of your own, Jingle is the relevant piece.

12

Specifications

Price
Free
Type
Open source
License
—
Latest version
v0.1.0
Last update
22 Sept 2024
Windows support
Likely (builds for Windows; check releases)
Source code
github.com/fiatjaf/jingle
13

Frequently asked questions

Yes, Jingle is free and open source, with its code and releases published on GitHub. Download it from the official source and verify the file before running it.

Jingle is a framework for running a Nostr relay, the server that stores and forwards Nostr events. It is aimed at developers and hobbyists who want a small relay with optional web pages, a relay icon and request filtering.

No. Jingle is a relay, not an app for reading or posting messages. To use Nostr day to day, pair a client such as Amethyst or Gossip with a relay, and use Jingle when you want to host one yourself.

Not for the ready-made program. The project notes that Go can be used to install it from source, so the Go compiler matters only if you choose to build it yourself. Most people will start with the release files.

The latest version is v0.1.0, and the last code update was on September 22, 2024. That points to an early project with slower development, so review recent activity on GitHub before relying on it for anything important.

Jingle works with the Nostr protocol and does not include wallet or coin features. It stores and serves Nostr events, so it is not a place to hold or send cryptocurrency.

14

Verdict

Jingle for Windows is a sensible pick for developers, hobbyists and small groups who want to learn or run a Nostr relay with minimal machinery. It is free, open source and easy to read, with optional web pages, relay icons and Tengo-based filtering. Its early version number and the September 2024 update date mean it suits experimentation more than critical services. If you only want to post and read on Nostr, choose a client instead.

Download now