SilverBullet is a note-taking application optimized for people with a hacker mindset. We all take notes. There’s a million note taking applications out there. Literally. Wouldn’t it be nice to have one where your notes are more than plain text files? Where your notes essentially become a database that you can query; that you can build custom knowledge applications on top of? A hackable notebook, if you will?
This is what SilverBullet aims to be.
Absolutely. You use SilverBullet to quickly jot things down. It’s a notes app after all. However, this is just the beginning. Gradually, you start to annotate your notes using Frontmatter. You realize: “Hey, this note represents a person, let me tag it as such.” Before you know it, you’re turning your notes into Objects. Then you learn that in SilverBullet you can Live Query these objects. Your queries grow into reusable Templates written using a powerful Template Language. You find more and more uses of these templates, for instance to create new pages, or widgets automatically added to your pages.
And then, before you know it — you realize you’re effectively building applications in your notes app. End-User Programming, y’all. It’s cool.
You may have been told there is no such thing as a silver bullet.
You were told wrong.
SilverBullet...
[[page link]]
syntax. Incoming links are indexed and appear as “Linked Mentions” at the bottom of the pages linked to thereby providing bi-directional linking.Cmd-k
on Mac or Ctrl-k
on Linux and Windows).Cmd-/
or Ctrl-/
on Linux and Windows).Check out the instructions.
SilverBullet is written in TypeScript and built on top of the excellent CodeMirror 6 editor component. Additional UI is built using Preact. ESBuild is used to build both the front-end and back-end bundles. The server backend runs as a HTTP server on Deno using and is written using Oak.
To prepare the initial web and plug build run:
deno task build
To symlink silverbullet
to your locally checked-out version, run:
deno task install
You can then run the server in “watch mode” (automatically restarting when you change source files) with:
deno task watch-server <PATH-TO-YOUR-SPACE>
After this initial build, it's convenient to run three commands in parallel (in separate terminals):
deno task watch-web
deno task watch-server <PATH-TO-YOUR-SPACE>
deno task watch-plugs
To typecheck the entire codebase (recommended before submitting PR):
deno task check
To run unit tests:
deno task test
If you (hypothetically) find bugs or have feature requests, post them in our issue tracker. Would you like to contribute? Check out the code, and the issue tracker as well for ideas on what to work on. Also be sure to check out our Discourse community.