.NET Backend API
A robust REST API for managing users, devices, photos, and subscriptions. Deployed as a Docker image in Azure with automated CI/CD pipelines.
A leading Czech trail camera retailer needed a custom application to collect and manage photos from customer devices. We built a complete cloud SaaS platform — from photo ingestion to a web app and iOS/Android PWA with push notifications. Delivered in 2 months.
The client — one of the largest trail camera retailers in the Czech Republic — wanted to offer customers added value: cloud storage for photos directly connected to their devices. No off-the-shelf solution existed. The entire system had to be built from scratch — photo ingestion from devices, cloud storage, web and mobile apps, and a subscription model with a payment gateway.
We designed and built the entire ecosystem. A .NET backend serves both the web and mobile app, while a dedicated SMTP-like server receives photos directly from devices and stores them in Azure Storage.
A robust REST API for managing users, devices, photos, and subscriptions. Deployed as a Docker image in Azure with automated CI/CD pipelines.
A standalone backend that emulates an SMTP server — receives photos sent directly from trail cameras as email attachments and stores them in Azure Blob Storage.
Scalable cloud storage for all customer photos, organised by device, with automated file lifecycle management.
A full-featured React application for managing trail cameras, browsing photos, configuring devices, and managing subscriptions. Deployed on Cloudflare Pages.
A progressive web app installable on iOS and Android without App Store or Google Play. Full mobile UX with offline support.
Customers receive instant push notifications when motion is detected — on both web and mobile PWA via Firebase Cloud Messaging.
COMGATE payment gateway for subscription management — monthly, quarterly, and annual plans with automatic renewal.
Transactional emails (registration confirmations, payment receipts, subscription notifications) sent via Azure Communication Services.
The backend runs as a Docker image on Azure. A dedicated SMTP-like server receives photos from devices and stores them in Azure Blob Storage. The React frontend is deployed on Cloudflare Pages. Push notifications are powered by Firebase Cloud Messaging. Transactional emails are sent via Azure Communication Services. The entire deployment is automated via Azure DevOps CI/CD pipelines.
Trail cameras send photos as email attachments — the server automatically receives and stores them in Azure Storage with no user action required.
An overview of all devices, photo organisation by camera, filtering, and full-resolution browsing.
Customers add the app to their home screen like a native app — no App Store or Google Play required.
Firebase Cloud Messaging delivers a notification instantly when motion is captured — on both mobile and browser.
Three pricing tiers (monthly, quarterly, annual) with COMGATE payments and automatic subscription renewal.
Azure Blob Storage scales with customer growth without any architectural changes — from the first user to thousands of devices.
Multitenant SaaS for dental clinics — from booking to insurance billing
Data warehouse on Microsoft Fabric for a 200+ pharmacy chain
Full replacement of an MLM sales network management system in 3 months
Deeper technical notes on the topics from this case study.
For Fotopast.cloud we built the SaaS platform as a PWA instead of two native apps. Shipped in 2 months, it works. But here are five factors we use to decide — not every project fits PWA.
Read articleFor Fotopast.cloud we process photos from thousands of camera traps. The pipeline that scales: Event Grid triggers, blob storage tiering, deduplication, and cost optimization for bulk uploads.
Read articleFotopast.cloud went to production 60 days after kickoff. Not a marketing trick — a series of conscious decisions about what ships and what gets deferred. Here are the rules we use.
Read article