Just posting xiyar to the world 🌎
One obvious file
Inspired by Pieter Levels-style shipping: start with index.php, keep the whole product legible, and avoid framework ceremony until the app actually needs it.
index-php stack demonstration
This app demonstrates the devopsellence vibe feature with the smallest useful stack: one PHP file, SQLite, Docker, and a solo deploy contract ready for a normal VPS.
This stack borrows the Levels-style instinct: prove the product with direct, inspectable code before adding architecture. devopsellence keeps that fast path deployable.
Inspired by Pieter Levels-style shipping: start with index.php, keep the whole product legible, and avoid framework ceremony until the app actually needs it.
PHP-FPM, nginx, SQLite, and Docker are ordinary tools. The stack stays easy to run, inspect, back up, and replace.
A useful MVP can live on one VPS with one writable volume. Cloud services come later for real pressure, not scaffolding anxiety.
devopsellence wraps the tiny app with health checks, volumes, dry-runs, logs, and solo deploy flow so simplicity still ships cleanly.
The point is not a bigger framework. The point is how far a plain app can go when the runtime, persistence, and deploy contract are explicit.
One public/index.php entrypoint, readable enough to audit in a minute.
SQLite writes land on /app/data with WAL and busy timeout enabled.
Docker image, web port 80, /healthz, persistent volume, production env.
Built for a single VPS first. No managed database or second platform required.
Vibe turns the initial idea into a conservative production shape: local first, dry-run before deploy, and no external services until the app earns them.
Capture the app idea and stack constraints from vibe.
Start from index-php: PHP 8.4, nginx, SQLite, Docker.
Build the actual app, keeping product code in one file.
Run scripts/check and package with the existing Dockerfile.
Dry-run first, then pick a node, DNS, TLS, and secrets explicitly.
The app is ready for devopsellence solo mode. Real node provisioning, DNS, TLS, and secrets are intentionally later.
services:
web:
ports:
- name: http
port: 80
healthcheck:
path: /healthz
port: 80
volumes:
- source: create-a-web-app-demonstrating-devopsellence-vib-data
target: /app/data
env:
APP_ENV: production
DB_PATH: /app/data/app.sqlite
/healthz returns JSON without opening SQLite.devopsellence deploy --dry-run and user approval.A tiny persisted SQLite surface, just enough to prove state without expanding the stack.
Just posting xiyar to the world 🌎