AYA is an open-source, AI-powered hardware development platform that serves as a complete digital partner for hardware engineers. It combines visual system design, component management, compatibility analysis, and AI-assisted technical consultation in a single web application.
- Visual System Design — Interactive drag-and-drop system diagrams powered by @xyflow/react
- Component Management — Centralized tracking of parts, ordering status, pricing, and specifications
- Compatibility Analysis — Automated voltage, communication protocol, and power compatibility checking
- AI Technical Assistant — GPT-4 powered consultation for component selection and troubleshooting
- Auto-Save — Real-time project persistence with automatic recovery on reload
- File Uploads — Attach images, PDFs, and Excel files to projects
- Undo/Redo — Full edit history (Ctrl+Z / Ctrl+Y)
- Resizable 3-Panel UI — PBS (Project Breakdown Structure), main workspace, and AI chat
- GitHub Integration — Software-hardware compatibility verification via repository analysis
| Layer | Technology |
|---|---|
| Frontend | Next.js 15, React 19, TypeScript, Tailwind CSS 4 |
| Diagram | @xyflow/react 12 |
| Backend | Next.js API Routes, NextAuth.js |
| Database | PostgreSQL 13+, Prisma 6 |
| AI | OpenAI GPT-4, Anthropic Claude |
| File Processing | multer, xlsx, puppeteer |
- Node.js 18+ (20+ recommended)
- PostgreSQL 13+
# Clone the repository
git clone https://github.com/your-org/aya-hardware.git
cd aya-hardware
# Install dependencies
npm install
# Generate Prisma client
npx prisma generateCopy the example environment file and fill in your values:
cp .env.local.example .env.local# .env.local
DATABASE_URL="postgresql://user:password@localhost:5432/aya_dev"
NEXTAUTH_SECRET="your-secret-key"
NEXTAUTH_URL="http://localhost:3000"
# AI providers
OPENAI_API_KEY="sk-..."
ANTHROPIC_API_KEY="sk-ant-..."
# Optional: component pricing
NEXT_PUBLIC_OCTOPART_API_KEY="your-octopart-key"# Create database (run in psql)
CREATE DATABASE aya_dev;
# Run migrations
npm run db:setup# Development (with Turbopack)
npm run dev
# Development (without Turbopack, if you hit build issues)
npm run dev:safeOpen http://localhost:3000.
Right-click the canvas to add a component node. Drag between node ports to create connections. Double-click a node label to rename it.
Open the Parts Management tab to fill in component details (voltage, communication protocol, model number). These fields feed into the compatibility checker.
Click Compatibility Check to automatically analyze:
- Voltage conflicts (e.g. 5 V vs 3.3 V mismatches)
- Communication protocol conflicts (I2C, SPI, UART, etc.)
- Power supply vs consumption balance
Ask the AI assistant in the right panel for component recommendations, wiring advice, or design review. Attach datasheets (PDF/image) for contextual analysis.
| Shortcut | Action |
|---|---|
| Ctrl+Z | Undo |
| Ctrl+Y | Redo |
| Ctrl+S | Manual save |
| F5 | Reload (data is preserved) |
# Run tests
npm test
# Lint
npm run lint
# Build
npm run build
# Prisma Studio (database GUI)
npm run db:studio
# Database migration
npm run db:migrateModule not found
rm -rf node_modules package-lock.json && npm installDatabase connection error
- Ensure PostgreSQL is running:
brew services start postgresql@15(macOS) orsudo systemctl start postgresql(Linux) - Verify
DATABASE_URLin.env.local
AI chat not working
- Check
OPENAI_API_KEYis set and valid in.env.local
Turbopack build error
- Use
npm run dev:safeto run without Turbopack
Pull requests are welcome. For major changes, please open an issue first to discuss what you'd like to change.