An end-to-end encrypted note taking alternative to Evernote

Overview

Notesnook Logo

Notesnook

An end-to-end encrypted note taking alternative to Evernote.

Website | About us | Roadmap | Downloads | Twitter | Discord

To celebrate the open sourcing of Notesnook, we have giving away first year of Notesnook Pro at 75% off. Support us by subscribing!

Overview

Notesnook is a free (as in speech) & open source note taking app focused on user privacy & ease of use. To ensure zero knowledge principles, Notesnook encrypts everything on your device using XChaCha20-Poly1305 & Argon2.

Notesnook is our proof that privacy does not (always) have to come at the cost of convenience. Our goal is to provide users peace of mind & 100% confidence that their notes are safe and secure. The decision to go fully open source is one of the most crucial steps towards that.

This repository contains all the code required to build & use the Notesnook web, desktop & mobile clients. If you are looking for a full features list or screenshots, please check the website.

Developer guide

Technologies & languages

Notesnook is built using the following technologies:

  1. JavaScript/Typescript — this repo is in a hybrid state. A lot of the newer code is being written in Typescript & the old code is slowly being ported over.
  2. React — the whole front-end across all platforms is built using React.
  3. React Native — For mobile apps we are using React Native
  4. NPM — listed here because we don't use Yarn or PNPM or XYZ across any of our projects.
  5. Lerna & Nx — maintaining monorepos is hard but Nx makes it easier.

Note: Each project in the monorepo contains its own architecture details which you can refer to.

Monorepo structure

Name Path Description
@notesnook/web /apps/web Web/Desktop clients
@notesnook/mobile /apps/mobile Android/iOS clients
@notesnook/core /packages/core Shared core between all platforms
@notesnook/crypto /packages/crypto Cryptography library wrapper around libsodium
@notesnook/editor /packages/editor Notesnook editor + all extensions
@notesnook/editor-mobile /packages/editor-mobile A very thin wrapper around @notesnook/editor for mobile clients
@notesnook/logger /packages/logger Simple & pluggable logger
@notesnook/crypto-worker /packages/crypto-worker Helpers to use @notesnook/crypto from a Worker
@notesnook/streamable-fs /packages/streamable-fs Streaming interface around an IndexedDB based file system
@notesnook/theme /packages/theme The core theme used in web & desktop clients

Contributing guidelines

If you are interested in contributing to Notesnook, I highly recommend checking out the contributing guidelines You'll find all the relevant information such as style guideline, how to make a PR, how to commit etc., there.

Support & help

You can reach out to us via:

  1. Email
  2. Discord
  3. Twitter
  4. Create an issue

We take all queries, issues and bug reports that you might have. Feel free to ask.

Additional Resources

Comments
  • My whole note disappear and the contents become the content in my another note

    My whole note disappear and the contents become the content in my another note

    My whole content of a note -Is Iraq war legal? And the things that the U.N should do - disappear. And the contents become the content in another note..... I type that note for entirely ONE MONTH. Now it's gone...... I type that note for entirely ONE MONTH. Now it's gone...... I type that note for entirely ONE MONTH. Now it's gone...... I type that note for entirely ONE MONTH. Now it's gone...... I type that note for entirely ONE MONTH. Now it's gone...... I type that note for entirely ONE MONTH. Now it's gone...... I type that note for entirely ONE MONTH. Now it's gone......

    Device information: App version: 1.8.8-ec26a54-desktop OS: OS X 10.15.7 Browser: Electron 17.0.1 Pro: false

    opened by streetwriters[bot] 35
  • Cannot Sync -- even with force restore

    Cannot Sync -- even with force restore

    Help! I can't seem to sync.b/w my desktop and phone versions even with the force restore


    Device information: App version: 1694 Platform: android Model: OPPO-CPH1969-30 Pro: true Logged in: yes

    Unit: Sync 
    opened by streetwriters[bot] 26
  • Unable to

    Unable to "Add to Notebook"

    I selected the Group By "none" and now i am unable to add any note to a notebook, right click on note and click on "add to notebook" in context menu doesn't work anymore.

    Also, I can't see my notebooks and topics list as well in the "Notebooks" tab.

    Device information: App version: 1.8.6-20bdaa9-desktop OS: OS X 10.15.7 Browser: Electron 17.0.1 Pro: true

    opened by streetwriters[bot] 21
  • Cannot sync notes after changing password

    Cannot sync notes after changing password

    I have tried to resync/restore previous backup after changing my password but I get an error "ciphertext cannot be decrypted using that key"

    Device information: App version: 1.7.4-2f2fc41-desktop OS: Windows 10 64-bit Browser: Electron 16.0.4 Pro: true

    Type: Bug Platform: Mobile Status: Investigating 
    opened by streetwriters[bot] 18
  • Notes don't seem to sync correctly?

    Notes don't seem to sync correctly?

    I'm receiving a "call stack exceeded (native stack depth) error when I try to sync my notes. Here are the logs

    RangeError: Maximum call stack size exceeded (native stack depth) at anonymous (address at index.android.bundle:1:937970) at anonymous (address at index.android.bundle:1:932079) at map (native) at get (address at index.android.bundle:1:932050) at anonymous (address at index.android.bundle:1:931968) at anonymous (address at index.android.bundle:1:932079) at map (native) at get (address at index.android.bundle:1:932050) at anonymous (address at index.android.bundle:1:931968) at anonymous (address at index.android.bundle:1:932079) at map (native) at get (address at index.android.bundle:1:932050) at anonymous (address at index.android.bundle:1:931968) at anonymous (address at index.android.bundle:1:932079) at map (native) at get (address at index.android.bundle:1:932050) at anonymous (address at index.android.bundle:1:931968) at anonymous (address at index.android.bundle:1:932079) at map (native) at get (address at index.android.bundle:1:932050) at anonymous (address at index.android.bundle:1:931968) at anonymous (address at index.android.bundle:1:932079) at map (native) at get (address at index.android.bundle:1:932050) at anonymous (address at index.android.bundle:1:931968) at anonymous (address at index.android.bundle:1:932079) at map (native) at get (address at index.android.bundle:1:932050) at anonymous (address at index.android.bundle:1:931968) at anonymous (address at index.android.bundle:1:932079) at map (native) at get (address at index.android.bundle:1:932050) at anonymous (address at index.android.bundle:1:931968) at anonymous (address at index.android.bundle:1:932079) at map (native) at get (address at index.android.bundle:1:932050) at anonymous (address at index.android.bundle:1:931968) at anonymous (address at index.android.bundle:1:932079) at map (native) at get (address at index.android.bundle:1:932050) at anonymous (address at index.android.bundle:1:931968) at anonymous (address at index.android.bundle:1:932079) at map (native) at get (address at index.android.bundle:1:932050) at anonymous (address at index.android.bundle:1:931968) at anonymous (address at index.android.bundle:1:932079) at map (native) at get (address at index.android.bundle:1:932050) at anonymous (address at index.android.bundle:1:931968) at anonymous (address at index.android.bundle:1:932079) ... skipping 255 frames at tryCatch (address at index.android.bundle:1:165115) at invoke (address at index.android.bundle:1:165348) at anonymous (address at index.android.bundle:1:165787) at tryCallTwo (/tmp/hermes/staging/hermes/cmake/intlRelease/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:61:9) at doResolve (/tmp/hermes/staging/hermes/cmake/intlRelease/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:216:25) at Promise (/tmp/hermes/staging/hermes/cmake/intlRelease/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:82:14) at callInvokeWithMethodAndArg (address at index.android.bundle:1:165749) at enqueue (address at index.android.bundle:1:165696) at anonymous (address at index.android.bundle:1:165263) at anonymous (address at index.android.bundle:1:167497) at extractAttachments (address at index.android.bundle:1:1211781) at add$ (address at index.android.bundle:1:1209801) at call (native) at tryCatch (address at index.android.bundle:1:165115) at invoke (address at index.android.bundle:1:166116) at anonymous (address at index.android.bundle:1:165263) at call (native) at tryCatch (address at index.android.bundle:1:165115) at invoke (address at index.android.bundle:1:165348) at anonymous (address at index.android.bundle:1:165787) at tryCallTwo (/tmp/hermes/staging/hermes/cmake/intlRelease/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:61:9) at doResolve (/tmp/hermes/staging/hermes/cmake/intlRelease/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:216:25) at Promise (/tmp/hermes/staging/hermes/cmake/intlRelease/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:82:14) at callInvokeWithMethodAndArg (address at index.android.bundle:1:165749) at enqueue (address at index.android.bundle:1:165696) at anonymous (address at index.android.bundle:1:165263) at anonymous (address at index.android.bundle:1:167497) at add (address at index.android.bundle:1:1208708) at set (address at index.android.bundle:1:1132708) at _mergeItemWithConflicts$ (address at index.android.bundle:1:1135677) at call (native) at tryCatch (address at index.android.bundle:1:165115) at invoke (address at index.android.bundle:1:166116) at anonymous (address at index.android.bundle:1:165263) at call (native) at tryCatch (address at index.android.bundle:1:165115) at invoke (address at index.android.bundle:1:165348) at anonymous (address at index.android.bundle:1:165560) at tryCallOne (/tmp/hermes/staging/hermes/cmake/intlRelease/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:53:16) at anonymous (/tmp/hermes/staging/hermes/cmake/intlRelease/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:139:27) at apply (native) at anonymous (address at index.android.bundle:1:171853) at _callTimer (address at index.android.bundle:1:170752) at _callReactNativeMicrotasksPass (address at index.android.bundle:1:170956) at callReactNativeMicrotasks (address at index.android.bundle:1:172944) at __callReactNativeMicrotasks (address at index.android.bundle:1:78213) at anonymous (address at index.android.bundle:1:77299) at __guard (address at index.android.bundle:1:78054) at flushedQueue (address at index.android.bundle:1:77210) at invokeCallbackAndReturnFlushedQueue (address at index.android.bundle:1:77153)


    Device information: App version: 1808 Platform: android Model: samsung-SM-N986W-31 Pro: true Logged in: yes

    opened by streetwriters[bot] 16
  • Notes Get Erased & Replaced with Different Note

    Notes Get Erased & Replaced with Different Note

    This is the same issue as 114, but it's gotten worse. The app has now replaced 4 of my notes with duplicated notes.

    I can confirm that this happens when I'm in a notebook or color note view and then click on a note entry, and click on another and back.

    The first one I clicked on gets duplicated over the 2nd one I clicked.

    The undo button is greyed out on the 2nd note which has been replaced by the 1st note content and creation date. The 2nd note title remains unchanged from its original one.

    I hope this can be fixed asap, this is a critical bug and I hope my precious notes can be recovered too.

    Can you please let me know:

    1. How can I restore my notes? I have backups but when I try to restore them it saying its missing an attachment hash?

    2. Can I restore a single note from a backup?

    3. How can I stop this bug from happening again?

    Device information: App version: 1.6.7-3a28f45-desktop OS: OS X 10.15.7 Browser: Electron 15.0.0

    opened by streetwriters[bot] 16
  • Sync error

    Sync error

    Describe the bug

    Everything I have done on my desktop for the past few hours is refusing to sync to mobile. Here are the logs:

    Error: An unknown error occured.
        at construct (native)
        at Wrapper (address at index.android.bundle:1:153047)
        at construct (native)
        at _createSuperInternal (address at index.android.bundle:1:1017268)
        at call (native)
        at RequestError (address at index.android.bundle:1:1019872)
        at handleResponse$ (address at index.android.bundle:1:1018310)
        at call (native)
        at tryCatch (address at index.android.bundle:1:163284)
        at invoke (address at index.android.bundle:1:164288)
        at anonymous (address at index.android.bundle:1:163432)
        at call (native)
        at tryCatch (address at index.android.bundle:1:163284)
        at invoke (address at index.android.bundle:1:163517)
        at anonymous (address at index.android.bundle:1:163729)
        at tryCallOne (/tmp/hermes/staging/hermes/cmake/intlRelease/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:53:16)
        at anonymous (/tmp/hermes/staging/hermes/cmake/intlRelease/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:139:27)
        at apply (native)
        at anonymous (address at index.android.bundle:1:170030)
        at _callTimer (address at index.android.bundle:1:168929)
        at _callReactNativeMicrotasksPass (address at index.android.bundle:1:169133)
        at callReactNativeMicrotasks (address at index.android.bundle:1:171121)
        at callReactNativeMicrotasks (address at index.android.bundle:1:76386)
        at anonymous (address at index.android.bundle:1:75471)
        at guard (address at index.android.bundle:1:76227)
        at flushedQueue (address at index.android.bundle:1:75382)
        at invokeCallbackAndReturnFlushedQueue (address at index.android.bundle:1:75325)
    

    Desktop:

    • OS: Arch Linux
    • Browser: Electron
    • Version: 1.8.2

    Smartphone:

    • Device: Samsung Galaxy S10+
    • OS: Android 12
    • Version: 1.8.3
    Type: Bug Status: Confirmed Unit: Sync 
    opened by candroid-man 15
  • Cannot download the attachments

    Cannot download the attachments

    Cannot download any of the attached documents. Downloading permit is already given, thow it's asked everytime. After confirming the access, nothing happens, no download done.


    Device information: App version: 1709 Platform: android Model: HUAWEI-JNY-LX1-29 Pro: true Logged in: yes

    opened by streetwriters[bot] 14
  • Unknown Error

    Unknown Error

    Please let us know what happened. What steps we can take to reproduce the issue here.


    Stacktrace: v@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:3051780 Cr@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:2217981 uo@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:2267221 ri@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:2254228 ti@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:2254156 ei@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:2253921 Xo@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:2250903 Xo@[native code] hn@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:2202288 zo@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:2247732 ra@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:2223393 ra@[native code] @/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:3177445 value@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:1946497 v@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:1941680 @/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:1911373 v@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:1910122 y@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:1910517 callReactNativeMicrotasks@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:1912771 value@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:1755316 @/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:1753418 value@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:1754964 value@/private/var/containers/Bundle/Application/EE319209-F4C7-4CF5-9F41-70D912F68BD7/Notesnook.app/main.jsbundle:1:1753376 value@[native code] value@[native code]


    Device information: App version: 218 Platform: ios Model: -- Pro: false Logged in: yes

    opened by streetwriters[bot] 13
  • Signing in on iPad

    Signing in on iPad

    I downloaded the app, but it is insistent that I have the incorrect Username or password. I have double checked on my phone, but it will not accept it. Nor, will it allow me to use the same information to sign up, as it shouldn’t.


    Device information: App version: 1702 Platform: ios Model: undefined-undefined-undefined Pro: false Logged in: no

    opened by streetwriters[bot] 13
  • There is a problem when the notes are synchronized on different platforms.

    There is a problem when the notes are synchronized on different platforms.

    I found that some of my notes cannot be fully synchronized. They are incomplete on other platforms. Hope you guys fix it as soon as possible. Before that, I can only use other platforms to advance my work.

    Type: Bug Status: Confirmed 
    opened by ghost 13
  • formatting issue

    formatting issue

    If I create a note on PC then go to my android app and open the note and place the cursor anywhere in the note... it strips the formatting (bold, numbered lists) and adds 5 spaces to every line break.

    Device information: App version: 2.3.0-c28ef94-desktop OS: Windows 10 64-bit Browser: Electron 21.1.1 Pro: true

    opened by streetwriters[bot] 0
  • Unable to access notes in vault

    Unable to access notes in vault

    The note does not open fully when unlocked, instead HTML coded version partially opens on the side but it's not accessible.

    Device information: App version: 2.3.0-c28ef94-desktop OS: Windows 10 64-bit Browser: Electron 21.1.1 Pro: true

    opened by streetwriters[bot] 0
  • Images cannot download

    Images cannot download

    Selecting certain notes with image attachments in the PC edition of Notesnook will display the "could not download file: Network Error" message even with a stable internet connection & after logging in & out. Images however will miraculously display on phone if one uploads them directly from the phone.

    No hate towards the awesome team who painstakingly developed Notesnook but it needs better management in handling image files. Thanks!

    Device information: App version: 2.3.0-c28ef94-desktop OS: Windows 10 64-bit Browser: Electron 21.1.1 Pro: true

    opened by streetwriters[bot] 0
  • I am not able to change the color of the font

    I am not able to change the color of the font

    I am unable to change the colour of the font.

    Device information: App version: 2.3.0-7b7fd62-web OS: Windows 10 64-bit Browser: Chrome 108.0.0.0 Pro: true

    opened by streetwriters[bot] 0
  • Notes got deleted automatically

    Notes got deleted automatically

    I have stored a note named lesson no 3 in notes i checked it 2 hours before it was gone. I didn't delete anything and even if ive deleted it by mistake it should be in trash folder ive checked their also no file it shows empty.i need that note it was very important for me and it got vanished please help me to restore that note


    Device information: App version: 2.3.0 Platform: android Model: google-Pixel 3 XL-31 Pro: false Logged in: yes

    opened by streetwriters[bot] 0
  • Image error

    Image error

    "Failed to upload part at offset 0: Network Error" message keeps displaying when attaching image files in Notesnook despite having a stable internet connection. Images also do not load on phone, but viewable on PC.

    Device information: App version: 2.3.0-c28ef94-desktop OS: Windows 10 64-bit Browser: Electron 21.1.1 Pro: true

    opened by streetwriters[bot] 0
Releases(v2.3.0)
Owner
Streetwriters
A community of writers for writers
Streetwriters
a Logseq plugin to float items (e.g. videos) for an improved note-taking experience

logseq-helium-plugin Features Float videos for better note-taking in 3 ways: Block context menu (right-click on bullet) → ?? Start float Slash (/) com

Vivian Leung 58 Jan 2, 2023
A plugin for GPT-3 AI assisted note taking in Logseq

logseq-plugin-gpt3-openai A plugin for GPT-3 AI assisted note taking in Logseq Usage Just type /gpt3 in a block or select gpt3 from the block menu. Se

Brian Sunter 301 Jan 3, 2023
A all around note taking and viewing portal for students as well as teachers.

Notetal Portal to notes for students and teachers. With Notetal you can take notes as well as view notes taken by others. Features Powerful Editor: A

Alson Garbuja 2 Jun 13, 2022
✏️ A new tab extension for convenient note-taking

MDTab Write quick notes in Markdown on any new tabs! Installation Right now MDTab has only been tested on Chrome (brave browser). You can install it f

Ian Huang (Shaoru) 8 Nov 11, 2022
End-to-end encrypted environments

Welcome to the EnvKey v2 monorepo! All EnvKey's open source code lives here. End-to-end encrypted environments Fixes configuration sprawl and sloppy s

EnvKey 360 Jan 1, 2023
Keep your sensitive information out of chat logs, emails, and more with heavily encrypted secrets.

Free encrypted secret sharing for everyone! This application is to be used to share encrypted secrets cross organizations, or as private persons. Hemm

Hemmelig 246 Dec 31, 2022
Send encrypted and decrypted messages with verifiable keys and human readable names.

zooko-msg Encrypt and decrypt messages using AES with a preshared ECDH key generated using keys associated with Handshake names. I noticed that there

Publius Federalist 31 Jul 27, 2022
Mag🔥Lit - A super fast and easy-to-use free and open source private encrypted Magnet/HTTP(s) Link Shortener

Mag ?? Lit Mag ?? Lit - A super fast and easy-to-use free and open source private encrypted Magnet/HTTP(s) Link Shortener https://maglit.ml Features ✅

null 280 Jan 8, 2023
Send encrypted messages and decrypt them without sharing keys. Built using the Handshake blockchain.

zmsg Encrypt and decrypt messages using AEAD with an ephemeral key Learn more by joining the Handshake Discord Community I noticed that there wasn't a

Publius Federalist 31 Jul 27, 2022
This CLI tool allows you to convert the encrypted Akamai 2.0 sensor data payload back to its plaintext form.

Akamai 2.0 Sensor Data Decryption Tool This CLI tool allows you to convert the encrypted Akamai 2.0 sensor data payload back to its plaintext form. Us

null 41 Jan 1, 2023
Keyauth v1 example, includes a demo and is encrypted using aes.

Keyauth Keyauth V1.0 api wrapper in nodejs that includes requests being encrypted using aes. Discord & Support Server . Keyauth Example const Keyauth

null 3 Nov 27, 2022
Vaultacks lets users store files off-chain on Gaia. Files are encrypted by default but also can be made public and shared

Vaultacks Vaultacks is built on the Stacks Chain. It lets users upload files to Gaia, a off-chain data storage system. Vaultacks currently uses the de

Anish De 5 Sep 14, 2022
A shared, encrypted cloud storage using Nostr.

nostr-storage A shared, encrypted cloud data store using Nostr. Installation This package is designed to work in both the browser and nodejs. <!-- Bro

cmd 10 Dec 21, 2022
A utility for taking screenshots of websites.

Tortor ⚡️ This is a website that allows you take screenshots of other websites. Simply enter the URL and a screenshot will be taken and available for

Timothy Ogbemudia 6 Jan 10, 2022
Re-taking voice conversations to the moon 🚀

Shibhouse Re-taking voice conversations to the moon ?? Explore the docs » View Demo · Report Bug · Request Feature Table of Contents About The Project

Aziz Becha 8 Nov 1, 2022
This is an Obsidian plugin for taking math notes using Excalidraw.

Obsidian Math+ Obsidian Math+ is a plugin for taking math notes quickly and efficiently. Usage Run the Insert math block command, either using the com

Oscar Capraro 29 Dec 30, 2022
Label your form input like a boss with beautiful animation and without taking up space

#Label Better by Pete R. Label your form input like a boss with beautiful animation and without taking up space Created by Pete R., Founder of BucketL

Pete R. 520 Feb 5, 2022
AWS CDK stack for taking website screenshots (powered by Puppeteer)

CDK Screenshot (powered by Puppeteer) Made possible by the excellent Puppeteer. Install export AWS_PROFILE=myprofile export AWS_DEFAULT_REGION=us-east

Alexei Boronine 6 Oct 23, 2022
An obsidian plugin that creates tomorrows daily note for preemtive planning.

Tomorrow's Daily Note An Obsidian plugin that creates tomorrows daily note for preemtive planning. Requirements Obsidian v0.12.0+. Daily notes plugin

Will Olson 12 Sep 24, 2022