This FAQ is organized in two sections: general questions about the project, its positioning and use cases, then technical questions about installation, configuration and development.
Answers are direct and based on official Blackcube documentation. For more details on a specific subject, consult dedicated pages.
General FAQ
Why choose Blackcube rather than WordPress or Drupal?
Blackcube positions itself differently. WordPress and Drupal are excellent for starting quickly with a plugin ecosystem. Blackcube offers architectural freedom: the CMS manages structured content, your team codes the application as it wishes. No imposed constraints, no dependency on third-party plugin ecosystem.
Choose Blackcube if you have a development team and specific business needs. Choose WordPress or Drupal to start fast without developer or with standard needs.
What is the cost of Blackcube?
Blackcube is free. BSD 3-clause license. No premium version, no paid plugins, no hidden costs. Code is open source, you do what you want with it.
Real cost is development: Blackcube requires PHP developers to create front-end and architecture. Budget to plan for initial integration, then standard PHP application maintenance.
Do I need a specialized Blackcube developer?
No. A PHP developer who masters MVC is enough. Blackcube uses Yii2, but doesn't impose complex patterns. Learning curve is fast: understand Types, BlocTypes, Nodes concepts. A Yii2 developer is operational immediately, a standard PHP developer in a few days.
Can I migrate from WordPress or Drupal?
Yes, but it's a complete technical migration, not a simple import. Content can be imported via Blackcube API. Front-end must be entirely recoded. Budget this migration as a new project, but it's an investment that eliminates accumulated technical debt.
What happens if Blackcube disappears?
Code is open source under BSD license, hosted on GitHub. If project stops tomorrow, your code continues to work. No publisher dependency, no proprietary lock-in. Maintenance possible of your own CMS version if necessary.
Is Blackcube suitable for e-commerce?
Blackcube manages e-commerce site content (product pages, categories, editorial content), but doesn't provide transactional features (cart, payment, stock, delivery). For complete e-commerce, favor WordPress with WooCommerce or Drupal Commerce which have mature ecosystems.
Choose Blackcube if you're developing custom e-commerce solution and need CMS only for editorial part.
Does Blackcube impose design constraints?
No. Total HTML/CSS rendering control. Each page type uses its own display code. Blackcube injects content into your controller, you do what you want with it. No limitation on creativity, exact mockup respect. Crucial point: this control allows guaranteeing RGAA accessibility.
How does content evolve without breaking the site?
Blackcube uses ElasticModel with JSON Schema. Adding new field requires no database migration. Modify BlocType's JSON Schema: old content remains valid, new fields return empty value on old content. Progressive evolution without risk.
What are maintenance costs?
Standard PHP application maintenance. No frequent redesign needed like with some CMSs. No third-party plugins to maintain. Blackcube and Yii2 updates to manage, but no surprises. Code remains under your control, no dependency on external ecosystem that evolves unpredictably.
Does Blackcube collect data?
No. Blackcube collects no data. No telemetry, no usage statistics, no connection to external servers. CMS runs entirely on your infrastructure. Simplified GDPR compliance.
What is the learning curve for contributors?
Intuitive backoffice interface. Contributors assemble blocks to create their pages. No technical knowledge needed. Quick training: understand available block types and how to assemble them. Modern and accessible interface.
Is Blackcube suitable for government or public site?
Choose Blackcube for: controllable RGAA accessibility through total HTML control, no dependency on third-party services, auditable open source code. Limit: less sophisticated validation workflows than Drupal natively, but codable custom according to needs.
Technical FAQ
What are required dependencies?
PHP 8.3 minimum, MySQL 5.7+ or MariaDB 10.2+ (PostgreSQL supported with reservations), Composer. PHP extensions: ext-intl, ext-json, ext-mbstring, ext-gd. Main dependencies: Yii2, Blackcube Core, Blackcube Admin. Optional Redis for cache.
How to install Blackcube?
Installation via Composer in existing Yii2 project. Main commands: install blackcube/core and blackcube/admin packages, run migrations, initialize RBAC rights, create first administrator. Complete installation in a few minutes. Detailed documentation in Installation section.
How to create my first Type and BlocType?
Types and BlocTypes are created in backoffice. A Type defines controller/action that will render content. A BlocType defines data structure via JSON Schema. Then link Type to authorized BlocTypes. Controller must extend BlackcubeController or implement BlackcubeControllerInterface. Complete documentation in Types and BlocTypes.
How does routing work?
Blackcube intercepts all requests, searches for slug corresponding to URL, executes controller/action defined in Type, and automatically injects content into $this->element. If slug doesn't exist, Blackcube passes to classic Yii2 routing. Perfect cohabitation between CMS and application. Documentation in Routing.
How to manage multilingual?
Blackcube provides structure: each content has languageId, each URL is specific to language. Slugs handle multilingual URLs via prefixes or different domains according to international strategy. Translation logic remains free: custom fields, external services, everything is possible. Blackcube doesn't dictate process.
What is Hazel Tree?
Ultra-performant tree system based on rational fractions rather than classic parent-child references. Allows retrieving entire tree branch in single query. Instant navigation even with thousands of pages. Implementation of Dan Hazel's research work. No action necessary, everything is automatic.
What is ElasticModel?
Technical layer that allows storing structured data in JSON while manipulating them like classic PHP properties. Combines JSON flexibility with power of Yii2 ActiveRecord. Automatic validation via JSON Schema. Allows data model evolution without SQL migration. Used by BlocTypes.
How to manage cache?
Automatic and granular cache. Blackcube uses Yii2's DbQueryDependency: each query defines its dependencies (tables to monitor), cache automatically invalidates when table changes. Modifying article invalidates only that article's cache. Configuration via module: cache duration, possible custom cache component.
Can I use Blackcube with my existing architecture?
Yes. Blackcube integrates into any Yii2 application. Basic, advanced or custom structure. Blackcube handles priority routing for CMS URLs, passes to Yii2 for rest. Perfect cohabitation: Blackcube for editorial content, Yii2 for APIs and technical features.
How to customize backoffice?
Admin module accepts custom templates via adminTemplatesAlias and additional CSS/JS assets via additionalAssets. Possible addition of admin modules for specific business features. Complete backoffice extension according to needs.
Does Blackcube work with PostgreSQL?
Supported but tested mainly on MySQL/MariaDB. Errors may occur with PostgreSQL. Open GitHub issue if necessary. For production, MySQL or MariaDB recommended.
How to manage uploaded files?
Blackcube uses Flysystem. Local storage by default, S3 supported. Uploaded files have @blackcubefs/ prefix and must be processed via Html::cacheFile() for documents or Html::cacheImage() for images. These helpers resolve Flysystem path, cache file, and return public URL.
Can I use Redis?
Yes. Configuration in container to use Redis as main cache and for sessions. Environment variables to activate Redis. Full support with RedisCache and RedisSession. Documentation in Configuration.
How to manage backoffice permissions?
Integrated RBAC system. Granular permissions per module (Node, Composite, Tag, etc.) and per action (CREATE, UPDATE, DELETE, VIEW, EXPORT, IMPORT). Management via backoffice in Users. Permissions control only backoffice access, not front-end.
Are blocks shared between contents?
No. A block belongs to single content. Creating 10 pages with same BlocType creates 10 different blocks. Modifying block affects only its content. No blocks shared between contents. Deliberate architecture to avoid side effects.
How to optimize performance?
Blackcube is performant by design. Hazel Tree optimizes tree, automatic granular cache, ElasticModel avoids migrations. To go further: use Redis for cache, optimize images via Html::cacheImage(), use Element helpers to filter blocks efficiently. Horizontal scaling possible.
Can I contribute to the project?
Yes. Open source project under BSD license. GitHub open to contributions: bug fixes, new features, documentation. Respect Blackcube philosophy: developer freedom, no pattern imposition.