ProtoSigner is a high-fidelity, AI-powered visual UI builder that enables designers and developers to create React components through an intuitive interface combined with natural language prompts. Design, iterate, and export production-ready code—all in one place.
- 🎨 Visual Canvas Editor - Drag, drop, and design with precision
- 🤖 AI-Powered Design - Generate UI components using natural language prompts
- 📐 Layer Management - Organize and structure your design hierarchy
- 🎯 Property Inspector - Fine-tune every element with detailed controls
- 📱 Responsive Design - Multiple viewport sizes and page formats
- 💾 History & Undo - Track and revert changes effortlessly
- 📤 Code Export - Generate clean React/HTML/CSS code
- 🎬 After Effects Export - Export designs for motion graphics
- ⌨️ Keyboard Shortcuts - Boost productivity with hotkeys
- 🎨 Design Guides - Built-in grid and alignment tools
- Frontend: React 19, TypeScript
- Styling: Tailwind CSS 4
- AI: Google Gemini AI, OpenRouter
- Backend: Vercel Serverless Functions
- Build Tool: Vite
- Deployment: Vercel
- Node.js 18+
- npm or yarn
- Gemini API Key (Get one here)
-
Clone the repository
git clone https://github.com/Dream-Pixels-Forge/protosigner-app.git cd protosigner-app -
Install dependencies
npm install
-
Configure environment variables
Create or update
.env.local:GEMINI_API_KEY=your_gemini_api_key_here OPENROUTER_API_KEY=your_openrouter_key_here
-
Start development server
npm run dev
-
Open your browser
Navigate to
http://localhost:5173
npm run build
npm run preview-
Install Vercel CLI
npm i -g vercel
-
Deploy
vercel
-
Set Environment Variables
In your Vercel dashboard:
- Go to Project Settings → Environment Variables
- Add
GEMINI_API_KEYwith your API key - Add
OPENROUTER_API_KEY(optional)
-
Redeploy
vercel --prod
| Variable | Required | Description |
|---|---|---|
GEMINI_API_KEY |
Yes | Google Gemini API key for AI features |
OPENROUTER_API_KEY |
No | OpenRouter API key for additional AI models |
- Use AI Prompts - Type natural language descriptions in the prompt bar
- Manual Design - Click elements in the toolbar and place them on canvas
- Edit Properties - Select elements and modify in the properties panel
- Layer Management - Organize elements in the layers panel
Ctrl/Cmd + Z- UndoCtrl/Cmd + Y- RedoDelete- Remove selected elementCtrl/Cmd + D- Duplicate elementCtrl/Cmd + E- Export code?- Show all shortcuts
- React Code - Export as React components
- HTML/CSS - Export as static HTML
- After Effects - Export for motion graphics
protosigner-app/
├── api/ # Vercel serverless functions
│ ├── gemini.js # Gemini AI endpoint
│ └── openrouter.js # OpenRouter endpoint
├── components/ # Reusable UI components
├── context/ # React context providers
├── features/ # Feature-specific modules
│ ├── ai/ # AI integration
│ ├── canvas/ # Canvas editor
│ ├── export/ # Code export
│ ├── layers/ # Layer management
│ └── properties/ # Property inspector
├── services/ # External services & API utilities
├── .env.local # Environment variables
├── package.json # Dependencies
├── vercel.json # Vercel configuration
└── vite.config.ts # Vite configuration
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
ProtoSigner uses Vercel Serverless Functions to keep API keys secure:
- API keys stored server-side only
- Never exposed to client browser
- Secure environment variable management
See SERVERLESS.md for detailed documentation.
- License: Apache License 2.0
- Built with Google Gemini AI
- Powered by React and Vite
- Styled with Tailwind CSS
- 📧 Email: dream.pixels.forge@gmail.com
- 💬 Discord: Join our community
- 🐛 Issues: GitHub Issues
