Show HN: Ichinichi – One note per day, E2E encrypted, local-first

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

123 points | by katspaugh 1 day ago

28 comments

  • unsaved159 3 hours ago
    Nice idea for a diary app. "Can't edit yesterday" is off-putting for me. Such a constraint should not be something a software imposes on you, should be a person's mental policy, if they so wish. I want to have full control over my data, without arbitrary restrictions. Another thing is easy deployment. Would love to give it a shot, but I need something like that to be available on both mobile and desktop, that would mean server deployment with all the headache of managing a server and backups...

    I am using daily notes currently with Obsidian + Calendar plugin. Also E2EE, available on all devices, no problems syncing, plain-old files so I am not afraid of vendor-lock and can backup any way I want.

  • thatgurjot 1 day ago
    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!

    • fuzzy_biscuit 1 day ago
      MacOS only, I gather? That's too bad. My next machine will be Linux, and I rather like the concept of the application.
    • katspaugh 1 day ago
      Thanks so much!

      Antinote looks awesome! Love how minimalist it is and how they demo all the features on the landing page. I’m going to look into making ichinichi into a desktop app.

    • NewsaHackO 1 day ago
      If you like the open-source codebase, then why are you peddling your closed-source paid platform?
      • elxr 1 day ago
        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.

  • jcynix 1 day ago
    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.
    • katspaugh 1 day ago
      Good idea, I can do that!
      • stavros 1 day ago
        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.
        • alde 1 day ago
          Days "roll-over" when you sleep, so it should be safe to rollover notes which haven't been edited for 6 hours. That way there is no fixed rollover time.
          • stavros 1 day ago
            But then if you edit a note in the morning to add something, by night it'll be locked.
        • PufPufPuf 1 day ago
          Having the default "midnight" be something like 3AM would get you 90% there without any UI changes
        • numpad0 23 hours ago
          Many lootbox phone games do rollovers at 4AM local. Your sleep cycle would be seriously broken if you're awake 4:00 +/- 0:30
        • throwaway81523 1 day ago
          I just use a .org file, with git to retain old versions if I edit something that might be of later relevance.
  • bysiber 2 hours ago
    The read-only past is a nice touch. I kept abandoning journaling apps because I'd spend more time editing old entries than writing new ones. This removes that trap entirely.

    One thing I'd want: the ability to export everything as plain text or markdown. If the app ever goes away, I want my data.

  • tomekw 1 day ago
    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!

    • katspaugh 1 day ago
      Wow, that’s commitment right here. I only started journaling (dogfooding ichinichi) from 1st January this year. It’s nice to see an unbroken streak. Gonna check out Five Years Later!
      • tomekw 8 hours ago
        Thanks! Fingers crossed!
  • sincarne 15 hours ago
    Looks great; love the concept and the design. Reminds me in a way (conceptually) of a DOS program I used to use when I was at my desk more. It’s called Carousel, it’s one-file-per-day as well, but multiple topics which you rotate through (hence Carousel). I don’t need this kind of thing as much anymore, but I appreciate the creativity that goes into them, and knowing they’re out there.

    Carousel: https://partytimehexcellent.itch.io/carousel

  • dr_kiszonka 1 day ago
    That divider with a time stamp on the right is very cute!

    I am looking for, in a sense, the opposite of this app. I need an AI-powered IDE-like editor for markdown files. I keep a ton of research notes in markdown and when it comes to writing reports for admins and such, I need something to help me make sense of them, integrate them, reformat, do a "semantic refactoring" across files, diffs. etc. I saw people use Obsidian with some plugins, but I think I need Cursor for markdown. Any suggestions?

    • elxr 23 hours ago
      > need something to help me make sense of them, integrate them, reformat, do a "semantic refactoring" across files, diffs. etc

      I'm building this exact thing. Heavily inspired by obsidian (and the obsidian workflow where you launch claude code in your vault), but with a leaner UX, and a web-first app. Not launched yet, but I'll let you know when I do.

  • sajb 22 hours ago
    I love the idea and the implementation! However, I have a hard time remembering which day something happened, so I would constantly want to use a search function.
    • katspaugh 21 hours ago
      On my to do list! Thank you!
      • johannesrexx 4 hours ago
        Good to know. Without a search function this tool becomes more of a write-only application ;-)
      • sajb 11 hours ago
        Blogged a lot on my phone during the day, then decided to sign up for the account. Stuff synched. A little later Logged in from chrome on my computer, got a blank page for the day. Checked back on my phone, and everything gone here also.

        Did I mess up? Can I get the day back somehow? Could it happen again?

  • lxgr 1 day ago
    A website where "sign in" is featured more prominently than "sign up"? You have my attention!
  • kreicer 1 day ago
    This is a very interesting idea for a project.

    At some point I was thinking about building something similar, but more in a wiki-style format where ideas could gradually accumulate and build up layer by layer. Unfortunately I never got around to it because of work and other projects.

    Really nice to see someone exploring this space - I’m curious how the concept evolves over time.

  • ossianericson 21 hours ago
    The read-only past is the right constraint. There’s a broader principle here — immutability forces clarity. You stop optimizing the past and start writing for today. The local-first + deterministic output pattern resonates. I’ve been exploring the same instinct in a different domain: using a compiler to produce reproducible HTML from a spec, so the output is always the same regardless of when you run it. Different problem, same underlying distrust of runtime variability.
  • pabdav 1 day ago
    Love the app. Wondering if it shouldn't be a rolling 12 month calendar perhaps instead of Jan-Dec. The reason being that once you hit January after writing daily notes for a year, you won't see your existing streak of dots of the previous 12 months. Just a thought.
    • katspaugh 1 day ago
      Ah, good point. I didn’t think about that. Good solution to make it rolling! I’ll look into it closer to the end of the year to self-test how both feel.
  • redgridtactical 1 day ago
    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?

    • katspaugh 1 day ago
      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.
      • redgridtactical 1 day ago
        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?
  • thomasfrank09 1 day ago
    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.
    • elxr 1 day ago
      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.

    • katspaugh 23 hours ago
      I tried ProseMirror and Tiptap but typing in both felt slower than a vanilla contenteditable. Maybe it’s just a placebo effect. Also I’m trying out various experimental enhancements like if you type “+meditation” and press Enter, it will create a labeled section for you. Perhaps I should try CodeMirror as elxr suggested.
  • kaz-inc 1 day ago
    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.
    • elxr 1 day ago
      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.

  • jjimmy2k 23 hours ago
    This is very cool thank you,

    How about an option that when you are editing the note, on the lower part of it, it show the note taken from the same day a year ago, Or a random past note…

    I also think the home page (calendar view) can be improved, but i am not sure how, Anyway amazing app, thank you cheers

  • lukasb 1 day ago
    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.
  • ladax72707 1 day ago
    Nice idea. Well done on the implementation.

    One tiny nitpick - layout is uncomfortable. More than 1/4th of the screen width is taken by the calendar widget (and even more when there's multiple windows open side-by-side), and the editor widget/area is off-center.

    Also, showing the weather in the note itself is a cool idea. It pairs well with the journal nature of the app.

    Thanks for sharing!

    • katspaugh 1 day ago
      Thanks for the feedback!

      I can see how the month widget can be not useful in the editor view. I’ll add an option to show only the editor and to remember that choice.

  • b__d 14 hours ago
    Nice. I do that in my (iCloud) calendar. Have been doing it for 8+ years now, can recommend :)
  • sigbottle 1 day ago
    Append only logs >>> in-place writing and rewriting.

    I mean, in real life, we call this a "diary" LOL. But even the fact that a mere "diary" doesn't have the same prestiege as say, all other forms of communication, I feel like just a tiny part of it was because it was generally hard throughout human history for the majority of people to write. Like most people were not knowledge workers, typing has definitely made it easier to write, and distribution of writing is prolific.

    Obviously, there's actual benefits - compression, the concept of iterating on thoughts over and over, all of that is good.

    But some of it I feel like is undeserved. Append only logs are great :D

    • katspaugh 23 hours ago
      Thanks for this larger-scale observation! I personally always feel a bit like a Lovecraft character writing those entries. :)
  • Western0 22 hours ago
    why not using normal paper notebook? one write, local storage

    one question : why not?

    • katspaugh 15 hours ago
      Paper notebooks certainly have their place. It’s the same debate as paper books vs e-readers. I personally don’t like how my handwriting looks and also don’t want to carry more things around.
  • elxr 1 day ago
    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?

    • katspaugh 23 hours ago
      You can start using it right away without a password (it will generate a random one and use it only once to encrypt a DEK key). Once you create an account with a password, it re-encrypts your DEK and uploads it to Supabase (encrypted). Later on you only need to enter your password again if you sign out and want to sync with other devices.
  • iam_circuit 1 day ago
    [dead]
  • tonyekh 17 hours ago
    [dead]
  • useftmly 17 hours ago
    [dead]
  • myrak 1 day ago
    [dead]
  • anwar_nairi 1 day ago
    [flagged]
  • anesxvito 1 day ago
    [flagged]