Skip to main content

betaThis is a new capability. Help us improve it and give your feedback on Slack.

Page Types

Built-in page controllers that define how a page behaves. Set the controller property on a page definition to use a specific page type.

  • Page — The default page type. Displays a set of components and advances to the next page on submission. Omit the controller property to use this page type.
  • Start Page — The entry page of the form. Initialises the session and redirects to the first question. Must use the path /start.
  • Terminal Page — A dead-end page that does not route the user to another page. Use this for outcomes where the journey ends without proceeding to the summary — for example, an ineligibility screen.
  • Repeat Page — Allows the user to add multiple sets of answers to the same group of questions. Answers are stored as an array under the key defined by repeat.options.name.
  • File Upload Page — A question page that handles file upload via the CDP file upload service. Must contain a FileUploadField component.
  • Summary Page — Displays a check-your-answers summary of all form responses before submission. Must use the path /summary.
  • Status Page — The confirmation page shown after a successful form submission. Renders a GOV.UK panel with the page title and, optionally, the reference number. Automatically added to every form at /status — only define it explicitly to customise the title.

Build your own page type

If none of the built-in page types meet your needs, you can write a custom page controller by extending QuestionPageController (for pages with form components) or PageController (for display-only pages). Custom controllers are registered via the controllers plugin option and referenced in your form definition by name.

See Custom page controllers for a full guide.