[HN Gopher] Show HN: Edna, note taking app for developers
___________________________________________________________________
Show HN: Edna, note taking app for developers
I took a small break from coding SumatraPDF and wrote a note taking
application that is perfect for me: https://edna.arslexis.io/ Edna
is a note taking app for developers and power users. A cross
between Obsidian and Notational Velocity. Markdown, plain text,
code, works in browser so no installation required, private (notes
are stored in your browser or disk) and secure (can encrypt notes
with a password). The story so far. I was always attracted to
editors with minimalistic UI, like https://mak.ink/, simplenote,
Notational Velocity. I like having most of the screen estate for
writing because writing and editing is what note taking apps are
for. But: most of them are very thin on features and UI. I saw
Heynote and it was one of those minimalistic writing UIs with not
many features. I liked their concept of dividing notes into blocks
so I forked Heynote and started coding. The goal was to combine
writing-oriented, minimalistic main UI while also providing on-
demand UI for features and efficient operation. Things like context
menu, type-down note switcher, command palette, quick access
shortcuts, plenty of keyboard shortcuts. Another goal was privacy
and security. The notes never leave your computer and can be
encrypted with a password. It also makes the code simpler because I
don't need any backend storage, user accounts and auth etc. Sadly,
only Chrome and Edge provide the necessary file system api, on
other browser you can only store notes in local storage, which
means no sharing between computers or accessing the notes with
other software. 40 working days and 528 commits later, here's what
I've added: * added support for multiple notes
* ability to store notes on disk * and if you store notes in
a directory managed by DropBox, OneDrive etc., you get sharing of
notes between computers * Ctrl + P: UI for switching between
notes, creating new notes, deleting notes, inspired by Notational
Velocity * Ctrl + Shift + P: command palette like in vs code
* context menu to access frequently used functionality * Ctrl
+ E to open note from history (list of recently opened notes)
* ability to assign Alt + 0 ... Alt + 9 quick access shortcuts
* ability to encrypt notes with a password * export all notes
to a .zip file * automatic, daily backup of notes to a .zip
file (optiona, see Settings) * Ctrl + B to navigate between
blocks * re-designed Settings UI * added ability to
execute Go blocks * support Svelte and Vue in code blocks
* ported the UI code from Vue to Svelte 5, just because I could
* converted from desktop app to run in the browser (Ctrl is
on Windows, on Mac it's [?]). I've been using it daily while
working on it. 94 notes and counting. I still have ideas for
improvements but it has all the core features for productive work.
The app: https://edna.arslexis.io/ The code:
https://github.com/kjk/edna
Author : kjksf
Score : 76 points
Date : 2024-07-01 14:38 UTC (8 hours ago)
(HTM) web link (edna.arslexis.io)
(TXT) w3m dump (edna.arslexis.io)
| michaelrpeskin wrote:
| Is desktop on the roadmap? I use HeyNote (desktop) every day and
| the only feature I _really_ want is multiple notes. You added
| that, but I need desktop because of corporate rules.
| pax wrote:
| desktop, or offline? isn't the PWA satisfactory?
| stronglikedan wrote:
| not everyone has 24-hour online access
| babo wrote:
| If you have git, golang and bun/nodejs on your machine it works
| from localhost. git clone
| git@github.com:kjk/edna.git cd edna/server && go get &&
| go build && cd .. ./server/server -build-local-prod
| ./server/server -run-local-prod
| kjksf wrote:
| Desktop would be easy to do but seems a bit pointless.
|
| You can install a PWA shortcut which gives you even more
| desktop experience in the sense that it looks like an app
| separate from the browser.
|
| That is what I do.
|
| What are those corporate rules and how are they enforced?
|
| Is it about storing data? Because Edna stores the notes on your
| computer, it's never sent to any server.
| bdcravens wrote:
| > Supports Go, JSON, JavaScript, HTML, CSS and Markdown
|
| What is required to add additional language support?
| transreal wrote:
| It's based on Monaco Editor, which is the open source base of
| VSCode - you can see the full list of supported languages by
| clicking the dropdown on the bottom right (similar to VS code:
| https://code.visualstudio.com/docs/languages/overview#_chang...
| )
| kjksf wrote:
| Actually, it's based on CodeMirror
| kjksf wrote:
| The above is a partial list, Edna supports about 30 langs.
|
| To add another one, you need to find library that implements
| CodeMirror mode for that language, add it to package.json and
| update languages.js
| danielvaughn wrote:
| I love this.
| lordgrenville wrote:
| Glad that you led with having made SumatraPDF, I love that app
| and it's a big recommendation for me.
| viccis wrote:
| I will check this (and Heynote) out. I have long wanted to get
| into something like Obsidian, but have always had trouble finding
| a good example of a workflow in the development world that makes
| good use of their features. Almost all example workflows I've
| seen are from people whose job it is to work on and evangelize
| note taking tools, and it's mostly things like organizing their
| notes on how to take notes. Seemed like a bad sign. This seems a
| bit more focused and could at least replace my habit of opening
| up Notepad++ (on Windows) or a text document in a scratch folder
| (on Linux) to jot down a query to tweak and reference later.
| Thanks!
| kjksf wrote:
| This is one of the uses for me as well: jotting temporary notes
| when programming.
|
| One of the default notes is `scratch` for exactly that and you
| can summon it quickly with `Alt + 1`
| thesunny wrote:
| This is a really cool idea. I especially like the math blocks
| where you can add blocks of information that actually do things.
| I could see this potentially even growing beyond math, but other
| types of functionality as well.
|
| One optimization that might be interesting is to simply use
| Markdown as your main document all the time and then when you
| want to add special functionality like the math block to simply
| have that as a code block in Markdown. For example, using the
| triple back tick followed by the word math. Then anything inside
| of that math block works just like you already have.
|
| This also makes it easy to add other types of blocks
| incrementally.
|
| One challenge for me in reading the sample document was that it
| wasn't clear that a math block was a math block without the
| comments that you wrote. Using the triple back tick with the
| block type would solve that problem
| kjksf wrote:
| Yeah, so far this behavior is inherited from Heynote.
|
| I've been thinking about making math an option within markdown.
|
| The type of the block is shown at the bottom, in the status
| bar.
| SoftTalker wrote:
| I like the idea of a developer focused note environment, but I've
| got such deep muscle memory for emacs that any other editor is a
| non-starter for me.
| kjksf wrote:
| Edna actually has Emacs mode which you can choose in settings.
|
| You can see implementation:
| https://github.com/kjk/edna/blob/main/src/editor/emacs.js
|
| I can't say how well it works. I just noticed that I would need
| to change some keybindings because they conflict with Emacs
| keybindings.
| rodneyzeng wrote:
| No support for math.js or katex
| suranyami wrote:
| This is remarkably similar to Calca.app, which I still use
| occasionally. http://calca.io/
|
| I love that yours is web based! Can see it being much more
| reusable in a number of use-cases.
|
| Calca was originally MacOS/iOS, but has since been ported to
| Windows.
|
| I think that the notation in Calca to use a `=>` to display
| results maybe adds a bit more clarity to the math expressions,
| but your display style seems to work pretty well too.
|
| The only advantage Calca seems to have is they've had almost a
| decade to add things like extra functions (compound interest,
| trig, ...), constants, operators, etc.
|
| I've always thought that style of simple but highly visible
| calculation is a far superior alternative to spreadsheets.
| Jupyter, LiveBook, Mathematica, etc... have shown that it works,
| but the world is still enamored with Excel, despite its
| propensity to hide mistakes.
| simplify wrote:
| I was going to say this looks exactly like Heynote, but then saw
| you said you forked it. Is there a fundamental difference in
| vision between the two apps? Both taglines are notes "for
| developers", so I'm a little confused on why the separate
| project.
| kjksf wrote:
| Heynote is a scratchpad, a single note, and has no plans to
| support multiple notes or really grow it beyond what it is
| right now.
|
| Which I respect but I needed at least multiple notes, bringing
| this much closer to apps like Obsidian, Bear etc.
|
| And then I added a bunch of features that I wanted to have,
| like UI for opening/creating/deleting nots inspired by
| Notational Velocity, encryption, command palette, history, Ctrl
| + B for navigating between blocks.
|
| Edna is basically a superset of Heynote: it does everything
| Heynote does and lots more.
|
| So yeah, the vision is pretty different.
| ericxanderson wrote:
| Why is this not a PWA?
| kjksf wrote:
| It is. It has PWA manifest (https://github.com/kjk/edna/blob/ma
| in/public/site.webmanifes...) and you can install it as desktop
| app (tested with Chrome on Windows).
|
| I should add offline mode.
|
| If you need some specific PWA functionality that isn't there,
| please open an issue at https://github.com/kjk/edna/issues
| ThinkBeat wrote:
| This reminds me of an earlier project posted here:
| https://heynote.com/
|
| I have been using that for quite a while and I like it.
___________________________________________________________________
(page generated 2024-07-01 23:01 UTC)