Repeatable Contexts: Ask the Same Questions for Many Items
Repeatable contexts let you ask one set of questions for each item in a list — products, students, events — without rebuilding the form. This guide explains the concept and how RoundPushPin models it relationally.

A repeatable context is a set of questions asked once per item in a list — once for each product, student, employee, or event — instead of being hard-coded into the form a fixed number of times. It lets one form scale to any number of items without rebuilding.
What problem do repeatable contexts solve?
The "I don't know how many there will be" problem. If you need to ask the same five questions about each of a respondent's products, you can't know in advance whether that's two products or twenty. Hard-coding "Product 1 / Product 2 / Product 3…" fields is brittle and caps the count; a repeatable context asks the five questions as many times as there are items.
How is this different from just adding more fields?
Duplicated fields bloat the form and still impose a fixed limit; a repeatable context is one definition applied N times. You define the question set once and attach it to a list of items, so the form expands to fit the data instead of the data being forced to fit the form.
Why does the data model matter here?
Because repeating questions naively produces messy, wide data. The clean representation is relational: a parent record for the response and a child row per item, linked by a foreign key — exactly the normalized structure the relational model was designed for (Codd, 1970), with PostgreSQL foreign keys keeping each item tied to its response. That way "20 products" is 20 tidy rows, not 100 sparse columns.
How RoundPushPin models repeatable contexts
RoundPushPin lets you define a question set once and repeat it for every item in a context — products, people, events — and stores each item as its own related row rather than duplicated columns. The result is a form that adapts to any number of items and a dataset that stays clean and queryable, consistent with RoundPushPin's broader form data architecture.
Frequently asked questions
- How do I ask the same questions for multiple items?
- Use a repeatable context: define the question set once and repeat it per item — per product, student, or event — instead of hard-coding fixed fields. The form then expands to fit any number of items.
- How is a repeatable context different from adding more fields?
- Duplicated fields impose a fixed limit and bloat the form; a repeatable context is one definition applied many times, so the form adapts to the data instead of the data being forced to fit the form.
- How is repeated-question data stored cleanly?
- Relationally: a parent record for the response and a child row per item, linked by a foreign key. That keeps '20 items' as 20 tidy rows rather than 100 sparse columns.
Sources
- A Relational Model of Data for Large Shared Data Banks (E. F. Codd, 1970) — Communications of the ACM
- Foreign Keys — PostgreSQL Global Development Group
Keep reading
How to Build Multilingual Forms
Reaching a global audience means more than translating questions. This guide covers multilingual forms — translation vs localization, keeping versions in sync, and how RoundPushPin translates one template into 10+ languages.
One Template, Many Versions: Build a Form Once
Instead of cloning a form for every audience, build one master template and generate every version from it. This guide explains the single-source-of-truth approach and why it keeps forms consistent at scale.