Skip to content

A Nostr-based application to create, manage and discover link lists, show notes and other stuff.

License

Notifications You must be signed in to change notification settings

gzuuus/linktr-nostr

Repository files navigation

Nostree

nostree-banner

Nostree is a link tree style nostr client, it allows you to create and manage lists of links that you can share with anyone. You can create as many lists as you like and they will be displayed in your profile. You can also edit or delete the lists.

Motivation

nostr is an open protocol under a public domain licence, which ensures its openness, the protocol aims to be decentralised, uncensorable, sovereign and very portable, these values resonate in the mind of every person seeking freedom in this world that its becoming more and more unfree. Nostree pursues these values as well, and it's the main focus and motivation behind this project, it's free to use, data is owned by you and the relays of the network, and signed by yourself, you can use it with whatever nostr key and no more, no emails, phone numbers, personal data, etc.

Philosophy

Nostree is an open-source client, the actual licence is GPL-3 which ensures the project will remain open source, but the intention is to make it as open as possible without compromising its open-source essence, the project is open to a licence change if the community requires it.

As this project was founded by openSats, PRs and collaboration is encouraged and they will be eligible to receive bounties, please feel free to open PRs or issues.

Roadmap

This roadmap is only a draft of the direction of the project, it can be changed, modified and expanded, if you have more ideas, please consider adding an issue or PR presenting them.

  • List creation
  • List output
  • Delete list
  • List forking
  • List unique identifiers
  • List slugs (for shorter and more memorable urls)
  • Hashtags
  • Simple share button
  • Migration to TailwindCSS
  • Theming system with ability to set themes for users
  • Cache system
  • Follow button
  • Theme generator
  • Docs
  • Edit profile
  • On-boarding
  • Calendar events
  • Live streaming events
  • Offline lists
  • Nip-15 market/stall integration
  • Autoplay music/media lists
  • Expanded personal pages, with more stuff (articles, notes, etc)
  • Torrents

Case study

Event format:

{
    ...
    "kind": 30003,
    "content": "",
    "tags": [
        ["d", "nostree-{uuidv4}"],
        ["title", "Link Title"],
        ["description", "List description"],
        ["L", "me.nostree.ontology"]
        ["image", "https://nostr.build/i/518262ea28232ace1eee250038d7657d70a0a186bb05f73c7a715e948c499a3a.jpg"],
        ["r", "https://link1.com", "link1"],
        ["r", "mailto:email@example.com", "link2"],
        ["r", "https://link3.net", "link3"],
        ...
        ["t", "Music"],
        ["t", "Personal projects"],
        ["l", "nostree"],
        ...
    ],
    ...
}

List of valid prefixes

    "http://",
    "https://",
    "ftp://",
    "nostr:",
    "mailto:",
    "tel:",
    "file://",
    "data:",
    "ssh://",
    "irc://",
    "magnet:",