Sadja Progress Stepper (Flutter)

Solved real UX gaps during an Ionic-to-Flutter migration.

FlutterDartOpen Source

A highly customizable Flutter stepper widget published to pub.dev to solve UX gaps encountered during an Ionic-to-Flutter migration.

The Challenge

Off-the-shelf Flutter steppers couldn't support dynamic step insertion, non-linear navigation, or granular visual theming - blocking a critical app migration until a custom solution was built.

Key Decisions & Tradeoffs

  • Full visual control: enabled custom icons (images instead of numbers), per-state color overrides (active/disabled/filled), and connector line styling.
  • Navigation flexibility: supported both linear and free-movement modes, with runtime toggling.
  • Zero external dependencies: built entirely in Dart, meeting the project's data-sovereignty and compliance requirements.

Outcome

Published to pub.dev and integrated into the migration project. Later superseded when requirements reverted to a simpler linear-only flow, but it unblocked the team during a critical phase.