Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Grug Notes, a simple take on text notes (grugnotes.com)
100 points by keizo on Aug 18, 2024 | hide | past | favorite | 71 comments
Hey hacker news, I've worked on a note/wiki app nights and weekends for almost two years. While still missing some essentials and polish, I'm happy with the progress and some of my use cases: personal CRM, work notes, and a place to write/record funny things my kid says.

I bought into the hype a few years ago with linking apps but quickly grew tired of spinners and steep learning curves, so I started over with a text box and my HTML skills from twenty years ago. Then Chatgpt came out, giving me the tools to add a bit of magic and dig into my stance on simplicity even more.

I'd love to get a few more people testing. HN may not be the target user, but it's the best crowd for feedback.

Grug Notes is an effort I've been able to fit in after my kid goes to sleep. As someone who is not always on a computer for my work, I became disillusioned with Roam Research, Coda, and Notion. I have no ambition to build a big company, but a cash-flowing saas sounds nice.

Building this has been a source of flow and optimism when the rest of my life has been chaos. My entire career and current business is building carbon fiber outrigger canoes, but competing against good products made in China is nearly impossible. I've tried for 17 years. I may try for 17 more. But it's also very realistic that without some diversification into aerospace or tech, my days as a small business owner in manufacturing may be numbered. My last three years have not gone as planned personally and professionally, and the reality is that I've used programming as some form of escapism. I've enjoyed it and will keep working on Grug Notes indefinitely, but with my daughter starting pre-school next week and my regular business needing my attention, I'm at an inflection point. It's probably time I push to move beyond seven paying customers so I'm not paying server bills out of pocket. :)

Anyway, I'd love for anyone to take a look, and I am happy to answer any questions about Grug Notes or canoes!



I hope people find it interesting because for me it's yet another AI-powered note taking subscription that may or may not send all your data to random people all over the planet. At least you should make it E2E encrypted which would solve most privacy problems.

> end-to-end (...) encryption add friction

How?

> And we're building canoes over here, not storing nuclear codes.

The good old "I have nothing to hide."


I agree, but it is also very difficult to actually do. Either needs hosted or local LLM, right? how else can you process? I try to explain my views clearly on the landing page. And say to use apple, obsidian, or reflect where that is the priority. I find the utility of passing to LLMs worth it for what I'm taking notes on.


Yes. Or at least the option to use/self host one is great. At the very least, ensure the user has the option to turn it off explicitly.


They have, by using one of the million other note taking apps.

I understand that on hn it's good karma to be a privacy-absolutist, but I think in the space of note taking apps, surely, there is enough product to let makers who are slightly more flexible cook?


As long it’s an web app it cannot reliably guarantee e2e anyway, so where is the point


That's only spiritually correct. You can guarantee full e2e encryption with webapps, the issue is with the potential to leak the key to the middleman, giving them the ability to decrypt it as well - but itd still be e2e encrypted.


It means you either need to persist the key to localStorage or a cookie. If you clear your browsing data or switch browsers, you can't just log in again, you have to use an existing device to share the key (e.g., with a qr code). That's the friction.


Now I could be way off here, but could you hash/salt the users password in 2 different ways:

- the first way would be used before sending the password to the server. This would then be hashed and salted again to be used for authentication with the server. - the second way would be used locally. You could have the user create a pin to go with the password that would be used to create this hash. This hash would be the key to decrypt the contents. It would never be sent to the server.

I haven’t actually done the thinking or research to validate or invalidate something like this though. My uses of encryption have all been rather standardized.


It's not a password, it's an encryption key. You don't want to use a password because if you can derive a key from the password it means there's one key per password. You can salt them but then the server can crack your key because it's exactly the same complexity as cracking a password (since the server has the salt).

If you're doing e2ee, anyone you chat with needs to exchange key material with you (like diffie-hellman). Your private key decrypts messages sent to you, while the public key that you share encrypts messages that can be decrypted with your private key.

The process has little to do with authenticating with the server, it has everything to do with exchanging keys with the people you talk to. And you can't just trust the server to do it, since a malicious server could just send its own public keys to the chat participants and man-in-the-middle the conversation.

If you want to use Signal on your laptop instead of your phone, your private key needs to get to the laptop without going through the server. You could encrypt it, but then you need to encrypt it using a key derived from a password or PIN, and now you have the same problem as before.


PWA unlocked with a key is perfectly feasible. It keeps the key in memory and filters localstorage/network data with it. New instances require the key again. Have you ever used 1password or equivalents?


The first thing I see is a signup without even understanding what the product is or how it's different from my existing notes.md file.

Why would I login before even knowing what it is?


Maybe it was added since your comment, but below the signup form is a series of videos


i have a lot of text explaining it. def open to ideas on how to explain more clearly though.


I would have appreciated seeing a <2 minute recording of it (GIF, animation, video etc.) to better understand what it is.

I like the logo, though!


That's valid. I tried a few days ago, but it's pretty terrible and almost 4 minutes! I will shoot for 2 min next time.


Shoot for sub 10 seconds. A gif. People’s attention spans are much, much, much shorter than that. Think 1-2 seconds. I think if you can’t get the idea across in 1-10 seconds you lose 99% of watchers


People who aren't interested leave early. This has nothing to do with attention span. If you cut it to just a few seconds, then yes more people will watch the whole thing, but that doesn't mean more people will get anything out of it, it's just they don't have time to move on before it's over.


I think you're missing the fact that interest can be piqued by a good video, it is not predecided if someone is interested in a particular product or not


If I've learning anything from modern instagram, this is it. :|


I built Audio Diary (https://audiodiary.ai) which is basically a more consumer-friendly version of this. I like this though, it fulfils a different use case and I think with a bit more love on certain user flows it could have a lot of appeal to a certain type of user.


Very nice! Seems like some of the native apps focusing on audio have done quite well. I hope you are as well.

I do keep thinking long form audio and diarization would get me something practical more smb and trades people would consider using.

My original personal desire was to replace my use of roam research which is not the most consumer friendly. Not sure how long I can stay focused on plain text without staying super niche, but sticking with it for now. :)


HN is a place that appreciates craftsmanship over mass production. That can apply to apps or canoes!


this is all a grand scheme to sell canoes to people in tech. :D


I think there's a lot of opportunity in this space with AI. It'd be interesting if you could take some metadata into account when organizing notes. For example, you might be able to guess when someone is home when they're accessing the site from a frequent IP address. This example is top of mind for me, as I just completed a move this weekend. I wish I had been better organized taking notes as I set up different home systems in the past, as it's now been a few years and I wish I had notes I could go look back on. Being able to filter my apple notes app by geolocation would be awesome.

I love the idea of not having to worry about tags to keep notes organized. Nice work!


Thanks for looking! I'm actually surprised Apple hasn't done this yet. The organizing and search stuff they do with photos, metadata, and image recognition is really great. So I'm sure they will.

As a pwa, it'd be a bit annoying since it'll have to ask you every time to geolocate. At least, I think it's the same as mic access.


I like the idea of self-organizing notes, but to me that would be more like an automatically-created semantic graph where I can write a random note and have it auto-sorted and tagged.

So if I write down “Bob’s first kid’s name is John” it will segment that note into a section about “Friends and Relationships,” but if I write down “FAST Stroke Acronym = Face Arms Speech Time” that note will get segmented into “Medical Knowledge”.

And then having some way to explore that graph of notes would be super cool.


Every block and 'prompt' entity does get embeddings made of it, so the search works pretty well. Kind of with the goal of moving away from tags entirely. I've never found graph views useful, and I don't really tend to click around in my notes. Beyond clicking on my daughter's name, and in that case, all mentions are listed there. You can ask stuff like "What's Bob's kid's name?" and it should mostly answer.

But yeah, there is lots of room for improvement -- I'm such a minimalist when it comes to notes, there's a narrow band of use cases I feel like it's good for at this point. I've never tried to organize actual deep knowledge with an app.


Congrats on shipping and the effort to stay motivated and optimistic. As a fellow parent in a similar boat working on a similar app, I deeply appreciate what it takes to get anywhere when all you have is, at best, 90 tired minutes.

Also while it may be a form of escapism there is a stark difference between shipping something while learning new (valuable) skills, and tinkering with a novel under your desk indefinitely. Kudos on getting to that next step!


I appreciate that this is on the web page: "Who should not use this? If you're adamant about local first or end-to-end encryption".


Grug notes, simplest option: text files. Org mode if you’re feeling fancy.

Grug notes, lowest-friction option: whatever the native notes app is on the platform you most often have around to take or refer to notes (probably your phone).


Heads Up: On load ...

    Shucks. That's an error.
    Please try again, and if you continue to get this message, contact support.
Hug of death? Disabling uBlockOrigin & extensions -> same result.


Real users are the best way to find bugs I swear. Checking into it


took one query off the landing page. but still don't quite know why. switched to uvicorn from gunicorn since I had this last. but will see how cloudrun holds up lol.


Heh. No complaints from me, just a real user reporting back from the front line.

Whatever you did, it loads now - cheers :-)


thanks for the heads up. Lowered max concurrent requests and a couple of other small changes. It's not totally solved, but it mostly staying up and seems to come back quickly when it fails. Suppose I need to learn how to load test in the future. :)


I don't want "AI" in my notes


I hear you. I have avoided generative stuff, but I'm so lazy I'm quite happy to have it organize. Basically trying to build exactly what I want.


This is a strange opinion to hear on HN.

You don't want search and information extraction to be powered by a certain algorithm that is measurably better at this than other algorithms?

Is it okay that this product uses timsort or you're only ok with quicksort?


> This is a strange opinion to hear on HN.

A diversity of viewpoints is healthy for discussion, and diversity yeilds a healthy and robust eco-system.

Not all of us drink deep of the Kool-"AI"d. So far it's main application appears to be give marketing something to annoy the snot out out you with.


I expect commenters on HN to substantiate their opinion rather than just be dismissive. I called it strange because I think commenters here are smart enough to dig under the layer of marketing from extremist sides (Kool-AI'd and anti-AI) and discuss technical merits and downsides.

Grug Notes is good case of applying LLMs — organizing information — which is far superior than previous algorithms (try extracting entities with regexps or previous NLP models). It also doesn't really do over-the-top BS advertising of its AI features. But no, let's dismiss it because "AI".

There's the whole thread of comments, but so far there's not a single comment (including yours!) explaining their point of view apart from "I don't like AI", "I don't like AI marketing", "I think it would be slow because I see 'AI'" or "this part of the software was not made by or is run by the same person who made the software".


Google Translate has been using LLMs for the last 6 years and nobody seems to have an issue with that. Or what about YouTube automatic captions?


I mentioned neither of those things. Nor did I make a sweeping statement that all "AI" is bad (or good).


Has it really? I find it's way worse than using ChatGPT for translation.


Like it or not, AI has a mounting number of negative connotations, especially in the tech crowd. You tell me your product has AI in it, and I envision something that takes seconds to respond, and is more than likely some janky hack on top of an OpenAI API. It's not a selling point.


"measurably better" is a strange term for a process where any two people don't even agree on what better means. Obviously different people have different ideas of what constitutes good information extraction. AI isn't a synonym for algorithm, in fact modern AI systems don't meet the criteria for that definition. There's a big difference between deterministic and probabilistic systems, and there's yet a bigger difference between generative AI systems and the former.

Reminder an algorithm is a finite sequence of mathematically rigorous instructions, which is why we can in fact meaningfully talk about the performance of timsort or quicksort. Not only is "Grug AI" not measurably better, it isn't even measurable in the first place. Not just to me, but not even to the guy who runs the website.

In a note taking system it seems quite natural that one wants precision, transparency and full control and not use a technology that by design cannot accurately distinguish what even exists in my notes in the first place and what doesn't.


*powered by a third party.

Furthermore, the original "grug developer brain" essay argued about reducing complexity. Despite the name, slapping AI on a simple note taking editor makes it very non-grug.


See my response here https://news.ycombinator.com/item?id=41280968

As for third-party: almost everything is third-party online. I agree with that if you don't want to use software using third party services (be it AWS/GCloud or OpenAI), you shouldn't use it (I don't, I keep my notes locally). But that's now what the comment said.


I'm both the main user and only developer -- so I try to do grug way first in user experience, then in development. I think I've realized that no matter what you set out to do, it gets insanely complex. But user experience is more important to keep simple than anything else imo. But you're right, everyone has their own definition of grugness.


I don't think it strange at all.

Notes are personal. I don't want my notes online at all, let alone being feed into a language model likely managed by a third party that feeds them into it.


That's a completely different argument. If you don't want your notes online, you don't use an online note-taking app whether it's with AI or not.


Words don't always retain their meaning in the wider context of society.

"It's AI" is the new "someone else does it", just like "the cloud" was yesteryear's.


No it's not. AI is pretty much synonymous with: online. No normal user is running them locally, and they are nearly always a third party to the application in which they are deployed.


The notes themselves are already online anyway.

PS In reference to running AI locally: for my own (non-online) app (Calcish) I specifically waited to introduce AI until local modals become usable, as I didn't want to just add APIs and be done with it — it happened and now the app provides a choice.

Local AI in browsers is something that's Chrome working on (https://news.ycombinator.com/item?id=40834600) — I think it can already be adapted for Grug Notes use cases.


AI - whether deployed locally or in the cloud - is a huge thing with lots of complexity and a high degree of non-determinism. That's exactly what many people don't want with their notes. Heck most just use a text file to be super safe and simple.


On the contrary, LLMs are less complex than various NLP algorithms (many of them also use machine learning models).

Same with semantic search.

I keep my notes in text files. But I understand that LLMs are better for powering the features Grug Notes provides than other algorithms, even if they are non-deterministic.


I would apply the same reasoning to NLP, or "clever search" that goes beyond simple spelling mistakes. heck most people even dislike those stupid GUIs that keep changing to "adjust to the user"


Got you. We all have different workflows and needs, indeed. Apologies for assuming you were against this particular technology for notetaking in general, although your comment could have been more detailed:

> Please don't post shallow dismissals, especially of other people's work.

https://news.ycombinator.com/newsguidelines.html


To the extent that I don't want ai modifying my notes, I agree. But when AI can help organize, tag, and make my life easier, then I'm all in. It's gotten better, but there are still cases where entities are tagged incorrectly, and you have to manually correct them. I always try to prioritize manual adjustments in the app over AI input. The goal is to reduce the effort I need to jot random info down.


This is a disingenious comment at best.

The GP was clear at what they don't want.


they were clear, but nearly every instance of that clear opinion I have considered illegitimate once i learn the rationale.

Using the following words for simplicity, not to be inflammatory;

It typically amounts to "AI stinky" or "I don't want big brother to have my data"

I consider "AI stinky" variants invalid because this is one of many software development paradigms. simply because the market is overhyped, it doesn't mean that all applications are automatically useless.

"big brother" fails to consider the incremental big-brotherness. we, when using tools like this, expose our data already. The incremental risk from an LLM provider seems small.


Closed the YouTube greg notes intro video once AI was mentioned. I'm so sick of adding AI to everything.


Good job on building and releasing this. Even if it’s not polished and has a long way to go, it’s good to push for progress. Hopefully the escapism of programming doesn’t harm your ability to enter aerospace or tech markets.

It’s unfortunate that people on here have to post the same tired complaints on every side project people share. It’s fine, you don’t need the stuff they’re asking for. They’re not your target customers and they don’t seem to understand that. Plenty of others are upvoting the submission itself, keep on keeping on.


No question here. Big fan of your canoes here in NorCal (and so is the rest of my club). Pueo was my first boat. Currently have a PueoX, and Noio. Thank you guys for sticking it out through thick and thin.


Yessah! Secret ploy to make sure everyone in tech buys kamanu is working. All kidding aside, I appreciate it.


I am getting this error on signing up. "Shucks. That's an error. Please try again, and if you continue to get this message, contact support"


Sorry, up now, but I'm still trying to figure the root cause. I've made several adjustments, but it still seems to happen even with quite a bit less traffic right now. The db server is fine, but the Cloudrun/Django side is getting connection errors. At the least, I've got some live load testing out of this and can make it a little more solid. :)


Was able to try out now. Looks cool and this time I could test it out.

Initial Feedback 1. Search is easy 2. Can start quickly on notes 3. Too many CTA's and actions in single screen - so a little confusing 4. Find/create looks same as search - whats the difference?


Awesome, thanks for going back to try, and great feedback!

1. It's been fun to implement. Always room for improvement, formatting results is up there. But surprisingly good with simple keywords and rag. There is some fun NLP in there, like filtering by date or navigating to that day if you just type a date. And doing rag only for questions.

2. Yep, high priority -- for me it's the small things like bringing focus to the text area by default, etc.

3. Absolutely. I'm into density and packing as much onto the screen as possible, so I ultimately have to click around as little as possible. But you're right; it's confusing. I occupy this weird space, being super nerdy but also wanting ridiculous simplicity, though not in a super consumer way. Wanting to stick to plain text, for example, markdown, etc, but also targeting smb and tradespeople is an odd path. My dad, of all people, had the same feedback. :)

4. Search/ask is for looking in your notes. Find/create is more like: I know this prompt/entity exists or add it. It's mostly a direct search for the 'prompt' names or entities and a shortcut to adding blocks to your day. For example, if you're having a meeting with a person or company and don't want to clutter your daily notes. Or even my changelog, I hit ctrl-k 2x, type chan, hit tab to get 'changelog', enter, and type away. It's also the only current way to find out what prompts are in your account. Still, very worth exploring if there's a clean way to get rid of find/create. I suppose there could just be an 'add block' button, and then you can pick your prompt on creation. Simpler UI, but I'm also not convinced it's entirely better. Probably worth trying, I'm sure there'll be a time I can circle back to iterate on it. Development is mostly dictated by what's most annoying at this point.

And regarding the intermittent errors during this hn post, I think it was my db max connection django setting causing issues. Reset back to the default of 0, and it's been good so far.


Are you the author of the grug brained developer?


No, that’s Carson Gross maker of htmx and actual smart legitimate developer :)


another day, another post on HN about a simple text based note taking service that is the best. one. yet.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: