A while ago I wrote about my search for a good private journaling solution. Since then I have tried dozens of different apps and services without finding anything I would like. At one point I even wrote my own little Jounraling client thinking I could hit the sweet spot. Unfortunately I was wrong, and my own design turned out to be just as bad as the competition.
Looking at it in retrospect, now I know that I have been trying to solve the wrong problem. I was designing a generic journal tool, rather than building something specific to my own needs. Part of the problem was that I wasn’t exactly sure how exactly I was going to be using this tool. I had an idea of a long form journal I wanted to write but that’s not what I ended up doing. I guess I should have started with a journal and built a tool around it rather than the other way around.
It turns out that creating long exhaustive daily posts was not something I was enjoying or what I had time for. I seem get most of the long form rants out of my system via this blog (and the few other public sites I run) – that’s sort of where I channel most of my clever musings. After externalizing all of my interesting musings via these public outlets, the the remainder was just boring, trivial or redundant.
I don’t actually enjoy chronicling every minute of my day. While there would be some utility to keeping a log of things I have done each day for future reference, actually putting these things down on paper are needless drudgery to me.
I actually enjoy browsing archives of my own blog because it takes me back to those old moments. Since I tend to write about things I love or care about all of the posts have a good deal emotional weight attached to them. I found out that creating more detailed and personal accounts of my daily life had the opposite effect – I noticed I was mostly chronicling my mistakes and being overly critical of myself. It seemed like a good idea at the time (self improvement and all) but reading it back would just bum me out and force me dwell on past failures.
That combined with the fact that on your average day I usually don’t have the time or inclination to play a recollection game to write a five thousand word essay of useless daily trivia made me stop trying altogether. This sort of journal does not work at all for me.
What does work? Well, I realized that for a Jounral to work it must meet the following requirements:
- First and foremost, the entries have to be short. I’d rather write a bunch of twitter style thought-bursts throughout the day, than a long thoughtful essay at the end of the day.
- Entries should be positive in nature – random musings, reflections, celebrating accomplishments, writing down jokes, etc.. They should concentrate on what I’m into at the moment, and what I want to remember about a given day years from now.
- Because it is sort of a continuously updated stream, it should be accessible over the internet. So it ought to be either web based, or stored in the Cloud somehow.
- Since I don’t always have a computer with me to jot down my thoughts, the journal should also have a dedicated iPhone App or be accessible via mobile friendly web interface.
- It should be stored in plain text files and not tied to a single client, unless that client is open source and available on all platforms. This is especially important with respect to the iOS based journaling tools. While there are a lot of great little diary type apps in the AppStore, most of them either store your data on their own servers, or use some proprietary file format. They are also frequently either exclusive to iOS or OSX/iOS combo leaving Windows and Linux out completely.
I gave up on my encryption requirement which I mentioned in the old post for the very simple reason: I forget passwords. If I keep my accounts reasonably secure, then I shouldn’t worry about setting per-file password on bunch of text files. The aim of a journal is to have something to aid in recollection and memory retrieval long time down the road. Chances are that in a decade, I will no longer remember the passwords I was using circa 2013. So I run a risk of locking myself out of my own journals which seems counterproductive.
Looking at my list of requirements, it almost seems that the best tool for the job would simply be Dropbox and a text editor of some sort. I could use Vim when on an actual computer, and something like Plain Text App on the phone. Unfortunately this sort of solution does not have any built-in automation. I would have to date my entries myself, which may not seem like a huge issue at first. After all, this is what people have done when they used dead-tree medium to do this.
The thing is I don’t really want a traditional “journal”. I want something like Twitter, but without the character limit (so like Pownce I guess) that saves to plain text files in a Dropbox folder. I want my entries tagged with date and time automatically, so I don’t have to think about it. I just don’t want to be bothered typing in a date/time string into a text editor 6-7 times a day.
Surprisingly enough, a guy called by Matthew Lang built a tool that is almost perfect for my needs. His creation is called Journalong and it is basically just a simple text box that sends the data to Dropbox:
It does everything I need, but it is not without flaws:
- I don’t know who Matthew Lang is and how much should I trust him not to read my entries.
- Matthew wants you to pay $10 per year, for the privilege of using his app. This may seem like a bargain, until you actually realize how little code is needed to build the application he built.
- Matthew never set the DNS record for his wwww subdomain, so half the time when my browser auto-completes the URL for me I get sent into cyberspace void.
- Journalong has no apple touch icon, so when I put a link to it on my iPhone it looks like absolute shit.
- Matthew seems to be a fan of military time. I want my entries to be dated using the 12 hour format but there isn’t a way to do this.
I sent Matthew an email asking if he ever plans to do anything about the last 3 of these issues about a week ago, but it was completely ignored. This puts #1 and #2 on the list in perspective. In this day and age, majority of the shit I use on the web is free. If I was to shell out money for this simple app, I at least ought to get some support… Otherwise, why not write something like this myself.
No, seriously. I’ve been using Journalong’s free trial and I actually kinda like the functionality it provides. But it is super simple, and the more I used it the more I realized I could actually do better. So I sat down and implemented my own Dropbox Journal in approximately 150 lines of Ruby (not counting HTML markup). I called it Markdown Journal.
How does it differ from Matthew Lang’s application?
For one, Markdown Journal is open source. You can find the code on Github and easily verify I’m not doing anything shady with your data. Secondly, it is completely free and I intend it to stay that way.
In all honesty, I would actually feel bad charging anyone a recurring fee to use something that took me about two evenings to put together, and is shorter than about 150 lines of code, plus some HTML. The webapp runs on the excellent Sinatra miniframework and uses the official Dropbox SDK gem for authentication and file uploading. It was really simple and fun to put together and I’m hosting it on a super cheep shared host, along side some other sites because it really doesn’t require that much resources, nor do I see it ever becoming terribly popular.
I also have Matthew beat on features. My date/time headings in the file are completely configurable via a simple YAML file you can drop into the same directory you will be keeping your journal files in. Granted, creating text files is scary to some people, but chances are if your choose to write a journal in Markdown format and host it on Dropbox you can probably figure out how to create a YAML file based on an example on the site.
Finally, I have properly sized apple touch icons so when you save the link on your home screen it actually shows a proper icon rather than a blank square.
Let me know what you think. Would this tool be useful to you? What do you use for note-taking and journaling? Let me know in the comments.