SaaS & Platforms
Shahrzad Platform
Audiobook platform — mobile, dashboard, and backend
- Role
- Full-stack author
- Period
- 2019 – 2022
- Commits
- 800+ across the platform
- Backend
- 1,500+ C# files
Overview
The Shahrzad audiobook & podcast platform — built full stack, end to end: an ASP.NET Zero backend of 1,500+ C# files with a GraphQL API and Xamarin mobile heads, the React Native consumer app (shipped as KetabGB), and the Angular creator dashboard where creators watch installs, downloads, and paid-subscriber play time, manage their catalog, and export financial reports as CSV.
The platform meters paid-subscriber play time and turns it into creator revenue share — catalog, entitlements, playback, and payouts all flow through the layered core shown below, with role-based access enforced server-side by ABP permissions.
- ShahrzadCMSASP.NET Zero solution — 3 sln heads, GraphQL, Xamarin
- Shahrzad / ShahrzadUpgradeReact Native consumer app (Apollo GraphQL)
- shahrzad-cms-angularcreator dashboard
- ContentPoolNode.js ingestion services (team)
Tech stack
Backend
- .NET
- ASP.NET Zero / ABP
- GraphQL
- EF Core
- SQL Server
Clients
- React Native
- Apollo Client
- Angular
- Xamarin
Content
- Node.js ingestion
- audio storage
Repository structure
The real backend solution — note the GraphQL project and Xamarin heads beside the ABP layers:
src/ ├─ ShahrzadCMS.Core / Core.Shared domain ├─ ShahrzadCMS.Application / .Client / .Shared ├─ ShahrzadCMS.EntityFrameworkCore repositories · migrations ├─ ShahrzadCMS.GraphQL GraphQL API ├─ ShahrzadCMS.Web.Host / Web.Core / Web.Public ├─ ShahrzadCMS.Mobile.Droid / .iOS / .Shared Xamarin heads └─ ShahrzadCMS.Migrator deploy-time schema test/ GraphQL.Tests · Tests · ConsoleApiClient docker/ (mvc + ng) · build/
Design patterns
Modular monolith (ABP)
One layered solution serves REST, GraphQL, public web, and mobile heads without duplicating the domain.
GraphQL for mobile
The RN app talks Apollo/GraphQL — one flexible contract for a fast-moving consumer UI.
Play-time metering
Usage events aggregate into per-creator revenue share — the platform’s core business rule lives in the Application layer.
Content pipeline
ContentPool services ingest and normalize audio masters before they reach the catalog.
Report projection
Financial views are read-model projections over play-time events, exported as CSV from the creator dashboard.