> There's a beauty to engineering something having yourself as the target user, and no one else.
100%, I'm following a similar approach to you with yet another notes app solely for my own use.
Have you written more about your personal project anywhere?
One thing I only realised once I started building my own tools, is that you become - from day one - an unmatched world-class expert in using that tool. This seems obvious and inconsequential on the face of it, but how many pieces of software do you use where you can say with 100% certainty that you know every single thing about it?
Every feature, every shortcut, how it all works internally...
It's only when you use something self-crafted that you realise what this actually means. If it's a tool that you use for work or productivity - you can become exceptionally productive with it due to this from-day-one "total mastery".
This compounds if you iterate. Using the tool daily and feeding back in little fixes and optimisations as you go. The tool grows with you and molds to your use of it over time.
It's obvious that the tool is going to be well suited to your needs if you built it - but it was less obvious to me ahead of time what benefits the side effect of "total mastery" would also bring.
For me, my notes app is now used as my personal knowledge base, project management tool, todo list, daily planning tool and for journalling. Because I built it, I'm extremely effective at using it - and it's lean and fast - only with the features that I know I need.
In addition to being a very fulfilling project - it has created a degree of leverage and efficiency that I didn't expect!
My conclusion is that we should all experiment more with creating our own tools.
> Have you written more about your personal project anywhere?
No, I've had plans to create a blog to write about it or make a YouTube video, but haven't come to it yet.
> One thing I only realised once I started building my own tools, is that you become - from day one - an unmatched world-class expert in using that tool
This is something that I've also realized - a lot of times when we interact with software we kinda just fly by its UI to accomplish a goal, not paying much attention to its secondary features, options, quirks, etc - But when you write your own software, you have a map of everything in your head, and you don't have to guess what exactly a button does, how it does it or where you need to go to do that.
> But when you write your own software, you have a map of everything in your head, and you don't have to guess what exactly a button does, how it does it or where you need to go to do that.
Absolutely! It's quite a unique experience. When I started out it felt like I might just be wasting time and reinventing the wheel but in retrospect it was absolutely a good time investment!
Honestly, a stream of thoughts 1.5hr video about it all would be a cool listen. Not that it has to be 1.5hr but I’m sure your unedited thoughts will have some great insights
I remember recommending a non-iPod MP3 player that had a ton of customization options directly on the device. I regretted it because the person that bought it expected it to work exactly like an iPod plus the bells and whistles I recommended.
> For me, my notes app is now used as my personal knowledge base, project management tool, todo list, daily planning tool and for journalling. Because I built it, I'm extremely effective at using it - and it's lean and fast - only with the features that I know I need.
Hey same!
What inspired you? Anything you would be willing to share about it?
For me, I used a different notes app which I liked, and wanted to learn a new language/framework so I wrote a new backend for mine, and it just kinda spiraled.
The next thing I wanna do is add a CalDav interface so I can store events in it, and interact with them constantly with everything else I do.
Evernote originally inspired me (back in the day) as to the value of having some sort of personal knowledge management tool.
More recently Obsidian inspired me in terms of showing me what a non-enshittified, open/portable format note-taking experience could be like. And the beauty of simple Markdown notes!
Through the Obsidian community I discovered the concepts of Zettelkasten / Second Brain etc. and was further convinced of the usefulness of regular note taking and storing/synthesising of reference knowledge.
But I found Obsidian slightly mismatched with my requirements. Primarily because there was certain functionality I needed which can only be achieved with plugins, but I didn't consider their plugin security model to be sufficient enough for storing my most confidential data - even with everything being local files. (That and the lack of open source was enough to make me nervous).
My app is written in pure Javascript, heavy use of web components, running in Electron. No Node.js (apart from what Electron is precompiled with) - so no third-party dependencies as part of my code, and Electron is heavily locked down. I have a lightweight build step using Esbuild (a single rust binary).
Being 100% native JS - no frameworks - and quite lightweight, the app is indistinguishable from a native macOS app in terms of responsiveness! Knowing that may not always be the case, I'm also eyeing up Tauri as a potential alternative GUI "wrapper".
As a .NET developer by day I would have liked to have built it in MAUI but found that to be quite lacking for my purposes.
I've started to write a blog article about it with some screenshots - I"ll eventually get around to publishing it!!
How about you? What did you write your backend in and did that escalate into the front-end too?
The CalDav idea is very interesting... you've got me thinking about that.
Ah obsidian... I feel it's a very common tool. There's a whole pile of clones/related projects too (LogSeq, Roam, etc).
What kind of functionality were you looking for? I've found that once I controlled my notes, the amount of things I wanted to dump into it kept growing.
> How about you? What did you write your backend in and did that escalate into the front-end too?
I started using TiddlyWiki, and really like their approach to content (small notes, composable content, the "river" of notes as you click through links). You can add metadata (KV style) to the notes, which you can use in the markdown, which is quite powerful. The tool is meant to be "in browser" and you're supposed to save the whole HTML source when you make an edit. For me, I wanted a traditional CRUD interface to a server. They support that, but the developer isn't really focusing on it. So I wrote my own because I had a few weeks and wanted to play more with Golang.
My only gripe, and the reason I'm considering writing a new front end (which will be a big learning activity for me), is that TW doesn't support 'lazy loading'. very well, so if you have a massive amount of notes, it gets a little wonky. I discovered the issues with this when on plane WiFi and getting issues with overwriting instead of editing notes.
But once I had a CRUD API for my notes... I started going crazy. I can import photos, and link to them (pretty basic) but I can also push emails, calendar events, etc. I set up a browser plugin that lets me automatically take notes on any webpage, and adds tags/metadata to the note. The limit is now the front-end which is where I'll probably spend 2024...
I also had the idea of integrating with HomeAssistant, so the device's history was viewable in a 'note' about the device (dynamically generated from a template instead of static text from DB). Possibly with camera events as their own entry... Lots of things are possible once you control where the data comes from.
I’ve made a poll/group decision making app for my family and friends, and i’m this close to starting some sort of collaborative note/list making app because apple notes causes us so many headaches
I did two yet another notes apps, one including a custom P2P sync backend, All abandoned for Google Keep, but it was definitely interesting.
Ever so often I think about trying again, which I might in fact do if Keep ever becomes paid or stops working well or anything like that, or battery-free Bluetooth gets cheap and common and I decide to integrate inventory tracking features.
I think if you enjoy the process and the result is useful to you, then it's definitely worth trying again!
I don't know about you, but I always learn a hell of a lot through my personal projects too. They've almost always been a good investment of time for me.
100%, I'm following a similar approach to you with yet another notes app solely for my own use.
Have you written more about your personal project anywhere?
One thing I only realised once I started building my own tools, is that you become - from day one - an unmatched world-class expert in using that tool. This seems obvious and inconsequential on the face of it, but how many pieces of software do you use where you can say with 100% certainty that you know every single thing about it?
Every feature, every shortcut, how it all works internally...
It's only when you use something self-crafted that you realise what this actually means. If it's a tool that you use for work or productivity - you can become exceptionally productive with it due to this from-day-one "total mastery".
This compounds if you iterate. Using the tool daily and feeding back in little fixes and optimisations as you go. The tool grows with you and molds to your use of it over time.
It's obvious that the tool is going to be well suited to your needs if you built it - but it was less obvious to me ahead of time what benefits the side effect of "total mastery" would also bring.
For me, my notes app is now used as my personal knowledge base, project management tool, todo list, daily planning tool and for journalling. Because I built it, I'm extremely effective at using it - and it's lean and fast - only with the features that I know I need.
In addition to being a very fulfilling project - it has created a degree of leverage and efficiency that I didn't expect!
My conclusion is that we should all experiment more with creating our own tools.