At work I have a great brain dump + TODO list tracker via custom API + MCP into confluence, using confluence pages as the app state. The website is so bloated it takes like 20 seconds to go from "idea" to getting it written down. Im now able to avoid all of that and make ~ MY ~ perfect UX while still being a good corporate employee.
But now it occurs to me: I know precisely how I work, I know what patterns are valuable to me, I know when and how I need to remind myself of things. I don't know why I haven't already started building my Things.app replacement. But I'd guess I have it to a place where I'm happy by this time Saturday.
Honestly, it's harder for me to think of daily-driver apps where this wouldn't be the case. I guess vector graphics editing? I'm not going to vibe up a vector editor. But I'll bet all the money in my pocket that 5 years from now, the real value in vector graphics tools will be their API/SDK, not the packaged application experience.
For example, we can "reclaim" non-DRM ebook readers, audiobooks, and music players that play local files or use an open API. But a company-specific walled garden streaming DRM'd ecosystem will be almost impossible to build around.
I gotta be careful, I'm going to talk myself into staying up late tonight building that.
Ownership can have different forms. Slack.app that doesn't let me easily extract code snippets from a thread - owns me. Jira that forces me to use their imbecilic, quirky wysiwyg owns me. Note taking app that keeps the data in their db and not my files - ain't my friend. The friction is the ownership. When extraction requires effort, the tool has leverage over you. It's a subtler form than data lock-in - behavioral lock-in. You adapt your workflow to what the tool makes easy, and gradually the tool's affordances shape what you even think to do. information gets buried in threads, search is mediocre, export is hostile. The "solution" they offer is to stay in Slack/Jira/Dropbox/Evernote/Notion/etc. longer, search in Slack, link to Slack, screenshare in Slack, summarize with AI in Slack, don't ever leave Slack. The tool becomes the answer to the problems the tool creates.
Plain text, local files, standard formats - they don't fight you on extraction because there's nothing to protect. That's why investing in FOSS tools is almost always paying for your own liberation rather than your own imprisonment. Even when there isn't feature parity, even when the FOSS tool doesn't have a "polished UI" and it's "maintained by a teenager in Nebraska" - still a better choice.
Podcasts: audiobookshelf
Music: 500 different subsonic clients, many of which are good. Or some fun tuis
Feed readers: lol, more than there are grains of sand in Torvalds' flippers
Note taking: again innumerable, also, just use nvim or emacs of course
Chat: tons of very good self hosted options that can save orgs thousands a month.
Rather than build your own from scratch, rediscovering already solved issues, why not contribute to or fork a FOSS project? LLMs make it easy easier to get up to speed on large projects
The point of the post is the emacsification of the native macOS (and Windows, I assume) environment. Totally reasonable not to care that it's occurring, that's not really responsive to the post, is it?
Audiobookshelf has a native android app, not sure about desktop, I only use it on Android.
Anyone can build a TUI sure but why try to rebuild the whole mpd client/server stack that lets anyone on your network play music from the several TB collection of FLACs on your NAS? Same for subsonic, why reinvent the client server protocol there when it's already solved? And for subsonic clients, why reimplement streaming, offline downloads with de-duping, stream bitrate, album / artist handling... If there's something a subsonic client doesn't have that you want, fork it, point claude at it, done! That probably falls within the emacsification thing, right?
This is an experiment towards that:
https://github.com/dharmatech/9social
The first client is written for plan9. This keeps the design honest. (If it can run on plan9/rc/acme...)
Video demo:
The current implementation is less than 3000 lines of code.
And speaking of Emacs... 9social was heavily inspired by an Emacs project called Org Social:
Nice! This sounds just like what I'd been thinking the system should be like.
But how do you manage identity/authentication , or discovery of other users?
Here's my personal profile on 9social:
https://github.com/dharmatech/9social-user-dharmatech
Each profile has a `following` file which shows who they're following:
https://github.com/dharmatech/9social-user-dharmatech/blob/m...
So, once you know someone on the network (now you know me!) you can see who they follow. And who each of them follow... And so on.
Well, each user's profile is just a git repository (possibly on github). So I'd think about identity/authentication in the same way users think about it for their code projects.
If you have specific scenarios you're wondering about, feel free to ask.
Cool! Thanks for checking it out!
I've been thinking of this as well:
Something like old school Facebook in UI, but functions more like MSN Messenger. You connect to your contacts via P2P, and download/upload updates to your social media network.
Yup, local-first is central to the design.
And, you only see who you explicitly follow.
I hope there's a sympy-thagoras out there.
( • ‿ • )
Their local-first approach inspired that aspect of the 9social design.
However, a big difference is that SSB is a sophisticated protocol.
With 9social, the heavy lifting is done by git and a set of conventions.
Thanks for checking it out!
"There's a filesystem for that."
¯ \ _ ( ツ ) _ / ¯
https://repo.autonoma.ca/repo/timeivy
An unfinished spreadsheet-based interface for entering time. Meant for consulting, but never got around to persisting the data. Mostly created it because I couldn't stand all the ways that time trackers force users to enter structured time when there's a cute algorithm to handle just about every way a human might naturally enter time.
https://stackoverflow.com/a/49185071/59087
* Recipe managers
https://repo.autonoma.ca/repo/recipe-fiddle
In the days of LLMs, it would be far easier to categorize ingredients and format them into TeX for publishing as a PDF file. The idea behind this project was to let people essentially copy/paste recipes off the web or scans of handwritten content and autoformat it.
Email is right there waiting for disruption.
I'd say the thing with email that most improvements would need improved standards?
That said, as with the emacs user example, the ability to automatically process all your email in madly custom ways can now be opened to the masses.
It is very inspiring.
Yep, I'm doing this all the time. I've been doing it for a year. The silliest on is an IG post previewer. My app is better suited to me than the preview function that Instagram provide itself.
... actually, now that Servo was released to crates.io, I wonder how long it will take before `C-x w t` does exactly what I'm wishing for.