1
0
Workshop for the mind
Go to file
2023-12-10 15:26:39 +01:00
.github/workflows Deno version bumps 2023-11-20 12:53:57 +01:00
.vscode Plug docs fetch 2023-05-26 14:50:43 +02:00
cli Refactoring work to support multi-tenancy and multiple storage, database backends (#598) 2023-12-10 13:23:42 +01:00
cmd Refactoring work to support multi-tenancy and multiple storage, database backends (#598) 2023-12-10 13:23:42 +01:00
common Lazy plugs (#596) 2023-12-06 18:44:48 +01:00
plug-api Lazy plugs (#596) 2023-12-06 18:44:48 +01:00
plugos Avoid plug loading race condition 2023-12-10 15:18:34 +01:00
plugs Lazy plugs (#596) 2023-12-06 18:44:48 +01:00
scripts Use real timestamps on silverbullet.md 2023-11-13 11:41:01 +01:00
server Remove duplicate shell reporting 2023-12-10 13:30:34 +01:00
web Refactoring work to support multi-tenancy and multiple storage, database backends (#598) 2023-12-10 13:23:42 +01:00
website Refactoring work to support multi-tenancy and multiple storage, database backends (#598) 2023-12-10 13:23:42 +01:00
.dockerignore SilverBullet pivot to become an offline-first PWA (#403) 2023-05-23 20:53:53 +02:00
.env Update .env 2022-07-18 19:48:58 +02:00
.gitignore Refactor all the things 2023-08-28 17:12:15 +02:00
.gitpod.Dockerfile Gitpod and deno version bump 2023-12-10 15:26:39 +01:00
.gitpod.yml New silverbullet command line structure, allowing for sub-commands 2022-10-23 09:06:12 +02:00
build_bundle.ts Real-time collaboration within space (#411) 2023-06-13 20:47:05 +02:00
build_plugs.ts SilverBullet pivot to become an offline-first PWA (#403) 2023-05-23 20:53:53 +02:00
build_web.ts Big refactors and fixes 2023-07-02 11:25:32 +02:00
CHANGELOG.md Work on #10 theming 2022-08-02 14:40:04 +02:00
deno.jsonc Remove duplicate bundle 2023-11-11 13:46:55 +01:00
docker-entrypoint.sh Fixes #590 2023-11-30 15:19:08 +01:00
Dockerfile Gitpod and deno version bump 2023-12-10 15:26:39 +01:00
import_map.json Fixes #539 linter support, now checking YAML formats 2023-11-21 16:24:20 +01:00
install.sh Work towards a single-binary silverbullet 2023-07-02 15:43:02 +02:00
LICENSE.md Refactor of asset bundles 2022-10-12 11:47:13 +02:00
netlify.toml Another netlify try 2023-01-26 12:13:06 +01:00
package-lock.json Netlify build 2023-01-26 12:23:57 +01:00
package.json Netlify build 2023-01-26 12:23:57 +01:00
README.md Link new intro video on front page of Github (#569) 2023-11-18 14:33:36 +01:00
silverbullet.ts Refactoring work to support multi-tenancy and multiple storage, database backends (#598) 2023-12-10 13:23:42 +01:00
test_deps.ts Dependency bump 2022-11-19 16:05:37 +01:00
version.ts 0.5.8 2023-12-07 16:53:06 +01:00

SilverBullet

SilverBullet aims to be your workshop for the mind: a creative space where you collect, create and expand your personal knowledge, while also letting you constantly evolve the tools you use to do so.

While you can use SilverBullet as a simple note taking application that stores notes in plain markdown files on disk, it becomes truly powerful in the hands of more technical power users. By leveraging metadata annotations, its Objects infrastructure, Live Queries and Live Templates, SilverBullet becomes a powerful end-user programming tool, enabling you to quickly develop various types of ad-hoc knowledge applications.

SilverBullet is implemented as an open-source, self-hosted, offline-capable web application.

Youve been told there is no such thing as a silver bullet. You were told wrong.

IIntroduction to SilverBullet

Features

SilverBullet...

  • Runs in any modern browser (including on mobile) as a PWA in two Client Modes (online and synced mode), where the synced mode enables 100% offline operation, keeping a copy of content in the browser, syncing back to the server when a network connection is available.
  • Provides an enjoyable markdown writing experience with a clean UI, rendering text using Live Preview, further reducing visual noise while still providing direct access to the underlying markdown syntax.
  • Supports wiki-style page linking using the [[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.
  • Optimized for keyboard-based operation:
    • Quickly navigate between pages using the page switcher (triggered with Cmd-k on Mac or Ctrl-k on Linux and Windows).
    • Run commands via their keyboard shortcuts or the command palette (triggered with Cmd-/ or Ctrl-/ on Linux and Windows).
    • Use Slash Commands to perform common text editing operations.
  • Provides a platform for end-user programming through its support for Objects, Live Queries and Live Templates.
  • Robust extension mechanism using plugs.
  • Self-hosted: you own your data. All content is stored as plain files in a folder on disk. Back up, sync, edit, publish, script with any additional tools you like.
  • SilverBullet is open source, MIT licensed software.

Installing SilverBullet

Check out the official website

Developing SilverBullet

Open in Gitpod

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

Feedback

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.