Hacker News new | ask | show | jobs
by seagreen 3740 days ago
What's your data format? Good programmers will care as much about that as how your UI works.

I see you've got a formatting guide: https://usecanvas.com/about/formatting-guide/0DZTK4lz2cWsqOn... Do you have a more formal specification for your format?

More importantly, how do you handle history? If I spend a year putting notes into Canvas and then have to switch for some reason (which might happen no matter how awesome Canvas is) what will I get when I export my notes?

1 comments

If you're asking what we're storing in the database, that data is a plain string with some special delimiters in it denoting line types and metadata about the content.

At the application level, we're typically working with a version of that data that's structured a little bit more like this: https://usecanvas.com/about/canvas/55h8GVkBfi5Lnr2Becv5tB.js...

Currently, exporting your canvas will give you the format above, or `.markdown`, or `.html`. To answer your second question, we use operational transformation for the collaborative part of the platform, so we do have some history of operations on a canvas, but haven't quite decided for how long we'll be retaining that history and how we can best make it available to users.

Nice, that definitely answers my question. When you do decide on how to export history please write a blog post or something about it, I'm curious to see what you come up with.