Skip to content

jmcfarlane/notable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notable

Go Report Card GitHub release Build Status License

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