Show HN: Ichinichi – One note per day, E2E encrypted, local-first
41 points by katspaugh 3 hours ago
41 points by katspaugh 3 hours ago
Look, every journaling app out there wants you to organize things into folders and tags and templates. I just wanted to write something down every day.
So I built this. One note per day. That's the whole deal.
- Can't edit yesterday. What's done is done. Keeps you from fussing over old entries instead of writing today's.
- Year view with dots showing which days you actually wrote. It's a streak chart. Works better than it should.
- No signup required. Opens right up, stores everything locally in your browser. Optional cloud sync if you want it
- E2E encrypted with AES-GCM, zero-knowledge, the whole nine yards.
Tech-wise: React, TypeScript, Vite, Zustand, IndexedDB. Supabase for optional sync. Deployed on Cloudflare. PWA-capable.
The name means "one day" in Japanese (いちにち).
The read-only past turned out to be the thing that actually made me stick with it. Can't waste time perfecting yesterday if yesterday won't let you in.
Live at https://ichinichi.app | Source: https://github.com/katspaugh/ichinichi
A website where "sign in" is featured more prominently than "sign up"? You have my attention! For this purpose I wrote an app called Five Years Back: I can write one entry daily, but I can see what I wrote on this day for the past 5 years. My writing streak is… 1399 days as of today. Only me is using the app. Good job and good luck! Nice, and I like the idea that the past is fixed, but ... is there a way to define the point of rollover to the next day? My "days" sometimes end at 0:50 for example and not at 23:59. So I might summarize the day a bit after midnight. Good idea, I can do that! If you want to avoid too much choice, but still want the "the past is immutable" feel, you can prevent editing after noon next day or similar. I just use a .org file, with git to retain old versions if I edit something that might be of later relevance. Love it! The name, the design, the concept, the open source codebase, everything! It’s less like a note taking app and more like a diary writing app. I think that’s very neat and has its own niche. Love the local-first, browser-based nature of it. If you ever consider making a native app for it, consider looking at antinote (https://antinote.io/). Been using it for over a year. It’s the only notes app that I haven’t uninstalled or forgotten about. I think the simplicity of it is what draws me to it. I feel it aligns with your philosophy for this app! Thanks for sharing Ichinichi with the world! If you like the open-source codebase, then why are you peddling your closed-source paid platform? You're allowed to like both. Antinote is very unique, and devs should be allowed to charge for their work if it's a quality app with a really polished UX. Also, its not theirs. I really like the idea, and I've actually built something similar. Please format the writing in the post sound less gpt-esque; I believe in the tool you're making and I believe it will improve marketing to people that share my aversion to that writing style. The entire docs is gpt/claude-esque. It's gonna take a significant amount of work rewriting it all, all for a free tool. I think it fits fine with the type of app this is. Sure some people might be slightly put off, and there is a bit of fluff sprinkled in everywhere, but I think it's fine. Very cool! Also have a daily journaling app, hoping the space grows. I've gotten far more value out of journaling than I have out of note-taking. The read-only past is a really smart design choice. I build local-first apps and it's always tempting to add edit-everything flexibility, but constraints like this are what keep a tool focused and actually useful. How does the Supabase sync work with the E2E encryption? Client-side encrypt before anything leaves the browser? Thanks!
Exactly, client encrypts before syncing. Decryption keys are wrapped/encrypted with your password. If you change the password, only the decryption keys are re-encrypted, not your notes. Smart approach with the key wrapping. Re-encrypting every note on a password change would be brutal at scale. Do you have a recovery path if someone forgets their password, or is it truly zero-knowledge where the data is just gone? Very cool! I'm curious as to why you removed ProseMirror after trying it out. I've been building my own writing app for a different purpose over the last month and have been pretty happy with PM, but I'd be curious to know what you're using instead. As someone else building a notes app, I went with CodeMirror because I enjoy the feature-set of the obsidian editor (which is CodeMirror), and I'm trying to emulate the features on that that I use the most, in addition to some more "experimental" features I'm currently playing with. Personally, I really don't enjoy WYSIWIG editors when writing notes. It's just unnecessarily different compared to what I'm used to. Though I can see non-devs enjoying it more. How does the E2E work in terms of user flow? I assume a you need a password? Do you need to enter the password every time you open this?
lxgr - 9 minutes ago
tomekw - 26 minutes ago
jcynix - 2 hours ago
katspaugh - 2 hours ago
stavros - an hour ago
throwaway81523 - 8 minutes ago
thatgurjot - an hour ago
NewsaHackO - an hour ago
elxr - an hour ago
kaz-inc - an hour ago
elxr - an hour ago
lukasb - 30 minutes ago
redgridtactical - 2 hours ago
katspaugh - 2 hours ago
redgridtactical - 31 minutes ago
thomasfrank09 - an hour ago
elxr - an hour ago
elxr - 2 hours ago