Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jmcfarlane/notable
Notable - a simple note taking application
https://github.com/jmcfarlane/notable
golang linux macos notes security
Last synced: 2 days ago
JSON representation
Notable - a simple note taking application
- Host: GitHub
- URL: https://github.com/jmcfarlane/notable
- Owner: jmcfarlane
- License: mit
- Created: 2012-03-22T09:15:58.000Z (over 12 years ago)
- Default Branch: main
- Last Pushed: 2023-12-19T18:45:14.000Z (11 months ago)
- Last Synced: 2023-12-20T13:43:54.883Z (11 months ago)
- Topics: golang, linux, macos, notes, security
- Language: Go
- Homepage:
- Size: 12.5 MB
- Stars: 180
- Watchers: 6
- Forks: 16
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- open-source-mac-os-apps - notable - Simple note taking application. ![javascript_icon] (Applications / Notes)
- open-source-mac-os-apps - notable - Simple note taking application. ![javascript_icon] (Applications / Notes)
README
# Notable
[![Go Report Card](https://goreportcard.com/badge/jmcfarlane/notable)](https://goreportcard.com/report/jmcfarlane/notable)
[![GitHub release](https://img.shields.io/github/release/jmcfarlane/notable.svg)](https://github.com/jmcfarlane/notable/releases)
![Build Status](https://github.com/jmcfarlane/notable/actions/workflows/test.yaml/badge.svg)
[![License](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/jmcfarlane/notable/blob/main/LICENSE)A **very** simple note taking application. It has no dependencies and
ships as a static binary.![](docs/images/notable.png)
You can view recent changes in the [changelog](CHANGELOG.md).
## Features
- [x] Secure: Everything is local to your computer
- [x] Private: Each note can be encrypted
- [x] Search as you type (tag, tag prefix, and full text index)
- [x] Standalone: You can use it on an airplane
- [x] Keyboard friendly
- [x] Cross platform:
- [x] Linux (amd64, arm6, arm7)
- [x] MacOS
- [x] FreeBSD
- [x] Windows (experimental)
- [x] Distributed writes (*experimental*)
- [x] [Keybase](https://keybase.io/)
- [x] [Syncthing](https://syncthing.net/)
- [x] Autosave (note specific)
- [x] On demand re-indexing (useful for backup/restore)## Installation
### Linux, FreeBSD, MacOS, Windows
Download and extract the latest
[release](https://github.com/jmcfarlane/notable/releases) version.
The zip file contains an executable named `notable`. The MacOS version also
includes an [app bundle](https://en.wikipedia.org/wiki/Bundle_(macOS)).### 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](https://www.docker.com/) 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).![](docs/images/help.png)
### Notes can be encrypted individually
![](docs/images/encrypted.png)
### Search via tag, tag prefix, and full text index
![](docs/images/search.png)
### Visual indication of unsaved changes
![](docs/images/unsaved-changes.png)
### Edit content
![](docs/images/edit.png)
### Open multiple notes via tabs
![](docs/images/tabs.png)
## Third party software
| Project | Reason for use |
| ------------------------------------------------------------- | ------------------------- |
| [Ace](https://ace.c9.io/) | Editor |
| [Backbone.js](http://backbonejs.org/) | Javascript framework |
| [bboltDB](https://go.etcd.io/bbolt) | Datastore |
| [Bleve](http://www.blevesearch.com/) | Full text search |
| [Bootstrap](http://getbootstrap.com/) | User interface |
| [Chi](https://github.com/go-chi/chi) | HTTP Router |
| [errors](https://github.com/pkg/errors) | Golang error primatives |
| [go-homedir](https://github.com/mitchellh/go-homedir) | Home directory detection |
| [Golang](https://golang.org/) | Business logic |
| [jQuery](https://jquery.com/) | Dom manipulation |
| [logrus](https://github.com/sirupsen/logrus) | Golang logging |
| [Mousetrap](https://craig.is/killing/mice) | Keyboard bindings |
| [Require.js](http://requirejs.org/) | Dependency management |
| [text plugin](http://github.com/requirejs/text) | Text templates |
| [Underscore.js](http://underscorejs.org/) | Client side templating |
| [uuid](https://github.com/gofrs/uuid) | UUID implementation |