Open-source, self-hosted mobile backend platform.
Install once · manage many projects · ship apps faster.
Every mobile app needs a backend — authentication, sessions, push notifications, support tickets, version policies, dynamic menus, analytics, and bridges to external APIs. Teams rebuild the same infrastructure for every new product, or stitch together fragmented SaaS tools with limited data ownership.
CoreStone solves this with a single deployable platform on your own infrastructure. Create isolated projects from the Management console (one per app or customer). Each project gets its own users, settings, notifications, support, menus, version rules, and HTTP/SQL integrations — all exposed through a consistent REST API and official SDKs.
Company → deploys CoreStone on their server
→ creates Project A, B, C in Management
→ each project has isolated data + project key (slug)
→ mobile apps call /api/app/* with X-Project-Key
→ operators manage everything from the Management panel
| Area | Capabilities |
|---|---|
| Authentication | Register, login, 2FA, password reset, email/phone verification, sessions |
| User management | Profiles, devices, linked identities, admin moderation |
| Notifications | Inbox with read/unread state, admin broadcast from Management |
| Support | Ticket system with categories, agent replies, user-facing app API |
| Announcements | Banners and modals with view tracking |
| Dynamic menus | Database-backed navigation trees, publish workflow |
| Version management | Force-update and maintenance policies per platform |
| Analytics | Event ingestion to InfluxDB, dashboards in Management |
| API integrations | HTTP connectors and SQL query bridges to external systems |
| Event routing | Telegram, Slack, and email handlers for platform events |
CoreStone is a modular monolith: one deployable .NET 8 API with clear layer boundaries and optional Worker for background jobs. Project isolation is enforced at every data access layer via ProjectId.
flowchart LR
subgraph clients [Clients]
MGMT[Management UI]
MOB[Mobile / Web Apps]
end
subgraph corestone [CoreStone]
API[CoreStone.Api]
APP[Application Layer]
INF[Infrastructure]
API --> APP --> INF
end
subgraph data [Data & Services]
DB[(PostgreSQL / MySQL / SQL Server)]
INFLUX[(InfluxDB)]
end
MGMT -->|Admin & Management API| API
MOB -->|App API + X-Project-Key| API
INF --> DB
INF --> INFLUX
| Component | Description |
|---|---|
CoreStone.Api |
HTTP endpoints — admin, management, app, public integrations |
CoreStone.Application |
Use cases, DTOs, validators |
CoreStone.Domain |
Entities and enums |
CoreStone.Infrastructure |
EF Core, JWT, provider implementations |
CoreStone.Worker |
Background jobs |
| Management UI | React + Vite operator console (React Native Web) |
| SDKs | .NET NuGet packages and @corestone/react-native |
CoreStone/
├── backend/ # .NET 8 API, domain, infrastructure, worker
├── management/ # Management console (Vite + React Native Web)
├── docs/ # Interactive documentation site
├── sdk/
│ ├── dotnet/ # Official .NET SDK packages
│ └── react-native/ # Official React Native SDK
├── examples/ # Sample MAUI, ASP.NET Core, and Docker setups
└── docker-compose.prod.yml
git clone https://github.com/alizorlu/corestone.git
cd corestone
cp backend/.env.example .env # fill in secrets and CORS origin
docker compose -f docker-compose.prod.yml --profile postgres up -d| Service | Default URL |
|---|---|
| API | http://localhost:8080/swagger |
| Management | http://localhost |
Pre-built images: alizorlu/corestone-api, alizorlu/corestone-management
Backend (PostgreSQL via Docker):
cd backend
cp .env.example .env
docker compose --profile postgres up --buildManagement console:
cd management
npm install
npm run dev # http://localhost:5173Documentation site:
cd docs/web-site
node scripts/link-deps.cjs
npm run dev # http://localhost:5174Default seed admin (empty database):
| Field | Value |
|---|---|
admin@corestone.local |
|
| Password | ChangeMe123! |
See backend/README.md for database providers, migrations, and environment variables.
Connect your mobile or web app in minutes with official SDKs.
dotnet add package CoreStone.SDK.Dotnet.Configuration
dotnet add package CoreStone.SDK.Dotnet.Auth
dotnet add package CoreStone.SDK.Dotnet.AnalyticsWorks with ASP.NET Core, MAUI, Blazor, and any .NET 8/9 project.
→ sdk/dotnet/README.md · NuGet — pretech
npm install @corestone/react-native @react-native-async-storage/async-storageWorks with React Native CLI, Expo, and any React Native project.
// React Native
<CoreStoneProvider config={{ apiUrl: 'https://api.example.com', projectKey: 'prj-xxx' }}>
<App />
</CoreStoneProvider>// .NET
builder.Services.AddCoreStoneConfiguration(o => {
o.BaseUrl = "https://api.example.com";
o.ProjectKey = "prj-xxx";
}).AddCoreStoneAuth();Your Project Key is available in Management → Projects → API Integration.
| Resource | Description |
|---|---|
| docs/web-site/ | Interactive docs — API reference, overview, architecture diagrams |
| docs/README.md | Docs index and local run instructions |
| backend/README.md | API, database, Docker, migrations |
| management/README.md | Management console development |
| examples/ | MAUI, ASP.NET Core, and Docker sample projects |
The docs site supports English, Turkish, Russian, Chinese, and Arabic (RTL).
Server: Linux, Windows, macOS (via Docker)
Client SDKs: React Native · .NET MAUI · ASP.NET Core Web · ASP.NET Core API · iOS · Android · Windows · macOS
Databases: PostgreSQL · MySQL / MariaDB · SQL Server
| Audience | Why CoreStone |
|---|---|
| Independent mobile developers | Skip boilerplate auth, notifications, and analytics |
| Agencies & software houses | One infrastructure, many client apps as separate projects |
| SMBs | Self-hosted control and full data ownership |
| Startups | Fast MVP with room to scale on a modular monolith |
Contributions are welcome. Open an issue to discuss larger changes, or submit a pull request for bug fixes and improvements.
MIT — see LICENSE for details.
Ali Zorlu — github.com/alizorlu
Built with .NET 8 · React · Vite · React Native Web · EF Core · PostgreSQL · InfluxDB · Docker
