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
Step 1: Merchant registration
Step 2: Tenant and database setup
Step 3: Migrations, defaults and administrator
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
Step 1: DNS records and tenant mapping
Readiness is checked asynchronously
Step 2: SSL provisioning
Readiness is checked asynchronously
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
Step 1: Stripe billing events
Step 2: Subscription-state synchronization
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.