Vultr Commander AI - Project Story
Inspiration
I've always wanted to build a server management system powered by AI—something that lets you control cloud infrastructure through natural conversation instead of memorizing CLI commands or navigating complex dashboards. The idea was simple: what if managing servers felt like chatting with a colleague?
But cloud costs for testing always held me back. When I saw this hackathon offering free access to Vultr services, I figured it was the perfect chance to finally build it. Honestly, I didn't know much about Vultr or LiquidMetal before this. I knew ElevenLabs from Hacker News, but that was about it. Once I started using Vultr, though, I was pleasantly surprised by how solid the platform was—which motivated me to push harder on the project.
What I Built
Vultr Commander is a conversational interface for managing Vultr cloud servers. Instead of clicking through dashboards, you type commands like:
"list all servers""start server test-server""create server web-app""shut down production-db"
The system follows a Plan → Confirm → Execute pattern. Before any action runs, it shows you exactly what's about to happen and asks for confirmation. This prevents accidental deletions or unintended operations.
Key features include:
- Real-time server dashboard pulling live data from Vultr API
- Voice feedback via ElevenLabs integration—hear the results when servers start, stop, or get deleted
- Audit logs tracking all server operations for review
- Customizable settings for voice personas and feedback preferences
How I Built It
The backend runs on Raindrop Framework with Claude assistance, while the frontend was built using Kiro. The architecture separates concerns cleanly—backend handles all Vultr API interactions and command parsing, frontend manages the UI and real-time updates.
For natural language processing, I initially wanted true NLP that could interpret any phrasing. But without external AI APIs (which felt outside the hackathon spirit), I settled on pattern-based parsing. It's more limited, but it works reliably for the supported command set.
Authentication uses Web Crypto API exclusively for Cloudflare Workers compatibility—PBKDF2 for password hashing, custom JWT implementation, AES-GCM for API key encryption. No external crypto libraries.
Challenges
The Proxy Problem
This ate up most of my debugging time. I assumed calling Vultr API from within Vultr's infrastructure would be straightforward. Wrong. Cloudflare Workers environment blocked direct HTTP requests to Vultr's API endpoints.
The solution? A separate HTTPS proxy deployed on Vercel that forwards requests to Vultr. It's an extra hop, but it works:
Client → Raindrop API → Vercel Proxy → Vultr API
Finding this workaround took way longer than I'd like to admit.
TypeScript Build Issues
Raindrop impressed me with how much backend complexity it handled automatically. But ironically, it struggled with basic TypeScript errors that should've been easy catches. This caused deployment failures that blocked progress until I worked through them manually with Claude's help.
WebSocket Limitations
I tried multiple approaches to get stable WebSocket connections working for real-time updates. None of them held up reliably in the Raindrop environment. Eventually I had to accept this limitation and move on.
What I Learned
- Serverless environments come with unexpected restrictions—especially around outbound HTTP requests
- Sometimes the "hard" problems get solved easily while "easy" ones become blockers
- Building a proxy layer isn't elegant, but pragmatic solutions ship
- Scoping down features to meet deadlines is part of the process, not a failure
Note for Reviewers
The demo site requires login. You can sign in with admin@kanapp.net / test123456!
The KrUbuntu server in my Vultr account acts as the proxy server. If it gets stopped or deleted, the API integration breaks. Please keep it running during evaluation.
Command Center responses may occasionally be slow due to API latency—if you see network errors, just wait a moment and retry.
Despite the rough edges and features I had to cut, this project finally brought an idea I'd been sitting on for years to life. That alone made it worth it.
Built With
- claude
- elevenlabs
- kiro
- node.js
- raindrop
- react
- smartsql
- tailwind
- typescript
- vite
- vultr


Log in or sign up for Devpost to join the conversation.