Long running drafts and scheduled topics
-
When the drafts subsystem was originally introduced, it wasn't exposed in the frontend as a system for direct interaction — while you were composing a post, we would regularly save your post content in case your browser session unexpectedly ended (either via page navigation or crash, among many other possibilities). I had envisioned the feature to work in the background, and only show itself when needed, by restoring the saved draft upon session resumption.
The upcoming Harmony theme adds a new drafts icon to the sidebar, which makes the drafts subsystem a little more discrete:
With the drafts listed in such a way, it opens up the possibility that drafts can be utilised as a way to organize topics and posts that are not ready for posting. Perhaps you are still collecting additional information, or just have not finished writing your thoughts down.
The one downside of drafts is that they are saved locally in-browser. That is, if you switch browsers or computers, your new login session would not have access to the draft. We made this decision to simplify the system, as introducing in a round-trip to the server to save a draft meant that we could not guarantee that a draft would be saved in the event of a network interruption. It also meant that we did not have to maintain a draft syncing system, and that post composition would be able to be continued in the absence of an internet connection.
However, the other half of the system is the Scheduled Topics feature, which can function as a server-side pseudo-drafts functionality. By scheduling a topic for future posting, the topic is saved on the server, and can be later edited, but is hidden from users until the scheduled time:
By setting the scheduled posting date to some time in the far future (e.g. 100 years from now), you essentially have a draft that can be edited at your leisure until such time as you deem it ready to post. When ready, simply update the posting time to the current time.
N.B. Drafts and scheduled topics have been a part of NodeBB for quite awhile, since 1.17.0. It is only in the upcoming v3.x that the drafts feature more prominently.