Tags & Organization
Tag templates, search by variable name, switch between grid and table views, and filter by date or tag.
Tags & Organization
Crove gives you four ways to keep a growing template library navigable:
tags for grouping, search (including a var: syntax for finding
templates by variable name), a switch between grid and table layouts,
and filters for date and tag.
All of these live on the Templates list page (/app/templates).
Tags
Tags are short labels you attach to templates. They show as chips on table rows, drive a filter chip bar above the list, and you can stack multiple to narrow down.
Adding tags to a template
- Open the templates list
- On any template — grid card or table row — click the kebab (⋮) menu
- Click Edit tags
- Type a tag and press Enter (or comma) to add it
- Press Backspace in the empty input to remove the last tag
- Click Save
Limits:
- Up to 12 tags per template
- Each tag up to 32 characters
- Tags are case-insensitive deduplicated (e.g.
Salesandsalescollapse)
Filtering by tag
Once any template in your workspace has at least one tag, a TAGS chip bar appears above the list. Each chip shows the tag name and the count of templates carrying it.
- Click a chip to filter the list to templates with that tag
- Click another chip to stack the filter — Crove uses AND semantics, so the visible templates must have all the selected tags
- Click Clear to reset
Search
The search box above the list does a simple case-insensitive substring
match against template name. For more targeted searches, use the var:
prefix.
var: syntax — search by variable name
When your template library grows, finding "the template with the
gstin variable" is harder than finding "the GST template". Use:
var:gstinCrove returns every template whose form variables include a name
matching gstin. The match is a substring on variable name (the
machine-readable name, not the label).
Examples:
var:email→ templates that have any field namedemail,email_2,customer_email, etc.var:gstin→ all your India-specific templatesvar:signature→ every template with a signature field
Plain (non-var:) queries still match by template name.
The search input shows the hint:
Search templates… (try var:gstin) so the syntax is discoverable.
Grid vs. table view
Two layouts live behind the toggle group on the right side of the filter bar:
- Grid (default) — visual cards with content thumbnails, ideal for browsing or when you have only a handful of templates
- Table — denser, sortable, with extra columns; better when you have dozens of templates or want to scan dates quickly
Your choice is persisted per browser under
crove.templates.layout in localStorage, so the layout you picked
survives reloads and tab restarts.
Table columns
The table renders these columns:
| Column | Notes |
|---|---|
| Select | Checkbox for bulk actions |
| Name | Sortable. Hover for a 280×360 content preview popover |
| Type | "form" or "preview" — derived from the template's defaultView |
| Public | "Public" link badge if the template is publicly fillable, otherwise "Private" |
| Last used | Date of the most recent document created from this template, with a tooltip showing total document count. "Never" for unused templates. |
| Updated | Sortable, descending by default |
Click a column header to sort. Hover a row's name to see a quick visual preview without leaving the page.
Exporting templates as HTML
Every template's row menu has a Download HTML option that exports the full template content — including images, tables, formatting, and variable placeholders — as a standalone HTML file. Useful for:
- Version backups kept outside Crove (commit to a git repo, store in S3, etc.)
- Porting a template out to another system that can read HTML
- Diffing templates visually across git commits — the HTML file is plain text so git diff works well on structural changes
- Previewing in a browser without loading the full template editor
Variable placeholders render as highlighted spans (class crove-variable)
so you can see at a glance where the form values will land. No CSS is
loaded from the network — the file is fully self-contained so recipients
can open it offline.
Favorites
Every template row has a star icon that shows up on hover. Click it to mark the template as a favorite — the star locks into a filled yellow state so you can find it at a glance in a crowded list. Click again to unstar.
Once at least one template is starred, a Starred (N) filter chip appears in the list header next to the Active/Archived tabs. Click it to narrow the list to only your favorites; click it again to go back to the full list.
Favorites are per-browser — stored in local storage, not on the server — so they don't sync across devices. This keeps the stars private and lightweight; each team member curates their own working set without cluttering the workspace with shared-favorite state. Starring a template doesn't change anything about the template itself, so it's safe to star freely without worrying about side-effects.
Filters
Last-modified window
Next to the sort dropdown, the All time / Today / Last 7 days /
Last 30 days filter narrows the list by updatedAt. Useful for "what
have I touched lately" sweeps.
Active vs. archived
The pill toggle at the top-left switches between active and archived
templates. Counts are shown next to each (Active (20) /
Archived (3)). Selection is cleared when you switch — Crove never
operates on templates you can't see.
Bulk actions
Select multiple templates with the row checkboxes (or the header checkbox to toggle all visible). When at least one is selected, a bulk action bar appears at the top of the list:
- Archive / Unarchive (context-aware to the current view mode)
- Delete (guarded by a native confirm)
- X to clear selection
Bulk actions run as Promise.allSettled so a few failures don't
abort the rest — Crove reports the failed count in a toast at the end.
Pagination
When the filtered list exceeds the page size, a pagination bar appears at the bottom showing the current range, total count, prev/next buttons, and a page-size picker (12 / 24 / 48 / 96 per page). Default is 24.
Both the page size and the current page are managed client-side
(no API round-trip) so you can scrub through pages instantly.
Page size persists per browser under
crove.templates.pageSize. Page resets to 1 whenever a filter
changes — Crove won't strand you on an empty page after a
narrow query.
Power-user tips
- Combine filters:
var:gstinsearch + aSalestag +Last 7 dayswindow narrows to "GST contracts I've touched recently" - Tags as folders: Use tags like
q4-2026,client/acme,archive-pendingfor ad-hoc grouping without a folder feature - Hover-card debug: When you can't tell two same-named templates apart, hover the name in table view — the preview reveals which is which
- Last-used as a cleanup signal: Sort by Updated DESC and look at the "Last used: Never" rows — those are templates that never produced a document and may be safe to delete