Web App, Desktop App & Mobile App Dev & Design for Nonprofit
Featured Review- Custom Software Development Mobile App Development UX/UI Design
- $50,000 to $199,999
- Jan. 2024 - Nov. 2025
- Quality
- 4.5
- Schedule
- 4.5
- Cost
- 4.0
- Willing to Refer
- 5.0
"What stood out most was the breadth of ownership DHDTech.io brought to the project."
- Non-profit
- Brazil
- 1-10 Employees
- Online Review
DHDTech.oi developed and designed a wildfire damage assessment platform for a drone and AI research nonprofit. The team built a web app and cross-platform desktop and mobile apps with a shared backend.
DHDTech.oi delivered three production-ready applications, each with its own CI/CD pipeline, authentication flow, and distribution mechanism. The team was organized, reliable, and consistent. Moreover, DHDTech.io had a high level of ownership and engineering maturity, exceeding expectations.
The client submitted this review online.
BACKGROUND
Please describe your company and position.
I'm a manager at Brazil Flying Labs
Describe what your company does in a single sentence.
World wide non-profit organisation that uses drones, AI, and geospatial data to drive social and environmental impact. They offer training and education programmes — including STEM courses for youth and vulnerable communities — promote responsible drone use across sectors like environmental conservation, and collaborate with regulators to help shape evidence-based public policy around emerging technologies. They're part of the global Flying Labs network.
OPPORTUNITY / CHALLENGE
What specific goals or objectives did you hire DHDTech.oi to accomplish?
- Desktop (MAC, Linux and Windows) to track wildifre incidents by using image processing and AI.
- Web App to track wildfire incidents by using image processing and AI.
- Mobile App to track wildfire incidents by using image processing and AI.
SOLUTION
How did you find DHDTech.oi?
Referral
Why did you select DHDTech.oi over others?
- Pricing fit our budget
- Great culture fit
- Good value for cost
- Company values aligned
How many teammates from DHDTech.oi were assigned to this project?
2-5 Employees
Describe the scope of work in detail. Please include a summary of key deliverables.
DHDTech.io designed and delivered a full end-to-end wildfire damage assessment platform for Brazil Flying Labs, spanning a web application, a cross-platform desktop application, and an iOS/Android mobile app — all sharing the same backend and authentication layer.
Web Platform (wildfire-assessment)
The core product is a React single-page application backed by a Django REST Framework API. The platform enables field teams and researchers to manage geographic areas of interest, trigger AI-powered burn severity assessments using Sentinel-2 satellite imagery processed through Google Earth Engine, and review scientific deliverables including dNBR, RBR, dNDVI, and RGB composites. Analysis results are displayed in an interactive dashboard with draggable, configurable widgets — including a live fire map, severity trend charts, recent analyses, and statistical summary cards.
The backend runs Celery workers for asynchronous satellite data processing and report generation, with Redis as the task broker and cache. AI analysis reports and follow-up Q&A are powered by Google Gemini (primary) and OpenAI GPT-4o (fallback). The API is documented via OpenAPI/Swagger and secured with Auth0 JWT authentication. A multi-language interface (English, French, Portuguese) was implemented using a custom translation context.
Infrastructure is fully managed with Terraform on AWS: ECS Fargate for containers, Aurora PostgreSQL with PostGIS for geospatial data, S3 and CloudFront for static asset delivery, ALB for load balancing, ECR for container images, and Secrets Manager for credentials. CI/CD runs entirely through GitHub Actions, automating API deployment to ECS, UI deployment to S3/CloudFront, and Terraform plan/apply across environments.
Desktop Application (wildfire-assessment-electron)
DHDTech.io migrated the web application to a full Electron desktop app, distributed for macOS (Intel and Apple Silicon), Windows (x64 and ARM), and Linux (AppImage and .deb). Auth0 authentication was adapted to a custom deep-link protocol (wildfire://) to handle OAuth callbacks securely in a desktop context. Tokens are persisted using encrypted local storage via electron-store. An auto-update system was implemented using electron-updater, pulling new releases directly from GitHub Releases — meaning users receive silent background updates without any manual download. The build and release pipeline is fully automated through GitHub Actions, including macOS notarization for Gatekeeper compliance.
Mobile Application (wildfire-assessment-app)
A React Native mobile app was built with Expo targeting both iOS and Android. The app shares the same feature set as the web platform: authentication via Auth0, area management, analysis tracking, AI chat, dashboard, notifications, and user profile. Push notifications were integrated via Expo Push Service. The app architecture follows file-based routing with Expo Router and uses a tab-based navigation structure.
Observability — Grafana Cloud and PostHog
All three applications — web, desktop, and mobile — were instrumented by DHDTech.io with a unified observability stack built entirely on free-tier services.
For infrastructure and backend monitoring, Grafana Alloy was deployed as a sidecar OpenTelemetry collector. Alloy receives traces, metrics, and logs from the Django API, Celery workers, and Redis over OTLP (gRPC and HTTP), and ships everything to Grafana Cloud via authenticated OTLP export. The Django backend is auto-instrumented using the full OpenTelemetry Python SDK, covering HTTP requests, database queries, Celery tasks, Redis calls, and outbound HTTP. Redis metrics are scraped via a built-in Prometheus exporter in Alloy and forwarded into the same pipeline.
Five Grafana dashboards were provisioned and version-controlled as JSON via Terraform: ECS container metrics, RDS Aurora performance, Django API request metrics, Redis health, and frontend RUM. Alert rules were defined in code and cover: Aurora ACU and CPU utilisation above 95%, ECS CPU and memory above 80%, backend error log spikes, API 5xx response rate above threshold, JavaScript exceptions from the web UI, JavaScript exceptions from the mobile app, Redis going unreachable, Redis memory above 85%, key evictions, low cache hit rate below 80%, and blocked client accumulation. Alerts are routed to two contact points — error alerts (no resolve notification) and resource alerts (with resolve notification) — and delivered by email to the engineering team.
For frontend observability, Grafana Faro (@grafana/faro-web-sdk) was integrated across the web app, desktop app, and mobile app. Faro captures JavaScript exceptions, console errors, distributed traces, and real-user session data, all forwarded to Grafana Cloud Loki for log querying and alerting. Each application registers under a distinct app_name(wildfire-ui, wildfire-mobile, wildfire-assessment-electron) allowing per-surface error filtering in Grafana Explore.
PostHog was integrated for product analytics across all surfaces. It is initialised with opt_out_capturing_by_default: true — capturing is only activated after the user explicitly accepts the cookie consent banner. Page views are captured manually on every navigation event (including browser back/forward) to ensure accuracy. Autocapture is enabled for click and interaction events. The Electron build tags all PostHog events with a platform: electron property to distinguish desktop sessions from web sessions.
Both Grafana Faro and PostHog are gated by the same cookie consent hook — accepting cookies activates both services simultaneously, and rejecting or resetting consent pauses Faro and opts PostHog out in real time, with no page reload required.
Key Deliverables
- Production-deployed web application on AWS (ECS + Aurora + CloudFront)
- Electron desktop app with installers for macOS, Windows, and Linux with auto-update
- React Native mobile app for iOS and Android with push notifications
- Terraform-managed infrastructure including all Grafana dashboards and alert rules GitHub Actions CI/CD pipelines for all three applications
- Full OpenTelemetry instrumentation on Django, Celery, and Redis
- Grafana Faro RUM integration on web, desktop, and mobile
- PostHog analytics with GDPR-compliant cookie consent gating across all surfaces
- Auth0 authentication shared across all three applications with appropriate flow per platform
RESULTS & FEEDBACK
What were the measurable outcomes from the project that demonstrate progress or success?
DHDTech.io delivered a platform that went from zero to fully operational across three distinct surfaces — web, desktop, and mobile — within a single project engagement.
Three production-ready applications shipped. The web platform, Electron desktop app, and React Native mobile app were all taken to production, each with their own CI/CD pipeline, authentication flow, and distribution mechanism. The desktop app produces signed and notarized installers for six platform targets: macOS Intel, macOS Apple Silicon, Windows x64, Windows ARM, Linux AppImage, and Linux .deb — all built and published automatically on every tagged release.
Zero-touch deployment pipeline. Every code push triggers automated testing, building, and deployment through GitHub Actions. Infrastructure changes — including Grafana dashboards and alert rules — are applied via Terraform, meaning the entire system state is reproducible and version-controlled. No manual deployment steps are required for any of the three applications.
Full observability from day one. Before the first user session, the platform had five live Grafana dashboards covering ECS, RDS Aurora, Django API, Redis, and frontend RUM. Seventeen alert rules were active across backend errors, API 5xx rates, JavaScript exceptions, and infrastructure resource thresholds — all routing to the engineering team automatically with no manual monitoring required.
End-to-end traceability across the stack. A single user request can be traced from the browser or mobile app through the Django API, into Celery task execution, down to database queries and Redis operations — all visible in Grafana Cloud using distributed tracing via OpenTelemetry.
GDPR-compliant analytics across all platforms. PostHog and Grafana Faro are both live and consent-gated, meaning product usage data is being collected in a legally compliant way from web, desktop, and mobile users simultaneously — giving Brazil Flying Labs visibility into how the platform is actually being used in the field.
AI-powered analysis operational. The satellite imagery pipeline — from area selection through Google Earth Engine processing to AI-generated burn severity reports — is fully automated end-to-end, with both Google Gemini and OpenAI as live fallback providers, ensuring continuity of the core scientific workflow regardless of third-party availability.
Describe their project management. Did they deliver items on time? How did they respond to your needs?
DHDTech.io was organised and reliable throughout the engagement. All deliverables were completed on time with no missed deadlines. The team was consistently available for meetings to discuss requirements, review progress, and accommodate changes as the project evolved. Communication was clear and responsive — questions and adjustment requests were addressed promptly without disrupting the overall timeline. It was a smooth collaboration from start to finish.
What was your primary form of communication with DHDTech.oi?
- Virtual Meeting
- Email or Messaging App
What did you find most impressive or unique about this company?
What stood out most was the breadth of ownership DHDTech.io brought to the project. Rather than delivering just the code, they handled everything end-to-end — cloud infrastructure, CI/CD pipelines, observability, authentication, AI integrations, and three separate application surfaces — all as a single cohesive delivery. Nothing was left for us to figure out after handoff.
The observability setup was particularly impressive. Having five live dashboards, seventeen alert rules, and full distributed tracing active from day one — entirely on free-tier tooling — is not something we expected. It showed a level of engineering maturity that went well beyond what was strictly required.
Are there any areas for improvement or something DHDTech.oi could have done differently?
No.
RATINGS
-
Quality
4.5Service & Deliverables
-
Schedule
4.5On time / deadlines
-
Cost
4.0Value / within estimates
-
Willing to Refer
5.0NPS