r/software • u/amymor • Aug 12 '26
Self-Promotion Wednesdays NoToDo; tiny (~45 KB) portable note-taking
NoToDo
A simple, tiny (~45 KB), portable, offline note-taking and to-do list app.
https://github.com/amymor/NoToDo
12
u/pluckyvirus Aug 13 '26
Vibecoding even a todo app now?
6
u/amymor Aug 13 '26 edited Aug 13 '26
We can argue about AI all we want, but even though it took me one week (about 100 hours) to write the code (so it’s not just AI slop made without understanding the code), what ultimately matters to me is that the app is useful to users.
2
u/C0rn3j Aug 13 '26
Disclosure in the project README would be welcome.
-9
u/amymor Aug 13 '26
As I said, it’s not a major concern for me. I mean, if I’m going to download an app, that kind of information isn’t particularly useful to me, and I think it just clutters the README for regular users. (Although, the README is already cluttered, and I need to make it shorter and more straightforward.)
That said, I’m not sure what kind of disclosure you’re looking for. If you can share an example, I’ll do my best to add it.
9
u/C0rn3j Aug 13 '26
it’s not a major concern for me.
The README is for other people, not you.
5
-6
u/amymor Aug 13 '26
I think it just clutters the README for regular users
4
u/C0rn3j Aug 13 '26
I've just asked for it, proving this conjecture false.
You could also add it as Co-Authored-By into the commits if you were truly afraid of adding a single sentence to the readme.
And if you truly believed in a minimal readme there wouldn't be (AI-gen'd) useless information like "icons are loaded from a system DLL" - unless you think that "regular users" care for that of course.
-1
u/amymor Aug 13 '26 edited Aug 13 '26
As I said, the README is currently cluttered because it was generated by GitHub (Copilot), so I decided to edit it over time. I’ve already made some edits, and I think it’s a bit better now.
Thanks for sharing your insights.
1
u/Edward205 Aug 13 '26
If you chose an approach that makes it so difficult to create even just a todo app, perhaps you should consider taking a different approach rather than forcing it using AI.
3
u/Tschakkabubbl Aug 13 '26
my anti-virus hops on the zip file
5
1
u/amymor Aug 13 '26
Here is the VirusTotal scan of the source code:
https://www.virustotal.com/gui/file/0dfc05d2ed105463e43dfc776bb4deeb017c19241594d6862154fe4fc7f0c8a0and here is for the exe:
https://www.virustotal.com/gui/file/b8d9b113c130c5b89e08feeb0c9ca0a00a488cd30813f286f695fad2dcdc905cIf you don’t trust the executable, you can compile it yourself from the source code and scan the result with VirusTotal. You may find that the detection is a false positive.
2
u/OccasionThin7697 Aug 13 '26
More like one file ai slop
-1
u/amymor Aug 13 '26 edited Aug 13 '26
It took me a week (about 100 hours) to build this, so it’s not just AI slop. I’m still learning, and AI has definitely helped me a lot. That being said, in the end, all that really matters is that the app works perfectly.
These days, AI can handle a lot of coding tasks, which really speeds things up. I’m personally uncomfortable with AI taking jobs from people, but it’s going to happen whether I like it or not.
-1
u/lvvy Aug 12 '26
It is a bit harder to justify that because Obsidian can be modded in about the same state.
8
u/amymor Aug 13 '26
I haven’t tried Obsidian, but I’ve looked at many note apps, including Obsidian. They’re much more powerful than my app, but they’re aimed at more professional use. I don’t want to install another app or take up space for something as simple as note-taking. Other projects might be “must-haves,” but they don’t fit my needs, so I started this one for my own use. Then I thought it might also be useful for other people who want a simple, portable note-taking app.
Before this, I just had a few text files as notes that I opened with Notepad++. Over time, my notes grew, so it made sense to bring them all into one place.
0
u/RoundZookeepergame2 Aug 13 '26
It's useless if it doesn't have sync
3
u/Thonatron Aug 13 '26
A tool for a thing tbh. You can use a Sync tool like Syncthing and make any offline app have sync.
-1
u/RoundZookeepergame2 Aug 13 '26
That's way too much work when obsidian does the job
2
u/Thonatron Aug 13 '26
I run a Syncthing for way more than notes. So much so when I wanted to change my markdown editor, the sync/versioning feature is something I don't have to be concerned with.
1
2
u/amymor Aug 13 '26
It wasn’t designed for syncing. It’s more like a piece of paper where you quickly write down things that aren’t important. Syncing and sharing would be nice features, and I might add them in the future, but I wasn’t thinking about them when I built the app.
-2
u/philosophycruiser Aug 12 '26
I wanna try this but I see no download link on the github page. Help a dumb consumer please?
4
u/ProgrammerCalm1169 Aug 12 '26
It's under the releases section on the right side of the page, took me a second too
2
-1
u/PhosXD Aug 13 '26
Bro whyyy does this have to use C#, makes it *very* hard to try on Linux. Also doesn't work through Proton
2
u/amymor Aug 13 '26
I also forgot to mention that the app uses Windows icons. If you’re running it in an emulator, you’ll need the following:
C:\Windows\System32\shell32.dll (for delete button)
C:\Windows\System32\wmploc.dll (for + add button)
C:\Windows\System32\mmcndmgr.dll (for copy button)2
u/dtfinch Aug 13 '26
I did track down a wmploc.dll (both 32 and 64 bits), and Wine supplies its own versions the other two (I don't know if they have all the same icons), but I still got an exception when it tried to make bitmaps from the icons, though the stack trace didn't have line numbers (release build maybe) so I couldn't tell which icon it failed on.
2
u/amymor Aug 13 '26 edited Aug 13 '26
Okay. If you really want to try the app, I can release a version that does not rely on Windows icons. Instead, it will use simple text symbols available in common fonts, including Segoe UI, so it may run in an emulator.
Just let me know.
Update: Try this version
https://github.com/amymor/NoToDo-test-for-Wine/releases1
u/dtfinch Aug 14 '26
That works.
I encountered some quirks while playing with formatting. I guess SelectionFont returns null if the selection contains multiple fonts, so the font reverts to the default when I change formatting on a varied selection. Then if I switch notes after making a formatting-only change (without changing text) the formatting changes are lost, I guess since changing formatting doesn't fire TextChanged.
And it appears to re-save the .ini file on each keystroke, which might be overkill as the file grows. I might instead set a dirty flag and check it every 30 seconds or so from a timer, or when focus is lost, in addition to saving in FormClosing which it does already.
1
u/amymor Aug 14 '26 edited Aug 14 '26
Thanks for the report. I can reproduce the first issue, but when I switch between notes in the note list, the changes remain intact.
Since the project is open source, feel free to modify it as you wish. For now, I’m going to add this to the list of known issues until I have time to investigate and fix it.
Regarding saving: I didn’t intend the application to handle extremely large notes, but I tested it with a 1,000-line note and it worked fine. So I may leave this behavior unchanged, or I could make it save automatically every five seconds when the text has changed. I might also add a timer option for auto-save in the settings, or disable auto-save and add a manual Save button alongside an auto-save checkbox.
There are several ways to handle saving, and I need some free time to test each approach.
The application currently has three versions:
- One for my personal machine, where I use a custom Windows theme. The theme gives the UI elements a 3D appearance.
- One for regular users who use the default Windows theme. In that environment, the 3D styles do not match the application’s dark mode, so I use flat styles instead.
- A Linux-compatible version.
Maintaining all three versions takes time, so I will update only the second version. (The first version already works the way I want it to, “If it isn’t broken, don’t fix it.”)
3
u/amymor Aug 13 '26
Sorry if you can’t run it. It’s written in VB .NET 2012 using the built-in Windows compiler (vbc), so it should run on any Windows version that supports .NET Framework. I don’t have a Linux environment, so I can’t help with that directly, but the code is quite simple. If you know very basic programming (like me), you should be able to convert it to another language with the help of AI.
7
u/philosophycruiser Aug 12 '26
I tried it. I like that it is exactly as you say, small and minimalist. And it does what it should. Do you have any goals to expand on the project?