- How do I install think.studio/nova-flexible-content in a Laravel Nova project?
- Install it with composer require think.studio/nova-flexible-content, then register the field class in the fields method of your Nova resource. Add a json or text column to the underlying table and cast the model attribute to array so Nova and your application both read the block payload correctly. Because laravel/nova is a paid, closed-source package that is not distributed through Packagist, your Composer install also needs Nova repository credentials configured.
- Does think.studio/nova-flexible-content support Laravel Nova 4 and Vue 3?
- Nova 4 and later moved to Vue 3, and field packages compiled for Nova 3 will not load in the Nova 4 admin panel. The repository overview does not state a supported Nova major version, so read the laravel/nova constraint in composer.json and verify it against the Nova version you actually run before installing. Testing the field in a staging Nova instance is the only reliable confirmation.
- Is think.studio/nova-flexible-content a fork of whitecube/nova-flexible-content?
- The package has zero stars, zero dependents, an unusual think.studio vendor namespace, and implements a field type with a well-known MIT upstream in whitecube/nova-flexible-content, formerly Optimist Digital. That pattern strongly suggests a fork or repackage rather than an independent implementation. Diff the source against upstream and document the delta before treating it as a separate dependency; if there is no meaningful difference, depend on upstream directly.
- How does nova-flexible-content store flexible content and repeater data in the database?
- Flexible content and repeater data is serialized into a single JSON or text column on the model and cast to an array in Laravel. Each record stores an ordered list of named layouts, and each layout carries its own set of nested field values. There is no relational schema for the blocks, so queries and reporting over block-level values require JSON path expressions or application-side processing.
- Does nova-flexible-content honor nested validation, dependsOn, canSee, and readonly on child fields?
- Validation rules must be applied per layout with correct attribute paths such as blocks.0.fields.title, and this is a common failure point for Nova field packages. The overview does not document how nested validation errors surface or whether dependsOn, canSee, readonly, and file uploads are honored on child fields inside a layout. Verify each of these behaviors in your own Nova instance before relying on them in production.
- What license does think.studio/nova-flexible-content use and can I use it commercially?
- GitHub reports the license as NOASSERTION, meaning no standard license file was detected and there is no explicit grant of rights. Under default copyright you cannot redistribute or embed the code in a commercial product without written permission from the copyright holder. Treat this as a blocking item and obtain an MIT or Apache-2.0 grant, or a commercial-use waiver, before adoption.
- How do I render flexible content blocks in Blade on the front end?
- The package stores each record's blocks as JSON and leaves front-end rendering to you, so you write your own Blade views rather than using a built-in renderer. A typical approach loops the decoded blocks, switches on the layout name, and outputs the nested field values for that layout. Confirm the exact data shape produced by the field in your own database before writing the templates.
- What happens to stored data if I rename or remove a layout in nova-flexible-content?
- JSON storage has no schema, so renaming or removing a layout orphans the existing records' data without a migration path or a validation error. There is no built-in versioning or revision concept unless you build one. Plan a migration script that transforms stored payloads whenever layouts change, or explicitly accept the data loss.
- What are the alternatives to think.studio/nova-flexible-content for repeatable content in Laravel Nova?
- The best-known alternative is whitecube/nova-flexible-content, the MIT-licensed upstream that this package most likely derives from, which is a safer default for provenance and licensing. Evaluate alternatives on the same criteria: supported Nova major versions, nested validation and authorization behavior, file upload handling, and an upgrade path for stored JSON. Diff any candidate against upstream and read the code before adopting.
- How do I test a Nova field package like this in CI?
- There is no CI or test harness evidence in the repository, and Nova itself cannot be installed from Packagist without private repository credentials. To run the package's tests in your pipeline you would need to provision a Nova license as a CI secret. If you cannot do that, budget for manual review of every PHP and Vue file, since field packages execute in the admin panel with full authenticated-user context.