Inspiration
The Virtue Machine was inspired by the growing amount of hostile and unproductive language online. Instead of blocking or censoring speech, the project explores how AI can transform negative language into something constructive and human.
What it does
The app takes user-submitted text and rewrites it into a more positive, respectful version using an instruction-tuned language model, while preserving the original intent.
How we built it
We built a full-stack app using Vite on the frontend, Node.js and Express on the backend, PostgreSQL with Prisma for data modeling, and an AI layer powered by carefully designed instruction prompts.
Challenges we ran into
Designing prompts that changed tone without losing meaning was the biggest challenge. We also had to manage UI state complexity and handle real-world issues like file uploads and API coordination.
Accomplishments that we're proud of
We delivered an end-to-end AI transformation pipeline with clean architecture, extensible APIs, and a focused product vision beyond a simple demo.
What we learned
Small changes in prompt wording can drastically affect AI behavior. We also learned the importance of scope control and designing systems that are modular and easy to evolve.
What's next for the Virtue Machine
Next steps include user accounts, persistent posts and comments, multiple transformation styles, and better ways to evaluate tone improvement over time.
Built With
- axios
- clerk
- express.js
- multer
- node.js
- postgresql
- prisma
- reactrouter
- tailwindcss
- typescript
- vite
Log in or sign up for Devpost to join the conversation.