# Web On The Fly Flask app that streams AI-generated fake websites via Server-Sent Events (SSE). Each visit generates a unique, realistic-looking website on the fly. ## How it works 1. Visit `/` → you see a loading page with a spinner and live character counter 2. The client opens an SSE connection to `/stream` 3. The server calls an LLM (OpenAI-compatible API) to generate a complete HTML page 4. Chunks are base64-encoded and streamed back via SSE 5. Client buffers chunks in-memory, then replaces the document when generation is done Each page is randomized: different site type (fake store, wiki, blog, forum, etc.), theme, and mood. ## Local dev with Podman Build: ```bash podman build -t localhost/web-on-the-fly:latest -f Containerfile . ``` Run (requires `.env` with `OPENAI_API_KEY`): ```bash podman run --env-file .env -p 5000:5000 localhost/web-on-the-fly:latest ``` ## Environment variables Loaded from `.env` via `python-dotenv`: | Variable | Required | Default | Description | |---|---|---|---| | `OPENAI_API_KEY` | Yes | — | API key for the LLM provider | | `OPENAI_API_URL` | No | `https://api.openai.com/v1/chat/completions` | OpenAI-compatible endpoint | | `MODEL` | No | `gpt-4o-mini` | Model name to use | | `VALKEY_URL` | No | `redis://localhost:6379/0` | Valkey/Redis URL | ## Site types Generated pages can be any of: - **fake_store** — online stores with products, prices, reviews - **fake_homepage** — personal portfolios, artist sites, food blogs - **fake_social** — social media profiles, Reddit threads, dating app pages - **fake_wiki** — Wikipedia-style articles about fictional topics - **fake_forum** — retro forums with threads and discussions - **fake_blog** — tech blogs, lifestyle blogs, horror story blogs - **fake_news** — local news, sports, celebrity gossip - **fake_app** — SaaS dashboards, mobile app landing pages - **fake_other** — fake email inboxes, search results, 404 pages, etc.