November 5, 2026

DyskFlow — Laravel CMS.

Backend · Frontend
Laravel PHP JavaScript CSS MySQL SQLite

A Laravel CMS with no build step: install through a wizard without a terminal, update from GitHub with one button, and get built-in SEO, two languages, plugins, and freely coded landing pages.

#cms #laravel #seo #multilingual #plugins #self-hosted

Description

DyskFlow is a Laravel-based CMS in the spirit of WordPress, except that landing pages are coded separately, by hand or with AI, as Blade files in a landing/ folder. There is nothing to build: no Node, no Vite, and the hosting does not need Composer.

Goal

Make a Laravel CMS that installs and updates the way a shared-hosting user expects: upload the files, open the site, follow a wizard, and later press a button to update, all without opening a terminal.

Features

  • An install wizard that can also fetch vendor without a terminal.
  • Articles and pages with SEO built in: meta tags, canonical URLs, Open Graph, JSON-LD, a search-result preview, and a checklist.
  • Categories, tags, moderated comments, and media.
  • Indonesian and English content with per-language URLs such as /en/blog/slug, plus hreflang, sitemaps, and an RSS feed per language.
  • Landing pages and custom pages as Blade code, with the home page chosen in settings from a landing page, the article list, or a regular page.
  • A dashboard showing what needs attention, key numbers, recent comments, the publishing schedule, and site status, according to each user’s permissions.
  • Plugins with hooks and automatically generated settings pages, plus users and roles.
  • Settings for general, contact, email, SEO, media, comments, pages, plugins, activity log, backup, import and export, and updates.
  • Two-factor authentication (TOTP) with recovery codes.
  • A trash for articles, pages, and comments, so deletions can be undone.
  • Cookie-free view counts, a privacy guide with a draft policy, and a site health page.
  • Global search (⌘K or Ctrl+K), notifications in the header, and dark mode.

Technologies

  • Laravel 13 on PHP 8.3+ with Blade templates
  • MySQL or SQLite through pdo_mysql or pdo_sqlite
  • Plain CSS and JavaScript, with no build step
  • GitHub Actions to publish each release with its vendor.zip

How to Run

For local development, run composer install, then php artisan serve, and php artisan test for the tests. On hosting, upload the files without vendor, open the site, press Pasang sekarang, and follow the wizard. The repository’s SETUP.md covers both in full.

Technical Decisions

Sites download vendor from a GitHub Release, so neither Composer nor a terminal is needed on the server. An update takes a database backup first, pulls the code from the latest release, replaces vendor only when composer.lock has changed, and runs the migrations. It never overwrites .env, storage, landing, plugins, public/uploads, or cms.json, so a site’s own content and code survive every update.

Notes

Part of the DyskLab organization and released under the MIT license. A screenshot may be added later.

Hey! I’m Fanny, the software engineer tending to this digital garden. You can read more about me, or subscribe by email.

Comments