# When to use (https://survey.dimah.dev/docs/comparison)



Use dimah-survey when SurveyJS remains your schema, Creator, and renderer, but
the server must control which document a respondent sees and preserve that
document with the response.

<Callout>
  The deciding requirement is a durable response snapshot—not simply rendering a
  SurveyJS form in React.
</Callout>

## It is a good fit when [#it-is-a-good-fit-when]

* authors need an editable draft and an explicit publish action
* responses must remain reproducible after the survey changes
* partial saves, submit, abandon, and reopen belong to one server protocol
* submit must validate against the definition that started the response
* your application must keep ownership of auth, data, and deployment

Choose another approach when you only need the SurveyJS renderer, want a hosted
inbox and account system, or do not use SurveyJS JSON as the form definition.

## Compare the ownership model [#compare-the-ownership-model]

| Concern                        | dimah-survey              | SurveyJS alone          | Hosted product   |
| ------------------------------ | ------------------------- | ----------------------- | ---------------- |
| Survey renderer                | Your app uses SurveyJS    | Your app uses SurveyJS  | Product or embed |
| Publish workflow               | Built in                  | Your implementation     | Product workflow |
| Response definition snapshot   | Built in                  | Your persistence design | Vendor-specific  |
| Draft, submit, reopen, and CAS | Built in                  | Your implementation     | Product workflow |
| Authentication                 | Your application          | Your application        | Vendor account   |
| Data and migrations            | Your application          | Your application        | Vendor storage   |
| Authoring                      | Creator stays in your app | Survey Creator          | Hosted builder   |

This compares responsibility, not performance. The same application can use
SurveyJS with dimah-survey for surveys and a different form library for
unrelated UI.

## Deliberate non-goals [#deliberate-non-goals]

dimah-survey does not render questions, ship Creator, define question types,
store file bytes, or provide accounts, dashboards, PDF generation, or an
analytics warehouse. It also has no plugin system and no survey-version table;
`response.definition` is the historical record.

SurveyJS Analytics or PDF tooling can consume each response's `definition` and
`data`. Do not interpret old response data against the current survey draft.

Next, review the concrete [package boundaries](https://survey.dimah.dev/docs/packages.md) or build the
[quickstart](https://survey.dimah.dev/docs/quickstart.md).
