Type
Local-first internal control console and product prototype
Internal tool / Product prototype / Real estate operations
A local-first internal control console for tracking real estate opportunities across Spain.
TerritoryOps combines geospatial visibility, table-based review, pipeline tracking, and attention logic into a private operational atlas.
Prototype scope: local browser data, optional demo records, no backend or authentication.
Project Snapshot
Local-first internal control console and product prototype
Real estate scouting, follow-up control, deal-stage review, and location intelligence
Product framing, workflow design, UX structure, data validation, and implementation
Next.js, React, TypeScript, Tailwind CSS, Leaflet, OpenStreetMap, Vitest
Public prototype; no backend, authentication, team sync, or paid APIs
Business Context
Real estate scouting often begins as a loose collection of Google Maps links, notes, contact details, rough valuations, follow-up dates, and uncertain deal states. As that list grows, the operational question becomes harder: what is controlled, what is being negotiated, what needs attention, and what can be ignored? TerritoryOps was built as a prototype for that specific control problem, not as a marketplace or production enterprise platform.
System / Solution
The product brings one local dataset into three complementary views. The map establishes spatial context, the table supports dense operational review, and the pipeline makes deal stages legible. Quick capture, dossier details, attention rules, validation, and JSON/CSV portability keep the workflow useful without requiring backend infrastructure.
Spain-centered location visibility with shared filters and status context.
Sortable operational detail for values, contacts, follow-ups, and warnings.
Stage-based scanning across watchlist, interest, evaluation, negotiation, control, and passed locations.
Focused entry for names, places, coordinates, Google Maps links, and initial status.
Browser storage keeps setup private, lightweight, and immediately usable.
Overdue or missing actions and negotiations without contacts become direct drilldowns.
Validated JSON and CSV import/export support backup, transfer, and inspection.
Design logic / Build decisions
Internal tools should remove operational friction before they add infrastructure. The interface is composed like a private atlas and control room: restrained, information-dense, and focused on capture, status, and visible next actions.
Workflow validation came before accounts, databases, or synchronization complexity.
Map answers where, table answers what, and pipeline answers where each opportunity stands.
Missing and overdue follow-ups are actionable records, not a decorative metric.
CSV and JSON keep the local dataset inspectable, transferable, and easy to back up.
No drag-and-drop yet. Stage changes stay intentional through the edit flow.
Supabase, auth, audit logs, and team sync remain future options, not premature foundations.
Core features
Each capability supports the same question: what deserves attention, and what is the next responsible action?
Spatial awareness across Spain with status-colored markers.
Sortable, dense review of operational and deal fields.
Fast scanning across the business-control status model.
Focused entry with coordinate and Google Maps support.
Place, deal, contact, follow-up, and decision context in one panel.
Clickable overdue, missing-action, and missing-contact records.
JSON and CSV portability with proper escaping and compatibility.
Business-number, probability, coordinate, and duplicate checks.
Automatic browser restoration after edits, imports, and view changes.
64 tests plus lint, typecheck, test, and build in GitHub Actions.
Technical implementation
The prototype uses a modern frontend stack and explicit data rules while keeping the operating model intentionally local. Engineering proof supports the product story without turning the case study into repository documentation.
A typed RealEstateLocation model keeps identity, place, business-control, contact, follow-up, and audit fields explicit.
Shared filters persist across Map, Table, and Pipeline, so switching views never resets operational context.
Import validation rejects invalid business values while preserving valid zero values and legacy exports.
General build discipline was informed by the awesome-vibe-coding workflow collection, used as inspiration rather than a dependency or product foundation.
Visual proof
The case study does not fabricate product screens. These composed placeholders preserve the page rhythm until real captures are added.
/images/case-studies/territoryops/map.png/images/case-studies/territoryops/table.png/images/case-studies/territoryops/pipeline.png/images/case-studies/territoryops/drawer.png/images/case-studies/territoryops/add-location.png/images/case-studies/territoryops/attention.pngOutcome / Why it matters
TerritoryOps demonstrates that a small internal tool can make business logic visible without imitating a large platform.
What I would build next
The roadmap stays modest and follows validated operating needs rather than feature accumulation.