v0.1.2 Post Mortem
We evaluated the latest version of Pith after releasing it as v0.1.2. It's the first release since the complete server and client overhaul; the client uses the Sapper application framework for Svelte and a new event architecture for communication with the backend.
After the fiasco in December with the old version of Pith, we came up with a plan to avoid the same problems in the future. We decided to evaluate progress every month by releasing a new version and giving it a significant test. We're also building Pith from the inside out—the primary functionality surrounding discussions should be intact and remain solid as we begin to flesh out the more nuanced and enjoyable parts of the system to design and build. We designed a system that's far simpler than the first iteration; it reduces everything the first tried to do in a much more essential way. Our goal was to have a rock solid foundation to experiment on, and I think we succeeded in that this time.
Pith v0.1.2 is fairly stable; you can use it and it does what it says it does. There's no awkward concurrency issues that make certain use cases near impossible. Each part of the very simple interface works, albeit without any of the niceties that come with really considering microinteractions and visual design. Of course there's plenty of issues, but they don't interfere with the core use of the system.
As for the goal of evaluating every month, we've met that as well. We started pushing commits working towards the latest version the last week of January and releasing the last week of February. It's bit a bit more challenging to find time to work so far this year, but we're managing to get features designed and implemented. The simplicity is helping in this regard as well.
We've yet to release an instance for anyone to mess around with, but that will come. I'm guessing when we get to v0.3.0 we'll be about ready for that. Right now everything is in a very developmental state; we want to put as little effort into styling the interface as possible so if we need to make big changes we won't have sunk too many hours into styling something that we end up completely removing.
Over the next four weeks, we'll be addressing some of the more interesting aspects of the system:
Turn-taking
It's clear we're going to need some kind of mechanism to indicate typing is happening so people don't talk over each other. It's likely that some more formal research will be done in this area.
A 2D view for a board
Right now boards are lists of units. Our original design made use of a recursive list, and we'd like to build on that idea by creating a (potentially recursive) 2D view for boards, where links between ideas are displayed visually. We're very cognizant of the fact that if this is not designed and engineered well it could feel horrible to use, so we want to put the time into figuring out the best way to approach the problem of creating an infinite pannable and zoomable canvas without relying on a bloated 5MB library.
A better editor
I spent a good deal of time in December building a simple markdown text editor that we'll integrate into Pith so we can support styling text.
Beams
These are "meta" units that attach to a board and guide discussions. Implementation should be fairly simple.
Searching
In order to create links between ideas, searching will be an important feature. We're already most of the way through implementing this.
More efficiently loading the chat
Rather than loading in the whole chat history, we're batching it and fetching pages when someone reaches the end of the existing content. We've found a really fast way to do this and have already implemented it.