Delayno Web

In Progress

Apr 2026 - Present

Delayno Web is the web-parity initiative for Delayno Customer, a Flutter app originally built for iOS and Android.

The project is not a simple build-target switch. It is a structured migration of architecture, routing, and platform services so browser users can complete the same core journeys with stable URL behavior, secure integrations, and web-compatible feature flows.

The implementation focuses on reducing mobile-only assumptions in existing code, introducing platform-safe boundaries, and restoring route coverage in controlled phases so web support can scale without breaking mobile reliability.

Built with: Flutter, Dart, go_router, Firebase, platform-aware startup, and phased platform abstraction patterns.

Project Activity

Recent updates for Delayno Web. In Progress

April 2026

  • Completed S8 by removing the last web-unsafe Platform/dart:io checks from legacy settings views, added dedicated S8 QA run-sheet and integration smoke coverage, and deployed the web app to staging for full validation.
  • Completed S6 web-parity implementation by adding scanner and QR platform abstractions with web-safe fallbacks, and fixing the barcode-fallback crash path to stabilize web navigation behavior.
  • Finished S6 verification setup with dedicated QA and integration smoke coverage, plus VS Code and ChromeDriver execution guidance to make repeatable web validation easier for future parity checks.
  • Completed S7 web-parity delivery end-to-end, including profile-upload flow fixes and secure/insecure launch profile support, while finalizing implementation-plan and code-cleanup workstreams.
  • Documented remaining web blockers (CORS, geolocation/geocoding key setup, payment-security path, and large-screen responsiveness), and simplified platform scope by dropping desktop dummy targets and removing redundant web remember-me UI.
  • Advanced web-parity hardening across S4/S5 return flows by removing unsafe screen-level platform checks, adding explicit web gates for scanner/media paths, and documenting parity blockers plus dedicated smoke checklists for stable browser execution.
  • Strengthened delivery confidence with regenerated Firebase web configuration, an updated Delayno Web development plan, and new unit/integration/router smoke tests that verify route safety and startup behavior for web QA coverage.
  • S2 - making notifications mobile-only: removed unsafe platform checks in the notifications screen, hid the Notifications entry in web Settings, blocked /app/notifications on web via route redirect, and updated the parity plan plus S2 QA checklist accordingly.
  • [Fixed] Remember me functionality on Login screen, so now password is saved in browser that can be used to login again. Also if already logged in then application will automatically redirect to home
  • S3 web parity is largely complete (service abstractions, routing/config/docs, and suggestion-label overwrite fix), but two blockers remain: web current-location still fails with geolocation code=2, and drag-based address updates still break due to the nearby-search callback/runtime path plus Geocoding API activation.
  • Continued web-compatibility hardening by removing isIOS/isAndroid checks from low-risk UI-only routed screens and formalizing the platform-check cleanup plan with a full inventory of dart:io/platform usage, explicit web-safe branching rules, and a phased route-by-route rollout strategy.
  • Migrated navigation to go_router across Home/Settings/static account pages, Address flows, Return overview/postponed flows, and Package Return funnel; improved Router State + Auth cohesion; removed legacy routes and added voucher subflows; added auth unit tests; marked v1.1.2 ready for testing.
  • Made the app fully compilable for web with platform-specific startup (lib/startup), split web/mobile initialization, separated dev/prod configuration (including Stripe keys), implemented URL-based auth routes, and removed splash on web.
  • Drafted the Flutter web migration plan and created the Firebase project for delayno-customer-web.

Objective Link to heading

  • Turn an already shipped Flutter mobile app (iOS + Android) into a production-grade web platform.
  • Preserve core customer workflows while making navigation, auth, payments, media, and address flows browser-safe.

Migration path Link to heading

  • Start with a full route and dependency inventory to identify where mobile assumptions block web.
  • Introduce platform abstractions and conditional imports so shared app code no longer depends on mobile-only APIs.
  • Split startup into platform-aware bootstrap paths so web and mobile initialize only supported services.
  • Move from argument-heavy route generation to URL-based routing (go_router) with refresh-safe deep linking.
  • Re-enable feature groups incrementally (auth, vouchers, returns, address, scanner/media, notifications, payments) after each workstream becomes web-compatible.
  • Finish with responsive hardening, browser interaction polish, and production deployment checks.

Core challenges in an existing codebase Link to heading

  • Widespread dart:io and Platform checks across routed screens and shared layers caused browser incompatibilities.
  • Navigation patterns built for mobile (onGenerateRoute + transient arguments) did not map cleanly to direct URLs and page refresh.
  • Startup and plugin initialization paths assumed mobile runtime behavior and required platform gating for web safety.
  • Payment flow required architectural redesign because browser delivery cannot expose Stripe secret usage in client code.
  • Notifications needed a separate browser model (service worker + web token flow) instead of mobile-local notification assumptions.
  • Map, file, scanner, and media features depended on native patterns and required web-specific fallbacks or abstractions.