BLUEALPHA

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-dev1.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-dev1.sola.inc/deploy \ -H "X-API-Key: sk_xxxxx" \ -F "name=my-app" \ -F "file=@app.zip"

Index status

Successful POST /deploy responses include seo_status. Check it to see whether Blue visibility, the app's <meta name="robots">, X-Robots-Tag, or robots.txt is preventing indexing.

GET /apps/{app_id}/seo-status

Site name in search results

On the public app homepage, use the real app name consistently in <title>, the primary heading, and og:site_name. Add WebSite JSON-LD with its name and the real public root url, and point the canonical URL to that same public root.

Blue does not automatically inject or overwrite metadata in existing apps. After changing a subdomain or custom domain, update JSON-LD, canonical, and Open Graph URLs, then verify them in Console's Index status. Search engines decide what to display and when to refresh it, so the result is not guaranteed.

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