Skip to main content
Projects Live

TerraCore PWA

TerraCore centralizes on a single screen everything a mid-sized farm needs to manage: livestock, inventory, production, animal health, costs, and finances. It replaces Excel, notebooks, and WhatsApp as operational tools. Built from the field with real producers in Urabá, it covers cattle, swine, equine, ovine, caprine, poultry, and associated crops (plantain, cacao, corn) in Colombia.

By Valentina Ramírez · Updated: June 19, 2026

Summary

Multitenancy PWA for mid-sized farms in Colombia. Centralizes livestock, inventory, production, health, and costs in one offline-first platform; cut administrative time by 42% in pilot farms. Django, DRF, PostgreSQL, React.

Stack
DjangoDRFPostgreSQLJWTReactTypeScriptTailwind CSS
01

The problem

Agricultural producers in Colombia had no software designed for them: existing ERPs were too complex, and an Excel sheet with login was not enough to manage livestock, animal health, and production simultaneously. Operations were scattered across notebooks, spreadsheets, and WhatsApp groups.

No traceability

When was that animal vaccinated? Nobody knows for certain.

Invisible stock

The feed runs out and nobody saw it coming.

No signal, no data

There is no internet in the paddock. The record is left for later, and later never comes.

02

What I built

  1. 01

    Multitenancy architecture: each organization operates in its own isolated data space on a single backend instance.

  2. 02

    REST API with Django REST Framework, JWT authentication, and role-based access control across three roles: Administrator, Operator, and Collaborator.

  3. 03

    Installable PWA from the browser on Android and iOS without going through the App Store: Service Worker persists records without signal and syncs in batch when connectivity is restored.

  4. 04

    Six integrated modules: Dashboard with real-time KPIs, livestock (ID, breed, weight, health, location), supplies with minimum stock alerts, operating costs per batch, batch production, and animal health with vaccines and health history.

  5. 05

    CSV import for frictionless onboarding and CSV export at any time: full data portability for the producer, no lock-in.

  6. 06

    Relational modeling in PostgreSQL: organizations, users, animals, batches, supplies, and production records.

  7. 07

    Frontend in React + TypeScript consuming the own API; responsive design with Tailwind CSS.

  8. 08

    TLS on all endpoints; Ley 1581 Habeas Data compliance with no data mining for third parties and no model training with user data.

Dashboard

Real-time KPIs: active animals, monthly production, supplies, alerts, and estimated revenue.

Livestock

Complete record: ID, breed, weight, health status, and location by paddock.

Supplies

Feed, medications, and supplies with minimum stock alerts and supplier info.

Costs

Operating cost records per batch: supplies, labor, and expenses associated with production.

Production

Milk, egg, and crop batches with supply and hours traceability.

Animal Health

Vaccines, booster alerts, and health history per animal.

If you log a vaccine, three things happen automatically.

  1. Vaccine applied (e.g. Triple Bovina on 'La Canela')
  2. Supply automatically deducted (-1 dose from stock)
  3. Next booster scheduled (in 14 days)
  4. Animal health status updated
03

Architecture decisions

1. Offline-first with PWA

Context
In paddocks and pens the signal is intermittent or nonexistent.
Trade-off
A traditional web app would fail. A native app would require store publishing and more maintenance.
Decision
PWA with Service Worker that persists records locally and syncs in batch when connectivity returns. Installs from the browser on Android and iOS without going through the App Store.

2. Coupled modules with internal events

Context
Every field action has consequences on other records (vaccine, supply, health, schedule).
Trade-off
Isolated modules are easier to maintain but force the user to update each section manually.
Decision
Internal event architecture: one action triggers cascade updates across all related modules.

3. Multi-role without complexity for the user

Context
A farm has administrators, field operators, and collaborators with different information needs.
Trade-off
A single role sees everything (exposure risk and overload); too many roles complicate management.
Decision
Three roles with differentiated permissions: Administrator, Operator, and Collaborator. Each user sees only what they need based on their workflow.

4. Ley 1581 de 2012 compliance by design

Context
Production and animal health data are sensitive to the producer. Trust is a blocker.
Trade-off
Storing more data improves the product but increases legal liability and distrust.
Decision
No data mining for third parties, no model training with user data. TLS on all endpoints.

5. Guaranteed data portability

Context
Producers distrust platforms that retain their data or make exit difficult.
Trade-off
Data lock-in can retain users in the short term but destroys trust and slows initial adoption.
Decision
CSV import and export at any time with no restrictions. The producer's data belongs to the producer.
04

Results

  • -42% reduction in administrative task time measured in pilot farms.

  • Complete agricultural operation centralized on one platform, replacing the workflow in Excel, notebooks, and WhatsApp.

05

Learnings

  • Multitenant data isolation conditions every modeling decision: defining the tenant boundary early avoids rewrites.

One click away

Your next idea deserves
code that can carry it.

I design and build complete products: from the backend to the interface your users love. With integrated AI and security by design.

Projects from COP 2,000,000 / USD 500 depending on scope (MVP from 3-6 weeks).

Limited availability, I respond within 24h.