Devlog

What just shipped in DoneStage, release by release. The roadmap says what is coming; this page says what arrived.

  1. v0.1.0

    The beta takes shape

    The last pass before opening the doors. The front page has been recomposed around the thing it sells — a deliverable, not a feature list — and this page and the roadmap are now readable without an account.

    • NewA public roadmap and devlog, readable without an account, with navigation between the two.
    • NewThe front page shows a delivery slip beside the headline, and the full document your client receives laid out on its own band.
    • ImprovedThe front page headline is painted on the first frame. It used to wait for the JavaScript bundle to load before becoming visible at all.
    • ImprovedThe three product benefits became margin notes beside the document, instead of a second three-column grid identical to the one below it.
    • FixedWith reduced motion on, entrances are cancelled rather than shortened: the checklist bar could otherwise sit collapsed at zero.
    • FixedSections that reveal on scroll stay visible without JavaScript and when printed.
    • ImprovedAn empty screen now sits on a plane of its own. The checklist count takes the pigment on the last tick, and the delivery panel marks an address that actually resolves.

    Next

    The next stretch is about the signed-in screens: the dashboard, the project editor, and the moment a handoff goes live.

  2. Note

    The interface becomes Ledger

    A full redesign around one idea: DoneStage produces the record of a finished job, so it is set like stationery — paper, rules, ink — rather than like a dashboard.

    • NewA warm neutral scale, hairlines instead of cards, a single petrol pigment that marks state, and three type voices: display, text, record.
    • NewA mark drawn for the product — three treads with a block set on the last one — replacing a glyph borrowed from the icon set.
    • ImprovedOne shared header replaces the four that had drifted apart across the landing, the application, the roadmap and the legal pages.
    • ImprovedDates, counts, statuses and share addresses are now all set in the same record voice.
    • InternalPublic routes are pre-rendered at build time, so they are readable and indexable without running the bundle.
  3. Note

    Privacy, trackers and public links

    A stretch of work on what the product collects and what it lets through. None of it shows on a handoff page, but it is the ground the beta can open on.

    • NewPrivacy preferences, with an explicit choice for audience measurement and for error monitoring.
    • NewLegal notice, terms of use and privacy policy, versioned and dated.
    • FixedUnsafe link addresses are refused on a handoff page, in the browser and in the database alike.
    • InternalThe sensitive-information page loads neither audience measurement nor error monitoring, and is served under a strict content security policy.
  4. Note

    Publishing and unpublishing a project

    A handoff is not public because it exists: it is public when you decide it is. A project stays a draft until you publish it, and publishing can be taken back as readily as it is given.

    • NewA project stays a draft until you publish it. While it is one, its handoff link leads nowhere for your client.
    • NewUnpublishing makes the page unavailable immediately, without losing its content. Publishing it again reuses the same link.
    • InternalPublication state is separate from moderation state: a project owner can toggle the former and is never granted the right to write the latter.
  5. Note

    Secure sharing of sensitive information

    A handoff often ends in credentials and access details, and an email is a poor place to leave them. They now travel inside a bundle encrypted in the browser, which the service cannot open.

    • NewCredentials and access details are encrypted in your browser and opened with a passphrase, which you send your client through a channel separate from the link.
    • NewThe passphrase is never sent to the service. That is also why it cannot be recovered if it is lost: the bundle is unreadable from then on.
    • InternalThe link token is stripped from the address as the page opens and lives only in memory, for the length of the visit.