# Ercan Labs > Multi-tenant business software built in layers: platforms, APIs, mobile apps and websites. > Layer boundaries enforced in CI, data model before screens, tests that catch silent wrong results. ## Who Barış Bahattin Ercan — computer engineer, 4+ years professional, Kütahya, Türkiye. Backend: Django/DRF, NestJS, Node.js. Client: Flutter, React, Next.js. Contact: merhaba@ercanlabs.com ## Services - Platform & API (4–10 weeks): multi-tenant data model, JWT + role-based access, OpenAPI contract, PostgreSQL, Docker. - Mobile (3–8 weeks): one Flutter codebase to iOS and Android, API integration, store submission. - Website (1–3 weeks): Next.js or zero-dependency static, mobile-first, Lighthouse ≥ 95 gate, technical SEO. - Modernisation & audit (1–2 weeks): architecture and code audit, test coverage report, layer rules in CI. No prices are published; scope and duration are agreed on a 30-minute discovery call. ## Work — 12 measured cases Each case states the problem, the decisions with their cost, the proof, and the limits. Unmeasured claims are not published. - emlak-platform — own product. 118 API endpoints, 25 Prisma models, 56 test files, 521 TypeScript files. - cmms-maintenance — 68 test files, 4 apps / 5 packages, 5 layer rules enforced in CI, OpenAPI-generated client. - order-tracking — 725 tests in production use, partial-payment data model, offline licence verification, Windows desktop. - garanti-disi — 46 JS modules, 26 isolated test scenes, 28 design docs, HTML5 Canvas arena prototype. - beauty-salon — open source. 134 test files, 483 source files, tenant isolation covered by tests. - openweight-radar — open source. 27 test files, 40 classification fixtures, scheduled ingest, live. - bakkal-kasa — own product. 233 tests, 18 schema tables, 150 source files, 18.783 LOC, offline Electron register. - bus-rotation-planner — 326 tests, 7 screens, 209 C# files, 25.798 LOC, Avalonia desktop, Excel output. - style-lab — own product. 145 design styles, 580 committed scene screenshots, 38 gate steps, 167 docs. - mavi-konak-menu — 48 files, single static page, zero external requests. - foundry-tactics — prototype. 95 files, 11 tests, turn-based tactics. - unity-archive — 23 playable Unity prototypes (2022–2023), 38 game repositories in the profile. ## Archive — 88 repositories Filterable at /archive (EN) and /tr/archive (TR). Breakdown by kind: - Products: 23 (commercial and own products; private repositories, no client names) - Tools: 9 (style-lab, command center, local AI news, portfolio, case studies, profile, Unity archive, integrations) - Interfaces: 18 (e-commerce trio, B2B sites, Flutter UI studies, clones) - Games: 38 (Unity prototypes, 2022–2023, primary language C#/ShaderLab) Forked repositories are excluded from the count. Technology tags are derived from the repository tree, not guessed. ## How to read the work 1. Start with the problem. If the problem is not your problem, the case is not relevant. 2. Read the decisions and their stated cost. Every decision has a price; a case without a cost is marketing. 3. Check the limits. Every case lists what was not measured and what is missing. 4. Numbers are auditable: /evidence lists every figure with the command or file it came from. ## Site - 60+ static pages, TR and EN, Next.js. Design: Optic Prism style (style-lab #131). - Mobile Lighthouse: 100 performance, 100 accessibility, 100 best practices, 100 SEO. - LCP 0.8 s, CLS 0, 431 KiB total. No horizontal overflow at 320 / 390 / 768 / 1440 px. - Turkish copy passes the turkish-anti-ai detector (burstiness CoV 0.52, no mechanical sentence endings).