Ship icons in Laravel without the plumbing.
A Laravel icon ecosystem by the team at Simtabi. One engine, many packs,
an optional browser.
Icons in a Laravel app usually arrive as a folder of SVGs somebody copied in, a Blade partial that reads them off disk, and no answer to "which pack is this from and how do we update it". Six months later the pack has moved on and the app has not.
ichava splits that into parts that can each be replaced. core is the engine —
registry, services, seeder, scaffolder, a Blade base component, migrations — with
no HTTP surface and no JS toolchain, so it stays headless-friendly. Icon packs
are separate packages that plug into it. icon-browser, a licensed add-on, adds the REST API
and a React UI if you want humans searching the set. icon-sets-sync refreshes each pack's
vendored assets from upstream and opens the pull request, so a pack going stale is
a job for CI rather than for you.
| Package | What it does |
|---|---|
core |
The engine — registry, services, seeder, scaffolder, Blade base component, migrations. No HTTP surface |
icon-sets-tabler |
Tabler icons, outline and filled, served through the engine |
icon-sets-flag |
Country flags in 1x1 and 4x3, from lipis/flag-icons |
icon-sets-emoji |
Emoji from Twemoji, OpenMoji colour and OpenMoji black |
icon-browser |
Optional HTTP layer — REST API, web routes, middleware and the React browser UI. A licensed, private add-on since 2026-10-24; core works headless without it |
js-motion |
@ichava/js-motion — framework-agnostic SVG animation engine, no runtime dependencies |
icon-sets-sync |
Go, with a local web UI (icon-sets-sync serve). Refreshes vendored assets from upstream by pull request |
js-ui-kernel |
@ichava/js-ui-kernel — framework-agnostic domain kernel shared by the React UI packages |
Each package documents itself in its own docs/ tree. Per-pack icon counts are
measured daily into core's
icon-sets.json rather
than quoted here. Browse
all repositories for the rest.
Every package is at v0.1.0 and none is published to Packagist yet, so
installation is from the repositories rather than by name. Start with
core's installation guide,
then add a pack.
Requires PHP 8.4+ and Laravel 13.
- Questions and ideas: open an issue on the package's repository. Answers in the open help the next person too.
- Docs are never finished — pull requests are welcome on any package's
docs/. - Security: security@simtabi.com — never a public issue. See the security policy.
ichava is built and maintained by the team at Simtabi, a software design agency and design & branding studio operating in Delaware and North Carolina and serving clients nationwide, USA. Whenever we build something reusable, we share it — you'll find it across @ichava, @laranail and @simtabi.
Released under the MIT license unless a repository says otherwise.