alis/dico
alis/dico is a Laravel package for building and managing dictionaries or glossaries, with models, migrations, and helpers to store terms, definitions, and multilingual entries for documentation and reference.
alis/dico is a dictionary/lookup-data manager for Laravel — the class of problem that shows up whenever you have controlled vocabularies: country and currency lists, industry codes, status catalogs, category taxonomies, reason codes, document types. The first real decision this supports is whether that data lives in config files, database tables, an admin UI, or a package. Dico points at "managed data, not hardcoded arrays," which is a legitimate product posture.Consider it when all of the following hold:
Look elsewhere — or build the small table yourself — when:
dictionaries table, a model, and a cached accessor is often fewer lines than the integration work and carries no supply-chain risk.Practical next step before any decision: read the migration and model files directly. Confirm the schema, whether soft deletes and timestamps exist, whether there is caching, and whether the last commit is within the current Laravel major version's lifecycle. Ten minutes of source reading substitutes for six months of stars.
To executives (one paragraph): We have a recurring pattern of hardcoded lists — countries, categories, statuses, reason codes — that require a developer and a release every time the business wants a change. A dictionary manager would let operations own those lists. The candidate package is MIT-licensed and free, but it is very early-stage: three GitHub stars, no downstream users, single maintainer. My recommendation is not to adopt it as infrastructure. Instead, we should spend a short, timeboxed spike to validate the pattern and then either fork it under our own name or implement a minimal equivalent — roughly a week of work — so we own the maintenance and the security review. Upside is low-cost and immediate; the risk we are avoiding is taking a silent dependency on unmaintained code.
To engineering (the ask): Timebox one week. Stand it up in a branch against a real dictionary we already hardcode, and answer three questions in writing: (1) Does the schema cover our actual needs — translations, ordering, hierarchy, active/inactive, audit? (2) Will it survive our next Laravel upgrade, or is it pinned to an older framework contract? (3) Does integration reduce our line count versus a plain Eloquent table plus a cached repository? If any answer is no, we replicate the approach. Regardless of outcome, wrap it — or our replacement — behind a single repository interface with a lookup() and options() method, so swapping implementations later costs a day, not a quarter. And record the decision with its rationale, because in eighteen months someone will find this package in composer.json and ask why.
How can I help you explore Laravel packages today?