I asked Claude to build a personal finance tracker with Axum + SQLx, write the migrations, generate the frontend, and deploy it. I expected it to fall apart somewhere… but it actually produced a clean, working Rust app that compiled, migrated, and shipped.
This was the prompt: Build a Personal Finance Tracker web application with the following requirements:
*Backend (Rust + Axum + SQLx):*
- Use Rust with the Axum web framework - Use SQLx for database operations with PostgreSQL - Use SQLx compile-time checked query macros (query!, query_as!, etc.) throughout - no raw queries - Database is running on localhost:5432 - Create proper database migrations using `sqlx migrate add` commands - Implement migrations to create necessary tables (transactions, categories, budgets, etc.) - Run migrations automatically or provide clear instructions - Before deployment, run `cargo sqlx prepare` to generate query metadata for offline compilation - Create RESTful API endpoints for: - Adding/editing/deleting transactions - Categorizing transactions - Getting spending summaries by category/time period - Budget management
*Frontend (HTML/CSS/JS):*
- Create a modern, clean, and slick UI using vanilla HTML, CSS, and JavaScript - Make it responsive and mobile-friendly - Include data visualizations (charts for spending by category, trends over time) - Use a nice color scheme and contemporary design patterns - Place all frontend assets in a `dist/` directory
*Deployment:*
- Deploy to Shuttle - Configure the Shuttle.toml to include frontend assets - Use the Shuttle MCP server to handle the deployment - You can also use the Shuttle MCP server to search Shuttle documentation if needed
*Features to implement:*
- Transaction management (add, edit, delete income/expenses) - Automatic and manual categorization - Budget setting and tracking - Spending insights with charts (pie charts, bar charts, line graphs) - Date range filtering - Summary statistics (total spent, by category, monthly trends)
Build this as a complete, production-ready application with proper error handling, validation, and a polished user experience.
Why I tried this: • I wanted to know if AI can handle real Rust workflows, not just snippets • Boilerplate in Rust apps (migrations, routing, setup) is still tedious • I was curious where the model would break - syntax, crates, SQL, build steps, deploys
It ended up building the whole thing with surprisingly few corrections. It left me wondering: how many side-projects could we ship if this becomes normal? And what does “writing software” look like when the prompt is the starting point?
If you want all the details like what broke, what worked, and the final build it’s all in the blog above. Would love feedback from other devs trying similar things.