🧱 THE FOSS STACK

(latest · maintained · interconnected — Jun 2026)

🧩 Layer🛠️ Tool🔖 Latest⚖️ License💚 Upkeep🎯 Role in QuizWizz
🏛️ PlatformWordPress7.0 “Armstrong” (May 20, 2026)GPLv2+✅ activeHost CMS + admin + REST
🐘 RuntimePHP8.5 (min recommended 8.3)PHP LicenseServer language
🗄️ DBMariaDB11.x LTSGPLv2Quizzes / attempts
📦 DepsComposer2.xMITPSR-4 autoload
🧬 Data modelWP CPTs + REST APIcore 7.0GPLv2+quiz / question types
🧠 AI plumbingWP Abilities APInew in 7.0GPLv2+✅ newExpose quiz-gen to AI hub
🗂️ Admin UIWP Data Views + @wordpress/componentscore 7.0GPLv2+Genius backend config
🧱 EmbedBlock API v3 (@wordpress/create-block)4.xGPLv2+Drop quiz on any page
🎮 Browser playAlpine.js3.15.x (~7.1 kB, no build step)MIT✅ (May 2026 release)Client-side render + grade
📚 Dataset (ready MCQ)OpenTDBlive APICC BY-SA 4.0Instant playable questions
📚 Dataset (big EN)TriviaQA~95k QsCC BY 4.0stableVolume bank
🌍 Dataset (pre-translated)Global-MMLU42 langs / ~590kopen*Skip translation entirely
🤖 AI gatewayOpenRouterlive (400+ models)⚠️ SaaS, not FOSSTranslate + chat agent
🔄 Model pickerGET /api/v1/modelsedge-cached, sortable (newest/price/popular)Hourly-refreshed dropdown
🖨️ Print (simple)window.print() + @media printweb std— (native)Printable results + key
📄 PDF (server)mPDF8.3.1 · PHP 8.5 since 8.2.6GPL-2.0Saved/emailed/non-Latin
📤 ShareWeb Share APIweb std— (native)Socials
CompliancePlugin ChecklatestGPLv2+Mandatory pre-ship gate
🧹 StandardsPHPCS + WPCS3.xBSD/MITLint to WP rules
🧪 TestsPHPUnit11.xBSD-3Unit/integration

Target topology

ComponentValue
Domain / webrootqwizz.0rk.de/var/www/qwizz.0rk.de (created fresh; absent today)
DNSqwizz.0rk.de A → 173.212.213.72 = this host (verified) → ACME HTTP-01 will pass
TLSnew Let’s Encrypt cert via certbot certonly --webroot (none exists yet)
PHP8.4 FPM via deb.sury.org · socket /run/php/php8.4-fpm.sock · pool user www-data
DBMariaDB 10.11.11 · db quizwizz (+ quizwizz_test) · user quizwizz_user@localhost · prefix wp_
WordPresslatest stable (7.0; wp core download --version=latest) · permalinks /%postname%/
Plugin slugquizwizz/var/www/qwizz.0rk.de/wp-content/plugins/quizwizz
Block namequizwizz/quiz (apiVersion 3, dynamic, server-rendered) · REST quizwizz/v1
SSOT doc/home/dv/quartz-ssot/content/projects/quizwizz/plan.mdnpm run quartz build

Two command helpers used throughout (www-data owns all webroot files; HOME/caches must be writable):

WP="sudo -u www-data env HOME=/tmp WP_CLI_CACHE_DIR=/tmp/.wp-cli wp --path=/var/www/qwizz.0rk.de"
RUN="sudo -u www-data env HOME=/tmp COMPOSER_HOME=/tmp/.composer"   # for cwd-bound npm/npx/composer