Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Wally

Turn your simple ideas into Android apps in minutes, not months

Wally is a distributed system that transforms natural language specifications into instant-ready Flutter applications through automated code synthesis, multi-stage validation, and containerized compilation. The platform orchestrates multiple Large Language Models (GPT-4, Claude-3, Gemini-Pro) with a sophisticated feedback loop that achieves 92% first-pass code generation accuracy through iterative refinement and semantic validation.

preview

Working

  1. Generate — Your prompt and configured API provider are sent to the LLM, which generates Flutter/Dart code.
  2. Validate — Generated code is checked for required Flutter structure, forbidden operations, and dependency violations. Invalid output is automatically retried with feedback.
  3. Save — Validated code is stored as the initial application version.
  4. Build — The template manager assembles a complete Android project and queues the build. If compilation fails, the build error is sent back to the LLM for correction.
  5. Compile — A Celery worker runs flutter build apk --release inside an isolated Docker environment.
  6. Ship — The generated APK and build artifacts are stored, and the build status is updated.
  7. Live Updates — Build status and real-time logs are pushed to the browser through WebSockets.

Core Capabilities

Feature Description
🤖 Multi-LLM Support Choose between OpenAI, Anthropic, or Google GenAI
🔄 Auto Error Correction Failed generations and builds are retried with error feedback
🛡️ Security Validation 4-layer validation prevents network access, file I/O, and code injection
🏗️ Distributed Builds Scalable worker pool handles concurrent APK compilations
📊 Real-Time Updates WebSocket notifications provide live build progress and logs
💾 Version History Track code refinements and roll back to previous versions
🎨 Flutter Native Generate applications using the Flutter widget ecosystem

System Architecture

System architecture

Detailed Data Flow: Prompt to APK

Detailed data flow

Component Breakdown

Layer Technology Purpose Scalability
API Gateway FastAPI + Uvicorn REST endpoints and WebSockets Horizontal via load balancer
LLM Orchestration Python + Async Multi-provider LLM abstraction Stateless
Validation Dart Analyzer + Regex Code and security validation CPU-bound, cacheable
Task Queue Celery + Redis Async job processing Add more workers
Build Workers Docker + Flutter Isolated APK compilation Horizontally scalable
Database PostgreSQL App metadata and versions Read replicas
Cache / PubSub Redis Task broker and real-time events Redis Cluster
Storage MinIO / S3 APK artifacts Object storage

🛠️ Tech Stack

Backend

FastAPI        - Async Python web framework
SQLAlchemy     - PostgreSQL ORM
Celery         - Distributed task queue
Redis          - Cache, broker, and pub/sub
Pydantic       - Data validation and serialization
WebSockets     - Real-time client notifications

LLM Integration

OpenAI API     - Code generation
Anthropic API  - Code generation
Google GenAI   - Code generation
Streaming      - Real-time generation updates

Build Infrastructure

Docker         - Container isolation
Flutter SDK    - Dart compilation and Flutter builds
Android SDK    - APK packaging and signing
Gradle         - Android build automation
Kotlin         - Android Activity / Flutter embedding

Validation & Security

Dart Analyzer  - AST-based code validation
Regex Engine   - Pattern-based security checks
Validators     - Import and dependency whitelisting
cgroups        - Container resource limits

What You Can Build

✅ Counter apps, calculators, and unit converters
✅ Todo lists and note-taking apps
✅ Quiz and flashcard apps
✅ BMI and tip calculators
✅ Timers, stopwatches, and clocks
✅ Simple games such as tic-tac-toe and memory match

Installation

1. Clone Repository

git clone https://github.com/Skyiesac/wally.git
cd wally

2. Configure Environment

cp .env.example .env

3. Start All Services

docker-compose up -d

4. Verify Health

curl http://localhost:8000/health
{"status": "ok"}

5. Start Frontend

cd wally-frontend
npm install
npm run dev

Contributing

Contributions are always welcome!

  • ⭐ Give the repository a star if you like it.
  • 🐛 Open an issue if you find a bug.
  • 🔧 Submit a Pull Request to fix bugs or add new features.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages