Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Ink Laravel Package

relaticle/ink

Filament-native content publishing for Laravel: Eloquent models, full admin for posts/categories, SEO + JSON-LD, RSS, search, Blade UI components, and 13 MCP tools for AI agents. Headless by default with optional public blog routes.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Filament-Native Design: Seamlessly integrates with Filament 5.x, leveraging its admin panel, resources, and UI components. The package’s Filament-first approach aligns well with Laravel applications already using Filament for admin workflows, reducing context-switching for developers.
  • Headless + Opt-in Public Routes: The dual-mode architecture (headless or pre-configured /blog routes) provides flexibility. Teams with custom routing needs can use Blade components directly, while those needing quick deployment can enable public routes with minimal config.
  • SEO and Structured Data: Built-in JSON-LD schema (BlogPosting, FAQPage, etc.) and SEO components (meta tags, Open Graph, RSS) reduce manual effort for content-heavy sites. This is particularly valuable for blogs, documentation, or AI-citable content.
  • MCP Tools for AI Integration: The Model Context Protocol (MCP) tools enable AI agents to interact with the blog via CRUD operations (e.g., publishing posts programmatically). This is a future-proofing feature for AI-driven content workflows.
  • Modular Features: Opt-in features (tags, MediaLibrary, feed) allow granular adoption, reducing bloat in monolithic applications.

Integration Feasibility

  • Laravel 12/13 + PHP 8.4: Compatibility with modern Laravel stacks is a plus, but Filament 5.x is a hard dependency. Teams using older Filament versions (e.g., 3.x/4.x) will need to upgrade, which may introduce migration risks.
  • Database Schema: The package includes migrations for Eloquent models (posts, categories, tags), but custom schema extensions (e.g., adding columns to posts) may require manual overrides.
  • Blade Component Integration: The package provides reusable Blade components (<x-ink::post-header>, etc.), but custom styling or layout changes will necessitate publishing and overriding views (php artisan vendor:publish --tag=ink-views).
  • MediaLibrary Dependency: The optional spatie/laravel-medialibrary integration adds complexity. Teams already using MediaLibrary will benefit from seamless featured-image handling, but others will face a trade-off: either stick with FileUpload or adopt MediaLibrary for full integration.
  • Route Conflicts: Public-routes mode registers /blog, /blog/{slug}, etc. Teams with existing routes in these paths will need to resolve conflicts (e.g., via middleware or route grouping).

Technical Risk

  • Filament Version Lock: The package is tightly coupled to Filament 5.x. If Filament introduces breaking changes, Ink may require updates, potentially delaying adoption.
  • MediaLibrary Migration Complexity: While the package gracefully falls back to FileUpload, migrating existing featured_image data to MediaLibrary is not automated (requires Phase 3 or manual scripts). This could be a blocker for large-scale migrations.
  • SEO Component Customization: The SEO components (e.g., <x-ink::meta-tags>) are opinionated. Teams with custom SEO strategies (e.g., dynamic meta tags based on user segments) may need to override or extend these components.
  • Performance at Scale: The package includes search scopes (LIKE by default) and related-posts helpers, which could impact performance on large blogs. Teams with high-traffic sites may need to optimize queries (e.g., switch to Scout/Algolia for search).
  • AI/MCP Tooling Maturity: While MCP tools enable AI integration, their long-term stability and adoption in the Laravel ecosystem are unproven. Teams relying on this feature should monitor its evolution.

Key Questions

  1. Filament Adoption: Is Filament 5.x already in use, or will this require an upgrade? What’s the migration effort?
  2. Routing Strategy: Will the team use headless mode (custom routes) or public-routes mode? Are there existing /blog routes to conflict with?
  3. MediaLibrary Decision: Should we enable features.media_library? If yes, is spatie/laravel-medialibrary already in use, or will this require a new dependency?
  4. SEO Customization Needs: Are the built-in SEO components sufficient, or will they need to be extended/overridden?
  5. Performance Requirements: How will search and related-posts queries scale? Are there plans to integrate Scout or another search engine?
  6. AI Integration Plans: Will the MCP tools be used for AI-driven content workflows? If so, what’s the timeline for testing and adoption?
  7. Content Volume: How many posts/categories/tags are expected? Large volumes may require optimizations (e.g., database indexing, caching).
  8. Deployment Workflow: How will content be published (manual via Filament, or automated via MCP/AI)? Are there approval workflows needed?
  9. Localization: Does the blog need multi-language support? Ink doesn’t explicitly support localization, so this would require custom implementation.
  10. Monitoring: Are there plans to track blog performance (e.g., page views, SEO rankings)? Ink doesn’t include analytics, so this would need to be added separately.

Integration Approach

Stack Fit

  • Laravel + Filament: Ink is optimized for Filament 5.x, making it a natural fit for Laravel applications already using Filament for admin interfaces. The package extends Filament’s resource system with blog-specific functionality (posts, categories, tags) without disrupting existing workflows.
  • Blade + Tailwind: The provided Blade components are Tailwind CSS-ready, ensuring consistency with modern Laravel frontend stacks. Teams using Inertia.js or Livewire will find the components easy to integrate.
  • SEO and Structured Data: The built-in SEO tools (JSON-LD, Open Graph, RSS) align with modern web standards, reducing the need for third-party packages like spatie/laravel-seo.
  • AI/Automation: The MCP tools enable programmatic content management, which is valuable for teams using AI tools (e.g., GitHub Copilot, custom LLMs) to generate or edit blog posts.

Migration Path

  1. Prerequisites:
    • Upgrade to Laravel 12/13 and Filament 5.x (if not already using them).
    • Ensure PHP 8.4 compatibility (e.g., update dependencies).
  2. Installation:
    • Composer install: composer require relaticle/ink.
    • Register the plugin in AppPanelProvider.php:
      ->plugin(\Relaticle\Ink\InkPlugin::make())
      
    • Run migrations: php artisan migrate.
  3. Configuration:
    • Publish config: php artisan vendor:publish --tag=ink-config.
    • Enable desired features in config/ink.php (e.g., public_routes, tags, media_library).
    • If using MediaLibrary, install and configure it separately:
      composer require spatie/laravel-medialibrary
      php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="medialibrary-migrations"
      php artisan migrate
      
  4. Frontend Setup:
    • Publish views (if customizing): php artisan vendor:publish --tag=ink-views.
    • Integrate Blade components into existing layouts (e.g., <x-ink::post-header :post="$post" />).
  5. Optional: Public Routes:
    • Enable public_routes in config to auto-register /blog routes. No controllers needed.
  6. Testing:
    • Verify Filament admin (posts, categories, tags).
    • Test public routes (if enabled) and SEO components.
    • Validate MCP tools (if using AI integration).

Compatibility

  • Filament 5.x: Required. Earlier versions will not work without significant refactoring.
  • Laravel 12/13: Supported. Older versions may lack required features (e.g., PHP 8.4 syntax).
  • PHP 8.4: Mandatory. Downgrading is not supported.
  • Spatie MediaLibrary: Optional but recommended for advanced featured-image handling. Falls back gracefully if not installed.
  • Blade/Tailwind: Components are designed for Blade + Tailwind. Inertia/Livewire users can adapt them easily.
  • SEO Packages: Ink includes its own SEO tools, but conflicts with packages like spatie/laravel-seo are unlikely if not already in use.

Sequencing

  1. Phase 1: Core Integration
    • Install Ink and configure basic features (public_routes, tags).
    • Migrate existing content (if any) to the new schema.
    • Test Filament admin and public routes.
  2. Phase 2: Advanced Features
    • Enable MediaLibrary for featured images (if needed).
    • Customize Blade components/views.
    • Integrate SEO tools (e.g., sitemap, RSS).
  3. Phase 3: AI/Automation
    • Test MCP tools for AI-driven content workflows.
    • Implement approval workflows or custom logic for published posts.
  4. **Phase
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
sentix/ai-chatbot
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky