
Creative AI
Local-First AI on DGX Spark
Why I built MAUDE around a local AI workstation, where it helps, and what still needs to be made repeatable.
The short version
I built MAUDE because my AI work kept spreading across separate tools. Code lived in one workflow. Image generation lived in another. Research, files, GitHub, calendar work, and publishing each had their own interface. The friction was not one big failure. It was the repeated cost of moving context by hand.
A local-first AI setup does not make every task faster. It also does not remove the need for hosted models. The useful part is control. The gateway, tools, file access, and workflow state start on my machine, so a task can move across models and tools without losing the project it belongs to.
What local-first means here
Local-first does not mean local-only. MAUDE can route to cloud models when they are the right fit. It can also use local models when privacy, cost, latency, or tool access matter more. The point is not model purity. The point is deciding where each part of the work should run.
That matters for creative and technical production. A real project may include source files, generated images, reference material, notes, videos, API keys, deployment details, and private client context. I do not want that context copied into a different web app every time I switch from writing to coding to image generation.
The local machine becomes the workspace. The models become interchangeable workers inside that workspace. That is a different mental model from opening a chatbot and pasting in a problem from scratch.
The jobs it handles well
The setup is most useful when a task has several steps. For example, I might ask the system to inspect a Next.js route, update page copy, run the build, read the error, fix the issue, and summarize what changed. That is not one model capability. It is a chain of file access, reasoning, shell commands, and verification.
It also helps with creative workflows that cross formats. A portfolio update might require checking project copy, generating or selecting imagery, adding metadata, linking related work, and preparing a short social post. Those steps are small on their own. The value is keeping them in one workflow instead of treating them as separate chores.
The same pattern applies to research. I can gather notes, compare sources, draft an outline, turn that outline into a post, and connect the post back to a project page. The important part is not automation for its own sake. It is reducing the places where context gets dropped.
Where hosted tools are still better
A local-first setup has tradeoffs. Hosted products are usually smoother, easier to share, and faster to start using. They handle account setup, scaling, model updates, and product polish. For a simple question or a one-off rewrite, I still use hosted tools when they are more convenient.
The local stack is also more work to maintain. Model versions change. Tool permissions need care. Logs need to be readable. Long-running jobs need recovery paths. A personal workstation can survive rough edges that a public product cannot.
That is why I do not describe MAUDE as a finished product. It is a working local AI environment that I use, improve, and test against real tasks. The honest goal is to make that workflow more repeatable over time.
What I would improve next
The biggest gap is packaging. A system like this needs a clear setup path, sane defaults, explicit permissions, and better failure messages. If a tool cannot reach GitHub, the system should say that directly. If a model is unavailable, it should fall back or explain the next step.
The second gap is observability. When several models and tools touch one task, I need a clean record of what happened: which model was used, which files changed, which commands ran, and what verification passed. Without that, automation becomes hard to trust.
The next milestone is not a larger claim. It is a smaller promise that can be tested: make a local AI workflow that another technical user can install, understand, and recover when something breaks.