Yeeted

HOSTING FOR AI-BUILT APPS

Deploy a PHP guestbook with PostgreSQL on Yeeted

A Yeeted sample on the zero-framework PHP path: no composer.json, just index.php - exactly what the platform's plain-PHP detection serves.

Tests: php tests/test.php (unit + HTTP via the built-in server) · GUESTBOOK_URL=https://... tests/integration.sh · ./smoke.sh https://....

Run locally

Install PHP with PDO SQLite and mbstring. PDO PostgreSQL is needed when DATABASE_URL is set. From php/guestbook-php:

php tests/test.php
php -S 127.0.0.1:8000 index.php

Open http://localhost:8000. With no DATABASE_URL, the app stores entries in guestbook.db; GB_SQLITE can select another local file. The router argument is needed so API paths reach index.php in the PHP development server.

Deploy and verify

Follow the deployment walkthrough. Deploy this folder, including lib.php, the migrations, and yeeted.yaml. Yeeted detects plain PHP without a Composer manifest and supplies PostgreSQL credentials. The store applies pending migrations when it is first opened by a request.

sh smoke.sh "$PREVIEW_URL"
GUESTBOOK_URL="$PREVIEW_URL" sh tests/integration.sh

Use the HTML form to sign the guestbook, or send a JSON API request:

curl -i "$PREVIEW_URL/api/entries" -H 'Content-Type: application/json'   -d '{"author":"Demo reader","message":"Hello from Yeeted"}'
curl -fsS "$PREVIEW_URL/api/entries"

A valid API write returns 201; blank author or message returns 400. HTML form submission redirects with 303 after a successful write. The unit test script covers the local SQLite-backed path and HTTP behavior.

What to change before real use

The guestbook accepts public writes and includes no account system or spam moderation. Add those controls before collecting real entries. SQLite testing uses a mechanical SQL dialect conversion and does not prove PostgreSQL compatibility. Coordinate migrations before starting concurrent replicas.

All examples · Deploy an example