[HN Gopher] Show HN: Heynote - A dedicated scratchpad for develo...
       ___________________________________________________________________
        
       Show HN: Heynote - A dedicated scratchpad for developers
        
       Hey!  I made Heynote entirely for my own use case. For many years,
       I always had an Emacs instance running with the scratch buffer
       open, even long after I had abandoned Emacs as my programming
       editor in favor of more recent IDE:s.  The simplicity of having
       just one big scratch buffer appeals to me, but I still want to
       separate the different things I jot down somehow (without using
       tabs or similar). Previously, my solution was to insert a bunch of
       blank lines between the notes, but hitting C-A would still select
       the entire buffer. That's why I came up with the concept of
       "blocks", which turned out really well for my use cases.  I decided
       to release Heynote, thinking it might be useful to others.
        
       Author : jonatanheyman
       Score  : 654 points
       Date   : 2023-12-22 13:33 UTC (9 hours ago)
        
 (HTM) web link (heynote.com)
 (TXT) w3m dump (heynote.com)
        
       | jonatanheyman wrote:
       | I'd love to get some feedback also :).
       | 
       | Heynote Github Repo: https://github.com/heyman/heynote
        
         | danpalmer wrote:
         | 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.
        
           | perryraskin wrote:
           | I agree re the app icon - it would look great and still
           | unique by simply removing the name.
        
           | jonatanheyman wrote:
           | > 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.
           | 
           | Noted. Will fix!
           | 
           | > Doesn't respect the system light/dark mode, it should by
           | default (but perhaps with an app specific override as some
           | people like that)
           | 
           | 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!
           | 
           | > 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?
           | 
           | I do like the design (though I'm sure it could be improved
           | ofcourse).
           | 
           | > - 427MB is huge
           | 
           | Yes, unfortunately that comes with Electron.
           | 
           | > 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.
           | 
           | Yeah, goo point, will fix!
           | 
           | > Would be great to be able to change the font.
           | 
           | Maybe :)
           | 
           | > Where is the data saved?
           | 
           | 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.
        
             | dameyawn wrote:
             | Sync between devices (windows <> mac <> iphone) is the only
             | thing more I'd want out of this. Great work!
        
         | layer8 wrote:
         | Is it possible to use proportional (non-monospace) fonts? It's
         | not clear from the website. That would be a necessary feature
         | for me.
        
           | jonatanheyman wrote:
           | It's not possible at the moment.
        
         | bennetth wrote:
         | 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.
        
           | jonatanheyman wrote:
           | Yes, I think adding the creation time and last update time of
           | blocks is a good idea.
        
         | ryukafalz wrote:
         | 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!
        
           | jonatanheyman wrote:
           | I configured the Linux builds yesterday, and I don't
           | personally run Linux on any desktop machine, but I'll look
           | into it!
        
         | enginaar wrote:
         | 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.
        
       | maineldc wrote:
       | 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!
        
         | jonatanheyman wrote:
         | Good suggestion, I'll change that!
        
           | silvestrov wrote:
           | 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?
        
             | jonatanheyman wrote:
             | 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
        
               | silvestrov wrote:
               | Could it be made to parse "10degC" 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 "p" should parse like "PI".
        
           | samstave wrote:
           | All blocks should be collapsable - I was playing with it and
           | had to enter a comment marker in some to be able to get the
           | collapse arrow in the bar, like # in a python block, however
           | the behavior for a python block collapsing vs another - is
           | that the python block collapses to ' ... ' Whereas, other
           | blocks maintain the firt row as a header, so if I label
           | another block NOTES and collapse it, I can still see the
           | header.
           | 
           | So a collapse button on every block would be nice.
           | 
           | I love this. Thank you.
        
             | jonatanheyman wrote:
             | I agree! This would (will hopefully) be an improvement.
        
               | samstave wrote:
               | Maybe a block header which includes the timestamp for
               | block birth and whatever text on that line for the title.
               | So row 0 of every block would be the block meta header?
               | no feature creep I promise...
               | 
               | Oh! and one more thing....
               | 
               | https://i.imgur.com/UZwOhIZ.png
        
           | zestyping wrote:
           | "Change block type" makes more sense then "Change block
           | language". "Language" sounds like it could mean English,
           | French, etc. whereas "block type" is unambiguous.
        
       | AstroJetson wrote:
       | 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")
        
         | skottenborg wrote:
         | Out of curiosity, what use case can possibly warrant using
         | Windows 7 in 2023?
        
           | AstroJetson wrote:
           | 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.
        
           | bovermyer wrote:
           | 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.
        
       | toppy wrote:
       | 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.
        
         | jonatanheyman wrote:
         | 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.
        
       | rswail wrote:
       | 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?
        
         | rswail wrote:
         | 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.
        
         | jonatanheyman wrote:
         | > 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.
        
           | cyberge99 wrote:
           | So I can use grep and pbcopy to interact with this on the
           | CLI. Too cool! Thank you for a great app.
        
             | jonatanheyman wrote:
             | 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...
        
       | duiker101 wrote:
       | 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!
        
       | james-bcn wrote:
       | I really like the simplicity of it. I'm just not sure if I'd use
       | it.
        
       | jmuguy wrote:
       | 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.
        
       | perryraskin wrote:
       | 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!!
        
         | hoistbypetard wrote:
         | 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?
         | 
         | [1](https://www.barebones.com/products/bbedit/index.html)
        
           | perryraskin wrote:
           | D'oh, yes, I do mean Notepad++. I haven't used Windows in a
           | while
           | 
           | But good point, I totally forgot about BBEdit
        
       | apwell23 wrote:
       | 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?
        
       | cvhashim04 wrote:
       | This is cool. I was recently looking for something to use for
       | quick notes. This should serve my use case
        
       | zubairq wrote:
       | Will definitely try this+-
        
       | endigma wrote:
       | AppImage DL leads to the windows .exe
        
         | jonatanheyman wrote:
         | Oh, good catch! Fixed now!
        
       | space_ghost wrote:
       | 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".
        
         | jonatanheyman wrote:
         | The link has been fixed. Thanks!
         | 
         | And thanks for the grammar correction - I always keep doing
         | that error (it's instead of its).
        
       | chernoby wrote:
       | 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
        
         | jonatanheyman wrote:
         | Interesting! Do you know of any other Electron apps that can be
         | installed via Brew?
        
           | cyberge99 wrote:
           | I think he's referring to a managed/corporate provided Mac
           | machine.
        
             | chernoby wrote:
             | yes absolutely talking about that.
        
           | Otek wrote:
           | There are lots of them. You should checkout "brew cask"
        
           | chernoby wrote:
           | Postman, mattermost, 1Password most of it can be installed by
           | brew and they using electron
        
         | azinman2 wrote:
         | I've never not had permissions to download a dmg; I wouldn't
         | say most Mac developers...
        
         | dmd wrote:
         | "most"? I'd say that's actually an extremely weird and rare
         | restriction.
        
           | Renevith wrote:
           | Not sure about "most," but I have this exact restriction at
           | work. I don't think it's extremely rare.
        
         | canogat wrote:
         | Yes. There are lots of us on enterprise controlled systems and
         | can only install apps with homebrew.
        
       | michaelrpeskin wrote:
       | 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
        
         | jonatanheyman wrote:
         | Yeah, at the moment I'm hesitant to add tab support (for the
         | reasons that you stated), though I've definitely thought about
         | it.
        
           | jameshart wrote:
           | 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?
        
           | Perz1val wrote:
           | 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)
        
             | digdugdirk wrote:
             | 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.
        
         | Perz1val wrote:
         | Maybe try Obsidian for the second use case?
        
       | dustinsterk wrote:
       | 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.
        
       | Tarucho wrote:
       | Great work! I've been looking for something like this for quite a
       | time!
       | 
       | C# syntax support would be welcomed.
        
       | who-shot-jr wrote:
       | great work!
        
       | dinkleberg wrote:
       | 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.
        
       | reacharavindh wrote:
       | 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.
        
         | maroonblazer wrote:
         | 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.
        
       | injuly wrote:
       | 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.
        
         | rubymamis wrote:
         | Hey there!
         | 
         | Maybe you'll like my next note-taking app[1]. It has a block
         | editor based on Qt C++ so it's very performant. It supports
         | Markdown out of the box, will have advanced media support like
         | Kanban, images, columns, etc.
         | 
         | [1] https://www.get-plume.com/
        
       | anhhuy952k10 wrote:
       | Finally I can ditch Sublime text as a scratch pad. This is
       | simpler to use. Good work!
        
       | joshstrange wrote:
       | 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.
        
         | jonatanheyman wrote:
         | > 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
        
       | otterpro wrote:
       | 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.
        
       | rabbits_2002 wrote:
       | 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.
        
       | hruzgar wrote:
       | 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!!
        
         | theSuda wrote:
         | What's Windows Editor? Do you mean the good old Notepad? :)
        
           | hruzgar wrote:
           | yeah yeah suure Notepad of course. If Windows is set to
           | german its "Editor" and not Notepad for some weird reason.
           | Thanks for reminding me of that <)
        
       | cyberge99 wrote:
       | 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.
        
         | jonatanheyman wrote:
         | 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!
        
           | f0rmatfunction wrote:
           | Would love to see support for Swift as well!
        
       | hoistbypetard wrote:
       | 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.
        
         | jonatanheyman wrote:
         | 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).
        
           | albybisy wrote:
           | a web app (PWA) would be perfect :)
        
             | jonatanheyman wrote:
             | Yeah, I've entertained the thought of adding a web version
             | of Heynote to heynote.com (using local storage for
             | persistence).
        
           | satvikpendem wrote:
           | 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.
        
             | rubymamis wrote:
             | 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].
             | 
             | [1] https://imgur.com/ZL5QCS0
             | 
             | [2] https://www.get-plume.com/
        
           | hoistbypetard wrote:
           | 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).
        
           | fastball wrote:
           | 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.
           | 
           | [1] https://tauri.app/
        
           | smusamashah wrote:
           | Could it have been a PWA? I have seen some progressive web
           | apps give an option to install as an app when you open them
           | in your browser. Have thought about making a PWA for my kid
           | which I could then install on my phone.
        
           | declaredapple wrote:
           | > 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.
           | 
           | I'm confused - browsers already do this for you - From what I
           | can tell you aren't using any specific APIs necessitating
           | electron?
           | 
           | You also could easily have a live demo since it's a client
           | side app.
           | 
           | > 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 should consider that people would be adding this to their
           | workflow. So it's not not 200MB/Total RAM but instead it's
           | 200MB/Remaining memory
           | 
           | Mine has 32GB Total total but less then 2GB free (and the
           | only reason it's free is because it was swapped), which would
           | make this ~10% of my free memory. This means when I run
           | webpack or other things like that it swaps even worse.
        
       | vogtb wrote:
       | 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.
        
         | jonatanheyman wrote:
         | "napkin math" - I'll steal that for the website. Thanks :)!
        
       | suryo wrote:
       | this is great and neat
        
       | nip wrote:
       | This is excellent
       | 
       | Please add a donation button to allow us to thank you for your
       | work
        
         | jonatanheyman wrote:
         | Thanks!
         | 
         | Please send that donation to some organization that help people
         | in greater need than me, on my behalf instead :).
        
       | hughw wrote:
       | I'd love a macOS menubar icon for Heynote. I currently use
       | Evernote's Quick Note feature from its menubar app.
        
         | jonatanheyman wrote:
         | I'll look into it!
         | 
         | Not what you asked for, but slightly related: You can set a
         | global hotkey that shows/hides Heynote.
        
           | hughw wrote:
           | 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!
        
       | albybisy wrote:
       | very good concept! i really would like to have this as a Web-app
       | instead of downloading it...
        
         | jonatanheyman wrote:
         | I've entertained the thought of adding a web version of Heynote
         | to heynote.com (using local storage for persistence).
        
       | devracca wrote:
       | This looks great. I currently use Sublime Text for this. Can
       | easily see using this. Thank you for building it.
        
       | rebeccaskinner wrote:
       | 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.
        
         | jonatanheyman wrote:
         | 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.
        
           | beepbooptheory wrote:
           | This is so much like org mode (or rather, a small subset of
           | org mode) its fascinating and cool to me you had never even
           | heard of it! Great minds...
           | 
           | Make sure to also look at org roam, it is more specifically
           | why I won't personally have a need for Heynote any time soon,
           | but it could maybe be inspiring for you going forward.
           | 
           | https://www.orgroam.com/
        
           | bradrn wrote:
           | > Oh, I haven't seen orgmode before, so I don't know what its
           | features are.
           | 
           | Essentially, it's an environment for writing+outlining+task
           | tracking+time management. It's incredibly useful -- you
           | should definitely try it since you've used Emacs.
        
       | erdaniels wrote:
       | 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?
        
       | Gracana wrote:
       | 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?
        
         | jonatanheyman wrote:
         | Interesting. It's Math.js that is powering the Math blocks.
         | I'll have to investigate if it can be configured.
        
       | jameshart wrote:
       | 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.
        
         | jonatanheyman wrote:
         | > 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).
        
       | porridgeraisin wrote:
       | 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!
        
         | silvestrov wrote:
         | 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.
        
         | porridgeraisin wrote:
         | 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.
        
         | jonatanheyman wrote:
         | > 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 :/
        
           | porridgeraisin wrote:
           | > 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!
        
           | bachmeier wrote:
           | Changing the font is accessibility, not customization. I
           | downloaded the app, opened it up, and the font was too small
           | for it to be practical for me to use. I know it doesn't take
           | much to fix, because I did a Ctrl-Shift-I, changed the font
           | from 12px to 18px, and problem solved. It's not something I'm
           | going to do over and over.
        
             | rkeene2 wrote:
             | Yeah, it's not really usable without being able to
             | configure a reasonable font.
        
             | monkey_monkey wrote:
             | cmd + (or whatever the equivalent is for your platform)
             | seems to permanently increase the font size.
        
       | bityard wrote:
       | 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.
        
         | antiframe wrote:
         | 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.
        
         | gnyman wrote:
         | Great list! It looks exhaustive, you've managed to include all
         | I have tried and a few more.
         | 
         | Myself I have ended up with mostly using Soulver and TextMate.
         | TM is not really the same thing but it has nice built in text
         | manipulation for more advanced things like "diff selection with
         | clipboard", regex and "sorta and remove duplicates". The thing
         | it lacks is on the scratchpad/autosaving... So I just abuse the
         | window restoration feature and never close or save any
         | documents but have 50 textmate windows :-)
        
       | hn_throwaway_99 wrote:
       | 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!
        
       | qainsights wrote:
       | 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
        
       | kposehn wrote:
       | ...I wish this was on iPad too! Very cool to see and I'll try it
       | on Mac.
        
         | QuinnyPig wrote:
         | Seconded!
         | 
         | Of course, then I'd want sync. This is pretty close to what I
         | want Drafts.app to be.
        
           | kposehn wrote:
           | Good point about sync. Probably could use iCloud Drive or
           | Google Drive for data.
        
       | AbraKdabra wrote:
       | 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?
        
         | jonatanheyman wrote:
         | 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.
        
       | rfreedman wrote:
       | 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!
        
       | perryh2 wrote:
       | 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.
        
       | jsdalton wrote:
       | 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!
        
         | vy007vikas wrote:
         | +1. This would be great. I could then use this for daily
         | logging as well.
        
         | hjadal wrote:
         | I agree that this addition would be very helpful as it is
         | already how I take notes in a markdown document.
        
         | jonatanheyman wrote:
         | 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)?
        
           | jsdalton wrote:
           | 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).
        
           | smusamashah wrote:
           | Having an option to set either behaviour the default would be
           | a better choice here.
        
         | amadeuspagel wrote:
         | I made a notes app that's kind of like that. Notes get added to
         | the top and when you edit a note it gets "bumped" to the top
         | again: https://thinktype.app/
        
           | SpaghettiCthulu wrote:
           | TIL using the .app TLD makes your website categorically an
           | app
        
             | amadeuspagel wrote:
             | I'm not sure what you mean. This is an app that stores
             | everything client side. It works offline. It's no different
             | from a native app.
        
         | chatmasta wrote:
         | I also like this. But I don't like the distraction of seeing
         | all the blocks below my cursor move every time I make a new
         | line.
         | 
         | The perfect UX would be to add a new buffer at the top, but
         | with enough padding to fill the window so that you can't see
         | the movement of previous blocks while you're typing.
         | 
         | (Maybe this is already kinda how it works - I haven't
         | downloaded the app yet, but I'm excited to try it, because it
         | looks great!)
        
           | radley wrote:
           | >I don't like the distraction of seeing all the blocks below
           | my cursor move every time I make a new line.
           | 
           | Uhm... They don't move. They stay the same distance, relative
           | to your line. As you add more lines, they'll disappear below
           | the fold.
        
             | chatmasta wrote:
             | In a regular doc, if you start typing at the beginning,
             | then all the lines after it move down as you type. It's
             | just the movement I find distracting, compared to appending
             | to a doc with no space below where I'm inserting text. I'd
             | rather feel like I'm typing into empty space rather than up
             | against a wall.
        
       | karmakaze wrote:
       | 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)_.
        
       | jelder wrote:
       | 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`](http
       | s://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/
        
         | divbzero wrote:
         | I agree with the use case, but also wonder if it's more on
         | Slack, Jira, _etc._ , to try harder to adopt Markdown.
        
       | koiueo wrote:
       | 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?
        
       | sneak wrote:
       | Note that this is not open source software. It has a nonfree
       | license.
        
       | divbzero wrote:
       | "Math" mode apparently depends on Math.js: https://mathjs.org
       | 
       | So it should support the syntax available in this Math Notepad:
       | https://mathnotepad.com
        
       | fastball wrote:
       | 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.
       | 
       | [1] https://yliansoft.com/
        
       | evnc wrote:
       | 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?
        
         | jonatanheyman wrote:
         | Performance is mostly handled by CodeMirror
         | (https://codemirror.net/), the underlying editor that Heynote
         | is built upon. It seems to handle quite large buffers well.
         | Where I have seen some minor performance issues is when working
         | with very large _blocks_ in certain language modes.
        
         | mkl wrote:
         | It's not open source, as it uses the Commons Clause which
         | severely limits what can be done with it (the name is
         | misleading).
        
           | prartichoke wrote:
           | As far as a quick google search got me, it seems pretty open
           | with the only caveat being you can't sell or monetize it...
           | how is that not open source?
        
       | shafyy wrote:
       | Amazing, and congrats on building it! Any plans on supporting
       | Ruby syntax?
        
       | dceddia wrote:
       | 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 :)
        
         | jonatanheyman wrote:
         | Yeah, I looked at Tauri in the beginning of the project. What
         | made me go with Electron was the maturity and large user base.
         | And it has actually been a bliss to work with Electron (my
         | expectations after having worked with other cross-platform
         | tools for mobile were extremely low), so I haven't regretted my
         | choice. I've dealt with very few bugs. I love that there is a
         | large ecosystem, and that it was easy to automate building (as
         | well as auto-updating) for multiple platforms.
        
           | dceddia wrote:
           | That makes a lot of sense. I miss a bit of that from
           | Electron. Its auto-updater is nicer, and while I haven't had
           | a ton of cross-browser issues there've been a couple that I
           | had to fix with transpiling or avoiding some newer CSS stuff.
           | Shipping everything with one browser engine lends a lot
           | toward peace of mind.
           | 
           | I wish there was a way to build a stripped-down Electron,
           | like a configurator where you could uncheck things you don't
           | need. Printing support? WebGPU? WebRTC? Video playback? PDF
           | reader? Straight to jail. It would be lovely. I'd love to see
           | what would happen to the bundle size.
        
         | esafak wrote:
         | I read that the Rust part was unergonomic. Do you find Tauri
         | productive?
        
           | dceddia wrote:
           | Yeah, it works pretty well for me. Rust definitely took some
           | getting used to (I was new to it when I started).
           | 
           | There's a lot of functionality you can access from JS without
           | needing to get into Rust, but on the Rust side Tauri has this
           | notion of "commands" for calling Rust from the UI.
           | 
           | You can write a Rust function and annotate it with
           | #[tauri::command], and register it, and then you can call it
           | from the JS side with invoke('your_command_name', args).
           | Those commands can be async too, so you can do blocking work
           | on the Rust side and the UI won't freeze.
           | 
           | You can inject State variables into those commands, which get
           | injected at call time and are effectively global to the Rust
           | side. I would say the State stuff is a bit unergonomic in
           | that you run up against needing to share them between
           | threads, so everything inside them needs to be Arc<Mutex<>>
           | and writing those wrappers was boilerplatey.
           | 
           | I wish the JS <-> Rust calling overhead were lower. It
           | serializes everything to JSON and back, so I try to avoid too
           | many calls, and try to avoid sending lots of data between
           | them.
        
       | 05bmckay wrote:
       | Hahaha, had this same idea a little while back, really cool
       | stuff: https://lol-dusky.vercel.app/
        
       | Rudism wrote:
       | I love the idea of this after playing with it for a few minutes.
       | My main gripe is that the font size is way too small for my old-
       | man eyes, and it doesn't seem to remember or restore the previous
       | zoom-level when launching (meaning I need to re-zoom-in every
       | time). If it were possible to set a larger font-size or if the
       | previous zoom level was saved and restored on each launch that
       | would be a greatly welcome addition to what seems like a super
       | useful tool.
        
         | jonatanheyman wrote:
         | Restoring the zoom level on restart is a good idea. Thanks for
         | the suggestion!
        
         | nateb2022 wrote:
         | You can zoom in with [Ctrl][Shift][+], and zoom out by
         | [Ctrl][-].
        
         | rkeene2 wrote:
         | It's not just the font size but also the choice of font, with
         | no way to specify a font that is readable.
        
       | WillAdams wrote:
       | I _really_ like it --- have you thought about a more abstract
       | icon? Agree w/ folks elsethread that just removing the text would
       | be a huge improvement --- perhaps have an option for displaying
       | total number of blocks and collapsed blocks?
       | 
       | Where are the currency conversion ratios pulled from? I guess
       | that requires 'net access?
       | 
       | Possible to add a right-click menu (say to collapse blocks and so
       | forth)?
       | 
       | There seems to only be one fold point for a given block? (The
       | markdown one for instance) --- it would be nice if the first and
       | second line were always possible collapse/folding points.
       | 
       | Perhaps menu commands for collapse all/show all?
        
       | apsurd wrote:
       | The webpage is great. loads INSTANTLY. So noticeably fast that I
       | checked the source. Looks more or less hand-done.
       | 
       | Just want to give a nod and say thanks for the craft and care.
       | 
       | & +1 I downloaded the scratchpad. Looks useful.
        
       | totalhack wrote:
       | I use org mode which was great in emacs but the plugin kinda
       | sucks for VS code. The main feature there is the ability to fold
       | and nest sections.
       | 
       | I see you have a "blocks" concept which seems roughly equivalent
       | to a top level foldable bullet in org mode. Are blocks nestable?
       | Otherwise what is the recommended way to organize a multi-block
       | set of notes? Typical example for me might be tackling a larger
       | problem/feature (top level block) and then having sub
       | blocks/bullets for each part of the problem which are also
       | foldable. I usually don't go more than a few levels deep but
       | could get by with just 2 if need be.
        
       | xenodium wrote:
       | Hey congrats, this looks great for macOS! Trying it now!
       | 
       | With a similar mindset and an Emacs background, I wanted a
       | _scratch_ -like experience on iOS, so I built one
       | https://xenodium.com/scratch-a-minimal-scratch-area. Seems to
       | work for others too https://irreal.org/blog/?p=11202
       | 
       | While there's a new built-in iOS journaling app, I'm building one
       | to save to plain text (and no lock-in). https://xenodium.com/an-
       | ios-journaling-app-powered-by-org-pl...
        
       | bbx wrote:
       | Very interesting! A few years ago I imagined something similar,
       | with the added ability to move blocks between adjacent windows:
       | https://twitter.com/jgthms/status/1225513837379641350
        
       | promiseofbeans wrote:
       | I saw the unit conversions and it immediately reminded me of Fend
       | (https://github.com/printfn/fend). If you're looking to expand on
       | your maths / unit conversion feature, it could be a good option.
       | It also supports forum-style since rolling (e.g. 3d6+4), which
       | some people could find pretty useful
        
       | prakashn27 wrote:
       | Looks cool. Vim would be a great addition.
        
       | gnatolf wrote:
       | I've always used multiple tabbed unsaved files in notepad++ to do
       | the same. Funny how things converge, this is very similar.
        
       | prakashn27 wrote:
       | looks cool.
       | 
       | Vim would be a great addition.
        
       | rg2004 wrote:
       | The idea of Pages/Tabs would be useful to me. I'm a bit of a
       | scratch-pad hoarder. I currently have 200+ notepad++ documents
       | open.
        
       | AlphaWeaver wrote:
       | The calculations alongside the notes remind me of the "dynamic
       | annotations" in Ink and Switch's "Potluck" [0] demo. I wish there
       | were more examples of this in note taking applications - this
       | sort of progressive enhancement from unstructured notes to
       | structured data is useful.
       | 
       | [0]: https://www.inkandswitch.com/potluck/
        
       | smithza wrote:
       | emacs org mode... anything else needed?
        
       | swah wrote:
       | Nice but..I expected a run command on my Javascript block.
        
       | computershit wrote:
       | Seriously, nice work. If you are going to eventually offer a web
       | version of it it would be great to be able to self-host.
        
       | delijati wrote:
       | I currently have a insane long Markdown file as brain dump. Will
       | give it a shot. Something like an overview or minimap or a way to
       | structure like mindmap would be nice :)
        
         | promiseofbeans wrote:
         | Once browser support improves, minimaps on web-powered stuff
         | will be pretty trivial: https://developer.mozilla.org/en-
         | US/docs/Web/CSS/element
        
       | mike31fr wrote:
       | Units handling in maths blocks is awesome.
       | 
       | Exemple 1:
       | 
       | g = 9.81 m/s^2
       | 
       | time = 60s
       | 
       | Then "g*time" shows "588.6 m / s"
       | 
       | Exemple 2:
       | 
       | energy = 14 J
       | 
       | distance = 5m
       | 
       | "energy/distance" shows "2.8 N"
       | 
       | Wow.
       | 
       | EDIT: I just found out that behind the scenes it's using
       | maths.js. This library does this natively. Input "14J/5m" into
       | maths.js and you get "2.8 N" as output. Glad I discovered this
       | library.
        
       | arjonagelhout wrote:
       | I've been using iA Writer for this exact purpose. A place to
       | quickly dump text I don't want to lose or quickly create drafts I
       | don't want to accidentally send.
       | 
       | I'm not sure whether blocks would be better than just separate
       | files, which can be created quickly using Cmd+N.
       | 
       | However, the lack of syntax highlighting in iA writer has been
       | less than ideal, so I'm definitely trying this out!
        
         | arjonagelhout wrote:
         | First impressions:
         | 
         | - resizing the window creates white borders when the content of
         | the window hasn't been updated yet to reflect the new window
         | size. these are a bit jarring / look non-native.
         | 
         | - I try to keep electron apps to a minimum, as I've had only
         | bad experiences with them so far (Discord, Warp, Unity Hub) and
         | they take up a lot of resources.
         | 
         | - While writing code, it does not keep indentation when
         | entering a closing bracket.
         | 
         | These are more nitpicks, but I love the concept :) Great work!
        
       | threaz wrote:
       | Great app. Thanks for making it available.
       | 
       | Is there an option to rearrange blocks using drag-and-drop or a
       | keyboard shortcut?
        
       | swyx wrote:
       | ah a fellow electron app publisher! qq - have you figured out
       | automatic updates yet? i tried to do that in my app
       | (https://github.com/smol-ai/GodMode) but everyone just complains
       | about a blank white screen whenever i push an update, if they
       | even receive it at all. feels very flimsy. what do uou recommend
       | for update push best practice?
        
       | Kreliho wrote:
       | This looks super nice! I have been using either a plain text
       | file, or telegram's saved messages, or the clipboard history for
       | basically the same purpose, and it never really occured to me
       | that there would be such an elegant solution. Looking forward to
       | trying this out when I get back tonight.
        
       | mkl wrote:
       | It seems strange for the website to only give the Apple shortcut
       | keys for a cross-platform app. It gives the actual keys when I
       | run it on Linux, but I can't figure out what "Ctrl + [?] +
       | Up/Down" means.
       | 
       | Looks quite neat though.
        
         | johntash wrote:
         | "[?]" is "option" on a mac keyboard, which should usually be
         | the alt key on linux/windows
        
           | mkl wrote:
           | Not alt here apparently, or super.
        
       | plonkus wrote:
       | This is great! Thank you for creating this. Would love to see
       | unix timestamp conversion in there too
        
       | csmeyer wrote:
       | I thought this looked pretty cool, and downloaded. Messed around
       | with the demo for a second and hit CMD+s to save my thing
       | somewhere and realized this was actually literally just a simple
       | scratchpad. This will be my daily driver!
        
       | poetril wrote:
       | This is awesome! I currently use numpad[0] for this, but would
       | much prefer a local app. I would love to switch but the only
       | thing holding me back is lack of Vim support. Are there any plans
       | to add Vim keymap in the future?
       | 
       | 0: https://numpad.io/
        
         | jonatanheyman wrote:
         | See https://github.com/heyman/heynote/issues/24
        
       | zdrummond wrote:
       | Looks great. Quick question. When I started it up, Little Snitch
       | immediately told me it made a connection to GitHub and
       | currencies.heynote.com.
       | 
       | Why does a scratch pad need to phone home?
        
         | giankam wrote:
         | Probably Github for autoupdate and currencies for current
         | currency rates
        
           | jonatanheyman wrote:
           | Correct.
           | 
           | For the paranoid it should be simple to fork Heynote and
           | disable currencies and auto updates.
        
       | nightwolf wrote:
       | This is fantastic, thank you for making and sharing it?
       | 
       | Is there any chance of Heynote supporting Clojure syntax one day?
        
       | johntash wrote:
       | I was expecting to not like this, but it's actually pretty cool.
       | I love how simple it is and that it's not trying to replace
       | everything.
       | 
       | I used to use the scratch buffer in Emacs all the time, and it is
       | something I missed from emacs. I go between using Obsidian and
       | Trillium for notes, but I'm going to try using Heynote for a
       | scratchpad / quick notes type of thing and copy things from it if
       | it's worth saving.
       | 
       | Maybe a feature request would be the ability to export a block? I
       | wouldn't want it to be complicated so maybe just something like
       | "Export block to command" and then the command could be a
       | customizable curl command or some other command that copies stdin
       | to another app.
        
       | sigmonsays wrote:
       | emacs org mode + babel =P
        
       | plutokras wrote:
       | Great tool, thanks for sharing. If you are open to suggestions, I
       | would love to have spellcheck in it.
       | 
       | https://github.com/languagetool-org/languagetool
        
       | smcleod wrote:
       | I like the execution and minimalist UI.
       | 
       | It would be awesome if this was a native or Tauri / Wails app,
       | moving away from Electron would really de-bloat the application
       | and set it apart from say using another VScode extension etc... I
       | already have far too many chrome instances running due to
       | Electron.
        
       | lelanthran wrote:
       | I like this so much!
       | 
       | (Now I want to add blocks in reverse chronological order to my
       | todo app)
        
       | tefloon69 wrote:
       | This is amazing! One thing I'd love to see though is the ability
       | to zoom in/out like in Sublime
        
         | jameshart wrote:
         | On Mac, at least, [?] + and [?] - seem to change the font size.
        
       | ComputerGuru wrote:
       | Really cool idea. I ran it on Windows and noticed the text
       | rendering was off (incorrect/missing subpixel anti-aliasing) but
       | at the same time I got distinct Electron vibes which threw me
       | off: Electron does text rendering correctly and lack of subpixel
       | rendering usually means a custom (native) gui. Is everything a
       | canvas? If so, using text gives you accessibility plus better
       | text rendering.
       | 
       | But maybe it's just the font. Is there a way to change which font
       | is used?
        
       | nathanh4903 wrote:
       | i immediately tried e^(pi i) and is delightfully surprised that
       | it works! not only the math supports complex numbers, it also
       | allows functions
       | 
       | however, something like f(x)= sin(x)/x, f(0) returns NaN.
       | 
       | Are there any plans to support derivatives, integration and
       | summation?
        
       | rglover wrote:
       | This is really, really good. Just earned a permanent spot on my
       | dock in short order.
       | 
       | One request (which I would happily pay for): make it so that you
       | can run the code blocks and generate an output. I routinely crack
       | open the browser console to test out some JS and it would be
       | great to be able to do this right alongside my other notes.
        
       ___________________________________________________________________
       (page generated 2023-12-22 23:00 UTC)