◆ Solution 05 · Content management & workflow automation In development

The map is the interface, not an afterthought.

A content management platform built on the ESRI ArcGIS Maps SDK for JavaScript, where spatial data is a first-class content type rather than an embedded widget. Drag-and-drop geospatial workflows, cloud-native format loaders, and document AI that turns appraisals and plats into queryable data — self-hostable, with the source available.

🗺️ ArcGIS SDK native 🧩 88+ workflow components 📦 Cloud-native formats 🐳 Self-hostable
Read the status section first. This platform is pre-production and under active development. Everything described on this page is implemented and demonstrable, but the maturity table at the bottom is the authoritative account — and several capabilities described in earlier collateral are deliberately absent here pending verification.
The problem

Most content systems treat a map as a plugin

Which is fine until the spatial data is the point — then every ordinary CMS assumption starts working against you.

🔌

The map is bolted on

An iframe or a shortcode. It renders, but the CMS cannot query it, index it, or use it to drive anything else on the page.

🗃️

Geometry is not a field type

So boundaries end up as an uploaded file or a pasted coordinate string, and nothing downstream can filter on them.

⛓️

Processing means leaving

Any real spatial operation — buffer, join, clip — means exporting to desktop GIS and importing the result back by hand.

📄

Documents stay opaque

Appraisals, plats and inspection reports go in as PDF blobs. The numbers inside them are invisible to search.

◆ ArcGIS-native rendering

Built on the Maps SDK, not around it

The ESRI ArcGIS Maps SDK for JavaScript drives 2D and 3D rendering with WebGL acceleration, so the same platform that manages the content also does the cartography — custom basemaps, imagery, live data layers and 3D scenes in one runtime.

  • 2D and 3D in one view stack — building visualisation and fly-through, terrain and elevation derivatives, mobile-responsive touch controls.
  • County parcel WFS — authoritative boundaries, ownership, lot size and legal descriptions served live onto the map, with identify popups and EPSG projection handling.
  • 3D mesh and scene layers — textured mesh, I3S/SLPK scene layers and 3D Tiles, with GLB and 3D Tile export.
  • 60+ map services wired through the SDK, from basemaps to raster analytics.
ArcGIS Maps SDK for JSWebGL WFSI3S / SLPK3D Tiles
map view — ArcGIS SDK
import Map from '@arcgis/core/Map';
import MapView from '@arcgis/core/views/MapView';
import WFSLayer from '@arcgis/core/layers/WFSLayer';

const map = new Map({ basemap: 'streets-vector' });

// County parcels straight off the WFS endpoint
map.layers.add(new WFSLayer({
  url: 'https://gis.county.gov/geoserver/wfs',
  name: 'parcels',
  popupEnabled: true,
}));

const view = new MapView({
  container: mapRef.current,
  map,
  center: [-80.19, 25.76],
  zoom: 14,
});

return () => view.destroy();
Visual workflow builder

Geospatial processing without opening a GIS

A drag-and-drop canvas built on React Flow, with a component library of more than 88 geospatial operations and data sources. Wire a source to an operation to an output, run it, and watch the execution log.

CategoryComponents
Data sourcesPostGIS, DuckDB, WFS, Esri feature services, file upload
Geometric operationsBuffer, union, intersection, difference, simplification
Spatial analysisHotspot analysis, clustering, nearest neighbour, spatial join
Distance operationsProximity analysis, service areas, isochrones
TransformationsCoordinate conversion, geometric transformations
OutputsInteractive maps, file exports, database writers, API webhooks
  • Real-time execution with per-node progress and a detailed log, so a failed run tells you which step failed and why.
  • Validation before execution — dependency checking and error detection on the graph itself, not at runtime.
  • Template library of pre-built workflows for common tasks, so the canvas is not a blank page on day one.
  • Versioned — workflow history, so a change to a production pipeline is reviewable and reversible.
Why this matters here. It is the same class of work the Opportunity Pipeline does in batch, exposed to someone who is not going to write DuckDB SQL. The pipeline is for standing up a jurisdiction; this is for the one-off question an analyst has on a Tuesday.
workflow graph — serialised
{
  "nodes": [
    { "id": "src-1", "type": "wfs_source",
      "data": { "url": "…/geoserver/wfs",
                "layer": "parcels" } },

    { "id": "buf-1", "type": "buffer",
      "data": { "distance": 800,
                "units": "meters" } },

    { "id": "join-1", "type": "spatial_join",
      "data": { "predicate": "intersects" } },

    { "id": "out-1", "type": "map_output" }
  ],
  "edges": [
    { "source": "src-1", "target": "buf-1" },
    { "source": "buf-1",  "target": "join-1" },
    { "source": "join-1", "target": "out-1" }
  ]
}
Cloud-native formats

Stream the big things instead of downloading them

Native loaders for the formats built to be range-requested over HTTPS, so a multi-gigabyte raster or point cloud opens without a conversion step or a staging server.

🛰️

Raster & point cloud

COG for cloud-optimised GeoTIFF, COPC for lidar point clouds, and Zarr for chunked multidimensional arrays — each read by range request rather than downloaded whole.

📐

Vector & tiles

FlatGeobuf for streaming vector, GeoParquet for columnar analytics, PMTiles for single-file tile archives, plus GeoJSON, Shapefile and DXF for the things people actually email you.

🧊

3D & services

I3S/SLPK scene layers and 3D Tiles for meshes and integrated meshes, and WFS for live feature services from a county or agency server.

COGCOPCFlatGeobuf GeoParquetPMTilesZarr WFSI3S / SLPK3D Tiles GeoJSONDXFShapefile
◆ Document processing

Stop reading documents. Start querying them.

An appraisal, a survey plat or an inspection report goes in as a PDF. OCR reads it, the text is embedded and indexed, and the result is searchable alongside everything else — with answers cited back to the document they came from.

  • Multi-tier OCR — Tesseract.js with Extract2MD turning scanned PDFs and photographs into clean structured markdown, with multi-page and batch support.
  • Geographic RAG — retrieval-augmented generation grounded in your location data, so a question about a parcel is answered from the documents attached to that parcel.
  • DuckDB WASM vector search — the embedding store runs in the browser, so semantic search over a document set happens client-side.
  • AI content generation — listing descriptions and summaries via OpenRouter, with caching and retries built in.
Tesseract.jsExtract2MD DuckDB WASMOpenRouter
POST /api/v1/geospatial/analyze
# Spatial operations are a documented HTTP surface,
# not just a thing the UI can do.
curl -X POST '…/api/v1/geospatial/analyze' \
  -H 'Content-Type: application/json' \
  -d '{
    "operation": "buffer",
    "input": { "type": "Feature", "geometry": {
      "type": "Point",
      "coordinates": [-80.19, 25.76] } },
    "parameters": { "distance": 1000, "units": "meters" }
  }'

# → { "result": { … }, "execution_time": 123 }

# Features out as a FeatureCollection
curl '…/api/v1/geospatial/features?bbox=-80.3,25.7,-80.1,25.9\
  &layer=parcels&limit=100'
For developers SOURCE

A monorepo you can run yourself

Not a hosted product with an API bolted on — a set of applications you deploy, each owning a distinct capability, behind Docker Compose.

ApplicationStackOwns
CMSNext.js 15, React 19Content, forms, listings, CRM records, auth, AI content generation
Map moduleNext.js, ArcGIS SDKThe visual workflow builder, the 88+ component library, map rendering
Document processingNext.jsOCR, retrieval-augmented generation, document ingestion
Map catalog builderVite, ReactCatalog management and publishing
Indoor mappingWebpackIndoor mapping and wayfinding
  • TypeScript throughout, strict mode, with Zod schemas validating every API boundary and inferring the types rather than duplicating them.
  • REST API under /api/v1 — auth, geospatial features and analysis, and the record surfaces behind the CMS.
  • PostgreSQL via Prisma, with Redis for sessions and caching.
  • Docker Compose deployment with multi-stage builds and health checks on every service.
run it
# Configure
cp .env.example .env.production

# The whole stack
docker compose -f docker-compose.prod.yml up -d

# Health check
curl -f 'https://your-domain/api/health'

# Or run a single app in development
cd klickbee-cms-enhanced && npm run dev
cd map_module && npm run dev

# Quality gates
npm run type-check
npm run quality:check   # lint + format + types + tests
Maturity

What is actually built

This platform is pre-production. The table below is drawn from the repository's own status reporting rather than from a sales deck, and it is the version we will hold ourselves to.

CapabilityStatusDetail
ArcGIS mapping, parcel WFS, cloud-native format loadersFunctional2D and 3D rendering, live WFS overlay, COG / COPC / FlatGeobuf / GeoParquet / PMTiles / Zarr
Visual workflow builder, 88+ componentsFunctionalReact Flow canvas, real-time execution and logging, template library
OCR, geographic RAG, vector searchFunctionalTesseract.js and Extract2MD; DuckDB WASM embedding store
AI content generationFunctionalVia OpenRouter; requires your own API key
CRM — contacts, deals, activitiesFunctionalReal CRUD with Zod validation, auth-gated
Property listings, search and detail pagesFunctionalBacked by the platform's own database
Authentication and sessionsFunctionalLogin, registration and signed sessions
Draw-to-search, price heatmapsIn progressSketch integration and heatmap layers specified; clustering and parcel overlay are done
Transaction and closing managementIn progressData model exists; API and interface not yet wired
Saved searches and alertsIn progressRoutes return stubs; persistence and the notification worker are next
Specialised document AI — appraisal forms, plat and legal descriptionsPlannedMetes-and-bounds and PLSS parsing specified, not built
Drone photogrammetry — orthomosaic, DSM, point cloudPlannedSpecified, not built
Professional services marketplace, commissions, billingPlannedSpecified, not built

* Several capabilities that appear in earlier collateral for this platform — including multi-tenancy and tenant isolation, MLS/IDX/portal integrations, dashboard analytics and role-based permission enforcement — are deliberately omitted above. The repository's status reporting and that collateral disagree about them, and we would rather leave a capability off this page than claim one we cannot demonstrate. Ask us and we will tell you exactly where each one stands.

◆ Source-code SDK for every solution

See the parts that are built

We will demo the shipping capabilities against your data and walk the maturity table line by line — including where the roadmap items genuinely stand. The platform is self-hostable and the source is available, so what you deploy is not gated on our release schedule.