Skip to main content
Waseem Alnasser

← Back to selected work

Archived project

Automating the infrastructure behind a commerce SaaS

Period
2023
Role
Team contributor with ownership of provisioning, domains, and billing

This Laravel 9 platform was designed to let businesses create and operate online stores. It used database-per-tenant isolation through stancl/tenancy.

I worked within a development team and contributed to implementation and product design. My main ownership areas were tenant provisioning, Stripe subscription billing, domain purchasing, custom-domain onboarding, DNS automation, and SSL provisioning.

Turning registration into a provisioned store

Merchant onboarding needed to create a usable store without manual database and environment setup.

I implemented provisioning workflows that created the tenant and dedicated database, ran migrations, seeded initial data, created the merchant administrator, assigned themes and defaults, established a platform subdomain, and configured the store environment.

Failure handling and logging were included so onboarding problems could be identified and addressed. The result was an automated path from registration to a configured tenant store.

Tenant provisioning

  1. Step 1: Merchant registration

  2. Step 2: Tenant and database setup

  3. Step 3: Migrations, defaults and administrator

  4. Step 4: Store available

Failure branch: provisioning failure logged

Problems during setup are logged so they can be investigated

Purchasing and connecting domains inside the product

Domain setup was one of my largest contributions. Merchants could purchase a domain within the platform or connect one they already owned.

For new purchases, I integrated Name.com, Stripe, and Cloudflare. The workflow covered registration, zone creation, nameserver changes, DNS records, tenant mapping, custom-hostname configuration, and SSL provisioning. It also supported annual renewals and configurable auto-renewal.

For existing domains, the platform guided the merchant through changing nameservers, checked when Cloudflare became authoritative, configured records, and moved the storefront onto the custom domain.

A DNS editor inside the merchant dashboard supported A, AAAA, CNAME, MX, and TXT records. This brought store-domain management into the product instead of requiring separate manual infrastructure work for every merchant.

Domain onboarding

Path A: Purchase a domain

Registration, zone creation and nameserver changes

Path B: Connect an existing domain

Merchant changes nameservers; the platform checks when Cloudflare is authoritative

  1. Step 1: DNS records and tenant mapping

    Readiness is checked asynchronously

  2. Step 2: SSL provisioning

    Readiness is checked asynchronously

  3. Step 3: Store domain active

Maintaining subscriptions and entitlements

I designed and implemented the Stripe subscription system across recurring billing, tiers and feature limits, upgrades, proration, scheduled downgrades, 3-D Secure, coupons, account credit, failed payments, cancellations, and webhook synchronization.

The engineering problem differed from one-off delivery payments: billing changes also affected what a merchant could access. Subscription and entitlement state needed to stay aligned across plan changes and payment events.

Billing and entitlements

  1. Step 1: Stripe billing events

  2. Step 2: Subscription-state synchronization

  3. Step 3: Merchant entitlements

Working within the wider platform

The team developed catalogs, inventory, checkout, orders, shipping, taxes, discounts, campaigns, refunds, analytics, themes, a page builder, an app marketplace, roles, permissions, and multilingual/RTL support.

I implemented selected features and contributed to planning and design across these areas. They were shared team work; the provisioning, domain, and billing systems above were my primary areas of ownership.

Project outcome

The platform reached an advanced development stage and was later discontinued.