A Revolutionary Web-Based IDE for Building, Compiling, and Deploying Stellar Smart Contracts
| Live Demo | app.stacyide.xyz |
| @stacydotide | |
| Analytics Dashboard | View Data |
๐ Quick Start โข โจ Features โข ๐๏ธ Architecture โข ๐ Documentation โข ๐ค Contributing
Stacy IDE is not just another code editorโit's a complete development environment that brings the power of blockchain development to your browser. Built for the Stellar network, it eliminates the complexity of local setup and lets you focus on what matters: building amazing smart contracts.
Shown at: Stellar Monthly Builder Challenge, Stellar Builder Camp (IEM Kolkata), Hacktropica (Asansol Engineering College)
Stacy simplifies smart contract development with these core benefits:
- Zero Setup Required - No Rust installation, no CLI tools, just pure browser-based development
- Real-Time Compilation - Watch your code compile with live streaming logs
- AI-Powered Development - Integrated Stella RAG AI assistant with Stellar documentation knowledge
- Instant Deployment - Deploy to Stellar testnet with one click via Freighter wallet
- GitHub Native - Push code, create repos, manage projects without leaving the IDE
- TypeScript Binding Generation - Auto-generate TypeScript bindings for your contracts
- Isolated Sandboxes - Each project runs in its own secure Docker container
๐ Metrics Dashboard
Real-time analytics tracking compilation times, deployment success rates, and AI usage patterns.
๐ฅ๏ธ Monitoring Server
Live server health monitoring with performance metrics and resource utilization.
Supabase-backed event streaming with PostgreSQL Materialized Views that pre-aggregate analytics data:
- Views:
mv_daily_ai_usage,mv_user_stats,mv_top_events - Tables:
ai_interactions,sessions,events - Access: Real-time hooks with Row-Level Security (RLS) policies
- Refresh: Auto-refreshed via
refresh_analytics_views()cron (recommended hourly)
- Features
- Architecture
- Quick Start
- Configuration
- Documentation
- Usage Examples
- Deployment
- Project Status
- Troubleshooting
- Contributing
- License
| Feature | Description |
|---|---|
| Monaco Editor | Industry-standard code editor with IntelliSense, syntax highlighting, and multi-language support |
| Real-Time Compilation | WebSocket-based compilation with live log streaming using BullMQ + Redis |
| WASM Output | Automatic WASM binary generation and hex encoding |
| Multi-File Support | Work with complex projects, not just single files |
| File Tree Explorer | Visual file navigation with create/edit/delete operations |
| Smart Stub Detection | AI identifies incomplete code and suggests implementations |
Integrated Stella RAG enables intelligent development assistance:
- Context-Aware Responses - Automatically includes relevant documentation for accurate answers
- Intelligent Code Generation - AI can create, update, and delete files based on natural language
- Smart Keyword Detection - Only queries RAG for Stellar-related questions (faster responses)
- Structured JSON Responses - AI provides both explanations and executable code changes
- Stella RAG Integration - Trained on official Stellar & Soroban documentation
Direct blockchain integration for seamless deployment:
- Freighter Wallet Connection - Seamless integration with Stellar's most popular wallet
- Testnet Deployment - Deploy contracts to Stellar testnet with gas fee estimation
- Contract Interaction - Invoke contract methods directly from the IDE
- TypeScript Bindings - Auto-generate client SDKs for your contracts
- XDR Support - View and work with transaction XDR
Full GitHub support for version control and collaboration:
- OAuth Authentication - Secure GitHub login
- Repository Management - Create new repos, push code, manage projects
- Branch Support - Work with different branches
- Commit History - Track your development progress
- Multi-Repo Workspace - Switch between projects seamlessly
Production-ready infrastructure with scalability:
- Dockerized Compilation - Isolated environments for secure builds
- WebSocket Communication - Real-time bidirectional communication via Socket.IO
- Job Queuing - BullMQ-powered compilation queue for scalability
- Redis Pub/Sub - Streaming logs from workers to clients
- Python Binding Generator - Stellar CLI integration for TypeScript binding generation
- Container Orchestration - Docker Compose for easy deployment
- Smart Wallet with Custom Auth - User-deployed contract-based wallet with custom authentication logic (multi-sig, social recovery, or custom rules)
- Flexible Authorization - Contracts define custom authorization schemes and transaction policies for programmable account control
graph LR
A[Next.js Frontend] -->|WebSocket| B[API Gateway]
B -->|Job Queue| C[Redis/BullMQ]
C -->|Process| D[Compilation Worker]
D -->|Logs| C
C -->|Stream| B
B -->|Logs| A
E[GitHub API] <-->|OAuth| A
F[Stellar Network] <-->|Deploy| A
G[Freighter Wallet] <-->|Sign| A
H[Stella RAG API] <-->|Context| A
| Layer | Technology |
|---|---|
| Framework | Next.js 14 with App Router |
| Language | TypeScript 5.0 |
| UI Library | React 18 |
| Styling | Tailwind CSS + shadcn/ui |
| Editor | Monaco Editor (VS Code engine) |
| State Management | React Context + Custom Hooks |
| Real-Time | Socket.IO Client |
| AI Integration | Groq SDK + Stella RAG |
| Blockchain | Stellar SDK, Freighter API |
| Layer | Technology |
|---|---|
| Runtime | Node.js 20 + Python 3.11 |
| API Framework | Express.js |
| Real-Time | Socket.IO |
| Job Queue | BullMQ |
| Cache/Message Broker | Redis |
| Compilation | Rust (cargo) + Stellar CLI |
| Containerization | Docker + Docker Compose |
| Bindings Generator | Stellar CLI binding generator |
Before you begin, ensure you have the following installed:
- Docker Desktop - Required for compilation
- Node.js 18+ and pnpm - For frontend development
- Freighter Wallet - For contract deployment (browser extension)
# Clone the repository
git clone https://github.com/yourusername/stellar-ide-backend-hosted.git
cd stellar-ide-backend-hosted
# Start backend services
cd vide-backend
docker-compose up -d
# Verify services are running
docker-compose ps
# Start frontend
cd ../frontend
pnpm install
pnpm devVisit https://localhost:3000 ๐
For local development without full Docker:
# Backend (Redis only)
cd vide-backend
docker-compose up -d redis
pnpm install
pnpm dev
# Frontend
cd ../frontend
pnpm install
pnpm dev:https # HTTPS required for Freighter walletCreate frontend/.env.local:
NEXT_PUBLIC_SOCKET_URL=http://localhost:8000
NEXT_PUBLIC_GITHUB_CLIENT_ID=your_github_oauth_app_id
GITHUB_CLIENT_SECRET=your_github_oauth_secret
GROQ_API_KEY=your_groq_api_key
STELLA_RAG_API_KEY=your_stella_rag_key # Optional, has fallback
GOOGLE_GENERATIVE_AI_API_KEY=your_gemini_key # For Gemini modelCreate vide-backend/.env:
REDIS_HOST=localhost
REDIS_PORT=6379
PORT=8000- Quick Start Guide - Docker setup and TypeScript binding generation
- Setup Instructions - Complete setup guide for all components
- Operations Manual - Deployment, monitoring, and troubleshooting
- Architecture Guide - Detailed system architecture and component descriptions
- Backend Architecture - API Gateway, Worker, and Redis configuration
- Repository Analysis - Code structure and patterns
- GitHub Integration - OAuth setup and repository management
- Stella RAG Integration - AI assistant configuration
- Editor Integration - AI-powered code editing
- Binding Generation - TypeScript binding generation
- HTTPS Setup - Local SSL certificate configuration
- GitHub Actions - CI/CD pipeline setup
- Docker Deployment - Docker setup and configuration
Step-by-step guide to create and deploy your first smart contract:
- Start a New Project - Click "New Project" in the IDE
- Write Your Contract - Use the Monaco editor with Rust syntax highlighting
- Compile - Hit "Compile" to build your WASM binary
- Deploy - Connect Freighter wallet and deploy to testnet
- Interact - Use the generated TypeScript bindings to call your contract
Example: Ask the AI to generate a counter contract:
You: "Create a simple counter contract with increment and decrement functions"
AI: *Generates complete Soroban contract with proper structure*
The AI can:
- Generate complete contracts from descriptions
- Fix bugs and optimize code
- Explain Stellar-specific concepts
- Update multiple files simultaneously
- Detect and implement stub functions
Using the IDE terminal:
stellar contract bindings typescript \
--wasm target/wasm32v1-none/release/counter.wasm \
--output-dir ./bindingsUsing the WebSocket API:
const response = await fetch("/api/bindings", {
method: "POST",
body: JSON.stringify({ wasmHex: compiledWasmHex }),
});Build and deploy production images using Docker Compose:
# Build production images
docker-compose -f docker-compose.prod.yml build
# Start services
docker-compose -f docker-compose.prod.yml up -d
# Check logs
docker-compose logs -fBefore deploying to production, ensure:
- Redis persistence is configured
- SSL certificates are installed
- Production environment variables are set
- Docker swarm is enabled for scaling (optional)
- Monitoring stack is deployed (Prometheus/Grafana recommended)
We welcome contributions! Help us improve Stacy IDE for the Stellar community.
- Fork the Repository - Create your own fork of the project
- Create a Feature Branch - Use
git checkout -b feature/amazing-feature - Commit Your Changes - Write clear commit messages:
git commit -m 'Add amazing feature' - Push to Your Branch - Push changes:
git push origin feature/amazing-feature - Open a Pull Request - Submit your PR for review
- Follow TypeScript best practices and maintain type safety
- Write tests for all new features
- Update documentation to reflect changes
- Follow the existing code style and patterns
- Keep PRs focused and atomic (one feature per PR)
- Include descriptive commit messages
- โ Core IDE functionality
- โ Real-time compilation
- โ Stellar testnet deployment
- โ GitHub integration
- โ AI assistant with RAG
- โ TypeScript binding generation
- โ Docker containerization
- ๐ง Mainnet deployment (coming soon)
- ๐ง Multi-user collaboration (planned)
- ๐ง VSCode extension (planned)
| Category | Score | Status |
|---|---|---|
| Secrets | 100% | โ No Keys committed to git |
| API | 100% | โ Rate limiting, CSRF, no open CORS |
| WebSocket | 100% | โ Auth implemented, Message validation |
| Sandbox | 80% | |
| CI/CD | 65% |
Check the status and logs:
# Check Docker container status
docker-compose ps
# View worker logs
docker-compose logs compiler
# Restart services
docker-compose restartEnsure the following:
- You're using HTTPS (required for wallet interaction)
- Freighter extension is installed and unlocked
- You're on Stellar testnet
- Wallet permissions are granted to the application
Check your configuration:
- Verify
NEXT_PUBLIC_SOCKET_URLenvironment variable - Ensure backend is running on correct port
- Check CORS configuration in backend
- Verify firewall isn't blocking WebSocket connections
This project is licensed under the MIT License - see the LICENSE file for details.
We're grateful to the following projects and organizations:
- Stellar Development Foundation - For the amazing Soroban platform
- Freighter Team - For the best Stellar wallet integration
- Monaco Editor Team - For the incredible code editor
- shadcn/ui - For beautiful and accessible UI components
- All Contributors - For making this project better every day
If you find Stacy IDE helpful, please consider:
- โญ Starring the repository on GitHub
- ๐ Sharing it with the Stellar community
- ๐ Reporting bugs and requesting features
- ๐ป Contributing code and documentation



