Why We Built NERDIT
The story behind Nerdit and why deploying AI apps on your own machine should be one command.
The problem we kept running into
Every developer self-hosting an app had the same story: Docker by hand, a reverse proxy to configure, certificates to renew, secrets scattered across dotfiles, and a process to restart at 2am. Every app becomes an ops project.
The moment you wire an LLM into that app, it gets worse. Your data and your bill ship off to a cloud provider, and the privacy you wanted from self-hosting is gone.
The gap
Self-host PaaS like Coolify, Dokploy or Kamal solved app deployment. Ollama and LM Studio solved running a model locally. Nothing connects the two: nobody manages local inference and wires it into your app with the DX you'd get from Vercel.
What we set out to build
We wanted a full-local AI app to be two commands:
nerdit serve llama3.1:8b # local model, OpenAI-compatible
nerdit deploy ./my-app # build + run + URL
Your app gets OPENAI_BASE_URL and OPENAI_API_KEY injected automatically, talks to the local model through any OpenAI SDK, and runs at a real HTTPS URL with TLS, secrets, auto-restart, and rollback. No GPU? Deploy the same way and point at an external API. Same contract, no code changes.
Where we are today
Nerdit is in beta. The core (daemon, containerized workloads, dashboard, GPU jobs) runs today; deploy, serve, and the app to model wiring are in active development. If you self-host apps, or want to run AI on your own hardware, we'd love to hear from you.
Join the beta and help us build the right thing.