the boring everything app

some apps are big, complicated pieces of software that push the limits of hardware and UX. today we're talking about apps that aren't like that.

apps for things like

there are commonalities between these types of apps, and between the many instances of each one

despite seemingly being a long-solved problem, the number and expected quality of these apps form a moat protecting established platforms. they also prevent deep user customization (both aesthetic and functional) and, in my opinion, just aren't very good at what they do.

proposal

what if we stopped thinking of these domains as requiring independent software like this

traditional app architecture

and sliced this space along a different axis?

proposed app architecture

the whole stack would initially be part of the same project, but later integrations and alternatives to various components could be built by anyone. the protocols would then turn from internal abstraction layers to public-facing API.

benefits

by fusing the domains into a single experience, new levels of integration could be achieved. for example emails, texts and calendar events with a specific person could appear in a single timeline. you could share an event, your notes on it and the contact info of the organizers in one go. I don't have a precise UX in mind, but at a technical level these sorts of things would be far easier to build.

by defining protocols for each layer, components could be easily swapped, extended or reimplemented. features like full text search, self-hosting sync, encrypted sync, revision history, fundamental changes to the UX, etc would apply to all domains, and could be added or removed in one place. command-line tools, third-party integrations and LLMs could tap into the system, and again would get access to all types of data at once. a fully native experience could be achieved with only the thin frontend needing to be ported between platforms.

this isn't just an easier or more elegant way to build a slice of software, it's the first step towards a new operating system paradigm. with this users could shape their experience, and move between lower level platforms without disrupting core functionality.

next steps

I may start work on this at some point. it will likely begin as a web-based notes app, and grow from there. the initial focus will be getting the fundamentals right (specs and architecture) before it's too late to change them.

I'm interested to hear your ideas, concerns, enthusiasm or indifference. you know my twitter, lmk what you think!