1. 30

I’m starting a new job and I think I can benefit from keeping a personal diary of it, a little job journal. Even though I am tempted to do it in paper, I think that having an app which I can search and jump to dates might be better. I am not looking to create my own wiki or documentation, it is more about journaling and recording each day experience and what I faced in terms of challenges, gotchas, etc.

I am currently on macOS and use an Android phone, so cross-platform is good but not essential as I see this being something I will write at the end of every day on the desktop itself.

Does anyone here have a favorite journaling app? Does it have a nice calendar and search features?


  1. 27

    I created an e-mail address on my domain and I write journal entries as e-mail to that address. My client for writing becomes any device capable of sending e-mail, and I can use the search features built into gmail for searching through entries. As a bonus, entries are automatically timestamped.

    I considered using paper, but I wanted something that would be easy to write to even if I was away from home and forgot my notebook. I also find typing entries to be faster than writing, and being able to search is a great feature.

    1. 9

      This is frankly brilliant.

      1. 6

        Awesome idea. For gmail you could use myusername+journal@gmail.com and then setup a filter to to go a special folder

        1. 3

          This is one of those ideas that make you go “why didn’t I think of this?”.

          1. 3

            I’ve been meaning to switch my blog over to using a similar mechanism.

            1. 4

              Reminds me of posterous ~10 years ago

            2. 2

              I really like this.

            3. 25

              I do this with Emacs and org-mode. I have one dedicated file - journal.org, and I create an entry per day. Despite ‘setup’ and configuration costs (which isn’t really that bad if you look at getting started with Spacemacs or Doom-Emacs), I’ve yet to come across anything that’s as frictionless whilst at the same time retaining the ultimate in flexibility.

              It might be worth a look at org-journal, but personally I’ve found the above to be pretty much all I need.

              1. 7

                Another +1 for org-mode. I keep an inbox.org that has a top level heading for each day. So it might look something like this.

                * March 19 - Tuesday
                ** 1:1 w/ boss
                 - some 1:1 notes
                 - more notes
                *** TODO a task from the 1:1
                ** A coding task [ 0 / 3 ]
                - [ ] write the code
                - [ ] write the tests
                - [ ] make a PR

                org-mode has built in tools to manage the TODO items and the checkboxes for you. You can pull a list of all todos, or see what things were checked off what days. The check boxes give a nice overview when the subtasks are folded. All of this gets folded up by org-mode so I can see a nice summary of the day without needing to dig into each sub item.

                1. 3

                  org-mode has built in tools to manage the TODO items and the checkboxes for you.

                  The dates, too: ‘C-c .’ AKA ‘org-time-stamp’ inserts <2019-03-19 Tue> and S-leftarrow goes back one day, etc.

                  1. 2

                    I do this exact same thing. One top-level item for each day.

                  2. 4

                    Same here with org-mode, but I also have a capture template that allows me to create a journal entry from anywhere with very little effort.

                    The following in my emacs config file allows me to type C-c c j to open a buffer where I can record my entry, which then gets saved to ~/org/journal.org under the Journal heading.

                    (global-set-key (kbd "C-c c") 'org-capture)
                     (setq org-capture-templates
                           '(("j" "Journal" entry (file+olp+datetree "~/org/journal.org" "Journal")
                              "* %?\n  %i\n  %a\n")))

                    Emacs capture templates

                    1. 2

                      I do this as well. I have a file: labbook.org with one entry per day. For me I was getting lost trying to come up with good methods of organizing my content (todo.org, $project.org, $person.org) and finally decided to simplify with chronological ordering.

                      1. 1

                        If you’re an emacs person org-mode is hard to beat. It’s outlining features are without peer near as I can tell. It’s one of the things I miss about emacs.

                        1. 2

                          Even if you don’t use Emacs for anything else, what stops you from using it for Org? Your comment reads a bit to me like “If you’re a Java person, Minecraft is a pretty fun game”.

                          1. 1

                            Because I came to realize that much of Org’s power, much like the rest of emacs’s power, is more than I need and ends up being a bright shiny distraction that I end up futzing with endlessly rather than actually getting work done :)

                            Plain old Markdown files have served me very well for work stuff, and Evernote for personal stuff.

                      2. 11

                        I still really like paper for the most part. I have a Hobonichi Techo Planner that I carry with me everywhere that I make a point of reviewing every morning and updating. Then a notebook with really nice paper (blank pages) and a nice pen to jot down notes throughout the day into. If it’s something I need to catalog somewhere like snippets, or links, etc.. I have a _scratch folder at the top of my projects folder I dump that stuff into loosely organized into folders by topic/context, that gets synced to Amazon S3 periodically.

                        Then for just plain old tasks I use TaskWarrior, as it sort of gets out of your way and you don’t have to have a GUI open, just a terminal somewhere. I have iTerm2 set up with HotKey to open a guake-like terminal overlay so that I can hit a key, down drops the terminal frmo the top of my screen, type task add blah blah blah then the key again to make the terminal go away. That way I don’t have to have a dedicated terminal window open to use it and I don’t even have to close, it I just click back to where I’m working and the terminal goes away.

                        The thing about keeping most things on paper is that you don’t then have to swap screens all the time, or add another app to the list of apps you’re juggling on your desktop. You just turn your head, move you hands and jot things down without interrupting your work flow as badly as searching for your journal app then getting hung up on where to organize a snippet, note, event date, etc… your screen stays set up and focused on your work.

                        Its a really cool feeling having a shelf of notebooks sitting near you at home as well, you can go back through them easily and think “holy crap I was an idiot? Why did I think that would work?” and you rediscover old ideas later on.

                        There are so many journalling, calendaring and task management apps out there, but they all do some things really well and others not very well. I spent about 4 years burning through a lot of them, I’d start using them with the best of intentions and after a few months or even weeks, one morning I’d just forget to open the app and it would all be over, i’d never open it again. I think the fact that there are so many of these apps out there, is a pretty good signifier that people just have a hard time using apps like that to do these things, someones always reinventing it to try and make the task better and less obtrusive. It’s something it takes effort to do consistently, and no amount of UI optimizations, usability work and unique features will make it work. We’re trying too hard to get applications to do our work for us, when what you really need to do is just build some good habits…

                        1. 8

                          Day One is excellent generally, although I am not sure if you need a subscription now in order to sync between different devices. They do have an Android app though.

                          1. 3

                            Nice looking app. I used it and they upgraded the app. Requiring you to buy the upgrade and locking you out of your existing notes.

                            If you don’t mind having your data held hostage, sure. But otherwise, stick with plain text. Guaranteed to stand the test of time.

                            1. 2

                              As far as I know, even when they’ve upgraded the app, you’re allowed read only access to your data - and the main thing a subscription gets you is sync… you can still export when sync is disabled.

                              1. 3

                                Sure, there are ways… But it wasn’t like the app was free in the first place.

                                Using beorg now. It’s cool. Has even built in Scheme allowing you to script the app (via BiwaScheme). Which you can also tap into via in-app REPL.

                                1. 2

                                  That’s pretty cool - it’s the best looking org-mode client on iOS I’ve seen… to be honest, that’s been my main issue. org-mode is fine for the desktop where you have a full emacs instance but once you’re working from a mobile device, it loses most functionality.

                                  As opposed to something like Day One which was designed with it in mind. I’d love to see a more full featured solution which works as well as Day One on mobile.

                            2. 3

                              DayOne was nice, but my issue with it was that your data is pretty much locked in. I think there are export options but no way to say access it from my Linux box etc.

                              I ended up with Evernote.

                            3. 6

                              If you are open to using the best piece of software in over 20 years, I recommend trying the TiddlyWiki. I use it for journaling, and all the other things too.

                              EDIT: Someone made it into a desktop app! TiddlyDesktop

                              1. 1

                                That looks really interesting, but I’m always kind of hesitant to use something that complex.

                                1. 2

                                  It’s actually super simple, think snippets of information that are linked together. Syntax is as simple as Markdown.

                                  1. 2

                                    Yes, the writing may be simple, but getting the application set up, understanding where data lives, when it gets saved, what format the data is persisted in, what the exit plan looks like for a considerable amount of notes/“tiddlers”, etc is not so simple. I’m not saying it’s a bad project, just that there’s more than meets the eye, and definitely more to consider than whether the syntax is like markdown.

                                    1. 2

                                      Definitely more to consider, however, how are those questions different than for other applications? All those questions have satisfactory answers IMO. I also listed a desktop version which should be zero setup beyond installing.

                                      Tiddlywiki is designed to be future proof and the format is dead simple that you shouldn’t ever worry about not being able to read your tiddles.

                                      • Where does the data live? Locally, otherwise, you can host it somewhere if you want.
                                      • When is it saved? It’s saved when you press the Checkmark, otherwise, drafts are saved automatically for you as you edit.
                                      • What format is the data persisted in? Text Format very similar to HTTP
                                      • What is the exit plan? The format is so easy you can always write a parser to dump it into somewhere else if you want.

                                      Read the Dev Docs for dirty details

                              2. 6

                                Come on guys! not everyone using Emacs, stop suggesting them using org-mode!!!

                                Suggest them to switch to Emacs first! Then org-mode!

                                1. 1

                                  Haven’t tried it, but there’s an org-mode extension for vscode: https://github.com/vscode-org-mode/vscode-org-mode

                                  1. 1

                                    btw, a combo of org-mode + deft is good, except one thing, deft does not allow me to create the file in a folder of my choice, anybody has solution for this?

                                    1. 1

                                      When you say “folder of my choice” do you mean a different folder from deft-directory? The problem would then be how does deft know how to search for it - I’m not sure I see how that’s better than just doing find-file.

                                      However, I have customized my deft usage a little, it may or may not help you:


                                      1. 1

                                        no, it’s just a subfolder inside deft root folder, for example I have deft configured at ~/notes and I have ~/notes/emacs, ~/notes/haskell,… creating new file in deft would make a file at ~/notes and I want to specific the sub dir for it.

                                        But hey the cm/deft-new-file-named is awesome, I use the same template for my notes!

                                        1. 1

                                          You may be able to do something similar where you have a record/capture function that has you choose/create a new directory, then enter the note name (or maybe just parse on a / for the directory/filename).

                                          As far as searching it back with deft, this looks worse :( there are ~30 references to the deft-directory variable. I imagine most could be wrapped up in a function that does “expand-file-name” on a list of directories, but you’d basically be implementing multi-deft.

                                          If you look below in that same section, I have a hook for cm/org-notes-search to use org’s searching. It requires you write more valid regexes, and it’s slower than deft for sure - but it works on an arbitrary org-agenda-files list, which can be multiple directories. You may end up being able to modify a capture + search function for yourself pretty easily.

                                  2. 4

                                    I do this with a text editor and a little script that creates a new template in the file each day. It’s been surprisingly care-free.

                                    1. 4

                                      I’ll throw in another recommendation for jrnl.sh. It’s pretty simple, but I use it for keeping a work journal (which is unrelated to software at the moment), and a programming journal. There’s no calendar, but there are tags and search.

                                      1. 1

                                        I also use and love jrnl! I really like that you can do transparently encrypted journals.

                                      2. 3

                                        I like apps that allow me to export the data easily and also keep the data in a git repo.

                                        I mainly use Quiver but have used Jrnl & Boostnote in the past.

                                        My workflow is currently:

                                        • A folder for each quarter of the year (2019Q1)
                                        • Create a date entry note for each day
                                        • Keep standup notes, debugging, research, etc
                                        • Run a small script that creates a backup each night and pushes to a private git repo
                                        1. 3

                                          I was not very happy with any of the journaling tools that I found, so I started to write my own. https://github.com/NorthernPath/north

                                          I want something that saves my data in a format that can be long archived. So I built around everything being stored in simple text files with TOML meta-data, and the directory structure. But, I also want to see related content, and entries over time, which is what North is, it is a viewer into the journal. I believe that journaling is amazing, but reviewing one’s life by looking at past entries is just as important as writing them, and that is the goal of North.

                                          1. 1

                                            Was interested but there was no description and no screenshots that I could find. Did I miss a giant blinking link?

                                          2. 3

                                            I wrote a small django wrapper around a sqlite database. It lets me control how I categorize notes (tags, projects, etc), it’s really easy to search and filter, and I can back up all my notes by copying the db file to a usb or cloud storage. It’s worked far better than any other tool I’ve tried.

                                            1. 1

                                              I’ve been considering moving everything I track over to SQLite. It brings with it the promise of data ownership, virtually unlimited feature flexibility, and relative ease-of-use for a programmer. Only problem is, it’s lacking in the user interface department by default.

                                              You say you’ve created a web interface? I’d be genuinely interested in hearing more about your approach.

                                              1. 2

                                                Django was originally invented for CMS applications, and one of the signs of that is the “admin” functionality. This makes it easy for people to create, link, and update content. This makes it really, really nice for journaling. I only had to write about 60 lines of Python, total, to get things like

                                                • Tags, titles, timestamps and categories
                                                • Filters on all fields
                                                • One page where I can update any note I want
                                                • Searching across all notes

                                                The last one actually comes because it loads so fast and puts each note in its own row with an expandable text-box, so I can just ctrl-F to search all 100+ notes. Since there’s nothing fancy going on, all the nodes load in a fraction of a second.

                                              1. 3

                                                I currently use my own journaling software, though this is still in a decently rough state, lacking an explicit calendar as such. I’ve since added basic Lua scripting to it. I do not have date jumping in it yet, as it’s something I’ve not needed yet, but I may add it some day, and it wouldn’t be very hard to script in a page for it (though I can understand if you’re not interested in checking it out due to that)

                                                From my experience of journaling on the job, being able to get things out of my head and preserve my working state with a record was really helpful. The other thing I found useful was to get a reverse chronological stream of thoughts that I could filter with searches.

                                                Good luck finding a system for your thoughts!

                                                1. 3

                                                  Going to throw mine on here:

                                                  • use plain text files - only plaintext will last forever (markdown or any human readable formatting is good too)
                                                  • pick your favorite text editor that works with the formatting you want (on Mac: I use Typora or iA Writer)
                                                  • sync the files around however you want, there are a ton of solutions to let you do this with end to end encryption
                                                  • for search, use ripgrep (rg)
                                                  • most other features can also be achieved by making your own scripts, an added bonus of writing your own tools is that you can make them do whatever you want (with no compromise)

                                                  For journaling I made a fish script:

                                                  function j
                                                      vim ~/Documents/Journal/(date +"%F").txt

                                                  I then insert a timestamp and type whatever I want…

                                                  :r !date
                                                  1. 1

                                                    That’s… actually a really sleek solution. I can respect anything that doesn’t require much setup beyond installing a program or two and writing some small scripts. I can’t help it though, my pithy side is tingling:

                                                    alias j 'vim "+r !date" ~/Documents/Journal/(date +%F).txt'

                                                    This also allows passing extra arguments to vim if needed, e.g., j + to continue from the end of an existing journal entry.

                                                  2. 2

                                                    OP here,

                                                    wow so many good answers, I am a bit overwhelmed. I’ve been following the replies and checked most of the apps mentioned here, even if only briefly by going to their website. I didn’t mentioned there but I was a user of Day One long time ago, before switching away from macs for some years. It was the first thing I checked this week when I got back on a mac and deciding against it was what actually drove me here in the first place.

                                                    org-mode sounds fantastic, I haven’t yet heard any bad review about it from anyone who uses it but even though I know just enough emacs to cause me trouble, I think I’d probably spend more time tweaking my .emacs then actually journaling.

                                                    While I was reviewing the awesome options shown here, I came to realize that my main problem regards journaling is actually friction. I want to have minimum friction and a flexible system, mostly to work as a fancy diary. TiddlyWiki sounds like the perfect solution for recording documentation for my clients, so that if I need to revisit their project in the future it becomes easier, but maybe it is not the journaling solution I am looking for.

                                                    As mentioned in the original question, I was temped to just dump digital and go with paper. And then the reply by @objectif_lune got me quite curious. So I ended up going with paper and got myself a really nice Hobonichi Techo Planner in red. I already kept other notebooks and have a more pens that it should be allowed.

                                                    For searching and tagging, I will try to keep an index page like people who do bullet journal do. Maybe it will be enough. If it isn’t I will probably pick one of the nice CLI tools mentioned here like jrnl, they look quite good.

                                                    Anyway, thanks a lot for all the replies. This community is great. Thanks for en arging my knowledge of note taking apps and providing me with a window to glimpse into everyone routine. I really appreciate that.

                                                    1. 1

                                                      One of the challenges I’ve had with journaling software is local versus cloud/web. I used to use WordPress as a private blog. Being that it was available to me in any web browser I wrote in it very often. Once I moved to editing text files on my computer I wrote less, as I was on my work computer, or phone, more often than on my personal laptop.

                                                      I’m working on my journaling tool now, and these are questions I need to answer. Should I make it a desktop app, should I make it a web based tool. If it’s web based it will be really convenient for me to use, and I’ll probably use it more often. But the cloud is just someone else’s computer, so how do I balance privacy and security with convenience.

                                                      1. 1

                                                        I personally am very glad that I made my own journaling tool web based. I had a desktop app prototype, but having a place to dump my thoughts that both my phone and laptop(s) can use has been quite handy

                                                        1. 1

                                                          I was thinking about it again today, and I agree with you, it’s going to better if it’s a web app.

                                                    2. 2

                                                      When I did this for the last time I just used a text file that was opened via an alias that automatically appended something like “\n### $(date)\n\n” at the end. Not really helping, I guess. But I found out that I wanted to edit it on other machines sooner or later, always have a backup that couldn’t be easily corrupted and in general vim was good enough for this. For a while I thought about using something like Google Keep (but not cloud-synced to a private account) to be able to edit on mobile, but in the end I preferred my text file and just lived with that.

                                                      1. 2

                                                        I use a mix of paper, Evernote, Emacs, Google/Outlook Calendars. I have enough use cases to justify using four separate systems.

                                                        Paper gets:

                                                        • Personal journaling, To-Do lists, notes in classes.
                                                        • Main benefits: personal stuff is easy to encrypt via the unreadable to others handwriting route, todo lists take effort to maintain so I evaluate what’s on them more. I write faster than I type. Fancy ink is fun to play with.
                                                        • Drawbacks: Notes in classes need to be transcribed if used for work into a form consumable by others. Fountain pens are a money hole.

                                                        Evernote gets:

                                                        • Book notes for technical books. I rarely write notes for non-technical books, but if I did I’d probably keep those there too.
                                                        • Main benefits: Easy readability on multiple computers (especially work computers when I want to use something from a book,)
                                                        • Drawback: I need to be at a computer to type (mobile sucks for indepth note taking.)

                                                        Emacs gets:

                                                        • Notes on what experiments I am running to solve a problem.
                                                        • Main benefits: Work experiments often live on work computers, so they are separated from my personal stuff. Magit means I’m already using Emacs, and it is easy to maintain a .org fire in every work repo to keep track of what I am doing (with a .gitignore to make sure it doesn’t get checked in.) Easy to share list of what you tried when calling in second opinion.
                                                        • Drawbacks: None for me.

                                                        Google/Outlook Calendar gets:

                                                        • All scheduled appointments.
                                                        • Main Benefit: I have long since realized that paper calendar systems make no sense for scheduling work meetings (which get canceled and moved at whim), and my phone is a more efficient device for reminding me to get my haircut than my notebook. Paper works for some people, just adds complexity for me.
                                                        • Drawback: Synchronization between personal and work calendars is a slight pain, but worth it to keep the separation.
                                                        1. 2

                                                          I will recommend Journey (https://2appstudio.com/journey/). I’ve tried several, but this is the one I ended up with.

                                                          I don’t use it any longer, because in an effort to declutter my desktop I tried to use it as a Todo app as well- which is it not. It all ended with me moving to Agenda which is great for notes and todos, but not so much for journaling.

                                                          1. 2

                                                            I just started to try Zim. Barebones compared to Evernote, OneNote, etc but it does have a journalling plugin, search, and a calendar. The data format is essentially text files.

                                                            Before that I was using vim with a small script. Search was via grep.

                                                            1. 1

                                                              I can’t believe no one has suggested cherrytree. You can store your journal as XML files or in a SQLite database. It’s currently written in python but it’s moving to C++. Also, a great place to chip in if you want to contribute to open source.

                                                              1. 1

                                                                It also supports AES encryption if that’s important to you.

                                                              2. 1

                                                                I tried a lot of different ones on many platforms and usually just fall back on using plain old paper. I kind of liked the standard notes app on Mac, since it was light weight and the sync was good, but since I don’t use Mac anymore in my current assignments, that is not an option anymore. Tried for a while to use the iCloud online version of the notes app, but somehow it doesn’t really work out for me…

                                                                1. 1

                                                                  I tend to reach for Zettlr. It’s an open-source and WYSIWYG (like Typora) Markdown editor. It can show sorted files in a directory in a side pane (I name journal files as YYYY-MM-DD-<title>.md), also has a button that shows a quick ToC. One caveat is that it’s somewhat beta quality (e.g. the markdown parsing is not super robust).

                                                                  For pasting website quotes, or just titles, into markdown, I use the Copy Selection as Markdown Firefox extension.

                                                                  1. 2

                                                                    Just to clarify, for those who don’t know: Typora is not open-source.

                                                                    1. 2

                                                                      Right, sorry & thanks, I see now that I phrased this sentence ambiguously.

                                                                  2. 1

                                                                    I use Evernote because I want my notes accessible everywhere. I used to use DayOne but found the fact that it only persisted to iCloud frustrating since I want to also be able to journal when i’m on Linux or Windows or wherever.

                                                                    For work where anything on Somebody Else’s Cloud is strictly verboten, I use FSNotes because my workflow for work stuff is pretty much Mac based for now, but FSNotes uses straight up Markdown files for storage so if I ever finally get tired of OSX and toss it out an airlock my migration path is simple :)

                                                                    1. 1

                                                                      I use a text file, ~/.worklog, that I keep in “Debian Changelog format”. If you use Emacs there is a debian-changelog-mode that helps, if not there is a command-line program, dch, to help with the formatting.

                                                                      It’s very simple, just a slight step above a free format text file in reverse chronological order.

                                                                      And if you want it version controlled, that’s easy (using git or any other version control system you like), and it is both searchable (grep, ag or whatever your preference is) and since it is a text file, it is diff’able out of the box.

                                                                      Works well for me; I keep it open in a separate window and update it continously - very low friction.

                                                                      1. 1

                                                                        I keep a journal on the filesystem. One file per day, organized by timestamp, formatted in markdown. I described some of the tools for this setup in my new work journal system blog post. I have a keyboard shortcut that lets me easily add a quick note at any time, as well as take what’s on my system clipboard and paste that into a journal entry. Some basic shell aliases handle searching, concatenating, etc.

                                                                        1. 1

                                                                          As others have mentioned, Emacs + org-mode + Orgzly can work (and is what I use).

                                                                          I’ve also heard nice things about Notion .