# Meta (coming soon)

Add rich metadata and SEO controls to your records without touching your models.

- Price: $20/month
- Gem: `gem "avo-meta"`
- Web page: https://avohq.io/addons/meta
- Pricing: https://avohq.io/pricing.md

Add custom fields to a model without touching a migration or a resource file. Meta lets you define new properties from inside Avo: pick a name and a field type, and they show up on the record's New, Show, and Edit views. It stores everything in a single JSON column on the model, backed by StoreModel, so you get typed attributes without a wide, ever-changing schema.

Include the `Avo::Metaable` concern in a model and Meta gives that resource a "Meta Properties" entry in the sidebar plus a Meta panel in its views. Each property reuses a real Avo field type, text, number, boolean, date, select, code, and more, and reads back like an association: `@user.meta.shoe_size`. The schemas, StoreModel wiring, type casting, and default backfills behind a no-code custom-field system are already built and vetted, so your agent includes a concern instead of generating them.

## See it in action

![Meta overview](https://avohq.io/assets/addons/meta/shot-1-00b93a68d15a785bc4c00c4293ba815aaf77a96f2a90e6b5c3e6770f2f1a74dd.png)

![Meta detail](https://avohq.io/assets/addons/meta/shot-2-00b93a68d15a785bc4c00c4293ba815aaf77a96f2a90e6b5c3e6770f2f1a74dd.png)

## What you get

- Define new properties from inside Avo: set a name and a field type, no migration or resource edit
- Properties reuse real Avo field types: text, textarea, number, boolean, date, date and time, code, select, and more
- Per-property options for default value, placeholder, help text, required, and which views to hide on
- Adds a Meta panel to a model's New, Show, and Edit views by including the `Avo::Metaable` concern
- Stores values in one JSON column via StoreModel, read back like an association (`@user.meta.shoe_size`)
- Changing a property's default backfills existing records through a background job

## Why it pays off

- Let non-developers add a custom field in the UI instead of opening a ticket for a migration every time the data model needs to grow.
- The decisions are already made: the JSON schema, StoreModel wiring, type casting, and default backfills are built, tested, and running in production apps.
- Every Avo release makes it better: it reuses Avo's own field types and keeps working through upgrades, so nothing your team defined gets stranded.
- Tokens, time, and focus go to your product, not to a custom-field system generated from scratch.
