BLUE

AI App Publishing Guide

Blue is a platform that lets AI-generated apps go live instantly. Let your AI choose a runtime (static / python / node / php), generate the code, and deploy via ZIP upload or API.

URL for AI

Share this URL with your AI to generate Blue-ready app code. All runtime specs are on one page.

https://blue.sola.inc/support/ai-ready/ai?lang=en
Open page to verify

Deploy environment

ChatGPT, Claude, and Gemini chat interfaces restrict outbound HTTP requests, so POST /deploy direct deployment is not available from these tools. Use them for code generation only, then ZIP the files and upload via Console.

Recommended tools: AI tools with local execution environments such as Codex and Claude Code can deploy directly using an API key.

How to deploy

Bundle the generated files into a ZIP and upload via Console, or use an API key with POST /deploy for direct deployment.

curl -X POST https://blue.sola.inc/deploy \ -H "X-API-Key: sk_xxxxx" \ -F "name=my-app" \ -F "file=@app.zip"

Static HTML / CSS / JavaScript

Best for landing pages, portfolios, mini games, and color pickers that should deploy quickly.

Required files

  • index.html
  • style.css
  • script.js

Rules

  • The current runtime image is based on python:3.12-alpine
  • Keep explanations minimal and return the app file by file
  • Do not depend on external CDNs or build tools
  • Make sure index.html can live at the ZIP root
  • Blue treats startup as successful when it can open a localhost TCP connection to the assigned port. No specific HTTP body or status code is required
  • Prefer a one-page app with visible motion or interaction
  • Do not assume persistent writable storage for the static runtime. Package images and assets inside the ZIP

Output format

FILE: index.html
```html
...
```

FILE: style.css
```css
...
```

FILE: script.js
```javascript
...
```

ZIP preparation

  • Place the three files directly inside one folder
  • You may include subdirectories such as images/ or assets/, but keep index.html at the ZIP root
  • ZIP that folder and upload it to Blue
  • Avoid an extra top-level directory inside the ZIP
  • If startup fails, feed the Blue logs back into the AI and iterate

Python app.py + requirements.txt

Best for small Python checkers such as an IP viewer, request inspector, or utility app.

Required files

  • app.py
  • requirements.txt

Rules

  • The current runtime image is based on python:3.12-slim
  • Use app.py as the entry file
  • Include requirements.txt
  • Listen on the PORT environment variable
  • Blue treats startup as successful when it can open a localhost TCP connection to the assigned port. No specific HTTP body or status code is required
  • Treat the container root filesystem as ephemeral. Put SQLite databases and other app data under /workspace/data (files inside /workspace/code may be accessible over HTTP)
  • Prefer a small Flask app or a standard-library-only app for the first pass

Output format

FILE: app.py
```python
...
```

FILE: requirements.txt
```text
...
```

ZIP preparation

  • Keep app.py and requirements.txt at the same level
  • You may include extra files or subdirectories in the ZIP when needed
  • Do not include venv files or caches in the ZIP
  • If startup fails, feed the Blue logs back into the AI and try again

Node package.json + server.js

Best for small utility apps, palette tools, and simple UIs with a light API.

Required files

  • package.json
  • server.js

Rules

  • The current runtime image is based on node:22-bookworm-slim
  • Include a start script in package.json
  • Make server.js listen on the PORT environment variable
  • Blue treats startup as successful when it can open a localhost TCP connection to the assigned port. No specific HTTP body or status code is required
  • Treat the container root filesystem as ephemeral. Put SQLite databases and other app data under /workspace/data (files inside /workspace/code may be accessible over HTTP)
  • Start small, but it is fine to use Express or similar libraries when the app needs them
  • Do not assume node_modules is bundled in the ZIP

Output format

FILE: package.json
```json
...
```

FILE: server.js
```javascript
...
```

ZIP preparation

  • Keep package.json and server.js at the ZIP root
  • You may include extra files or subdirectories in the ZIP when needed
  • Do not include node_modules
  • Make dependencies installable with npm install
  • If startup fails, feed the Blue logs back into the AI and try again

PHP index.php

Best for simple forms, sessions, utility pages, and lightweight boards in PHP.

Required files

  • index.php
  • Optional style.css

Rules

  • The current runtime image is based on php:8.3-cli
  • Put index.php at the root or in public/
  • Blue treats startup as successful when it can open a localhost TCP connection to the assigned port. No specific HTTP body or status code is required
  • Treat the container root filesystem as ephemeral. Put SQLite databases and other app data under /workspace/data (files inside /workspace/code may be accessible over HTTP)
  • Prefer a small, readable app centered on one main file
  • Avoid frameworks and composer for the first pass
  • Make sessions or form submission visible in the UI when relevant

Output format

FILE: index.php
```php
...
```

FILE: style.css
```css
...
```

ZIP preparation

  • Place index.php where the detector can find it
  • You may include extra files or subdirectories in the ZIP when needed
  • Pure PHP is easier for a first validation pass
  • Make the form or session behavior visible from the page
  • If startup fails, feed the Blue logs back into the AI and try again