I've started building L-Space predominantly with frontier models. It's a custom media server with features focused on my personal media library and the consumption habits of my family. The project is trying to answer a lot of questions for me all at once. In this post I hope to lay out goals taking on a project like this, and hopefully some of my non-goals.
I'll follow this up with later posts about what I've learned and how it is going.
Can I get these models to write a production-quality app with minimal babysitting?
Whenever a fancy new LLM comes out, my internet feed is awash in articles and posts of "This model is so smart I gave it a one sentence prompt and it made an impressive-looking app all by itself" with a gif or short video of the app in question.
These demo apps are mind-blowing and inspiring and I love seeing them. But I also know that when you prompt an LLM to one-shot a fully-featured app you get a strange inconsistency of focus, as the residual stream meanders from feature-to-feature.
I tested this with Fable, giving it a short one-shot high level spec about what I wanted L-Space to be. It produced an app that ran, but was built on toothpicks. User facing affordances were sitting on their own vertical slices. Functions were duplicated dozens of times. Adding new features would require full rewrites. It was not very performant and not something I could use for myself.
If you go back to the early commits in the repo you can see shadows of this early work-- dense Claudish that is difficult to parse.
So a primary goal of L-Space is to figure out how to actually go from "vague idea of a custom app with some custom features" to a quality production application that is extensible and well-abstracted.
Can I build an application on the weekends for my community that will bring them value?
I've been a staunch advocate of the value of Free Software for a long time. I happily write and deliver classes for a [local group](https://www.sofree.us/) to teach and evangelize it. As software eats the world, it's a better future when normal people can make software work for them than be beholden to SaaS that don't meet their needs, and SaaSes can find value in ignoring the undifferentiated heavy lifting in favor of the parts of the value chain they have real leverage. (This is also why I'm enamored with atproto)
But now the cost of building full-featured, good-enough software for bespoke purposes is crashing. We are on the threshold of being able to create and modify software with a thought. I can't help but think, "If this software stuff was ever worth anything, the computer touchers should be able to use these capabilities to build software directly responsive to the needs of the community, friends, and family in their lives. We should be able to see real needs and fill them."
In service of that I've been working with my small-business-owner friends and helping create custom software that meets their needs and reduces burden and upkeep.
I don't have a small business. But I do run a Jellyfin server for my family. I've written some plugins to fill in missing features, and in writing them thought a lot about what an ideal media server looks like for me and my community. It's an area where I have a lot of big dreams that I could never make real in my free time without strong coding models.
What is the SWE equivalent of solving an Erdos problem?
The frontier models are really good at approximating the kind of code you would write if you had a software team burning down a backlog and reviewing code over several sprints. But unless you really prompt it well and iterate on small parts of the codebase, it's difficult to get better than the average human-written outcome. LLM-generated code looks roughly the same as what a human would write. That makes sense, because that's what it was trained on.
But these models are clearly capable of pushing the limits of discovery and understanding, so what does it look like when we get them to stop copying humans and start updating our understanding of what a small app is actually capable of.
Can a media server encourage community and media literacy?
Jellyfin, Plex, Audiobookshelf, Komga, Calibre and all the other media servers out there are very isolating. While the servers have the concept of users, every user lives in a small silo, choosing for themselves what they want to consume. My wife and daughter can be watching the same show in different rooms and never have any idea. They never have any reason to talk about it or reflect on what they are watching or suggest other things to watch. They don't have the option of watching together or leaving a review for other people on the server to see. This is a huge missed opportunity.
Media servers also tend to focus on a single type of media. This is good because it lets them focus on doing one thing well. But I can borrow their ideas, and if features become cheap, why not have a server that can support the whole library? That also opens the door to cross-domain discovery. "You liked this movie, here's the novel, audiobook, comic book it was based on." "I see you watched the new Alien movie, do you want to dig into the extended universe in other media formats?"
So those are my top-line reasons for spending this amount of tokens. I want to be able to make software that helps the people I love. I want to prove to myself what these models can do, and get first-hand experience wrangling them into useful shapes.