Changelog
features
- Start work to deprecating dnd-kit and have our own lighter internal drag and drop engine
- Keep the engine generic enough to allow it to be used for pinned items/checklists/sidebar
- Migrate the entirety of Kanban to use said engine
- Kanban drag and drop now also works on mobile!
- Update styling of Kanban item modal to look a bit less chaotic
- Update Kanban item modal to grow full width/height so there's more space to work with
- Add Start Date to tasks so calendar view allows tasks to expand from start to end date (bit like google calendar)
- Improve neural network on the settings page, from a hardcoded vector style link system to a full blown obsidian-like view of the nodes, it also uses tags now for linking (you can disable the checkbox if needed). I figured I'd push it, I worked on it a while ago and for the life of me I don't know why I didn't just go for it, it's hidden in the settings, doesn't touch anything else and I feel like it's a nice feature to have, so even if it's a bit buggy we can fix forward ❤️
- Add "Archive All" option to Kanban columns that have autocomplete enabled - Thank you @reniko
- Add consistent scrollbar across all browser/OS - Thank you @reniko
- Add remember me toggle to login page #516
bugfixes
- Fix re-ordering children items in checklists (it was quite clunky) - Thank you @reniko
- Fix potential issue around session write on slower disk read #522
- Add shared checklists to api endpoint #521
- Fix issue where not enough items were showing in the
@bidirectional linking #529 - Mermaid sankey changed key in the latest upgrade when mermaid was bumped to
10.x#528 - Fix missing "save before leaving the page" modal in some places and automatically save excalidraw on modal close #519
- Add Kanban status actions to card detail and overflow menu - Thank you @reniko
- Finally officially fix the body size limit pain, this means the patch for it has also been removed. Make sure to update the hardcoded limit in settings -> app preferences -> upload limit of course. - Thank you @dmca-glasgow !
security
- As always kept on top of all the third party dependency advisories, man you can tell
Fable 5was released, there was a huge spike in CVE in a lot of my project third party deps lol
new endpoints
A community member decided to make an android client for Jotty.
It's very much under development and needs polishing but the author seems quite dedicated and I kept an eye on development.
They needed some endpoints for it to work better, so what better moment than this to give them a shoutout!
Check it out here if you are interested, I am not involved in the development, I can't vouch for it, but for what I've seen so far the author (@Darknetzz) is pretty dedicated! Link here: https://github.com/Darknetzz/jotty-android
New endpoints curl exmaples
# Search notes and checklists
curl -H "x-api-key: YOUR_API_KEY" "https://your-jotty.com/api/search?q=hello"
# Search filtered to notes only
curl -H "x-api-key: YOUR_API_KEY" "https://your-jotty.com/api/search?q=hello&type=note"
# Search filtered to checklists only
curl -H "x-api-key: YOUR_API_KEY" "https://your-jotty.com/api/search?q=hello&type=checklist"
# Update a checklist item text (PATCH)
curl -X PATCH \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Updated item text"}' \
"https://your-jotty.com/api/checklists/LIST_UUID/items/0"
# Update a nested checklist item (dot-notation index)
curl -X PATCH \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Updated nested item", "description": "some notes"}' \
"https://your-jotty.com/api/checklists/LIST_UUID/items/0.1"
# Reorder items - move item before another
curl -X PUT \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"activeItemId": "ITEM_ID_TO_MOVE", "overItemId": "TARGET_ITEM_ID", "position": "before"}' \
"https://your-jotty.com/api/checklists/LIST_UUID/items/reorder"
# Reorder items - move item after another
curl -X PUT \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"activeItemId": "ITEM_ID_TO_MOVE", "overItemId": "TARGET_ITEM_ID", "position": "after"}' \
"https://your-jotty.com/api/checklists/LIST_UUID/items/reorder"
# Reorder items - nest item as child of another
curl -X PUT \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"activeItemId": "ITEM_ID_TO_MOVE", "overItemId": "PARENT_ITEM_ID", "isDropInto": true}' \
"https://your-jotty.com/api/checklists/LIST_UUID/items/reorder"
# Get all checklists with expanded item fields
curl -H "x-api-key: YOUR_API_KEY" \
"https://your-jotty.com/api/checklists"
# Get all task/Kanban boards with expanded item fields
curl -H "x-api-key: YOUR_API_KEY" \
"https://your-jotty.com/api/tasks"
# Get one task/Kanban board with expanded item fields
curl -H "x-api-key: YOUR_API_KEY" \
"https://your-jotty.com/api/tasks/TASK_UUID"
# Get one task/Kanban item
curl -H "x-api-key: YOUR_API_KEY" \
"https://your-jotty.com/api/tasks/TASK_UUID/items/0"
# Get one nested task/Kanban item (dot-notation index)
curl -H "x-api-key: YOUR_API_KEY" \
"https://your-jotty.com/api/tasks/TASK_UUID/items/0.1"
# Update checklist/Kanban item rich fields
curl -X PATCH \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"description": "Additional notes", "priority": "high", "score": 5, "startDate": "2026-06-10", "targetDate": "2026-06-15", "estimatedTime": 2.5}' \
"https://your-jotty.com/api/checklists/LIST_UUID/items/0"
# Update checklist/Kanban item text and notes
curl -X PATCH \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Updated item text", "description": "Updated notes"}' \
"https://your-jotty.com/api/checklists/LIST_UUID/items/0"
# Update nested checklist/Kanban item rich fields (dot-notation index)
curl -X PATCH \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"priority": "critical", "score": 8, "startDate": "2026-06-13", "targetDate": "2026-06-20"}' \
"https://your-jotty.com/api/checklists/LIST_UUID/items/0.1"
# Clear optional checklist/Kanban item fields
curl -X PATCH \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"description": null, "priority": null, "score": null, "startDate": null, "targetDate": null, "estimatedTime": null}' \
"https://your-jotty.com/api/checklists/LIST_UUID/items/0"