All projects

Web Application

Subscription App

A subscription-based web application demo built with Angular, TypeScript, and Firebase Firestore. Represents real-world subscription flows including registration, package selection, and payment simulation.

  • Angular
  • TypeScript
  • Firebase
  • BEM
Subscription App interface
Subscription App — multi-step registration and subscription flow.

Overview

A demo portfolio representing a subscription-based application.

A demo portfolio representing a subscription-based application. Focused on clean state transitions, reactive forms, and modular CSS architecture.

The project demonstrates how complex multi-step subscription workflows can be structured for maintainability and clear user progression.

The problem

Complex multi-step forms and state validation are hard to maintain.

Subscription workflows often involve complex multi-step forms, state validation, and payment flows that are hard to maintain without clear structure.

  • Multi-step flows can become tangled without discrete state boundaries.
  • Validation logic scattered across components leads to inconsistent user feedback.
  • Payment simulation requires careful state management to prevent invalid submissions.

Approach

Discrete steps with BEM modularity and reactive state management.

Broke the registration flow into discrete steps (account setup, package selection, payment, review). Used BEM for CSS modularity and reactive state management for form transitions.

Each step was designed as a self-contained unit with clear entry and exit validation criteria.

Solution

Modular Angular architecture with reactive state transitions.

Separated concerns into distinct Angular modules and services. Implemented reactive state transitions with clear guards between steps. Firebase Firestore handled subscription persistence.

The architecture ensures each subscription step is testable independently while maintaining a cohesive user journey.

Subscription App flow diagram
Multi-step subscription flow with state guards.

Implementation

Technical implementation.

Built with Angular 17 leveraging standalone components, reactive forms with comprehensive validation, and Firebase Firestore for data persistence.

Frontend

Angular 17, TypeScript, reactive forms with validation, standalone components.

Styling

BEM methodology for modular, conflict-free CSS architecture.

Backend

Firebase Firestore for subscription data persistence and real-time updates.

Results

What changed.

The modular approach resulted in a clean, maintainable subscription flow that demonstrates best practices for complex form handling.

0validation errors in demo flow
100%modular CSS with BEM methodology
4discrete subscription steps

Links

Let's work together

Have a problem worth solving?

Let's talk about your project, technical challenge, or next idea.

Get in touch