← Back to Blog
Notes without databases
∙ 7 min
Note-taking is really critical to how I work. It’s been important to me for a while to find a note-taking setup that I’m happy with. I’ve finally arrived there and would like to share it.
Here are a few principles I leaned on while searching for my ideal setup. I borrowed it from my previous post Image management without databases.
- Portability - The entire setup below avoids platform lock-in as much as possible
- Flexibility - I want my
photosnotes to work for me, not the other way around. I want the freedom to organize my photosnotes as I see fit today and change that easily in the future if need be
- Automation - As much of the setup should be automated or semi-automated as possible. The point of the exercise is to enjoy your
photosnotes, not to create a new chore
I used to use Evernote’s free tier. Like many users, I only scratched the surface of its overwhelming feature set. One thing that always turned me off was the note sync bandwidth limit. Evernote actually limits how much bandwidth you can eat up by syncing your notes. This just added one more thing for me to try to remember and made an upgrade to
The pricing is a bit steep for the
Premium subscription as well, at 7.99 USD/month. In a world where I’m conscience of death by a thousand subscriptions, that was a turn-off.
I should note that I’m a regular user of Skitch (an Evernote app) to annotate screenshots and other images. I love Skitch (they have the best annotation arrows! 😀). Go check it out!
In late 2018 I switched over to Bear Notes by Shiny Frog, an Italian company who built an absolutely beautiful note-taking app for macOS. I was really impressed by their more purist take on a note-taking app and obvious focus on Markdown.
Markdown is a lightweight markup language with plain text formatting syntax. - Wikipedia
Bear is a minimalistic app that avoids the feature bloat that Evernote suffers. You can set Bear to respect and enforce Markdown in your note-taking, which for me was really important for interoperability in case I ever wanted to leave Bear. The migration from Evernote to Bear was messy for exactly that reason: Evernote doesn’t overtly operate in Markdown. Bear publishes an import workflow but I had to do some cleanup afterwards.
Bear leans on iCloud to sync your notes, so they actually never have possession of the notes, avoiding any concerns about the privacy of your notes when it comes to Shiny Frog. (Yes, Apple will technically have your notes) However, this whole setup is very macOS-centric and I know it’s something the team at Bear is working to bring to an OS-independent web app.
Bear’s pricing is also much more attractive at 14.99 USD/year plus whatever you need to pay Apple for iCloud. Bear’s free tier wouldn’t do it for me since I want cross-device sync. I found my notes would easily fit into iCloud’s free tier for years to come.
I know there are lots of other note-taking apps out there but let me tell you why I shunned them all.
Markdown purism prevails
At some point I noticed I was using features in Bear that aren’t native to vanilla Markdown. An example is text marking (
::This is text marking syntax in Bear::). It’s convenient to highlight text like this, but this feature isn’t supported by vanilla Markdown. That means that if I want to take my notes elsewhere one day, I’ll be stuck addressing all the Bear-specific syntax like this during the migration.
Bear inspired me to take a long, hard look at Markdown files (
.md) as a note-taking storage structure. Similar to my image storage structure from Image management without databases, I realized I would be able use any text editor and I could also use any cloud storage provider. If all my notes were just files, I could literally drag-and-drop them from one place to another without ugly export/import processes. And this would all be free.
Note: If you’d like to learn more about Markdown, check out markdownguide.org.
I use iCloud to sync my notes across my devices for a specific reason related to iOS. More on that later. Fundamentally though, you should be able to use any cloud storage backbone you like. My note file structure is just a bunch of
.md files and some folders to organize them.
iCloud 📁 └───iA Writer 📁 └───Hobbies 📁 │ │ swimming.md 🗒 │ │ sports.md 🗒 └───Work 📁 │ │ 2019-10-29-team-meeting.md 🗒 │ │ 2019-11-04-team-meeting.md 🗒 └───Travel 📁 │ │ barcelona.md 🗒 │ │ new-york.md 🗒
As a desktop-based note-taking app, I use Typora, but there are lots of other text editors that support Markdown. Another great app is iA Writer. Typora just looks at my iCloud Drive folder most of the time. This gives me a live view into that file structure and lets me just create and save
.md files on my local drive and have them synced to iCloud.
Fun fact: I wrote this blog post in Typora and it synced live into my Hugo directory. More on my website setup here.
I purchased iA Writer for my iPhone and iPad (9.99 USD). It works wonderfully on both devices. My only complaint about this part of my setup is that I’d like to use any cloud storage provider, but iA Writer really only works with iCloud. There’s an explanation of how to use iA Writer for iOS with Dropbox here, but I wasn’t happy with this functionality, so I stuck with iCloud.
Images and other media
Often notes need images and other assets to enrich them. I don’t save assets in my note file structure. Instead, I offload them to Cloudinary, no matter if they images or something else. Cloudinary is an image- and video-centric CDN (content delivery network) provider. I just upload the images there, grab the URL and embed them in my notes. Admittedly, this isn’t as frictionless as just dragging and dropping them into a note like with a dedicated platform, but I avoid clutter and bloat of my file system and my notes literally render the same everywhere as long as you have an internet connection. You can read more about other setups at Typora’s support site.
One drawback to this setup is security - the URLs Cloudinary produces are accessible by anyone who knows them, but they’re obfuscated URLs and non-indexed, so I felt like I struck the right balance of convenience and security for my needs. For sensitive materials, I’d probably save the images right in the iCloud directory though.
The other drawback is offline access to non-text assets like images. In a plane, for example, my notes show a broken link where the image should be.
I’m really happy with this setup despite these few drawbacks:
- My iOS toolset doesn’t really let me use any cloud storage provider - I seem to be locked into iCloud. But I can still easily share my notes via email or back them up to anywhere else with a simple drag-and-drop.
- I miss the clever nested tag system from Bear. There’s no guarantee that your Markdown editor supports tags embedded inside your documents so I don’t use it in my current setup. It’s really important to me to have all metadata related to a note inside the note file itself to avoid platform lock-in. iA Writer supports hashtags, but only to one level (no nesting).
- This setup offers no real ability to collaborate on notes. This wasn’t important to me so I live with this limitation.
In short, my setup (sort of) avoids cloud storage lock-in, lets you quickly write notes in a platform-independent syntax (Markdown) and works with free or low-cost tools like Typora and iA Writer.
It’s quite liberating to know that your stuff is well-organized and that it belongs to you, not locked away one some app that’s subject to price changes, UI changes and clumsy export workflow when/if you’re ever fed up with it.