肥大化したWordPressはもう不要 — ビジュアルエディタ搭載ハイブリッドCMS「Vvveb」レビュー
小さなウェブサイトやオンラインストア用のエンジンを選ぶ際、多くの場合、妥協点を探すことになります。片方には、更新のたびに次々と動かなくなるかさばったプラグイン群を抱えたWordPressがあります。もう片方には、フロントエンドをゼロから構築する必要があるStrapiやDirectusのような最新のヘッドレスシステムがあります。
最近、オープンソースプロジェクトのVvveb(givanz/Vvveb)を見つけました。これは、ビジュアルページビルダー、eコマース機能、ハイブリッドアーキテクチャを1つのコンパクトなPHPアプリケーションに統合しようという試みです。
GitHubでのスター獲得数はかなり控えめで、執筆時点で11,000少しです。しかし、その内部には多くの興味深いエンジニアリングソリューションが隠されています。
Vvvebの内部構造
VvvebはPHPで書かれた自己ホスト型CMSです。著者の主なアイデアは、ギガバイト単位の仮想環境にシステムを肥大化させることなく、開発者に готовую「オールインワン」ツールを提供することでした。

システムは2つのモードで動作できます:
- クラシックなモノリス。ページはサーバーでレンダリングされ、テーマはBootstrap 5で構築され、コンテンツは組み込みのビジュアルエディターを通じて編集されます。
- ヘッドレスCMS。REST APIまたはGraphQL経由で記事、商品、設定を取得するために、Vvvebをバックエンドとしてのみ使用できます。
管理パネルのインターフェースは整洁で、デフォルトでダークテーマをサポートしています:
|
|
|
|:---:|:---:|
| 管理パネル(ライト) | 管理パネル(ダーク) |
外部の巨人に頼らないドラッグ&ドロップエディター
通常、CMSにビジュアルビルダーを追加すると、管理パネルが重くなります。Vvvebの開発者は別のアプローチを取り、独自のエディターVvvebJsを書きました。これは、プレーンなHTMLとBootstrap 5で動作するバニラJS上の個別のJavaScriptライブラリです。
エディターは最終コードに不要なタグや特定のマークアップを埋め込みません。ブロックをドラッグ&ドロップし、スタイルを変更し、ページ上で直接テキストを編集すると、クリーンなHTMLが出力されます。

箱から出してすぐのオンラインストア
オンラインストア作成者は、多くの場合、WooCommerceのような重いプラグインをインストールする必要があります。Vvvebでは、基本的なeコマースモジュールが最初から組み込まれています。
すでにシステムに備わっている機能:
- シングルページチェックアウト。
- デジタル商品とファイルの販売。
- サブスクリプション販売モデル。
- クーポン、割引、プロモコード。
- 商品バリエーション、属性、レビューの管理。
|
|
|
|:---:|:---:|
| 管理パネルの商品カード | ストアフロント |
技術的詳細とシステム要件
インフラの観点から見ると、Vvvebは要求が厳しくありません。プロジェクトを起動するには以下が必要です:
- PHP 7.4以上(著者はPHP 8.3+を推奨)。
- 任意のデータベース:MySQL(5.7+)、MariaDB、PostgreSQL、またはSQLite。
SQLiteサポートは嬉しいボーナスです。 отдельныйデータベースサーバーを設定せずに、最も安いホスティングでクライアント向けの動作するサイトをすぐに立ち上げることはできません。
セキュリティアーキテクチャも十分に考え抜かれています。公的なWebアクセスに実際に公開されるPHPファイルは1つだけです。これにより、攻撃対象領域が狭くなります。デフォルトでブルートフォース保護、SQLインジェクションのエスケープ、管理ログインアドレスの非表示機能も動作します。
CLI経由でのプロジェクトデプロイ
インストールは1分もかかりません。 готовыйアーカイブをダウンロードするか、サブモジュール付きでリポジトリをクローンできます:
git clone --recurse-submodules https://github.com/givanz/Vvveb
スクリプトによるデプロイを好む場合、Vvvebにはコンソールデプロイコマンドがあります:
php cli.php install module=index host=127.0.0.1 user=root password=1234 database=vvveb admin[email][email protected] admin[password]=admin engine=mysqli
SQLiteを使用するには、単にengine=mysqliをengine=sqliteに置き換えるだけです。
このプロジェクトが役立つ人
Vvvebは 대규모エンタープライズフレームワークと競争しようとはしていません。迅速な開発のためのツールです。
このプロジェクトは次のような人に最適です:
- クライアントに便利な管理パネル付きのランディングページや小規模ストアを提供する必要があるフリーランサー。
- 商品管理用の готовыйGUIを備えた軽量なヘッドレスバックエンドを探している開発者。
- WordPressでの постоянныхセキュリティプラグインの更新に厌倦した人。
システムには弱点もあります。Vvvebのコミュニティはまだ小さく、Googleで特定の問題の答えを見つけるのは、一般的なエンジンよりも難しいでしょう。プロジェクトライセンスはAGPLv3で、 закрытый商用開発には考慮する価値があります。
それにもかかわらず、Vvvebは考え抜かれたモノリシックツールとして心地よい印象を残します。ビジュアルエディター付きの高速な「オールインワン」エンジンが必要な場合は、ぜひ注目する価値があります。
関連プロジェクト