I'd love to get some feedback also :).
Heynote Github Repo: https://github.com/heyman/heynote
I'd love to get some feedback also :).
Heynote Github Repo: https://github.com/heyman/heynote
It would be perfect that you add this on brew because most corporate mac users have no permission to download these type dmg except brew
Interesting! Do you know of any other Electron apps that can be installed via Brew?
I think he’s referring to a managed/corporate provided Mac machine.
yes absolutely talking about that.
Postman, mattermost, 1Password most of it can be installed by brew and they using electron
There are lots of them. You should checkout “brew cask”
"most"? I'd say that's actually an extremely weird and rare restriction.
Not sure about "most," but I have this exact restriction at work. I don't think it's extremely rare.
Yes. There are lots of us on enterprise controlled systems and can only install apps with homebrew.
I’ve never not had permissions to download a dmg; I wouldn’t say most Mac developers…
Initial thoughts:
1. It looks beautiful and useful. Very nice work! 2. I love the math sections. 3. I was shocked how large the download was. 4. It's chewing enough memory between the GUI and the (3!) helper processes that I will probably continue to use BBEdit for this kind of thing.
I think it will be useful to a lot of people... I like it and could see myself using it sometimes even if it feels too heavy to keep it running all the time.
Yeah, large file sizes and some RAM overhead is a drawback that comes with Electron apps.
However, it would never have been possible for me to make Heynote for all of Mac, Windows and Linux, on my spare time and within a reasonable timeframe, without Electron.
Also, the CPU usage overhead for Heynote is minimal. It's one of the apps I use the most, and it's never among the programs that have used the most CPU. Yes, 200+ MB of RAM seems quite excessive in theory, but in practice it's less than 1% of the total RAM memory of my laptop (24 GB).
You might consider Flutter for desktop apps next time, as they are compiled to machine code and won't be nearly as heavy as Electron, plus you get automatic mobile and web support.
My experience with apps built with Flutter is bad. Appflowy, for example, has extremely poor performance. Both in terms of loading large files and RAM usage. See my performance comparison of block editors[1].
I've built a block editor using Qt C++ and QML that is vastly more performant[2].
a web app (PWA) would be perfect :)
Yeah, I've entertained the thought of adding a web version of Heynote to heynote.com (using local storage for persistence).
This feels like one of those situations where a PWA with local storage might be a winning play. Since it doesn't actually need filesystem access or some of the other integrations electron provides. In my case, at least, I do pretty well always have at least one chromium-type browser running, so that would cross off the download objection (which was mild) and the RAM overhead (which was more serious, today at least).
Consider Tauri[1] as well. It uses the native WebViews on the various platforms instead of bundling Chromium.
FWIW, we also have an Electron app, in part because the integration with native APIs (which we use) is fairly full-featured with Electron. But if I was greenfield starting an app today I'd probably try Tauri. For your app it looks like you're not trying to do too much outside the WebView so might be worth checking out.
I love this! I typically use a separate text editor for things like this, but the block idea is great and works with how my brain likes to group things.
I know this is expanding the scope and complexity and probably opposite to what you're trying to do, but one thing that would be cool is to have different tabs. In my current workflow, I have a notepad for "working memory" which Heynote will easily replace. I also have a separate one to track the things I worked on each day. I need to have a record of who I charged for what incase I get audited. I could totally see having a block for each day - and I wouldn't want that intermingled with the other data.
Oh I would love it if you could render markdown as formatted html a la Typora
Yeah, at the moment I'm hesitant to add tab support (for the reasons that you stated), though I've definitely thought about it.
Probably better not to. From my experience tabs (in the long run) are more annoying than helpful. Take vscode: I use the "open editors" menu, because tabs work just up to 3 of them. Then they either not fit (scroll-x), have titles far too short to be identifiable or take half the screen when using tab wrapping.
I haven't used heynote yet (in a train rn), so you may've that already in place, but:
I suggest implementing bookmarks with fuzzy search. Press ctrl+b a prompt comes up, type the thing, press enter and get your file scrolled to that section (markdown title)
Love this idea. Almost like a vscode "go to definition" functionality. Pair that with a "go back to previous location" feature and you can get a surprisingly nice and flexible workflow.
Right - not sure tabs is the right metaphor. I definitely want the ability to keep some blocks around, put them aside, return to them later...
Maybe a block 'tagging' mechanism? Let me 'stash' a block and label it with tags... then later on I can 'restore' stashed blocks by searching for tags. Or open a new window easily containing every block that shares a particular tag?
Maybe try Obsidian for the second use case?
Cool, been looking for new tools to help collect the mess that is my notes.
Nice and simple, as a tool like this should be.
A few questions after playing for a few minutes:
* Where are the notes stored?
* Can I delete a block easily?
* After creating an additional cursor (great extra feature btw) how do I stop creating them, and/or remove one I've created?
Where are the notes stored?
The whole buffer is stored in a file called buffer.txt located in the user data directory (varies depending on platform, on Mac it's ~/Library/Application Support/Heynote, on Linux ~/.config/Heynote).
Can I delete a block easily?
I do that by pressing: C-A Backspace Backspace.
After creating an additional cursor (great extra feature btw) how do I stop creating them, and/or remove one I've created?
Pressing ESC (or C-G in Emacs mode) should remove all extra cursors.
So I can use grep and pbcopy to interact with this on the CLI. Too cool! Thank you for a great app.
The buffer file has a syntax for the block separators, but it's human readable. Here's what it looks like:
∞∞∞text
content of note 1
∞∞∞text-a
note 2
-a denotes that the block language is in autodetect mode and
might change
∞∞∞css
.some-class {
etc...Answered my own question on the additional cursor, Esc takes you back to a single cursor.
Great way to make a list. Start with a number, make your list, then use the additional cursor to add in a checkbox.
Love this. This is exactly what I need. I have been using a WhatsApp group with just me, for this purpose, until now.
Feature requests: - arch package
- would really like the results of the math to be in buffer.txt and in Ctrl+a and copy.
- changing font and color theme(I like the Nord one right now though!) Please keep it minimally colored as it is now so that changing color is just a simple matter of configuring a handful of colors as opposed to custom css. That would make it too complicated.
- support for images and media in markdown blocks would be nice to whatever extent possible. I would love it if you could copy the way vscode markdown works. Ctrl+v an image in the editor and it inserts the markdown for it and saves the image to a file. Markdown preview would be nice but I understand if you think that's out of scope.
- timestamp for blocks. especially would be nice if you could store createdAt updatedAt in the line with the infinity symbols in buffer.txt to make it easily extractable using grep and cut.
- saw that you mentioned downthread that you're working on reloading the file so that we can back it up with git or whatever. Would love that!
- is mobile possible? Through Cordova or something
Thanks for making this!
would really like the results of the math to be in buffer.txt and in Ctrl+a and copy.
Adding the results to lines that are copied from Math blocks should be doable, and I like that idea! I agree that it would also be nice with the results in buffer.txt, but because of implementation details it's harder to implement I think.
changing font and color theme
At the moment, I'm leaning towards keeping the number of configurable settings down and not add have font color theme settings.
timestamp for blocks. especially would be nice if you could store createdAt updatedAt in the line with the infinity symbols in buffer.txt to make it easily extractable using grep and cut.
yes, this is on the TODO
saw that you mentioned downthread that you're working on reloading the file so that we can back it up with git or whatever. Would love that!
Yes, this too :)
is mobile possible? Through Cordova or something
Probably not :/
At the moment, I'm leaning towards keeping the number of configurable settings down and not add have font color theme settings.
Alright, if you ever lean the other way a tad bit, please allow configuration of fonts, I can try to contribute that feature next week. I don't mind fixed colors nearly as much.
> is mobile possible? Through Cordova or something
Probably not :/
Understandable. Check my comment (sibling to my parent comment) for a suggestion for the PWA you mentioned though!
Font and color could be implemented by letting us add some CSS to the html page (as it is made using Electron).
This would enable using fancy CSS for some notes.
Adding to it:
Saw you mentioned below that you were planning to add a pwa + local storage version. In that case you can disregard my mobile request, and replace it with a download button on mobile so we can sync it to our desktop through git or drive or something.
I just downloaded and installed and I am really impressed. I liked the concept of math blocks though it took me a few seconds to figure out how to change a new block into a math block. This note at the top wasn't clear to me:
⌘ + L Change block language
The phrase block language didn't trigger my "change the type of block" thinking. I might slightly rephrase like:
⌘ + L Change block language (Math, Markdown, etc.)
Otherwise, I think this is a great "scratches an itch" type project. Congrats!
Good suggestion, I'll change that!
It would be nice with some documentation of what the Math mode supports, e.g. syntax, units, functions.
It can be difficult to figure out why some lines are interpreted ok and while others fail.
How to convert between fahrenheit and celsius?
Yes, I've learned that Heynote is lacking some documentation. Will improve that.
Math.js (https://mathjs.org/) powers the Math blocks, so what's supported by Math.js should be supported by Heynote, with the addition of currency conversions (exchange rates are updated daily).
How to convert between fahrenheit and celsius?
This should work:
10 celsius to fahrenheit
Could it be made to parse "10°C" as "10 celsius" as that is much shorter?
Suggestion: mouse over on green calculated value should show value in multiple formats. E.g. "time = 4000 seconds" could show "01:06:40"
also: "today + 4 days" or "now + 1 day"
Unicode "π" should parse like "PI".
This is just outstanding. It's so exactly what I wish for out of a scratch pad.
My feature request to add to your pile (possibly a lonely one, since maybe it's just unique to how my brain works):
I really want a scratch pad like this to have UX that supports "inverted" order. Meaning, new blocks get added to the top of the page instead of the bottom. The blocks naturally flow in descending order of creation rather than ascending. The scratch pad always opens at the top of the page. Over time, blocks thus end up "decaying" toward the bottom, with the most relevant at the top.
It just fits better with how my brain works.
I also +1 the sentiment given elsewhere in this thread to bias toward ignoring the vast majority of these feature requests and preserve the simplicitly of what you've built. That includes mine!
Happy you like it :).
I get the idea of the "inverted order". I wonder if it would be enough to make it configurable so that C-Enter inserts a new block before the current one + Heynote sets the cursor at the beginning of the buffer at startup (instead of last which is the current behavior)?
Yeah I was thinking similar. And/or a separate shortcut key that opens a new block at the very top of the page (regardless of where the current cursor is positioned).
+1. This would be great. I could then use this for daily logging as well.
I agree that this addition would be very helpful as it is already how I take notes in a markdown document.
I was bummed since it uses the entry point DiscardVirtualMemory and for some reason it won't work on Windows 7 (Yea, I'm still using W7 for "Work Reasons")
Out of curiosity, what use case can possibly warrant using Windows 7 in 2023?
The usual reason is business-critical software that only runs on Windows 7.
Source: I've worked for multiple companies with very niche software that only works on certain OSes.
Very old PLC controllers in a mfg plant. You would be wildly (de)(im)pressed with the amount of equipment that is tied to W7 because of dongles, etc.
Kinda crazy that it took this long to get a Note++ equivalent (or similar) for macOS! Until now I've been using Sublime for all my quick dev-related scratch notes. This should make things way way better!!
Do you mean Notepad++? If so, that strikes me funny, because I've long thought of Notepad++ as a Windows thing that's kind of similar to BBEdit[1], which is a 25 year-old Mac editor.
If not, what are you thinking of?
D'oh, yes, I do mean Notepad++. I haven't used Windows in a while
But good point, I totally forgot about BBEdit
...I wish this was on iPad too! Very cool to see and I'll try it on Mac.
Seconded!
Of course, then I’d want sync. This is pretty close to what I want Drafts.app to be.
Good point about sync. Probably could use iCloud Drive or Google Drive for data.
I'd love a macOS menubar icon for Heynote. I currently use Evernote's Quick Note feature from its menubar app.
I'll look into it!
Not what you asked for, but slightly related: You can set a global hotkey that shows/hides Heynote.
Yes, that might be adequate, thank you. I can't quite put my finger on what I like about the menubar app, but I do click it 30 times a day. Maybe just habit now.
The hotkey is very responsive. Nice!
A few suggestions: On Macos a menubar item would be nice to pop the app up. Also, expanding the Language set to include bash and a few other common languages would be ace. Finally, if you remove the canvas background or set it to the same as the app background color, it will eliminate the white flicker when you resize the app window. If I get time, I may take a look and put in a PR.
Yes, I'd like to add more languages. It's currently limited to what Lezer (https://lezer.codemirror.net/) supports . However I just found this repo (https://github.com/withfig/lezer-bash) which seems to be Lezer grammar for bash, so I can probably use that for bash syntax support.
Finally, if you remove the canvas background or set it to the same as the app background color
Will look into that. Thanks!
On Macos a menubar item would be nice to pop the app up
Hm, not sure what this means, sorry :)?
EDIT: Now I googled "macos menubar" and see what you mean :). I'll look into it!
Would love to see support for Swift as well!
This is rock solid. I keep a plaintext file with all my daily notes in it, but still find myself formatting code before/after dropping it in. The formatting feature alone is a draw here. The math part is great as well - I use a REPL all the time just to do napkin math.
"napkin math" - I'll steal that for the website. Thanks :)!
Absolutely love it! I've been looking for such a tool for a long time. Just a looooong text file when I can write my snippets. I like UI, icon and even the name :) One suggestion - make it collapsable.
Thanks :)!
Do you mean that the blocks should be collapsable? If so, blocks should be collapsable by clicking the small arrow to the right of the first line number. For some reason it seems that Markdown blocks aren't collapsable though - I'm going to investigate why.
Nitpicks:
* On Linux, clicking the main "Download / Linux AppImage" button results in Windows .exe download instead of an .appimage. Clicking on the down arrow and selecting Linux does work, however.
* The opening sentence of the description includes "it's" instead of the more correct "its".
The link has been fixed. Thanks!
And thanks for the grammar correction - I always keep doing that error (it's instead of its).
This reminds me a lot of org-mode(https://orgmode.org/). Do you have plans to add other org-like features, like evaluating code blocks? I don't personally see myself moving away from org-mode, but it would be nice to have something to recommend to people who are reluctant to use emacs, even if it's only for a single application.
Oh, I haven't seen orgmode before, so I don't know what its features are. I'm not planning to add evaluation of code blocks (apart from Math blocks that is) due to the complexity it would add.
I use Apple Notes for this. It doesn’t do the calculations, or the syntax highlight. But, it mostly just revives whatever I paste into it, and allows me to copy it to wherever when needed. Including images(screenshots), text with links etc.
The side benefit from using Apple Notes is that it is constantly and reliably syncing to my phone. So, I can always refer to stuff on the go.
I've recently started migrating from using Sublime Text to Notes for these scenarios too. I downloaded Heynote and am struggling to understand how/where it's better than either of those apps. Clearly I'm missing something, based on the other comments here.
This is excellent
Please add a donation button to allow us to thank you for your work
Thanks!
Please send that donation to some organization that help people in greater need than me, on my behalf instead :).
This is great and I quite enjoy it. I would love the ability to create multiple cursors from a selection (within a block of course). Intelij (and others) have a hotkey like Ctrl+G to add another cursor at the next instance of a word and Ctrl+Cmd+G to select all instances of a word. That's something I do in IDEA's scratch pads constantly but I'd like an ever-running note of what I'm doing divided into blocks.
Also it would be awesome to have some metadata on each block that is toggle-able (or just inserts as text) so I can have the current date/time added or shown.
I would love the ability to create multiple cursors from a selection (within a block of course)
Ctrl-D (CMD-D on Mac) does this (currently not limited to the current block though, but that is something I'd like to change).
Also it would be awesome to have some metadata on each block that is toggle-able (or just inserts as text) so I can have the current date/time added or shown.
Yeah, I've been thinking of adding timestamp (of last edit) as metadata for each block
The Slack use case highlighted on the front page would be better if Slack markup was an available syntax. Slack is not really Markdown, so composing messages in Heynote won't have high fidelity.
One thing that often trips me up is that links and code formatting cannot coexist:
[`method_name`](https://github.com/example/example/blob/main/src/foo.rs)
Would be rendered by most Markdown engines as a link with fixed-width text. Do the same thing in Slack and text will be fixed-width, but won't be a link.There's a partial summary of the differences here: https://www.markdownguide.org/tools/slack/
I agree with the use case, but also wonder if it should be on Slack, Jira, etc., to try harder to adopt Markdown.
Really nice execution of a simple but compelling idea. And the presentation on the site is solid too - I get what this is immediately, and I could see how it would be useful to me. A replacement for that Sublime text window I keep around where I paste stuff to keep for later, or to examine some JSON I just grabbed from somewhere!
I do find myself wanting more features, but of course the beauty of this is how simple it is, so you definitely need to strongly resist the urge to add and add as people suggest ways to 'improve' it. Apply the old 'every feature starts with -100 points' mindset (attributable to Anders Hjelsberg, I think?).
But that said, I'm going to give you some feature requests anyway :D
The thing I feel like I most immediately want from a tool like this is something close to the common SQL notebook behavior where you can select a few lines of text and hit F5 to run just the selection. Obviously only makes sense in language blocks which have a script engine associated. But the ability to write a chunk of JS or Python or shell and instantly execute it might be powerful. Where does it run, what happens to the output, etc? All good questions. No idea.
I'd love to see markdown blocks get formatted in place (still monospaced, just some bold and italic and stuff) - probably whenever the cursor is not focused in the block... though the potential shift in line wrap that would cause might be annoying. Maybe just have an edit/display toggle on markdown blocks to flip them into formatted mode. Additionally, making markdown-formatted tables elastically align in place while editing them would be a huge quality of life boost....
... Which (since formatting markdown tables correctly amounts to the same thing) makes me think this could be an opportunity to implement a classic 'elastic tabstops' plain text mode... the fact that the tab key only increases line indent is... an interesting choice that reduces the need to indulge any tabs vs spaces discussions - though obviously it's possible to paste in text that contains tabs even if you can't type them. Coming up with something better to do with inline tabs than just 'snap to next multiple of tab width' is tricky, but I would suggest maybe enabling 'elastic tab' rules: https://nickgravgaard.com/elastic-tabstops/ - because this is a place that's meant to handle copy/pasted text and stuff natively typed in, NOT a place that is expected to open and correctly format files.
I do find myself wanting more features, but of course the beauty of this is how simple it is, so you definitely need to strongly resist the urge to add and add as people suggest ways to 'improve' it.
Definitely! I'm happy that you preface the feature requests with this comment :).
I've thought about the possibility of some kind of evaluation of code blocks, but at the moment I'm not planning to add it. Mainly because of the questions you posed :).
Heynote currently gets most of its Markdown features (basically everything except the checkboxes) "for free" from CodeMirror's Markdown mode (https://github.com/codemirror/lang-markdown).
Regarding tab size, I realize that it's something that I'm going to have to add settings for. Up until now, me and a few friends have been the only users of Heynote, and it seems like none of us favors tabs before spaces (or at least no one has asked me to fix it).
great application and something i didnt ask for but needed somehow ;) Sometimes i have to quickly write something down for the reasons you stated. Then i have to open a text editor like Windows Editor or Notepad++. These are nice but they really don't have the feeling to write things down. You have somewhat of an anxiety that you'll lose that data if you forget to save it. Also there is no vim support and stuff like that. So i really liked the idea and would definitely use it if it gets vim support! Also one thing i realized is that the cursor starts at the bottom of 'the note' or whatever i should call it. It would be great too if i got the cursor position where i left it when i closed the app. Also on Windows there is a black bar on the top which should be removable i think looking at obsidian and other js apps. Whatever these are just some small things and im sure they'll get fixed soon. Thank you for the great application and i hope it succeeds!!
What's Windows Editor? Do you mean the good old Notepad? :)
AppImage DL leads to the windows .exe
Oh, good catch! Fixed now!
This looks fantastic. I will definitely give it a spin. I've been tracking what I call "computational scratchpad" apps for a while now but haven't found one that fits my environment/workflow yet. Maybe Heynote will. Here are some others that I've looked at:
* https://soulver.app Granddad of them all, Mac-only, proprietary, expensive
* https://numi.app Mac-only, proprietary, semi-expensive. Has a Github and claims to be MIT-licensed but I don't see how you could build a working application with what's in the repo.
* https://calca.io Windows- and Mac-only, proprietary, not expensive, nice docs.
* https://notepadcalculator.com Web-based, not open source, hosted but uses local storage. You can optionally create an account to sign in and have your notes saved in plaintext on his server.
* https://github.com/bbodi/notecalc3 Web-based, open source, self-hostable. But it seems to save your document in the URL string itself, which means the URL gets updated with almost every keystroke. Worth it for quick calculations and very small notes, I guess.
* https://numpad.io Web-based, hosted, not open source. Also stores entire doc in URL, but doesn't update the URL bar the whole time you're typing.
* https://numbr.dev/ Web-based, hosted. Has a Github but is not open source and the repo does not have all the bits needed to self-host it. Stores entire doc in URL.
* https://github.com/metakirby5/codi.vim Vim/NeoVim plugin that is less like a "smart notepad" and more like Jupyter but with results printed on the right side of the screen instead of in a cell below. Supports lots of programming languages.
I would consider Emacs to be the granddad of "computational scratchpads". Being able to run a repl in a buffer, tangle code blocks in org-mode, create buffers against which to run code, etc. Plus the calculator is fire.
very good concept! i really would like to have this as a Web-app instead of downloading it...
I've entertained the thought of adding a web version of Heynote to heynote.com (using local storage for persistence).
This is pretty cool. I particularly like the Math block.
One issue I noticed while doing a calculation: "belt_pitch = 5/8 in" evaluates to "0.625 in^-1". To get the behavior I expected, I had to add parenthesis around the fraction. Maybe this could be fixed by adjusting precedence rules?
Interesting. It's Math.js that is powering the Math blocks. I'll have to investigate if it can be configured.
I absolutely fucking love this concept, this is basically my Sublime Text but with steroids, everyone using Notion, Obsidian and such apps and here I am with a +10000 lines of plain text where I dump everything and I am more than happy, and this concept only makes it better, it's how I prefer to organize myself but now I can make blocks of it and format it, I love it, really.
This blocks thing reminds me of Toad for SQL which I used extensively years ago, where you could execute queries based on the position of the cursor, great feature.
Any plans to change font and such things? Any general roadmap?
I'm happy you like it :).
There's a roadmap in my head and some tickets in my private Trello, but I should probably create Github issues for those.
There are a couple of main things that I want to add (file syncing support, timestamp metadata to blocks) and some general improvements. However I want to keep its simplicity, and I currently see Heynote as kind of complete when it comes to new concepts. Currently, I don't think I'm going to add tabs, and I'm not planning to make it into a "real" editor by adding the ability to open and save files.
Will definitely try this±
great work!
this is great and neat
Note that this is not open source software. It has a nonfree license.
Amazing, and congrats on building it! Any plans on supporting Ruby syntax?
Looks great - I've been using markdown files and a markdown editor for my dev notes.
But I tend to create a file per week, with notes about what I have to do / have done, etc. by day within the weekly file.
Having one big file for a project that lasts months (or years) would be unworkable.
I'd like to see the ability to create and open whatever files I want, rather than just saving a single pre-determined file.
Good job, though - thanks!
I always have a text editor open for notes and snippets like this. This sounds like a perfect replacement. Tabs would be a very nice addition.
Great utility. I rely on Sublime to quickly jot down my thoughts. I will use Heynote going forward. A few suggestions:
1. Can we create multiple tabs with split view? 2. Display stats like word, character count in the status bar. 3. Export options for the notes.
Thanks
I'll try this out! I use a Slack DM with myself to persist scratch notes. The main benefit of this is that I'd easily be able to view notes on my phone and other computers.
I just tried it and it runs nicely. I'm sure you get this request all the time, but I'd love to have VIM key binding. I'm still using vim/neovim and I open a "temp.txt" for scratch.
This looks great. And after reading the description I immediately thought of emacs. Only then I read this post.
Have you tried emacs org-mode with code blocks? One can even execute them. (I never tried myself)
Have you considered any other emacs-based options?
Nice! Is the single buffer feature, non-negotiable?
I've found myself using Sublime Text in a similar manner (because it's crash-proof without saving to a named file).
I do use multiple buffers though (often ending up with too many and culling them like I do browser tabs).
Try emacs
Haven't gotten a chance to try yet but thank you for having an icon that actually looks unique. My dock is filled with purplish blue circles and squares and I have no idea which app any of them are for anymore.
I really like the simplicity of it. I'm just not sure if I'd use it.
This is so neat. Good work! I've tried Obsidian, Notion, Typora, and a myriad of other local editors only to come back to vim every time.
My ideal text editor is one that has syntax highlighting, scratchpad, markdown support, block based editing, ability to link between documents and vim keybindings. No cloud login, AI assistant, cross-device sync, or other bloat.
I try to avoid using electron apps for lightweight tasks, but Heynote looks like its worth a try.
Congrats! I really like this. I use Boop on Mac now for my "scratchpad", but the separate blocks here is really ideal for me - the one thing that was a problem for me with Boop is that it was a single buffer and all the helpful commands (not solely stuff like formatting but helpful things like "decode JWT) ran against the whole buffer. Great work!
Cool app! Reminds me of Quiver[1], which is the note-taking app I used throughout my college degree with varying amounts of success. It is also in part what inspired me to build my own note-taking app, as it opened me up to the idea that there are still a lot of unexplored modalities in the note-taking / knowledge-management space.
I love this! Simple and solid execution. I've been wanting to build something similar for some time now, might fork and play around with it. Thank you for open sourcing it!
I've started using Obsidian with a new note for each day and separating "blocks" with a Markdown horizontal rule (`---`) to achieve something similar, but this is much cleaner.
The strength of such an approach is making capture extremely easy -- new block, start writing, no thinking about where this goes and how to fit it into pre-existing structure. I find that if I'm trying to do that, then by the time I find where my idea goes, I've lost the idea.
The downside, of course, is finding things again. The ability to tag or title a block and search by tag or title would be great. More ambitiously, it would be cool to experiment with incorporating LLMs and embeddings to automatically tag, summarize, categorize, cluster etc. your blocks.
There's a lot of different directions one could take this, but I'll echo the sentiment of others to refrain from adding too many features and losing the original appeal of simplicity. :)
Also: How do you handle performance when the buffer gets very large?
I'd love to share this between computers (cross-platform) like I do my notes via IMAP. Is there an underlying file I can sync with?
Great work, I like this a lot. Some feedback:
- It would be great to have the options of having tabs so that I could group my notes into a Math specific tab, or raw notes, code, etc.
- Another option to the above tabs would be to sort the blocks by type (grouping all the Math at the top for example).
- Having the ability to then save each block into a separate file.
Downloading now! I'm already excited! There's a couple of similar apps but they are 99% mac-only. Thanks for making a cross-platform one!
“Math” mode apparently depends on Math.js: https://mathjs.org
So it should support the syntax available in this Math Notepad: https://mathnotepad.com
This is super cool, nice work! I've just used apple notes for this in the past when on my mac, but this is way nicer.
This looks great. I currently use Sublime Text for this. Can easily see using this. Thank you for building it.
This looks awesome! I love the blocks idea. I’m gonna download and give it a try.
I see lots of comments about Electron (per usual here haha) and I just thought I’d shout out Tauri if you hadn’t run across it. It’s basically Electron-but-in-Rust and uses the system webview instead of Chromium, so bundle size and memory usage is reduced a bunch.
I took a look at the code and it looks like you haven’t got a ton of Electron-side code so if you felt like playing with Rust it might not be too hard to swap. I have a video editing app that I started building with Electron and then switched to Tauri midway and it’s been pretty nice.
I hope it’s clear this isn’t a request and please feel free to disregard this comment entirely :)
This is cool. I was recently looking for something to use for quick notes. This should serve my use case
This is great. I always resort to textedit for this stuff, i am going to use heynote instead and see how it goes.
love seeing stuff like this on HN like the good old days.
Any plans to add vi keybindings support by any chance?
Finally I can ditch Sublime text as a scratch pad. This is simpler to use. Good work!
Great work! I´ve been looking for something like this for quite a time!
C# syntax support would be welcomed.
Hey! Nice app, I've always had scratch pads around for things like this and never had a particularly good solution for them. Soulver is nice but too maths focused, a tab in VSCode in nice but it's a pain to manage multiple buffers for different languages. I like the feature set here.
A few bits of feedback for potential improvements or clarifications...
- I couldn't find the shortcut to change the language until I hovered over the status bar element for it. It should have a menu item with the keyboard shortcut on it.
- Toggling light/dark mode doesn't live in the status bar in any other app I know, probably best to put it in settings.
- Doesn't respect the system light/dark mode, it should by default (but perhaps with an app specific override as some people like that).
- Check for update doesn't live in the status bar either in any other app I've used, this could be in settings.
- If there's not enough stuff to put in a status bar, maybe drop the status bar? It feels like things have been scraped together to justify having it.
- The green branding is ok, but it's quite a strong personality for an app to have. Do you want the app to have a strong personality? (Nothing else about it suggests so). Perhaps consider a more neutral palette that fits in with macOS more, or perhaps several choices for accent colour including a neutral option.
- 427MB is huge. Thankfully it's not particularly memory hungry at least with small documents, but damn that's a big bundle for what it is. Why is it bundling ffmpeg? Does it really need GLES? Is a base Electron framework really >300MB?
- Options for a keymap, but after deleting the initial content I've lost the actual keymap! Would be great to have a help reference in the app, or at least a docs page on the website that the help menu links to.
- Would be great to be able to change the font.
- I don't understand the saving model. Where is the data saved? Can I control this? Is saving necessary? If not, how often is the data persisted? Can I put it in cloud storage so it syncs across machines, or if it does this already, can I opt-out of that?
- Not personally a fan of putting the name of the app in the icon. Most apps don't, I'd suggest something more subtle.
I agree re the app icon - it would look great and still unique by simply removing the name.
Noted. Will fix!
The light/dark toggle has three states. Light/Dark/Whatever the system is set to (default). If it's set to the third mode, it should respect the system mode. Otherwise it's a bug!
I do like the design (though I'm sure it could be improved ofcourse).
Yes, unfortunately that comes with Electron.
Yeah, goo point, will fix!
Maybe :)
The whole buffer is stored in a file called buffer.txt located in the user data directory (varies depending on platform, on Mac it's ~/Library/Application Support/Heynote, on Linux ~/.config/Heynote). It's saved as soon as you edit with a small debounce.
The data location is currently not configurable, and Heynote currently doesn't support reloading changes from the disk (except on startup), so at the moment it wouldn't work well to synchronize through a file syncing service if you were running Heynote on multiple machines. This is something I'd like to fix though.
Any chance of an arm64 build for Linux? I'm sure I could build it myself but it'd be nice if I didn't have to!
I configured the Linux builds yesterday, and I don't personally run Linux on any desktop machine, but I'll look into it!
Is it possible to use proportional (non-monospace) fonts? It’s not clear from the website. That would be a necessary feature for me.
It's not possible at the moment.
This is great! One small suggestion: I'd love a shortcut to be able to insert the current date/time. Or perhaps track the time a block was created, and have an option to display that somewhere small on the UI for each block? I find it super helpful to have the date when search back through old notes like this.
Yes, I think adding the creation time and last update time of blocks is a good idea.
hey! i really like this. it's a great idea and implemented neatly. my MacOS arm install is <100mb. i know some asked for tabs. i would like to be able to open multiple windows.