A settings system built like a platform, and a week of polish
Written by The LynxDock Team, Engineering, LynxDock
A setting that does nothing is worse than no setting, so when we expanded the settings system we made a rule: the interface may only show two kinds of control - ones that are wired to a real, server-persisted value that takes effect live, and ones that are visibly disabled and labeled with the subsystem that will ship them. Nothing in between. The result is a declarative registry of twenty categories, from Appearance and Chat through Voice, Tactical, Privacy, Security, and Developer, where the platform's roadmap is literally readable inside the settings screen.
The wired set is already substantial: accent color applied live across the whole interface, text size and density scaling, high contrast and reduced motion, message display controls (timestamps and their format, avatars, grouping), composer behavior (Enter versus Ctrl+Enter, spell check), typing-indicator privacy that stops both showing and sending, unread badges, desktop notifications with do-not-disturb and midnight-wrapping quiet hours - where mentions can be allowed to pierce - and tactical board preferences. Everything persists per account on your own server, not in a browser's local storage.
Search treats settings as the unit, not pages: typing 'microphone' jumps to Voice and highlights every matching row, including the planned ones. Basic mode keeps the surface to what most people actually touch; Advanced mode reveals all of it. The design didn't change - it's the same calm interface, with an engine under it.
Messaging and presence moved too. Replies reference the original message rather than copying it, resolve their previews live, degrade gracefully when the original is deleted, and survive being composed offline. Custom status - an emoji and a short line - broadcasts to everyone, survives reconnects, and is normalized server-side. And a single shared error path now turns backend failures into readable sentences instead of cryptic banners.
The same stretch included a deliberate hardening pass: an audit across dead code, render performance, accessibility, and state management. Focus rings and pressed states were fixed where they'd been lost, modal overlays gained dialog semantics, member-list and message-view re-render churn was removed, and the findings were written up as internal bug, performance, and release-readiness reports that steer what comes next. Craft is release-blocking here, not optional.
All of it is in active development, in the open, with the same standard as always: a capability gets claimed when someone has watched it be true.