Skip to content
All projects
Web AppIn active development

TextLab

Editorial workflow for contributors typing long passages on a phone.

Overview

The editorial side of the Akkha-Rik project: an installable web app for allowlist-gated text assignments, with contributor, admin and super-admin workflows. Admins assign PDF-based writing tasks; contributors draft against them with secure downloads, submission tracking and review management.

The problem

Editorial work was being handed round as PDFs and messages, with no way to see who held what, whether a draft had been submitted, or which version was current — and the people doing the typing were often doing it on a phone, on an unreliable connection.

The approach

Two decisions carry the app. The route guard runs only on the app and login paths, and its calls to the auth service are time-bounded — a guard sits in front of every matched route, so one unbounded call to a slow auth API returns a gateway timeout for the whole site rather than for the page that needed a session. And when the auth service cannot answer, the guard logs the degradation and lets the request through rather than treating no answer as signed out; the authoritative check still runs, because every page renders inside a layout that verifies the user before emitting markup, with admin pages and server actions re-checking the role.

Outcome

  • Contributors can install the app to a phone home screen and work without browser chrome — worth having when the job is typing long passages on a small screen.
  • The service worker never caches anything that can carry a person's data, nor any non-GET request: a cached task list on a shared phone could be shown to whoever picks it up next, and a replayed draft save could put older text over newer.
  • The editor stays usable when the connection drops — typing continues, text is mirrored to local storage, and the status line says the save is waiting on the connection rather than showing a generic failure. Reconnecting fires an immediate save instead of waiting out the backoff.
  • Opening the app cold while offline is deliberately not supported, because it would require caching the authenticated editor page — the hazard above.

What it does

  • Allowlist-gated access

    Sign-in is restricted to an allowlist with per-person roles, checked server-side in the auth callback.

  • Three roles

    Contributor, admin and super-admin, with assignment management, a help inbox, an audit view and user administration.

  • Offline-tolerant editor

    One save request in flight at a time, newest content wins, with local mirroring while the connection is down.

  • Installable PWA

    Web manifest, icons and a service worker, with a maskable icon that keeps the mark inside the safe zone so Android's circular crop does not clip it.

Ask about TextLab

Want something like this, or curious how a piece of it works? Send a note — it reaches me tagged with this project, so I have the context before I reply.

Replies within 24h on business days.