twinkle-labs / twinkle-notes

End-to-end encrypted notes application

Home Page:https://twinkle.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Twinkle Notes

Twinkle Notes is a privacy-first personal knowledge base with end-to-end encrypted syncing. Notes are stored in encrypted sqlite3 files (SQLCipher). For further information, see https://twinkle.app

We decide to open source the app because we believe

  • You should trust code only when data privacy matters;
  • Security bugs are easier to find when code is published.

START APP SERVER

Twinkle Notes can be developed with any text editor, and then test and debug it inside browser as a web app. To run twinkle notes as a standalone app server, first make sure you have both twinkle-lisp and twinkle-notes checked out under the same directory. Then

cd twinkle-notes
ln -s ../twinkle-lisp/lisp .
../twinkle-lisp/twk launch control --port ,6782

Now you can use twinkle notes as a webapp from browser http://127.0.0.1:6782.

The "backend" is implemented inside directory site-lisp, and "frontend" in web. They are the core of the app, and where the majority of our time is spent.

PLATFORM APPS

Twinkle Notes app server can be embedded within an application, which only includes a webview to display app UI. On Android/iOS/Mac, we use system provided webview to minimize memory footprint; On windows/linux, we have no choice but to use chromium embedded framework.

See src/** for platform specific implementations.

LICENSE

Unless specified individually or originated from other projects, files from this project are released under AGPL license (See LICENSE).

About

End-to-end encrypted notes application

https://twinkle.app

License:GNU Affero General Public License v3.0


Languages

Language:JavaScript 78.6%Language:Common Lisp 6.7%Language:HTML 4.9%Language:CSS 2.7%Language:Objective-C 2.3%Language:C++ 1.8%Language:Java 1.7%Language:C 1.1%Language:Makefile 0.1%Language:NSIS 0.1%Language:Batchfile 0.0%Language:Shell 0.0%