# How-to guides

Task-oriented recipes for common `scinexus` operations, each self-contained.

- [Write a function app](write-a-function-app.md) -- use `@define_app` on a function
- [Write a class app](write-a-class-app.md) -- use `@define_app` on a class with `main()`
- [Handle failures](handle-failures.md) -- create and inspect `NotCompleted` values
- [Use data stores](use-data-stores.md) -- open, read, and write data stores
- [Read and write files](read-and-write-files.md) -- IO with compression, atomic writes, streaming
- [Run in parallel](run-in-parallel.md) -- parallel execution with pluggable backends
- [Track progress](track-progress.md) -- progress bars with `tqdm` or `rich`
- [Log and cite](log-and-cite.md) -- `scitrack` logging and citation tracking
- [Customise display and IDs](customise-display-and-ids.md) -- `set_summary_display` and `set_id_from_source`
- [Extend type checking](extend-type-checking.md) -- register type namespaces for downstream packages
- [Migrate from cogent3](migrate-from-cogent3.md) -- update code from `cogent3.app` to `scinexus`
