Live data from Hacker News

Show HN: Desktop app displaying files on a 2D canvas

limandoc.com

1–10 of 28 posts

Show HN: Desktop app displaying files on a 2D canvas

#1
Hey all! I always wanted to arrange my text/markdown/pdf files on a 2D canvas and visualize them without opening all the windows. An extra feature I added is also visualizing folders within - so kind of a 3D visualization? It was also important to be an offline desktop app, rather than online tool like Miro or Mural, because once I edit files in Sublime or AdobePDF then I want changes to sync in the canvas right away.

Some technical points and lessons learned: being Android developer helped a lot with this project since I used Kotlin Multiplatform with Compose Desktop renderer (actually skiko). It runs on JVM under the hood, which was exciting at first since I can use the app on all of my Mac/Windows/Linux machines. Right? Wrong. One lesson I learned wasn’t “write once - run everywhere”, it was “write once - test everywhere; repeat”. On the other hand, using Kotlin Multiplatform will allow me easily to port to Android and port the logic to iOS.

Anyways, I released LimanDoc v1.0.3, still in Proof-Of-Concept, so I hope to get some feedback and features you think would be helpful.

I was thinking these features would be great for future releases: - adding a local LLM support to search/summarize your docs, books, videos, etc; - sync on local network (including future mobile apps) - Templates, groups, and better diagram integration like in Drawio.

Show HN: Desktop app displaying files on a 2D canvas
limandoc.com

Re: Show HN: Desktop app displaying files on a 2D canvas

#3
post #2

Really cool! This would be a nice integration with Obsidian if you had an open / textual format (and possibly open-source it!)

Thanks! The text is not stored in a database, rather I just render the markdown files you have on the canvas. Technically, it is also possible to put your whole Obsidian vault into LimanDoc's vault, and all the files from Obsidian will appear in the canvas :)

Re: Show HN: Desktop app displaying files on a 2D canvas

#4
That's really cool! I am working on a diagramming editor and I wondered if I could expand the use cases to include knowledge organization. The challenge is mainly to display a lot of data on a canvas and don't kill the CPU/GPU in the process. How do you handle displaying that much information at once?

Re: Show HN: Desktop app displaying files on a 2D canvas

#5
post #3
post #2

Really cool! This would be a nice integration with Obsidian if you had an open / textual format (and possibly open-source it!)

Thanks! The text is not stored in a database, rather I just render the markdown files you have on the canvas. Technically, it is also possible to put your whole Obsidian vault into LimanDoc's vault, and all the files from Obsidian will appear in the canvas :)

I was thinking more of the reverse, for instance you can include an Excalidraw render inside obsidian, which is nice for mockups, etc

Perhaps you could do the same with your app?

Re: Show HN: Desktop app displaying files on a 2D canvas

#8
Gave it a try on macOS.

My first impression is that it breaks expectations for common operations:

1. Two-finger sideways panning does not work, it zooms erratically; 2. Click and drag pans instead of drawing a selection box; 3. Shift + Click or Cmd + Click does not add item to selection; 4. Two-finger vertical swiping does not zoom when hovering an item; 5. The zoom disregards mouse coordinates, always anchors from the center of viewport;

Still not sure how to select multiple items. I'd recommend you get the fundamentals of navigation/edition right, otherwise it's unworkable. Even for a POC. I can't even explore the scope of built features with excitement because these issues make it super frustrating, makes me wanna give up immediatelly.

Misc:

6. I expected snap to grid; looking for the option but there's no app menu; 7. Adding icons successively stacks them on top of eachother, which is adds repositioning overhead; 8. Very easy to wrongfuly scale small items while attempting to move them; 9. I'm seeing at least 250ms of lag for openning sidebars and getting visual focus feedback;

This last one is tough feedback, please don't take it personally. I want to join the waitlist for notifications of more mature versions. But since you shipped publicly too early, it makes me question if it's worth and the team behind it can actually deliver up to my expectations. In other words, I feel like it jumped the gun. Bad first impresssion for a technical audience.

The bar for minimal UX polish nowadays is very high, all the fundamentals have to be solid, I would gladly trade a thousand features for these solid fundamentals. That's my expectation of a POC: low on features, high on polish.

If it's any conforting, consider that the only reason I bothered to test it and write this feedback (in a rest day with very acute right hand tendinitis) is because I think it's a very cool project idea.

Re: Show HN: Desktop app displaying files on a 2D canvas

#9
post #4

That's really cool! I am working on a diagramming editor and I wondered if I could expand the use cases to include knowledge organization. The challenge is mainly to display a lot of data on a canvas and don't kill the CPU/GPU in the process. How do you handle displaying that much information at once?

It is indeed hard to optimize it; I haven't fully utilized the potential myself. For now I have an object pool which allows me to create only one instance of a canvas element. Kotlin also allows me to use coroutines easily, also (potentially) have access to GPU/CPU since this is a desktop app.

Another thing I tried (still in backlog) is dynamic quality reducer for images and PDFs - sort of like a game engine rendering where zooming out will reduce quality of images. What are you writing your app on? Electron?

Re: Show HN: Desktop app displaying files on a 2D canvas

#10
post #5
post #3

Earlier quoted context omitted.

Thanks! The text is not stored in a database, rather I just render the markdown files you have on the canvas. Technically, it is also possible to put your whole Obsidian vault into LimanDoc's vault, and all the files from Obsidian will appear in the canvas :)

I was thinking more of the reverse, for instance you can include an Excalidraw render inside obsidian, which is nice for mockups, etc Perhaps you could do the same with your app?

Ah I see now, I will check it out! In near future I will also add a support to render whole web-pages instead, e.g. adding youtube video, blog post, etc. Perhaps adding an excalidraw link there and drawing right within LimanDoc would work... Will keep an eye!
Post reply on HN