Frontend Integration (Vite)

Pionia is API-first. v3 adds first-class Vite scaffolding — React, Vue, and Svelte templates with a dev proxy to /api/v1/.

Scaffold on new project

When creating an app you can pick a frontend template interactively or pass a flag:

php pionia new my-app --install --vue-ts
composer create-project pionia/pionia-app my-api -- --react-ts
Framework flagStack
react-tsReact + TypeScript (default when prompted)
vue-tsVue + TypeScript
svelte-tsSvelte + TypeScript

--with-frontend=react-ts is an alias for the framework flag. Non-TTY environments (CI, tests) skip prompts unless a flag is passed.

Scaffold in existing project

php pionia frontend:scaffold --framework=react-ts --yes
Framework flagStack
react-tsReact + TypeScript
vue-tsVue + TypeScript
svelte-tsSvelte + TypeScript

Creates frontend/ with Vite config proxying API calls to your Pionia dev server.

Development

Terminal 1 — API:

php pionia serve

Terminal 2 — Vite:

php pionia frontend:dev

Production build

php pionia frontend:build

Assets land in public/assets/; SPA entry is served via SPA fallback when public/index.html exists (see [frontend] SPA_FALLBACK in settings.ini).

Cleanup

php pionia frontend:clean   # remove build output
php pionia frontend:drop    # remove frontend/ tree

CORS

Default scaffold includes [cors] for http://localhost:5173 in settings.ini.