- How do I install storyfeed/ui in a Laravel app?
- Install the package with Composer, optionally run php artisan boost:install for agent setup guidance, and choose the Blade, Vue, or React kit. Then configure Tailwind to scan the kit files, using either a copied kit or a Vite alias into vendor with an added @source line. The README documents the exact @source and Vite steps.
- Does storyfeed/ui require Storyfeed core?
- Yes. storyfeed/ui is a presentation-layer package that renders Storyfeed feed data supplied by your Laravel app. Some features, such as headline formatting, delegate to Storyfeed core APIs, so you should pin a compatible core version in composer.json.
- Which Tailwind CSS version does storyfeed/ui need?
- It is built around Tailwind CSS v4-era tooling, including @theme and @source directives, and assumes a Vite build. Apps on older Tailwind versions or non-Vite bundlers are effectively out of scope. You must add a Tailwind scan for vendor/storyfeed/ui/resources/js if you use the vendor alias path.
- Can I customize the Blade component markup and styles?
- Yes. All views are publishable, so you can edit the markup directly, and every component exposes slots for injecting custom content. Styling uses Tailwind CSS classes, making it straightforward to restyle to match your app.
- Does storyfeed/ui support Vue and React as well as Blade?
- Yes. The package ships parallel Blade, Vue, and React kits for rendering feeds, story cards, avatars, and media. Parity is maintained by hand, so after upgrades it is worth checking the same component across kits if you use more than one.
- Is storyfeed/ui safe to use in production?
- It is pre-1.0 software, so there is no semver compatibility promise; treat each minor upgrade as a change that needs a visual regression pass. The package is lightweight and fits standard Laravel plus Vite and Tailwind apps, but you should pin versions and review release notes.
- How do I prevent XSS when using the HeadlineText callback?
- The Blade HeadlineText callback returns trusted HTML, meaning the package does not escape the returned string for you. You must escape any user-supplied text inside your callback before returning it. This is documented but easy to miss if you skim the README.
- Why do my storyfeed/ui headlines render as plain text?
- Headline formatting delegates count-token exclusion and pluralisation to Storyfeed core 0.21's headline text API. On older core versions the component silently falls back to plain headlines. Pin a compatible core release in composer.json to enable formatting.
- How do I get AI coding agents to set up storyfeed/ui correctly?
- The package ships a Laravel Boost guideline and a storyfeed-ui skill with agent-facing setup instructions. A doc-drift test fails if the guideline names a component, prop, provide key, class, or path the package does not ship. Run php artisan boost:install to pull the guidance into your agent workflow.
- What is the upgrade path for storyfeed/ui 1.0 and Render Payload v1?
- Render Payload v1 is expected to land alongside Storyfeed core's 1.0 release, so plan a coordinated upgrade of both packages. Upgrading one side ahead of the other is the likely failure mode. Until 1.0, treat 0.x minor bumps as potentially breaking.