notable

Notable - a simple note taking application

Stars
180
Forks
16
Open issues
1
Closed issues
12
Last release
about 1 year ago
Last commit
about 1 year ago
Watchers
180
Total releases
16
Total commits
465
Open PRs
1
Closed PRs
97
Repo URL
Platform
Mac
License
mit
Category
Usecase
Notetaking
Offers premium version?
NO
Proprietary?
NO
About

Notable

A very simple note taking application. It has no dependencies and ships as a static binary.

You can view recent changes in the changelog.

Features

  • Secure: Everything is local to your computer
  • Private: Each note can be encrypted
  • Search as you type (tag, tag prefix, and full text index)
  • Standalone: You can use it on an airplane
  • Keyboard friendly
  • Cross platform:
    • Linux (amd64, arm6, arm7)
    • MacOS
    • FreeBSD
    • Windows (experimental)

  • Distributed writes (experimental)

  • Autosave (note specific)
  • On demand re-indexing (useful for backup/restore)
Installation Linux, FreeBSD, MacOS, Windows

Download and extract the latest release version. The zip file contains an executable named notable. The MacOS version also includes an app bundle.

Install from source

go install github.com/jmcfarlane/notable@latest
notable
Understanding the build

Notable uses GNU Make and shell scripts for it's build. You can get some detail on what the build supports by it's help target:

git clone https://github.com/jmcfarlane/notable.git
cd notable
make help
>> Help info for supported targets:
   make all: Produce a binary suitable for local testing only
   make build: Produce artifacts via scripts/build.sh (meant for OCI builds)
   make clean: Purge the target directory
   make coverage: Display code coverage in html
   make docker-build-export-target: Perform an OCI build (and export the target dir)
   make docker-build: Perform a docker build
   make docker-runnable: Create a runnable docker container
   make docker-run: Run the most recent runable docker container in the foreground
   make help: Print help information
   make install: Install using/into the active $GOPATH
   make iterate: Build and run with a test db in the foreground
   make prepare-release: Prepare all assets for release
   make publish-release: Publish a release
   make target: Create the target directory
   make test: Run go test
   make tidy: Tidy makes sure go.mod matches the source code in the module
   make uninstall: Uninstall everything from this project
   make vet: Run go vet
Compile from source (using known good dependencies)
make test vet
make iterate
Run via a Docker container
docker run -p 8080:8080 -d -v ~/.notable:/root/.notable jmcfarlane/notable:latest
Build the Docker container and run it locally (ephemeral notes)
make docker-runnable
make docker-run
Screenshots Keyboard shortcuts

Help can be invoked by the ? key (when the note content is not focused).

Notes can be encrypted individually

Search via tag, tag prefix, and full text index

Visual indication of unsaved changes

Edit content

Open multiple notes via tabs

Third party software

Project Reason for use

Ace Editor

Backbone.js Javascript framework

bboltDB Datastore

Bleve Full text search

Bootstrap User interface

Chi HTTP Router

errors Golang error primatives

go-homedir Home directory detection

Golang Business logic

jQuery Dom manipulation

logrus Golang logging

Mousetrap Keyboard bindings

Require.js Dependency management

text plugin Text templates

Underscore.js Client side templating

uuid UUID implementation

Alternative Projects

Subscribe to Open Source Businees Newsletter

Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.

We'll never share your email with anyone else.