Hacker News new | past | comments | ask | show | jobs | submit login
Treesheets: cross-platform, free-form data organizer app (strlen.com)
359 points by open-source-ux on June 24, 2021 | hide | past | favorite | 90 comments



I like the part where you can do calculations like in classic spread sheet apps, but visualize what your are doing, instead of hiding it behind formula fields. (see this screenshot: http://strlen.com/treesheets/docs/images/screenshots/screens...)

But functionality and especially usability of this application is quite limited. It feels more like a proof of concept, than an application for daily use.


My understanding is it's written pretty much only for his own needs, so I'd imagine usability is fine for him.

He's on here (username strlen) but doesn't comment much - maybe he'll chicken me in.


(author of treesheets here) not sure who username strlen is, but it's not me :)

But yes, TreeSheets was initially designed just to be perfect for my needs. It has existed since 2008 though, so it has plenty of general usability tweaks for others since.

The computational sub-language is indeed very weak. It can at least do `sum` though, which is 99% of my uses of spreadsheets :)


Huh, I was sure it was you for some reason. Sorry for the confusion.

I was a customer of Amiga E back in the day, and keep occasionally checking your site, maybe that's how I got it into my head. [And Aardappel the language has fascinated me ever since I saw it on your site]


Thanks! I presume you've seen Lobster? http://strlen.com/lobster/


Yes, it's very interesting.


Argh. This will teach me not to write comments on my phone. "Chicken me in" is of course meant to be "chime in".


I prefer "chicken me in" and it should be a thing.

So chicken me in on something, what is it, exactly, that you'd say you do around here?...


I'm going to chicken me in here to tell you to go duck yourself.


Well, chicken me out!!


Seconded. Not sure why it works so well, but it does.


It feels like something from British or Australian English. Chicken me in and put another shrimp on the barbie.


I always thought, this tool is best if used regularly, optimally daily. So you mentally stay inside the required workflow thinking and keep the shortcut memory fresh. Also to mention, it has a very good startup tutorial, which is good for first-time users, but also useful if you need a refresher on a certain topic.

But I never thought that "easy to get into" was a priority during development. Which is totally ok for me,


It's an app that has been worked on on/off for 13 years, so certainly not intended be "proof of concept".. but yeah, it's a 1 person OSS side project, not a commercial app with UX designers on staff.

If you have specific ideas about what is so limiting, please file a github issue.


I liked the way how you can do calculations. But there are not a lot of functions available. Excel has hundreds of functions. I wasn’t even able to calculate an average (sum I could do). Or something like pivot tables.

I totally understand it’s just a one man project, but I would really like to see some of those amazing concepts in a commercial application at the scale of Excel. That’s why I called it a proof of concept.


> It feels more like a proof of concept, than an application for daily use.

Speaking personally, I used TreeSheets daily for years (thanks 'Aardappel!) to write and manage my lecture notes, to-do items, daily routine, calendar, shipment tracking, and other life things. I found it a very capable tool with a constrained but thoughtful feature set and particularly excellent keyboard-driven navigation. I only moved away (to org-mode/Orgzly) for mobile support.


Reminds me vaguely about another piece of open source software that I tried a few years ago; the Leo Editor.

An Outliner, Editor, IDE and PIM written in Python. Cross-platform too.

https://leoeditor.com/ the homepage of the program, with screenshots.

https://github.com/leo-editor/leo-editor

There's a Wikipedia article about it too even.

https://en.wikipedia.org/wiki/Leo_(text_editor)

Leo means Leonine Editor with Outlines.


One of the best things about Leo was the tree-view outline where nodes could be 'cloned', giving multiple ways to drill down to the same info.

Typically my Leo file would be organised both by project and topic, and at the top cloned nodes of my current priorities.


Trillium Notes is another one that allows for the same node to be available in multiple branches. It's pretty good - but the focus on rich-text content primarily became frustrating for me and got in my way and I started looking at other options. I then found exporting/migrating my data with those concepts was challenging, since it ends up being proprietary with no easy export option - at least no easy export that then cleanly works in other products.

The markdown world has some contenders with embeddable links that allow you to include notes from multiple locations (like an iframe, basically) - Obsidian.md being one such example.


WAAAY back in the 1980s/early 90s there was a file manager called "pathminder" or PMV...

It was THE best file manager ever. I could browse my entire hard drive from memory alone via WASD type input and I would know exactly where I was just from memory and key presses...

If you ever played the game "The Bards Tale" there was a version, maybe 3 or such, where you could recall exactly the steps taken to get to a specific dungeon and could type that out very fast and get there via just recalling the steps it took to get there....

PMV was like that.... you knew that [Directory] was a series of steps in PMV which you could quickly type out.



Some past related threads:

TreeSheets: Free Form Data Organizer - https://news.ycombinator.com/item?id=15057392 - Aug 2017 (58 comments)

TreeSheets: Free-Form Data Organizer - https://news.ycombinator.com/item?id=11247372 - March 2016 (28 comments)

TreeSheets – Open Source Free Form Data Organizer - https://news.ycombinator.com/item?id=10052484 - Aug 2015 (1 comment)

Treesheets finally became open source - https://news.ycombinator.com/item?id=5877145 - June 2013 (4 comments)

TreeSheets, a programmable spreadsheet/mindmap/PIM crossover - https://news.ycombinator.com/item?id=3394418 - Dec 2011 (3 comments)


I found this application back in 2010. I was searching for a mind mapper at the time.

It allows pretty high complexity but is so simple to use. It has a very short learning curve. You can be doing meaningful work with it in a matter of minutes. It has features of a spreadsheet that allow you to store related info and do math on fields but is so much more useful because you can do the math at one level and use layers below to completely document why and how you did it that way, where the values come from etc. even linking to local references for inputs, outputs, logs, etc.

I have used it in data processing to thoroughly document data input and output creation; for detailed vacation itineraries; as a password manager; for genealogy research; address and contact management for personal and business contacts, etc. There are so many things that can be managed using Treesheets.



For comparison, another tree-based note-taking option:

https://gingkowriter.com/

Intro video: https://www.youtube.com/watch?v=egCKZHsICm8

Source code: https://github.com/gingko/client


Thanks for mentioning gingkowriter. Youtube video is worth a watch. I will evaluate this a replacement of mindmaps at early conceptual stages in a SW project. Gingko's ability to have rich text nodes, export to plain text/word/JSON will allow me to stay in the outline mode for longer before I commit to sequential documents.


This project deserves huge credit for the excellent tutorial that it opens up to on first launch. It basically opens to an example sheet that you can read and then try out all the basic functionality in place. It's fun, and quickly shows you what the tool is capable of. You don't need to watch a separate video, and you don't feel overly "controlled" like so many over-engineered tutorials that force you to do A,B,C in the order someone decided was correct.

I think this is a great approach. Many people want to "just try it" and this allows you to do that and also get an explanation at the same time.


This is the most original app among note-taking apps, very different from all the other. I suggest more people taking a look, perhaps this one is what you are going to enjoy.


Looks very neat, agreed.

Re: originality though, this is extremely close to a visual representation of org-mode.


Like org-mode and MS Access had a baby, I thought.

But it really does look amazing.


But have you ever seen such a representation? I believe I've seen no app implementing this kind of view for anything.


I can't find a really important detail on the website or github - and haven't been able to easily find it - how is the underlying data stored?

It looks like it might be a custom format, which might make sense for the project, but is unfortunate for a broader accessible knowledge-base and programmable integration - plain text allows you "grep", sqlite allows you SQL.

The discussion of this being an org-mode mindset kind of GUI definitely appeals to me. The arbitrary hierarchy of data/knowledge in org-mode works really well for me. I tried a bunch of note-taking apps until org-mode, and it was the second one that just "worked" for me (Trilium Notes and Obsidian were the previous best options for different reasons).

But... I'm an Emacs convert just for the purposes of org-mode, and I'm finding a lot of Emacs specific quirks and issues that I don't really want to spend time fixing - but customizing until the quirks are your own preferred quirks seems to be the entire culture of Emacs.


Yes, it is a custom binary format, for speed and compactness. It does however export to many formats, xml, html, text, csv etc. There's even an example JSON exporter for the scripting language. More could be added.

There's not really a standard tree file format that would allow storage that can interop with other formats. Yes, there's of course JSON and XML, but you'd end up with a file with so many custom fields it is not interoperable. And these formats are extremely inefficient compared to the current binary format.

The binary format is also able to store images inline.


The data is stored in a custom binary file format. Parts of the format are zlib deflated. There is documentation for the format, but it is wrong and outdated. I had to reverse engineer the format from the C++ code.


I am not aware that it is outdated. If you found inaccuracies, please open an issue, or better a yet a PR for the file https://github.com/aardappel/treesheets/blob/master/TS/docs/...


By the way! Thanks for Treesheets I love how naturally it helps you when thinking through a topic. I built a Python treesheets cts file to HTML converter so I could quickly see my treesheets along side other notes in my notebooks.

Issue created: https://github.com/aardappel/treesheets/issues/185

My (partial) parser in Python: https://gist.github.com/quag/e219f69670cd395d4a59a392557df28...

If people would like the current format documented and simple test files to parse please let me know. It’s a 1-2 day task to get it to the point were I wouldn’t have had to read the code to write a parser.


Thanks!


I’m honestly not sure how I would even start to try to cram this into SQLite in a way that wasn’t awful.


You don't have a donations link anymore.. I guess since it only added up to like $2000 over many years? And then I am also guessing that sometimes people might donate $100 and then kind of expect you to code a new feature for them?

Anyway, it's your business but I just wanted to encourage you to research that stuff again. Patreon, and a bunch of startups and other projects (I think there is something in GitHub and maybe even one or more cryptocurrency ones) could possibly change the donations situation somewhat. Possibly.

But thank you for making it free and coming in here. Personally I find it inspiring to see such an interesting and useful project made by an individual.

By the way, I see the scripting is in a language you created called Lobster http://strlen.com/lobster/

How do you use a script in TreeSheets? Is that documented somewhere?


Yes, 2K over 10 years, for 15$ a month. Not worth keeping that going, given the expectations.. $100 for a feature does not make sense for me.

I am on GitHub Sponsors (https://github.com/aardappel) but really only use that if you feel very strongly about it, since it is never going to compete with my day job. Getting people on patreon etc also requires a lot of "marketing" I don't have time for.

There's not a ton of examples of the scripting functionality yet, but here's one: https://github.com/aardappel/treesheets/blob/master/TS/scrip... and the reference (view file locally, sorry): https://github.com/aardappel/treesheets/blob/master/TS/docs/... Beyond that you'd need to check out the language site to learn more on how to use it :)


Yes! Cross-platform without Electron ;-)


something i wish we had more of


Another tool in the space that almost no one seems to know: https://tibleiz.net/code-browser/


This reminds me quite a lot of the typical smalltalk editor window.


I've followed this on and off for years, and I've always pined for a mobile version - to the extent I seriously considered learning mobile development in order to write my own!


TreeSheets is written with wxWidgets, which sadly has very disfunctional or even missing mobile ports. Likely you'd want to redo the whole UI anyway for this to function on a phone screen.

Then there's the matter of file storage.. it would need to hook up to some kind of cloud account etc.

In all, the amount of effort to bring this to mobile might possibly be the same as writing it from scratch.

Though.. PRs welcome! :)


Author of TreeSheets here, AMA.


I see an interesting spreadsheet that is actually a directed graph of some kind. Are there cell addresses hidden somewhere? Can this be used as a spreadsheet?


It's not a DAG though, it is purely a tree (no shared children). There are no cell addresses.

You can kinda sorta use it as a spreadsheet, but it is pretty limited currently, see example here http://strlen.com/treesheets/docs/images/screenshots/screens... or also in the tutorial.


Looking through the source I see that a cell can contain a grid, which is a collection of cells, and those can nest.

I see why you don't want to worry about addressing cells, it would kill a lot of the utility of the program.

What are the tradeoffs in your mind?


I guess I always found the way traditional spreadsheets address cells very clumsy, especially with hidden formulas, and I enjoy inventing new ways of programming :) I can't claim this is better yet, since I haven't used it that much. I like the visible formulas as a programmer, but I could imagine others don't.


Wondering if there's a chance that you might have a Windows 32-bit version available somewhere for my ancient Vista machine. Or can the CI create one somehow? Beautiful program, thank you for creating this, and thank you for Sauerbraten!


I'm sorry, I removed support for 32-bit a while ago. While the code could probably be made to run on 32-bit still without too much trouble, it be quite a bit of work to reintroduce it.


I understand, it's the way of things. Do you perhaps have an archive of older releases?


I haven't.. though if you have visual studio installed, you should be able to check out commit 7b30199cbef49dbdb6f7b10f0fecea3c008e76ec from 2019 which is the last commit before I changed things over to 64-bit.

Note that also requires compiling wxWidgets according to the README.md in that commit, which is incompatible with my current install, otherwise I would have done it for you.


Actually I was able to find an old version via the Internet archive:

https://web.archive.org/web/20210624160236/http://strlen.com...

I took a stab and got a version from July 2011 going, then worked forward and ended up with a version from August 2 2019, which may be the version you're mentioning.

I appreciate that you would have compiled it for me! I would like to give it a shot myself some day.


Does the CI build Windows binaries? I could not find them at https://github.com/aardappel/treesheets/actions


Yup, even with or without installer, see last run here: https://github.com/aardappel/treesheets/actions/runs/9514897...


This is probably a stupid question, but how do you create the "trees" like you see in the screenshots? I can easily create hierarchical grids, which is great, but I can't figure out how to make a mind-map type graph.


Nevermind, I get it, you just change the rendering method. Very cool, I love that you can change the visualization method without changing the data structure!


Looks like it would be very very cool with some attention to the UX and regular updates.


It's one of my 10 or so side projects. Sadly while TreeSheets is pretty popular with users, it doesn't attract a lot of programmers to contribute (probably my ancient looking code!).. more of them would help.


What is the technical foundation - language, libraries etc?


C++ and wxWidgets


Heavy http://zim-wiki.org user here, but I do recall trying this out at some point and I can see a few use cases. Before I go digging, I seem to be seeing different opinions on how good of a "spreadsheet" type tool it is.

Specifically (right now), I'm curious as to what kind of math it's capable of? Right now I'm playing around with some cryptocurrency and I'm looking to play around with some custom views of prices and such, and I'm not quite sure how I want it to look; does this seem like a possible place to check it out?


I wouldn't expect to do anything much more complicated than http://strlen.com/treesheets/docs/images/screenshots/screens...

The tutorial has a live example, and also lists the implemented operators.

If you want to do complicated formulas, you're almost certainly better off with a traditional spreadsheet. Or create a PR to extend it with operations you need :)


"It's like an outliner, but in more than one dimension."

That's what makes mind maps so good (along with the hierarchy).


I actually wrote TreeSheets after I became a heavy user of mindmaps, and found the information density and organizational abilities to be very lacking. As well as rendering/editing speed for larger maps (in freemind).

Mindmaps look very 2D, but essentially its just a left and a right tree, with no other horizontal organizational methods. TreeSheets truely lets you create any 2D hierarchy you can dream of.


I'd forgotten all about this and used it for something once but I can't remember what now, but I liked it.


I've used this a little bit at work (as as software engineer), and I've at times found it really helpful. I think it depends on how you work through problems/information. It's also depended on what exactly I was working on to whether it was useful.

A modern, extensible version of this would be amazing.


It's become a little more extensible recently with the addition of a scripting language.

But yeah, PRs welcome!


Oh that's good to know! Thank you.


Not sure I want to download an EXE from a non-SSL site...


The bottom download link points you to GitHub, where you can get exes straight from CI, if you trust that more.

I've looked into getting https from my site, but there's always a high cost associated, if you want a certificate that's widely accepted (which doesn't seem to hold for the free ones). And I think my host isn't even compatible with free ones.

If the web wants HTTPS everywhere, this somehow needs to be made simpler/cheaper for non-commercial entities.


You must have looked into LetsEncrypt. I’m not aware that there is any serious problem with acceptance of their certificates, is there?


Looks like there isn't since 2018.. somehow last time I looked into it there still was. Now I only have to change hosts..


If you are able to put a Caddy webserver in front of your website, it's quite easy using its automatic ssl feature[0]

[0]https://caddyserver.com/docs/automatic-https


> If the web wants HTTPS everywhere, this somehow needs to be made simpler/cheaper for non-commercial entities.

Cheaper as in free? https://certbot.eff.org/about/


Looks like I still would need to change hosts to use that.


You just need access to your web server configuration, which usually means root access to the hosting machine.


The current host is 1and1.. I don't think they support that, since they desperately are trying to sell you their own certificates. Also is shown on the certbot site with a big red cross :) Either way, probably a good reason to finally switch hosts.


To some extent this is similar to my Orgmode setup.

(has deadlines, agenda for calendar-like features, headers/chapters...)

The big advantage is that Orgmode is just text, meaning I can make small tweaks via mobile without opening any special software.


Programmers love the complexity of trees.


If a tree maps nicely to your way of thinking about the problem-space you are in, then it is not complex (at least not more so than other structures). Right tool for the right user for the right job.


if you want complexity, you really want hypergraphs. ;)


For me, nowadays, cross-platform should be runs-in-the-browser, use anywhere. Hence the success of Google Workspace.


This is an app I started in 2008, and at the time getting the speed of native was important to me. I work with very large "sheets"

I also wanted to get to something which could be useable for me as quickly as possible, which at the time for me meant a native app. I also wanted local file storage etc.

Agreed that in 2021 you could probably make this work as a webapp, though I think it would still be a challenging engineering exercise to make it fast.


No mention of XMind yet. So here it is: https://www.xmind.net/


XMind is no longer open source. another option is kitty and the accompanying vscode extension.


Would you mind sharing a link? I can't anything besides kittens on trees, kitten VSCode themes, and kittens for the terminal.

Also, XMind looks very pretty.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: