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

Filament Image Annotations Laravel Package

asignua/filament-image-annotations

A Filament plugin for annotating images directly in your admin panel. Add drawing and marking tools to image fields, making it easy to highlight areas, add notes, and manage annotated uploads in Laravel Filament apps.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for image annotation. This package covers a capability teams routinely underestimate: rendering and editing positional marks over an image, with correct scaling, cropping, and hit-testing. That is a week of fiddly geometry and CSS work plus ongoing browser/DPR/breakpoint maintenance. Adopting it converts an open roadmap item into a configuration task.
  • Roadmap: annotation over imagery you don't render yourself. The v1.2.0 overlay mode (viewer without x-ref="image", sized by data-aspect, cropped by data-fit="cover", non-interactive pins via data-interactive="false") means marks can be layered onto a picture produced by any other component — chat thumbnails, avatars, CDN-transformed images, third-party widgets. This unlocks use cases that previously required a bespoke overlay: annotating chat attachments, flagging regions on user-uploaded photos, pinning defects on product imagery, marking up screenshots in a support thread.
  • Tiering and packaging decisions. The release notes explicitly state the overlay mode is used by the Pro add-on. That is a strong signal about how the vendor is structuring the product: the open-source core is being shaped to serve a commercial tier. A PM should treat "which capabilities will be core vs. Pro" as a live decision with a licensing/cost dependency, and budget accordingly rather than assuming the free package will always be sufficient.
  • Interaction model decisions. data-interactive="false" is a small flag with real product weight: it lets you ship read-only annotation views (feeds, previews, shared links) without the viewer swallowing taps meant for the surrounding card or link. That is the difference between "annotations are a page" and "annotations are a detail inside a page."
  • Visual design / polish investment. The editor change (framed toolbar, tinted framed stage, shadow, light and dark panel parity) is a reminder that annotation UIs live inside modals and side panels, and legibility of the canvas against the chrome is a recurring bug class. If you ship this into a themed product, expect to spend design time on light/dark parity and contrast — the vendor is doing some of that for you, but not all of it.
  • Use cases worth evaluating against it: bug-report and QA screenshots, design/creative review feedback, field-service and inspection photos, e-commerce damage/defect claims, real-estate or listing markup, community/chat attachment annotation.

When to Consider This Package

Adopt when:

  • You are on Laravel with Blade and Alpine already in the stack; the API is declarative (attributes and component refs), not a JS framework you have to integrate.
  • Your annotation needs are marks and pins with coordinates — not freehand brush strokes, vector paths, text boxes, or pixel-accurate masking.
  • You need the same annotation data to render in two contexts: an editable surface, and a compact read-only view over an image rendered by something else (thumbnail, transformed CDN asset).
  • You want the light/dark and modal-integration edge cases handled for you rather than re-derived.
  • You are comfortable with a commercial tier existing alongside the OSS core and are prepared to pay for Pro if the overlay behaviour becomes load-bearing.

Look elsewhere when:

  • You need a full drawing canvas (freehand, shapes, text, crop, redaction). This is a marks-over-image tool, not a screenshot editor.
  • You need framework independence — Vue, React, Svelte, or a non-Laravel backend.
  • You need server-side compositing: burning annotations into a rasterized export for PDF, email, or download. Nothing in these notes suggests that; assume you own that work.
  • You need multi-user real-time co-editing or annotation threads with permissions.
  • You need a guaranteed support/SLA relationship without a commercial agreement, or you are licensing-sensitive and the core/Pro split is a blocker.
  • Accessibility is a hard requirement at the level of keyboard-navigable, screen-reader-announced marks — verify before committing; positional pin UIs frequently need work here.

Diligence checklist before adopting: confirm the licence and where the Pro boundary sits; confirm annotation data is persisted in a schema you control (not an opaque blob); confirm the overlay mode's coordinate model (data-aspect as height/width) matches how your thumbnails are actually sized; check the changelog for breaking changes across minor versions — this release adds behaviour, but attribute-driven APIs tend to accumulate them.

How to Pitch It (Stakeholders)

For executives — one paragraph: Image annotation is a small-sounding feature that reliably costs more than it looks like, because the hard part is not drawing a pin, it is keeping pins in the right place across every image size, crop, device pixel ratio, theme, and container. This package is a maintained Laravel component that has already solved that, and the newest release extends it from "full-size annotated image" to "marks layered over any image we already render" — chat thumbnails, attached photos, list previews. That is the difference between annotation being a standalone screen and annotation being a feature that shows up everywhere in the product. The trade-off is a dependency with a commercial tier: the vendor is clearly building a paid add-on on top of the free core, so we should budget for the possibility of paying for Pro rather than assuming the free package covers us indefinitely.

For engineering — the summary: Blade component, Alpine-driven, attribute-configured. v1.2.0 adds an overlay viewer mode that renders without owning the <img> — you supply data-aspect (height ÷ width) so marks can be positioned against an image you or another component drew, data-fit="cover" to mirror object-fit: cover cropping, and data-interactive="false" for read-only pins that don't steal clicks. Plus editor chrome fixes: framed toolbar, framed tinted stage with shadow, light/dark panel parity.

For engineering — the caveats to raise in review: the overlay mode positions marks by ratio, so it is only as accurate as the aspect ratio you declare — any container that changes the image's effective crop (fixed-height cards, object-position, letterboxing) needs verification. The data-interactive="false" path is the one to test hardest, since it sits inside clickable cards. And since the vendor's own Pro add-on is the first consumer of the overlay API, we should pin a version and read minor release notes rather than floating, in case the API is still settling.

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.
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk