Kilian Valkhof

Building tools that make developers awesome.

FromScratch, a simple but smart note-taking app

Apps, 27 February 2016, 3 minute read

The way I kept TODO list no longer worked for me, so I built my own app that did: FromScratch. My ideal workflow is a rectangle I can alt-tab to, read and type in, and alt-tab away from. Anything more is too much.


FromScratch is the app that does this for me. It’s free and open source, and works on Linux, OS X and Windows. You can download it for free from the website

It does one thing: It gives you quick and easy access to some text. That can be a TODO, or notes, or whatever you like. Anything you type is automatically saved and text editing is made easy by some extra shortcuts for quickly ordering or removing lines and selecting your preferred text size.

It sounds simple, and as a result the app is simple to use. It works with you, not against you.

Out with text editors

Before FromScratch I had a todo.txt file that I always kept open in my text editor, Gedit. Gedit is awesome, because it has a native file browser in its sidebar. This makes the whole time-consuming concept of opening a “project folder” disappear. I recently switched to Atom however, which doesn’t have a native file browser. It has so much more that it’s worth the switch, but it also means I have multiple Atom windows throughout the day as I switch projects.

Keeping Gedit open for just a todo.txt wasn’t working for me. It forced me to remember saving every time I quickly updated it, and Gedit’s shortcuts weren’t as useful as my newly made custom ones in Atom.

If I create something new, it should be both smart and opinionated. I took a step back to assess what I wanted out of my note-taking workflow, and what an app needed to do to accommodate me. Turns out, surprisingly little! It just needs to do the right things. Like being fast and easily accessible, allow easy ordering and it needs to make sure my changes are saved without me having to remember to save.

Also I want it to remember where it was on the screen after I reopen it. It drives me up the wall me when apps don’t even take such a small and simple thing into account. I have no idea why operating systems don’t enforce it either. In any case, FromScratch will always revert back to its last known dimensions and position on the screen.

“Web” app

Now the technical part. FromScratch is built to experiment with Electron and React and as you can see on Github, it is really rather simple. I use Codemirror to do text handling, and based the project off of the Electron-react-boilerplate though my needs were much simpler, so I kept only a small part of it.

Oh, and I’m using the very pretty Fira Code font, as it gives ligatures for arrows and other programmatic symbols.

I got stuck once with a weird React + Electron combination bug that caused all pastes to be double, but @bitterzoet, A.K.A. Mark Mulder, helped me out by switching Electron api’s and the problem disappeared. Thanks Mark! :)

Next up

FromScratch 1.0.0 is the MVP that works for me, but I imagine it will expand. One obvious addition is versioning. FromScratch keeps a text file on disk so you can easily symlink it to Dropbox and have that take care of versioning, but given that it’s a single text file, FromScratch could just as easily just keep every version of it in a versioning system.

Another expansion I’d like is a nice way to have multiple lists, so I can split my professional and personal todo, or any split I’d like and still have all the benefits from the app itself.

So that’s FromScratch. I hope you try it out and let me know what you think and if it works for you. Or, if it doesn’t, how it could be improved.

Polypane browser for responsive web development and design Hi, I'm Kilian. I make Polypane, the browser for responsive web development and design. If you're reading this site, that's probably interesting to you. Try it out!