Skip to content
Case Study2 months5 min read

SaaS platform for trail cameras — cloud photo storage and device management as a PWA

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.

2 monthstime to productionfrom zero to live
iOS + AndroidPWA appsno App Store fees
Azurecloud storageunlimited scalability
Real-timepush notificationson motion detection
01 — Starting point

A custom ecosystem for thousands of customer trail cameras

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.

Existing SaaS solutions on the marketunsuitable / nonexistent
Customer photo managementmanual, no centralisation
Mobile access to photoscompletely missing
Push notifications on motion detectioncompletely missing
Result without a custom solution
customers without added valuezero retention, no recurring revenue model
02 — Solution

A complete SaaS platform: from photo ingestion to mobile push notifications

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.

01

.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.

02

Dedicated photo ingestion server

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.

03

Azure Blob Storage

Scalable cloud storage for all customer photos, organised by device, with automated file lifecycle management.

04

Web application (React)

A full-featured React application for managing trail cameras, browsing photos, configuring devices, and managing subscriptions. Deployed on Cloudflare Pages.

05

PWA for iOS and Android

A progressive web app installable on iOS and Android without App Store or Google Play. Full mobile UX with offline support.

06

Push notifications (Firebase Messaging)

Customers receive instant push notifications when motion is detected — on both web and mobile PWA via Firebase Cloud Messaging.

07

COMGATE integration

COMGATE payment gateway for subscription management — monthly, quarterly, and annual plans with automatic renewal.

08

Azure Communication Services

Transactional emails (registration confirmations, payment receipts, subscription notifications) sent via Azure Communication Services.

03 — Architecture

Solution Architecture

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.

Solution architecture
  1. Sources: Trail cameras (photos by email (SMTP)); Customers (PWA)
  2. Edge: Cloudflare Pages (frontend hosting); SMTP ingest server (Docker container)
  3. Core · Azure: .NET API (Docker container)
  4. Data: Azure Blob Storage (photos)
  5. Integrations: Notifications (Firebase Cloud Messaging · push, Azure Communication Services · email); Payments (COMGATE · subscriptions)
  6. Deployment: Azure DevOps → CI/CD → Docker · Azure
04 — Results

Results

Automatic photo ingestion from devices

Trail cameras send photos as email attachments — the server automatically receives and stores them in Azure Storage with no user action required.

Cloud trail camera management

An overview of all devices, photo organisation by camera, filtering, and full-resolution browsing.

PWA for iOS and Android

Customers add the app to their home screen like a native app — no App Store or Google Play required.

Push notifications on motion detection

Firebase Cloud Messaging delivers a notification instantly when motion is captured — on both mobile and browser.

Subscription model with COMGATE

Three pricing tiers (monthly, quarterly, annual) with COMGATE payments and automatic subscription renewal.

Scalable Azure storage

Azure Blob Storage scales with customer growth without any architectural changes — from the first user to thousands of devices.

Technologies

  • .NET
  • React
  • Docker
  • Azure
  • Azure Blob Storage
  • Azure DevOps
  • CI/CD Pipelines
  • Cloudflare Pages
  • Firebase Messaging
  • COMGATE
  • PWA
  • SMTP server
  • Azure Communication Services

More case studies

All case studies

ClinicDent

Multitenant SaaS for dental clinics — from booking to insurance billing

HealthcareSaaSMultitenant
Read more

Magistra a.s.

Data warehouse on Microsoft Fabric for a 200+ pharmacy chain

DataEnterpriseMicrosoft Fabric
Read more

JUST CS spol. s r. o.

Full replacement of an MLM sales network management system in 3 months

EnterpriseSystem replacementAzure
Read more

Related reading

Deeper technical notes on the topics from this case study.

Architecture & Consulting · 6 min read

PWA instead of an iOS/Android app: when it works and when you lose users

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 article
Enterprise Integration · 7 min read

Ingesting millions of photos from IoT devices on Azure: from camera to cloud

For 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 article
Architecture & Consulting · 6 min read

SaaS in 2 months that doesn't collapse in six: what to cut, what not to

Fotopast.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
A senior architect on every project · About us →

Want a similar solution?

Send us a message — we respond within one business day and schedule an intro call.