Spark Stack is an tool for building web applications through an AI-powered chat interface. Create quick MVPs and prototypes using natural language prompts. [Blog Post]
![chrome_vMZlrhHm0u](https://private-user-images.githubusercontent.com/6625384/388338077-4c1912c9-85c9-4169-9d6c-bb5f96edd23e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5MzY5NzEsIm5iZiI6MTczOTkzNjY3MSwicGF0aCI6Ii82NjI1Mzg0LzM4ODMzODA3Ny00YzE5MTJjOS04NWM5LTQxNjktOWQ2Yy1iYjVmOTZlZGQyM2UucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTlUMDM0NDMxWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MGU2NjhjM2U5M2ZmYTVjODAyMzY1ZmQ3OTg1NmI3MjAzMDdjODVmODQ5ZmYwYjVjOWViODJiYmE2NjNiZWI2MSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.C7hLbwmuxm--WiY-ya4vJR5XdqCIEAjFbxdwRd3Q8QI)
- 🤖 AI-powered code generation
- ⚡️ Real-time development environment
- 🎨 Multiple arbitrary starter templates (see
/images
) - 👥 Team collaboration and management
- 📝 Git version control
- 🔄 Live preview
- 🧠 Chain-of-Thought reasoning for complex asks
- 🔌 Support for OpenAI and Anthropic models
- 📱 Multi-page app generation
- 📸 Sketch and screenshot uploads
- 🚀 Deployment to GitHub (+ Netlify, Vercel, etc)
- 🌙 Dark mode support
- 🔗 Share chats and projects publicly
See backend/config.py
for the environment variables that are used to configure the app.
- Requires modal account to be created and configured.
- Requires AWS account and s3 bucket to be configured.
cd frontend && npm install && npm run dev
cd backend && pip install -r requirements.txt && python main.py
Railway (docker + postgres).
![chrome_E9GXwtsE87](https://private-user-images.githubusercontent.com/6625384/388337638-b45e70f7-a8c5-426b-8dda-c5ae42da54c0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5MzY5NzEsIm5iZiI6MTczOTkzNjY3MSwicGF0aCI6Ii82NjI1Mzg0LzM4ODMzNzYzOC1iNDVlNzBmNy1hOGM1LTQyNmItOGRkYS1jNWFlNDJkYTU0YzAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTlUMDM0NDMxWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MGYyNTgzNTE0OWY0YTcxODg0ZGNmM2JkZGQ3ZTdhNzE1MmJjMjZiNGQ0MDlhZGZiYmRiNmE5YmVhYTgyYzIyZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.rKnh9LDY9TqPbcGgumb7S4op_6uqx9dpK6tJS3wFdwE)
This project was a pressure test for writing code quickly with Cursor so I thought it was interesting to graph how it was built.
![screenshot](https://private-user-images.githubusercontent.com/6625384/388340554-650342f4-3bb7-434d-93fb-9da431340d37.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5MzY5NzEsIm5iZiI6MTczOTkzNjY3MSwicGF0aCI6Ii82NjI1Mzg0LzM4ODM0MDU1NC02NTAzNDJmNC0zYmI3LTQzNGQtOTNmYi05ZGE0MzEzNDBkMzcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTlUMDM0NDMxWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OWJhMDNjOTRmZDQzMTQxNDU3MjA0ZDUyYWUzNWNiYjI5OTQ5NGI4MmIwMTRiMzIzMGUzOTQyYmNmMmJkN2EzNiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.X3cxulAMwadKkTjwcB4w-hpds5g8bDHFIP1x6lQA5Ts)
Red is my initial 2-day sprint to get an MVP (at this point it worked fully e2e but was a bit brittle). Dots are commits that I arbitrarily checkpointed as I was working on the project.