Weave 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 blogs, docs, and AI-citable articles. Ships Eloquent models, a full Filament admin, MCP tools for AI agents, SEO and JSON-LD components, publishable Blade UI, and an opt-in public-routes mode for a working blog without controllers.

View on GitHub
Deep Wiki
Context7

Ink is Filament-native content publishing for blogs, docs, and AI-citable articles. It ships Eloquent models, a full Filament admin with markdown editing and draft/published/scheduled workflows, SEO components, and MCP tools for AI agents—so you get a working publishing stack instead of wiring controllers yourself. Choose headless mode to define your own routes, or flip one config flag for public-routes mode and get /blog, category pages, and signed previews out of the box.

  • Filament Admin — post and category resources with SEO fields, featured images, and bulk actions
  • SEO & JSON-LD — meta tags, Open Graph, RSS, plus BlogPosting, FAQPage, and HowTo schema
  • Search — portable Post::search() scope and a drop-in BlogSearch Livewire component
  • 14 MCP Tools — full CRUD and image uploads for AI agents, gated through Sanctum abilities
  • Publishable UI — post card, header, body, related posts, and category badge, all dark-mode ready
Frequently asked questions about Ink
What is relaticle/ink and what does it actually include?
Ink is a Laravel and Filament package that turns an existing Filament panel into a content publishing system for blogs, docs and AI-citable articles. It ships Eloquent models for posts and categories, a full admin with markdown editing and scheduling, SEO meta tags, JSON-LD schema, publishable Blade components, MCP tools for AI agents, and an optional public-routes mode. It is headless by default, so you can keep your own controllers and routes if you prefer.
How do I install relaticle/ink in a Laravel application?
Run composer require relaticle/ink, register InkPlugin::make() in your Filament panel provider, then run php artisan migrate. You can optionally publish the config and views with vendor:publish to customise behaviour and markup. No second CMS or auth system is needed because the admin lives inside your existing Filament panel.
Which Laravel, PHP and Filament versions does Ink require?
The current release requires PHP 8.4, Laravel 12 or 13, and Filament 5.x, so this is a hard gate rather than a preference. If your application is on PHP 8.3, an older Laravel, or Filament 3 or 4, the evaluation ends there until you upgrade. Check the composer constraints and CI badges before comparing Ink with alternatives.
Can I use Ink headless without enabling the public blog routes?
Yes, headless is the default install mode. You define your own routes and controllers and render posts with the publishable Blade components such as x-ink::post-header, x-ink::meta-tags and x-ink::structured-data. Flipping features.public_routes registers an opinionated /blog route group with listings, category and tag pages, RSS and signed previews, so you can adopt the routing later once you trust it.
Can I use my own Post model or add custom fields to Ink?
There is no post_model config key in the current release, and the documentation explicitly defers model configurability to a later phase. Ink owns the blog_posts table, so host-specific requirements such as multi-tenant scoping, custom fields, editorial workflow states or localization have to be expressed as migrations against that table or as a fork. Treat that as an architectural commitment and evaluate it before anything else.
Will Ink's public /blog routes collide with my existing routes?
The opt-in routes for /blog, /blog/{slug}, /blog/category/{slug}, /blog/tag/{slug}, /blog/feed and /blog/preview/{post} register globally at the service provider level rather than inside the panel. Any existing marketing site, legacy redirect or customer-owned /blog path will conflict, so establish who owns that namespace first. If you need a different prefix, plan for a route-prefix config change or a host-side guard before flipping the flag.
How do the MCP tools work and is it safe to enable them in production?
Ink ships a ready-to-register BlogServer exposing 14 MCP tools for full CRUD on posts and categories plus image uploads, authorised through your app's Gate and Sanctum token abilities and requiring laravel/mcp. Markdown is HTML-stripped and unsafe links are blocked, which is a sensible baseline. It is still token-based write access to public-facing content, so run a security review and put an approval gate in front of it before enabling it in production.
How does Ink handle SEO meta tags, JSON-LD and FAQPage or HowTo schema?
Post pages emit BlogPosting and BreadcrumbList schema, listings emit Blog and CollectionPage, and the package generates meta tags, Open Graph, Twitter Cards, an RSS feed and per-page canonicals on paginated listings. FAQPage and HowTo markup can be auto-detected from your content behind an opt-in flag. Leave that inference off unless your content templates guarantee the emitted schema matches the visible page, since mismatches are a documented cause of rich-result manual actions.
Is relaticle/ink production-ready and how is it maintained?
Ink is early stage: roughly 16 GitHub stars, no dependents and a single maintainer shipping first-line releases with a documented phase 3 backlog. That means you would be among the earliest production users and effectively part of the QA function, so approve a fork-and-maintain budget before committing. If that risk is unacceptable, a separate CMS or hand-rolled Filament resources remain the fallback.
Does Ink integrate with Spatie Media Library for featured images?
Yes, but only on the form side. When Media Library is enabled, new uploads are written to Spatie's media table while legacy posts keep their featured_image string path, and the shipped views render whichever one exists. That split-brain data model is survivable but is migration debt you inherit, and the promised backfill command does not exist yet.
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.
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo
bernskioldmedia/laravel-harvest
bernskiold/laravel-data-scrubber
bernskiold/laravel-currency-converter
bernskiold/laravel-campaign-monitor
bernskioldmedia/laravel-autotranslate
siberfx/telegram-bot
roy-sandip/laravel-view-extended
gregsphotography/site-builder-core
roy-sandip/laravel-view
anodyne/blade-fluentui-icons
webx-ui/module-catalog-collections