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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NjQ2NjcsIm5iZiI6MTczOTU2NDM2NywicGF0aCI6Ii82NjI1Mzg0LzM4ODMzODA3Ny00YzE5MTJjOS04NWM5LTQxNjktOWQ2Yy1iYjVmOTZlZGQyM2UucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTRUMjAxOTI3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjNlM2UzY2IyZGEzODJmMjUzYjA3Y2MwYjlkYzNhNDAwYTI5NGYxZjhjYWFiMGVjYjcxZGVjYTQ5MmI0NGMyYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.F14jzNnThG8iMyaPK3plQHFGegIbils7ANwepqfbBok)
- 🤖 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NjQ2NjcsIm5iZiI6MTczOTU2NDM2NywicGF0aCI6Ii82NjI1Mzg0LzM4ODMzNzYzOC1iNDVlNzBmNy1hOGM1LTQyNmItOGRkYS1jNWFlNDJkYTU0YzAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTRUMjAxOTI3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NWRjN2ExZTM4NmFlZmJjNmQzNjAzNDc5ZTIyNTA0N2FiYjZiNTkwN2U0OTg4YjZkYzQ2ZjEyNzY4MjkyMDQ1MyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.Fn0RwVkZzakN9_d1qDB0El0XR3fFu8bTtZ_WOPWdh5o)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NjQ2NjcsIm5iZiI6MTczOTU2NDM2NywicGF0aCI6Ii82NjI1Mzg0LzM4ODM0MDU1NC02NTAzNDJmNC0zYmI3LTQzNGQtOTNmYi05ZGE0MzEzNDBkMzcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTRUMjAxOTI3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MTg4YjYxYzA5NTYzNmQ0ZjlmYTUwNmM0ZDNlOWY1ZmM2OTA5MTRjMGU1MGJjMGEwYmNkNGIyOGFmNWM3MWYxYyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.0g9ZgaiaJuKnvrN7Cbfjq-5z--1KKqbYb-CY4nBgUPk)
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.