Amongst my most-used browser extensions is Webstickies by Lawrence Hook, which allows you to leave a permanent "sticky note" on any web page. It's available for both Firefox and (yuck, ptui) Chrome, although I only use it in Firefox.
However, the one thing it lacks is an import/export functionality. For $10, you can get access to "Cloud Sync" for your notes—yes, another unneeded "cloud integration" where local functionality would have been superior.
Consider this side-by-side feature comparison:
Local Import/Export | Cloud Sync | |
Transfer notes between browsers or computers | ✔ | ✔ |
Allows the plugin developer to make some money selling the use of infrastructure that shouldn't strictly be needed | ❌ | ✔ |
Need to literally copy down every single note by hand, one by one, to get them out of the extension | ❌ | ✔ |
Email yourself a full copy of your notes for safekeeping | ✔ | ❌ |
Migrate your notes even if your internet connection is down | ✔ | ❌ |
Have multiple backups of your notes | ✔ | ❌ |
Save, convert and transfer your notes to another format or plugin | ✔ | ❌ |
Be able to guarantee the integrity of your backed-up note data | ✔ | ❌ |
Save or transfer your notes if the plugin author gets hit by a meteor and spends the rest of his life wandering around in a haze of amnesia | ✔ | ❌ |
Save or transfer your notes if the plugin author gets tired of running a cloud server and turns it off | ✔ | ❌ |
Save or transfer your notes if the plugin author doesn't pay their bills and their server host turns them off | ✔ | ❌ |
Save or transfer your notes if the plugin author decides to jack up the Cloud Sync cost to $1,000,000/month | ✔ | ❌ |
Doesn't cost the user anything | ✔ | ❌ |
Personally, from a user standpoint, I think local export/import of notes is a superior solution to Cloud Sync.
Now, the clever developers out there are probably saying, "Why not just copy the notes from the sqlite file that the extension stores data in?" Well, it's because this extension stores the note data in a "blob", a difficult-to-read binary format where it's mashed up in a giant enchilada with all sorts of other data.
But here's how you can do it. These instructions are for Firefox and verified to work in Firefox v143.0.4. There may be a similar method for (yuck, ptui) Chrome, but that's not a concern for me, so, this is what you get.
To export all notes to a text file
1.) In Firefox's URL bar, type about:debugging#/runtime/this-firefox
and hit return to see Firefox's Extensions Debugging page. Scroll down until you see "Webstickies".
2.) On the "Webstickies" row, hit "Inspect". This opens the "Developer Tools" for the Webstickies extension, which appears in most ways like the normal Inspector developers open to scrutinize web page code, but offers more functionality specific to the plugin.
3.) In the Developer Tools that opens up, hit the "console" tab.
4.) At the >
prompt at the bottom of the console, type this: browser.storage.local.get(null).then(data => {console.log(JSON.stringify(data, null, 2))})
You should be able to copy that directly from here and just paste it. Then hit return.
5.) Your console will spit out a bunch of stuff:
Right-click or ctrl-click on the text that was outputted, and select "Copy Object" from the pop-up menu.
This will copy the full notes data to your clipboard.
6.) Open a text editor on your computer (BBEdit, notes.app, textedit, notepad, wordpad, whatever) and open a blank document.
7.) Hit Cmd-v (Mac) or ctrl-v (windows), or select "Paste" from the Edit menu, to paste the full notes into this new file.
8.) Save the file.
You now have all your webstickies note data saved in JSON format for safekeeping or further processing. This file does contain much more information than your notes, but it's all labeled in the file, and JSON format is easily readable by many programs.
To import into Webstickies from your saved text file
If you have a new browser or another computer with webstickies installed, here is how you import the notes you just saved in the previous section. Be aware that if you already have notes in Webstickies, this may overwrite them. This should only be done on a brand-new install. Intrepid web-developer types may want to try exporting any existing notes using the above steps and merging them with the JSON file they want to import. I have not tested it, and do not know if it will work. Do anything like that at your own risk.
Ok. To import the previously-saved Webstickies export file:
First, open your saved text field from step #8 above in a text editor. Select the entire file contents, from the first {
to the last }
and hit cmd-c (Mac) or ctrl-c (windows), or select "Copy" from the Edit menu, to copy the full saved notes data to your computer's clipboard.
Then follow steps 1-3 from the Export section above. Then proceed from here:
4.) At the >
prompt at the bottom of the console, type this: const backupData =
Do not hit enter or return.
5.) Hit Cmd-v (Mac) or ctrl-v (windows), or select "Paste" from the Edit menu, to paste the full notes onto this Console line. Still do not hit enter or return.
6.) Type this in the same line right after the last }
of what you just pasted: ;browser.storage.local.set(backupData).then(() => {console.log('Data restored successfully!');});
and then hit return.
7.) If you did everything right, you will see a message "Data restored successfully" and the data from your saved Webstickies file will have been imported into webstickies in your current browser.
It worked for me, anyway. I just migrated all my notes between installs of Firefox on two different machines this way.
Disclaimer: You do anything on this page solely at your own risk. As with all things, the chief rule is: use your discretion. I am not responsible for your actions or their consequences. I may not even know what I am talking about. Please make sure you have read and understand the site disclaimer, terms and conditions, in which it is clearly stated that you should never do to anything I say, and if you do, it's on you.