Skip to content
#03 Success case Industry · Residential gas

GasCheck: residential gas inspections with same-day certificates

Offline-first mobile app for field technicians + Django backend that generates the PDF and emails it to the distributor. Gases y Redes Ingeniería SAS (GRI) runs 21 inspections a day across 20+ cities with 3 technicians, and delivers the certificate in under an hour.

Build: 2 months (MVP) · iterating since Mobile + backend Live in production, 20+ cities
The pain

What inspecting homes with paper forms and WhatsApp actually cost

  • · Paper forms and a ballpoint pen. The technician would arrive at the customer's home with a printed form, handwrite the manometer readings, the state of the service line, observations, and sign at the end. If a field was forgotten, it was filled in from memory later — or left blank.
  • · Photos over WhatsApp on personal phones. Photos of the installation, the meter reading, and the conformity certificate were taken on the technician's personal phone and arrived at the office mixed in with memes, family photos, and other chats. Traceability was impossible.
  • · Certificates took 5 to 10 business days. An office admin would take the paper form, the loose photos, and assemble the certificate in Word. Print, sign, scan, email to the regional distributor. The end customer waited 5 to 10 business days. And the distributor could not act on it until the PDF arrived.
The value

What GasCheck changed

  • · Capture on the phone, offline-first. The technician opens the app, fills the digital form, takes photos from inside the app (not the system camera), and keeps working even without signal. Back at the office, everything syncs on its own.
  • · Certificate generated on the backend, ready to send. When the inspection closes, the Django backend assembles the PDF with the institutional template, the data, the photos, and the technician's signature. The certificate is emailed to the regional distributor in under an hour from when the technician finished the visit.
  • · End-to-end traceability. GRI can ask "how many inspections were done in southern Cali this month?" and get the answer in seconds. Every inspection has a timestamp, GPS, responsible technician, photos, and outcome. The distributor knows exactly when and by whom each certificate was issued.
Stack
Technologies we worked with during implementation
React Native + ExpoDjango + DRFPostgreSQLRedisCeleryReportLab / WeasyPrintDockerOn-premise
GasCheck technician inspecting a residential gas installation with the mobile app
GasCheck · Residential gas inspection with offline capture and backend-generated certificate
The technical challenge

The app captures, the backend certifies

The client wanted the certificate to come out instantly. The right call was to NOT generate it on the app. The phone captures; the server certifies. If the phone is lost, the certificate can be re-issued from the server. We designed the flow this way:

  • 1 The app captures, the backend certifies. The technician's phone does not generate PDFs. It captures data, photos, GPS, signature. The Django backend assembles the PDF with the institutional template, hash, and metadata. If the phone is lost, the certificate can be re-issued from the server.
  • 2 Offline-first because signal inside homes is not negotiable. Technicians visit homes with bad or no coverage. The app stores everything locally (SQLite / AsyncStorage) and syncs when back at the office. An inspection never stalls because of signal.
  • 3 PostgreSQL as the single source of truth, on-premise. GRI runs the app and the backend on their own servers. The database stores inspections, technicians, photos, generated PDFs, and the audit trail. Nothing goes to the cloud.
  • 4 PDF generation is async, not in the HTTP request. The PDF is not generated when the technician closes the inspection. A Celery task assembles it in the background, saves it to disk, and triggers the email to the distributor. The technician does not wait.
┌──────────────────┐
│  React Native    │  ◄── Field technician, offline-first
│  + Expo app      │      Captures: data, photos, GPS, signature
└────────┬─────────┘
         │ Syncs when back at the office (WiFi)
         ▼
┌──────────────────┐
│  Django + DRF    │  ◄── API, auth, models, validation
└────────┬─────────┘
         │ Enqueues on inspection close
         ▼
┌──────────────────┐
│  Celery worker   │  ◄── Assembles PDF with ReportLab / WeasyPrint
│  + Redis broker  │
└────────┬─────────┘
         │ Generates PDF + sends email
         ▼
   📄 PDF on local disk
   📧 Email to regional distributor
Lessons learned

What we took away from the project

  1. 01

    PDF on the backend, not on the phone

    The client wanted the certificate to come out instantly. The right call was to NOT generate it on the app. The phone captures; the server certifies. If the phone is lost, the certificate can be re-issued. The capture/certification split is what makes the system auditable.

  2. 02

    AI came in as a development collaborator, not as a product feature

    The MVP shipped in 2 months. AI helped with the Django backend scaffolding, the models, the serializers, and the first version of the PDF generation with template. Today it is standard practice across the team. It cuts time to market without cutting quality.

  3. 03

    Offline-first because the field does not negotiate

    The first version required connectivity to register an inspection. We switched it to local SQLite with sync when back at the office. Inspection drop-offs dropped to nearly zero. If you depend on signal inside a home, you lose the inspection.

We used to deliver the certificate five to ten days after the inspection, and the distributor had no way to know if it was real. Now the technician finishes the visit, gets back to the office with signal, and within an hour the distributor has the PDF in their inbox.

GRI
Operations team
Gases y Redes Ingeniería SAS

Paraphrased testimonial.

Is this your situation?

Got field technicians still working with paper and WhatsApp?

20 minutes on a call about your operation. We walk through scope, architecture, and how fast you can move off paper. No commitment.