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
Docker container
Run via adocker 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 |