{"id":622,"date":"2026-04-24T07:01:35","date_gmt":"2026-04-24T07:01:35","guid":{"rendered":"https:\/\/basein.dev\/blog\/?p=622"},"modified":"2026-04-24T07:03:35","modified_gmt":"2026-04-24T07:03:35","slug":"building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis","status":"publish","type":"post","link":"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/","title":{"rendered":"Building an AgriTech SaaS MVP with Satellite Data, NDVI and APIs"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">From Idea to Working Farm Scoring Tool Using PostGIS, Sentinel Hub and Open-Meteo<\/h2>\n\n\n\n<p>This started as a simple experiment: could I build an <strong>AgriTech SaaS MVP<\/strong> using <strong>satellite data<\/strong>, <strong>NDVI analysis<\/strong>, weather APIs and geospatial tooling to score agricultural parcels?<\/p>\n\n\n\n<p>Not a pitch deck.<\/p>\n\n\n\n<p>Not a theoretical \u201cstartup idea\u201d.<\/p>\n\n\n\n<p>An actual working vertical slice.<\/p>\n\n\n\n<p>And surprisingly, it now does something real:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>stores field geometry<\/li>\n\n\n\n<li>imports land parcels<\/li>\n\n\n\n<li>pulls satellite vegetation signals<\/li>\n\n\n\n<li>fetches weather data<\/li>\n\n\n\n<li>calculates parcel risk scores<\/li>\n\n\n\n<li>returns recommendations through an API<\/li>\n<\/ul>\n\n\n\n<p>It is still an MVP.<\/p>\n\n\n\n<p>But it is a real product slice.<\/p>\n\n\n\n<p>And that makes it worth unpacking.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Why Build an AgriTech SaaS at All?<\/h1>\n\n\n\n<p>Because agriculture sits at the intersection of several interesting forces:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>climate pressure<\/li>\n\n\n\n<li>food systems<\/li>\n\n\n\n<li>geospatial data<\/li>\n\n\n\n<li>finance and risk<\/li>\n\n\n\n<li>increasingly accessible satellite infrastructure<\/li>\n<\/ul>\n\n\n\n<p>And because a lot of \u201cAgriTech\u201d products are either:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>too hardware-heavy<\/li>\n\n\n\n<li>too enterprise-heavy<\/li>\n\n\n\n<li>or too vague<\/li>\n<\/ul>\n\n\n\n<p>I wanted to explore something software-native.<\/p>\n\n\n\n<p>A small digital asset.<\/p>\n\n\n\n<p>A possible micro SaaS.<\/p>\n\n\n\n<p>A geospatial product with a path to becoming more.<\/p>\n\n\n\n<p>Very much a <strong>basein.dev<\/strong> kind of experiment.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">The Startup Idea<\/h1>\n\n\n\n<p>The initial hypothesis was simple:<\/p>\n\n\n\n<p>Can open data be used to make a quick parcel-level scoring engine?<\/p>\n\n\n\n<p>At minimum, answer:<\/p>\n\n\n\n<p><strong>Is something likely growing on this field right now?<\/strong><\/p>\n\n\n\n<p>Longer term:<\/p>\n\n\n\n<p>Can this evolve into:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>risk scoring<\/li>\n\n\n\n<li>monitoring<\/li>\n\n\n\n<li>compliance<\/li>\n\n\n\n<li>maybe even financial infrastructure<\/li>\n<\/ul>\n\n\n\n<p>That became the seed.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">MVP Architecture<\/h1>\n\n\n\n<p>The stack is intentionally boring.<\/p>\n\n\n\n<p>Boring stacks scale.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Core stack<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>PostgreSQL + PostGIS<\/strong><br>for parcel geometry storage<\/li>\n\n\n\n<li><strong>Python<\/strong><br>for ingestion and scoring<\/li>\n\n\n\n<li><strong>PHP API<\/strong><br>for endpoints and product surface<\/li>\n\n\n\n<li><strong>Docker Compose<\/strong><br>for one-command startup<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Data Inputs<\/h2>\n\n\n\n<p>Current MVP uses:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Satellite Data (Sentinel Hub)<\/h3>\n\n\n\n<p>Used for <strong>NDVI analysis<\/strong>.<\/p>\n\n\n\n<p>NDVI:<\/p>\n\n\n\n<p>Normalized Difference Vegetation Index<\/p>\n\n\n\n<p>Simple idea:<\/p>\n\n\n\n<p>Higher value<br>\u2192 healthier vegetation<\/p>\n\n\n\n<p>Lower value<br>\u2192 weak or absent growth<\/p>\n\n\n\n<p>That alone gives surprisingly useful signal.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Weather Data (Open-Meteo)<\/h2>\n\n\n\n<p>Using:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>temperature<\/li>\n\n\n\n<li>rain<\/li>\n\n\n\n<li>daily observations<\/li>\n<\/ul>\n\n\n\n<p>Weather becomes a second scoring factor.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"544\" src=\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-11-190914-1024x544.png\" alt=\"\" class=\"wp-image-623\" srcset=\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-11-190914-1024x544.png 1024w, https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-11-190914-300x159.png 300w, https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-11-190914-768x408.png 768w, https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-11-190914-1536x816.png 1536w, https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-11-190914.png 1785w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Parcel Geometry<\/h2>\n\n\n\n<p>Stored in PostGIS polygons.<\/p>\n\n\n\n<p>Originally entered manually.<\/p>\n\n\n\n<p>Later imported automatically.<\/p>\n\n\n\n<p>That changed everything.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"215\" src=\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/ezgif-89baa14894c067ac.gif\" alt=\"\" class=\"wp-image-626\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">From Fake Data to Real Data<\/h1>\n\n\n\n<p>This matters.<\/p>\n\n\n\n<p>The project did <strong>not<\/strong> start with real satellite integrations.<\/p>\n\n\n\n<p>It started with fake data.<\/p>\n\n\n\n<p>And that was correct.<\/p>\n\n\n\n<p>First:<\/p>\n\n\n\n<p>prove pipeline<\/p>\n\n\n\n<p>Field<br>\u2192 ingest<br>\u2192 score<br>\u2192 API response<\/p>\n\n\n\n<p>Only after that:<\/p>\n\n\n\n<p>replace synthetic data with real sources.<\/p>\n\n\n\n<p>This sequence saves massive time.<\/p>\n\n\n\n<p>Many MVPs do the opposite.<\/p>\n\n\n\n<p>And die.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">The First Scoring Model<\/h1>\n\n\n\n<p>Very simple:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">score =<br>0.6 * ndvi +<br>0.4 * weather_factor<\/pre>\n\n\n\n<p>Risk buckets:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>low<\/li>\n\n\n\n<li>medium<\/li>\n\n\n\n<li>high<\/li>\n<\/ul>\n\n\n\n<p>Simple?<\/p>\n\n\n\n<p>Yes.<\/p>\n\n\n\n<p>Useful?<\/p>\n\n\n\n<p>Enough for MVP validation.<\/p>\n\n\n\n<p>And importantly:<\/p>\n\n\n\n<p>explainable.<\/p>\n\n\n\n<p>Not black-box AI theater.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Why the Score Alone Is Not the Product<\/h1>\n\n\n\n<p>This became obvious fast.<\/p>\n\n\n\n<p>A score is just a number.<\/p>\n\n\n\n<p>Users do not want:<\/p>\n\n\n\n<p>\u201c0.48\u201d<\/p>\n\n\n\n<p>They want:<\/p>\n\n\n\n<p>Why?<\/p>\n\n\n\n<p>What changed?<\/p>\n\n\n\n<p>What should I do?<\/p>\n\n\n\n<p>So recommendations were added.<\/p>\n\n\n\n<p>Example outputs:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>weak vegetation signal detected<\/li>\n\n\n\n<li>verify crop presence<\/li>\n\n\n\n<li>monitor parcel within 72 hours<\/li>\n<\/ul>\n\n\n\n<p>That turned a metric into a product.<\/p>\n\n\n\n<p>Huge difference.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">The Ukraine Problem (And Why Estonia Happened)<\/h1>\n\n\n\n<p>The first instinct was Ukraine.<\/p>\n\n\n\n<p>Logical.<\/p>\n\n\n\n<p>But public registry access is constrained.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"366\" src=\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-11-091417-1-1024x366.png\" alt=\"\" class=\"wp-image-625\" srcset=\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-11-091417-1-1024x366.png 1024w, https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-11-091417-1-300x107.png 300w, https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-11-091417-1-768x274.png 768w, https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-11-091417-1-1536x549.png 1536w, https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-11-091417-1.png 1694w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>That route was not practical for this MVP.<\/p>\n\n\n\n<p>Rather than forcing a dead end: pivot.<\/p>\n\n\n\n<p>AI suggested Estonia.<\/p>\n\n\n\n<p>That turned out unexpectedly useful.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Estonian Parcel Import<\/h2>\n\n\n\n<p>This became a breakthrough.<\/p>\n\n\n\n<p>Using public cadastral data: <\/p>\n\n\n\n<p>enter cadastral number<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"616\" height=\"595\" src=\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-24-095647.png\" alt=\"\" class=\"wp-image-627\" srcset=\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-24-095647.png 616w, https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-24-095647-300x290.png 300w\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" \/><\/figure>\n\n\n\n<p>import parcel geometry automatically<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"414\" src=\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-24-095709-1024x414.png\" alt=\"\" class=\"wp-image-628\" srcset=\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-24-095709-1024x414.png 1024w, https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-24-095709-300x121.png 300w, https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-24-095709-768x310.png 768w, https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-24-095709.png 1143w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>No manual polygon drawing.<\/p>\n\n\n\n<p>That changed demoability overnight.<\/p>\n\n\n\n<p>Flow became:<\/p>\n\n\n\n<p>Parcel ID<br>\u2192 Import parcel<br>\u2192 Fetch data<br>\u2192 Score field<\/p>\n\n\n\n<p>Now it looked like a product.<\/p>\n\n\n\n<p>Not a dev toy.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Current MVP Can Do This<\/h1>\n\n\n\n<p>Today it can:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>import real parcel geometry<\/li>\n\n\n\n<li>fetch NDVI from satellite data<\/li>\n\n\n\n<li>fetch weather from Open-Meteo<\/li>\n\n\n\n<li>calculate parcel score<\/li>\n\n\n\n<li>generate recommendations<\/li>\n\n\n\n<li>expose results via API<\/li>\n\n\n\n<li>display it through map UI<\/li>\n<\/ul>\n\n\n\n<p>That is already a meaningful vertical slice.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"208\" height=\"384\" src=\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-24-095907.png\" alt=\"\" class=\"wp-image-629\" srcset=\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-24-095907.png 208w, https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/\u0417\u043d\u0456\u043c\u043e\u043a-\u0435\u043a\u0440\u0430\u043d\u0430-2026-04-24-095907-163x300.png 163w\" sizes=\"auto, (max-width: 208px) 100vw, 208px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">What This Could Become<\/h1>\n\n\n\n<p>This is where startup logic matters.<\/p>\n\n\n\n<p>Raw parcel scoring alone?<\/p>\n\n\n\n<p>Probably weak.<\/p>\n\n\n\n<p>But as infrastructure layer?<\/p>\n\n\n\n<p>Interesting.<\/p>\n\n\n\n<p>Possible directions:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Farm Monitoring SaaS<\/h2>\n\n\n\n<p>Recurring monitoring.<\/p>\n\n\n\n<p>Historical trends.<\/p>\n\n\n\n<p>Alerts.<\/p>\n\n\n\n<p>Subscriptions.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Agri Risk Scoring API<\/h2>\n\n\n\n<p>Banks.<\/p>\n\n\n\n<p>Insurers.<\/p>\n\n\n\n<p>Input suppliers.<\/p>\n\n\n\n<p>Much more interesting buyer category.<\/p>\n\n\n\n<p>Personally I find this one strongest.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Compliance \/ Traceability Layer<\/h2>\n\n\n\n<p>Especially under growing EU pressure.<\/p>\n\n\n\n<p>Potentially much larger than \u201cfarm app\u201d territory.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Carbon \/ ESG Data Layer<\/h2>\n\n\n\n<p>Possibly later.<\/p>\n\n\n\n<p>But only after strong data foundation.<\/p>\n\n\n\n<p>Not as starting point.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">What I Would Not Build<\/h1>\n\n\n\n<p>Probably not:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>drone startup<\/li>\n\n\n\n<li>agri hardware<\/li>\n\n\n\n<li>IoT sensor business<\/li>\n\n\n\n<li>robotics<\/li>\n\n\n\n<li>heavy field operations<\/li>\n<\/ul>\n\n\n\n<p>Too much capital.<\/p>\n\n\n\n<p>Too much operational gravity.<\/p>\n\n\n\n<p>For a small digital asset thesis:<\/p>\n\n\n\n<p>software wins.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Lessons from Building This MVP<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1. Start With a Vertical Slice<\/h2>\n\n\n\n<p>Not platform vision.<\/p>\n\n\n\n<p>One useful loop.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Fake Data First<\/h2>\n\n\n\n<p>Counterintuitive.<\/p>\n\n\n\n<p>Correct.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Explainability Beats AI Buzzwords<\/h2>\n\n\n\n<p>Especially in early products.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Data Near Money Is More Valuable<\/h2>\n\n\n\n<p>Farmer dashboards are nice.<\/p>\n\n\n\n<p>Financial risk tools may be better businesses.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Country-Agnostic Architecture Matters<\/h2>\n\n\n\n<p>Ukraine blocked one route.<\/p>\n\n\n\n<p>Estonia opened another.<\/p>\n\n\n\n<p>Architecture survived.<\/p>\n\n\n\n<p>That matters.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Why This Fits the basein.dev Thesis<\/h1>\n\n\n\n<p>This project fits something I keep coming back to:<\/p>\n\n\n\n<p>small digital assets.<\/p>\n\n\n\n<p>Buildable online products.<\/p>\n\n\n\n<p>Micro tools.<\/p>\n\n\n\n<p>Micro SaaS.<\/p>\n\n\n\n<p>Systems you can launch, test, automate, maybe scale.<\/p>\n\n\n\n<p>Without needing venture money to breathe.<\/p>\n\n\n\n<p>This was not:<\/p>\n\n\n\n<p>\u201clet\u2019s start an AgriTech company\u201d<\/p>\n\n\n\n<p>It was:<\/p>\n\n\n\n<p>\u201cWhat happens if I build one slice?\u201d<\/p>\n\n\n\n<p>Much better question.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Is There Real Business Potential?<\/h1>\n\n\n\n<p>Maybe.<\/p>\n\n\n\n<p>But not where many people think.<\/p>\n\n\n\n<p>Not in \u201cfarm app\u201d.<\/p>\n\n\n\n<p>Possibly in:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>scoring infrastructure<\/li>\n\n\n\n<li>geospatial APIs<\/li>\n\n\n\n<li>compliance tooling<\/li>\n\n\n\n<li>risk layers<\/li>\n<\/ul>\n\n\n\n<p>Closer to money.<\/p>\n\n\n\n<p>Closer to pain.<\/p>\n\n\n\n<p>Closer to budgets.<\/p>\n\n\n\n<p>That is where products survive.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Tech Stack Recap<\/h1>\n\n\n\n<p>For people who came here via search:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Stack used:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PostGIS<\/li>\n\n\n\n<li>Docker<\/li>\n\n\n\n<li>Python<\/li>\n\n\n\n<li>PHP<\/li>\n\n\n\n<li>Sentinel Hub API<\/li>\n\n\n\n<li>Open-Meteo API<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Concepts used:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>AgriTech SaaS<\/li>\n\n\n\n<li>Satellite Data<\/li>\n\n\n\n<li>NDVI + API<\/li>\n\n\n\n<li>Parcel Scoring<\/li>\n\n\n\n<li>Geospatial MVP<\/li>\n<\/ul>\n\n\n\n<p>If you searched for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>how to build an agritech startup<\/li>\n\n\n\n<li>farm monitoring software MVP<\/li>\n\n\n\n<li>NDVI API project<\/li>\n\n\n\n<li>satellite data SaaS<\/li>\n\n\n\n<li>agritech micro SaaS ideas<\/li>\n<\/ul>\n\n\n\n<p>\u2026this is exactly what this was.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">What I\u2019d Build Next<\/h1>\n\n\n\n<p>If continuing:<\/p>\n\n\n\n<p>Priority order:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>automatic re-scoring after import<\/li>\n\n\n\n<li>parcel metadata model<\/li>\n\n\n\n<li>duplicate-safe parcel import<\/li>\n\n\n\n<li>score history<\/li>\n\n\n\n<li>multi-country parcel providers<\/li>\n\n\n\n<li>risk scoring for finance use cases<\/li>\n<\/ol>\n\n\n\n<p>That feels like the real next layer.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Final Thought<\/h1>\n\n\n\n<p>Funny enough, this whole experiment began because AI casually suggested:<\/p>\n\n\n\n<p>\u201cMaybe build an agri startup.\u201d<\/p>\n\n\n\n<p>I treated it as a challenge.<\/p>\n\n\n\n<p>And challenges sometimes turn into products.<\/p>\n\n\n\n<p>And maybe, if a long-term dream of owning a tiny vineyard ever happens\u2026<\/p>\n\n\n\n<p>thinking about agriculture through software today may not be the worst detour.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Question<\/h2>\n\n\n\n<p>Would you push this toward:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Agri risk scoring API<\/li>\n\n\n\n<li>Monitoring SaaS<\/li>\n\n\n\n<li>Compliance product<\/li>\n\n\n\n<li>Or pivot completely?<\/li>\n<\/ul>\n\n\n\n<p>Curious what you\u2019d build.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>From Idea to Working Farm Scoring Tool Using PostGIS, Sentinel Hub and Open-Meteo This started as a simple experiment: could&hellip;<\/p>\n","protected":false},"author":1,"featured_media":631,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[878],"tags":[],"class_list":["post-622","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-in-progress-build"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Building an AgriTech SaaS MVP with Satellite Data, NDVI and APIs - Inside the Lab<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building an AgriTech SaaS MVP with Satellite Data, NDVI and APIs - Inside the Lab\" \/>\n<meta property=\"og:description\" content=\"From Idea to Working Farm Scoring Tool Using PostGIS, Sentinel Hub and Open-Meteo This started as a simple experiment: could&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/\" \/>\n<meta property=\"og:site_name\" content=\"Inside the Lab\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-24T07:01:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-24T07:03:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/5722cf92-d0a4-4e13-b5b4-9b38dcb3e61d-2026-04-11-1024x572.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"572\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Yevhen D.\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yevhen D.\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/\",\"url\":\"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/\",\"name\":\"Building an AgriTech SaaS MVP with Satellite Data, NDVI and APIs - Inside the Lab\",\"isPartOf\":{\"@id\":\"https:\/\/basein.dev\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/5722cf92-d0a4-4e13-b5b4-9b38dcb3e61d-2026-04-11-scaled.png\",\"datePublished\":\"2026-04-24T07:01:35+00:00\",\"dateModified\":\"2026-04-24T07:03:35+00:00\",\"author\":{\"@id\":\"https:\/\/basein.dev\/blog\/#\/schema\/person\/e1073793a1beab22e3970c5639ed44f3\"},\"breadcrumb\":{\"@id\":\"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/#primaryimage\",\"url\":\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/5722cf92-d0a4-4e13-b5b4-9b38dcb3e61d-2026-04-11-scaled.png\",\"contentUrl\":\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/5722cf92-d0a4-4e13-b5b4-9b38dcb3e61d-2026-04-11-scaled.png\",\"width\":2560,\"height\":1429},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/basein.dev\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building an AgriTech SaaS MVP with Satellite Data, NDVI and APIs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/basein.dev\/blog\/#website\",\"url\":\"https:\/\/basein.dev\/blog\/\",\"name\":\"Inside the Lab\",\"description\":\"Experiments, systems, and monetization in motion.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/basein.dev\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/basein.dev\/blog\/#\/schema\/person\/e1073793a1beab22e3970c5639ed44f3\",\"name\":\"Yevhen D.\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/basein.dev\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2025\/05\/avatar_user_1_1746891952-96x96.jpeg\",\"contentUrl\":\"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2025\/05\/avatar_user_1_1746891952-96x96.jpeg\",\"caption\":\"Yevhen D.\"},\"description\":\"Business Ideas \u2022 Software ecosystems \u2022 Online business \u2022 Marketplaces \u2022 Digital Products \u2022 Startups \u2022 SaaS Tips for beginners and experienced businessmen. We help in the study of useful and effective tools for online business. Tips and guides for the services you use or would like to use. We are experts in online business, or at least our experience allows us to talk about many interesting things :)\",\"sameAs\":[\"https:\/\/basein.dev\/blog\/\"],\"url\":\"https:\/\/basein.dev\/blog\/author\/shopexpertfy\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Building an AgriTech SaaS MVP with Satellite Data, NDVI and APIs - Inside the Lab","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/","og_locale":"en_US","og_type":"article","og_title":"Building an AgriTech SaaS MVP with Satellite Data, NDVI and APIs - Inside the Lab","og_description":"From Idea to Working Farm Scoring Tool Using PostGIS, Sentinel Hub and Open-Meteo This started as a simple experiment: could&hellip;","og_url":"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/","og_site_name":"Inside the Lab","article_published_time":"2026-04-24T07:01:35+00:00","article_modified_time":"2026-04-24T07:03:35+00:00","og_image":[{"width":1024,"height":572,"url":"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/5722cf92-d0a4-4e13-b5b4-9b38dcb3e61d-2026-04-11-1024x572.png","type":"image\/png"}],"author":"Yevhen D.","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Yevhen D.","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/","url":"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/","name":"Building an AgriTech SaaS MVP with Satellite Data, NDVI and APIs - Inside the Lab","isPartOf":{"@id":"https:\/\/basein.dev\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/#primaryimage"},"image":{"@id":"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/#primaryimage"},"thumbnailUrl":"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/5722cf92-d0a4-4e13-b5b4-9b38dcb3e61d-2026-04-11-scaled.png","datePublished":"2026-04-24T07:01:35+00:00","dateModified":"2026-04-24T07:03:35+00:00","author":{"@id":"https:\/\/basein.dev\/blog\/#\/schema\/person\/e1073793a1beab22e3970c5639ed44f3"},"breadcrumb":{"@id":"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/#primaryimage","url":"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/5722cf92-d0a4-4e13-b5b4-9b38dcb3e61d-2026-04-11-scaled.png","contentUrl":"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2026\/04\/5722cf92-d0a4-4e13-b5b4-9b38dcb3e61d-2026-04-11-scaled.png","width":2560,"height":1429},{"@type":"BreadcrumbList","@id":"https:\/\/basein.dev\/blog\/2026\/04\/24\/building-an-agritech-saas-mvp-with-satellite-data-ndvi-and-apis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/basein.dev\/blog\/"},{"@type":"ListItem","position":2,"name":"Building an AgriTech SaaS MVP with Satellite Data, NDVI and APIs"}]},{"@type":"WebSite","@id":"https:\/\/basein.dev\/blog\/#website","url":"https:\/\/basein.dev\/blog\/","name":"Inside the Lab","description":"Experiments, systems, and monetization in motion.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/basein.dev\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/basein.dev\/blog\/#\/schema\/person\/e1073793a1beab22e3970c5639ed44f3","name":"Yevhen D.","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/basein.dev\/blog\/#\/schema\/person\/image\/","url":"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2025\/05\/avatar_user_1_1746891952-96x96.jpeg","contentUrl":"https:\/\/basein.dev\/blog\/wp-content\/uploads\/2025\/05\/avatar_user_1_1746891952-96x96.jpeg","caption":"Yevhen D."},"description":"Business Ideas \u2022 Software ecosystems \u2022 Online business \u2022 Marketplaces \u2022 Digital Products \u2022 Startups \u2022 SaaS Tips for beginners and experienced businessmen. We help in the study of useful and effective tools for online business. Tips and guides for the services you use or would like to use. We are experts in online business, or at least our experience allows us to talk about many interesting things :)","sameAs":["https:\/\/basein.dev\/blog\/"],"url":"https:\/\/basein.dev\/blog\/author\/shopexpertfy\/"}]}},"_links":{"self":[{"href":"https:\/\/basein.dev\/blog\/wp-json\/wp\/v2\/posts\/622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/basein.dev\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/basein.dev\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/basein.dev\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/basein.dev\/blog\/wp-json\/wp\/v2\/comments?post=622"}],"version-history":[{"count":1,"href":"https:\/\/basein.dev\/blog\/wp-json\/wp\/v2\/posts\/622\/revisions"}],"predecessor-version":[{"id":630,"href":"https:\/\/basein.dev\/blog\/wp-json\/wp\/v2\/posts\/622\/revisions\/630"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/basein.dev\/blog\/wp-json\/wp\/v2\/media\/631"}],"wp:attachment":[{"href":"https:\/\/basein.dev\/blog\/wp-json\/wp\/v2\/media?parent=622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/basein.dev\/blog\/wp-json\/wp\/v2\/categories?post=622"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/basein.dev\/blog\/wp-json\/wp\/v2\/tags?post=622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}