# Starter and packs

prongs add gives every project the same starter: what nearly every interface needs. Packs add the intents only some kinds of app need, for SaaS, editorial, marketing, dashboard and media apps.

## The starter

`npx prongs add` gives every project the same starter: the intents nearly every interface needs, from page regions and forms to toasts, empty states and file fields. It is the vocabulary agents can count on in any Prongs app.

## Packs

Some intents only make sense for some kinds of app: sorting a table, a paywalled feature, a pull quote, a battery meter. Putting them in the starter would give every agent words it should not reach for, so they come in packs, added on top. The starters for UI, errors and logs hold 122 intents; the packs add 34 more.

- [SaaS pack](https://www.prongs.dev/docs/intents/packs/saas.md) (8 intents): Apps people work in: records in tables, settings pages, plans and billing. Add it with `npx prongs add saas`.
- [Editorial pack](https://www.prongs.dev/docs/intents/packs/editorial.md) (9 intents): Things people read: articles, posts, docs, news and their previews. Add it with `npx prongs add editorial`.
- [Marketing pack](https://www.prongs.dev/docs/intents/packs/marketing.md) (3 intents): Landing and product pages: the headline and the links that lead on. Add it with `npx prongs add marketing`.
- [Dashboard pack](https://www.prongs.dev/docs/intents/packs/dashboard.md) (6 intents): Numbers to watch: amounts in a range, charts, devices and their status. Add it with `npx prongs add dashboard`.
- [Media pack](https://www.prongs.dev/docs/intents/packs/media.md) (8 intents): Photos, video and music: galleries, players and full-size views. Add it with `npx prongs add media`.

Add the packs that match what you are building; most apps need one or two.

```bash
npx prongs add saas editorial
```

## What adding one does

- It copies — The pack’s intents go into your registry, where they are yours like the starter: rename, restyle and add to them. Running it again skips what is already there.
- It fits what you have — Pack intents are built from starter looks and point to starter intents in their “not for” lines. A line that points at an intent your registry does not have is left out.
- It tells your agents — `PRONGS.md` is regenerated, so the next agent that reads it knows the new words.

## Where they are listed

Each pack has a page in the reference with its intents by domain and the starter intents they are told apart from. Pack intents also appear in their domains, marked with their pack, since an inspect action is still an action.

[Browse the packs](https://www.prongs.dev/docs/intents/packs.md)
