Skip to content

Conversation

@fccview
Copy link
Owner

@fccview fccview commented Jan 29, 2026

Changelog

This release will upgrade Jotty from next 14 to the latest 16.
I had to do this due to some concerning security issues that happened in React, Vercel fixed them from Next 15 and above but didn't apply a fix to Next 14, it was about time (I was dreading this lol)

This however means we now use an entirely different system for the PWA, which means... WE HAVE OFFLINE CACHING, in read mode only, for now, but this means if you visit a page on your pwa, it'll stay cached for 30 days. So if you go offline you'll be able to still visit any note/checklist you previously visited.

bugfixes

features

minor features

  • Add ruler to markdown editor to set one or multiple visual breaking points to keep your line size in check [FEATURE]: Visual Guides (configurable) in Markdown editor mode #311
  • Make sure markdown editor settings persist in your session across multiple notes (e.g. ruler disappear from any notes if you disable it)
  • Public URLs will now use uuid rather than category/name, this keeps the sharing link safer to use. Old public links will continue work just fine, but newly shared notes will follow this new pattern
  • Change order of new list items, they'll now show up on top of the todo list, it makes way more sense. Let me know if this is an issue for you and I'll consider making it a setting :) [FEATURE]: When adding item to checklist, make it show at the top instead of the bottom #392
  • Add swipe gestures to notes on mobile, you can now swipe between notes as long as the editor is not active, this means you can navigate to previous/next note by swiping. Notes order is defined by sidebar order. You can find a video here Feature Request: Gesture-Based Sequential Navigation Between Notes #388
  • Using the same gesture from the above, I have also updated the sidebar open/close gesture on mobile and it should feel more fluid and native app/like.

major features

  • Read only offline cache for the PWA. This means when visiting any page within Jotty it'll get cached and you'll be able to re-visit it without your internet active, cache lasts 30 days. When you are offline you'll see a nice red dot on the logo to tell you there's no internet connection. Offline mode #281 [FEATURE]: Offline mode? #390
  • LIVE UPDATES on pretty much everything aside from the editor. If something changes on one screen, you'll see the change happening live on the other (give it a second, give or take). This will make working on shared checklists a breeze and if you are looking at a note and somebody changes it, you'll see that change in real time. Editor MAY or MAY NOT be coming, I can't promise, it's A TON of work, that's google level shit and I'm one dude, so we'll see lol
    • There's a nice little dot on the logo to show that the websocket is active and you will see live updates, while I think it's quite handy it can also be hidden from settings -> user prererences -> hide connection indicator from logo.

optimisations

I have spent quite a bit of time refactoring things, it now shouldn't matter if you have 10 or 1000 files in your system, the speed difference should be laughable.

  • Keep only 12 notes/checklist in store rather than your full catalog for the most recent notes, clicking on categories now fetches notes from the server side in chunks only if they are within that category (recursive search is not yet implemented, sorry)
  • Search by uuid using grep instead of cross matching all notes metadata, this is almost instantaneous, should make a HUGE improvement in performance, especially if you have a lot of notes/checklists
  • Sidebar only uses metadata rather than full note content, using sed to only fetch the yaml from the markdown files frontmatter
Been testing locally with 500 markdown files image

security

  • @isaacs/brace-expansion has Uncontrolled Resource Consumption - High
  • Next.js HTTP request deserialization can lead to DoS when using insecure React Server Components - High
  • Next.js self-hosted applications vulnerable to DoS via Image Optimizer remotePatterns configuration - Moderate

small note on offline caching

I know we all want offline write operation, I truly want to make it happen but due to the nature of Jotty and the lack of database making it happen is a whole different beast, I wish I had done this from the get go but I would NEVER thought my little app would grow to this extent.

Here's a breakdown of what Jotty would need to make this happen:

  • An IndexDB queue to store pending mutations (note edits, checklist toggles, etc.)
  • Intercepting every server action to write in the local indexDB first
  • A background Sync action to replay queued operation when back online (e.g. you go back online the indexDB queue starts happening and it syncs with the server)
  • Conflict resolution (this WILL be a huge pain) if the same item was edited on another device while offline
  • An innumerable amount to UI changes to make sure users are aware of all that's going on in the background or it'll be a mess

Feel free to fork and help out with it, and let's see if we can all make it happen together

@fccview fccview changed the title 1.19.2 1.20.0 Feb 5, 2026
@fccview fccview merged commit 47267d7 into main Feb 12, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant