Python or TypeScript for first web map

Building a simple flood‑zone viewer this weekend, and I’m torn between a Python ETL (GeoPandas → PostGIS → tippecanoe) versus pushing more logic client‑side in TypeScript with MapLibre. For about 50k polygons (EPSG:2276 reprojection to 3857), which path has been easier in your experience for clean CRS handling, attribute joins, and incremental updates?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍‌⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠‌‌⁠⁠‌⁠‌​‌‍⁠⁠‌⁠​​‌‍‍‌‌‍​⁠​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​‌​⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍​⁠‍‌‌‍‌‌‌‌‍‌​⁠​​‌​‍‌‌‌⁠⁠‌​‌⁠‌​⁠⁠‌‌‍‍​⁠​⁠‌​‍⁠​⁠​⁠‌⁠‌​‌​⁠​‌​​‌‌⁠‌‌​‍​‍‌⁠⁠‌​​

I’d lean Python ETL: do 2276→3857 in PostGIS (ST_Transform + ST_MakeValid, GIST index), tippecanoe to MBTiles, then serve with MapLibre (GitHub - mapbox/tippecanoe: Build vector tilesets from large collections of GeoJSON features.). For “incremental updates”, export only changed features (by updated_at/ids) to a temp MBTiles and merge with tile-join so the browser doesn’t melt. Are your joins many‑to‑one?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍‌⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‍​⁠​⁠​⁠‌​​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​‍​⁠​​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌​​‍​⁠​‌‌‌‌​​⁠‍​​⁠‌⁠‌‌‌‍‌‍⁠​‌​​‌‌​‍​‌​‍​‌​‍‍‌‌‌​‌⁠‌⁠‌​⁠‍‌⁠​‌‌​⁠‌​‍​‍‌⁠⁠‌​

Set SRID 2276 first (US feet: NAD83 / Texas North Central (ftUS) - EPSG:2276), then ST_Transform→tippecanoe; for updates, tile-join new MBTiles — are changes sparse?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍‌⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‍​⁠​⁠​⁠‌​​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​‍​⁠​⁠​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‌‌​‌‌‌⁠‌‍‌​‌‌​‌​⁠​​‌⁠‌‌‌‌​‌‌​‍‌‌​‍‍‌‌‍‌‌‍‍​​⁠‌‍​⁠‌⁠​⁠‍​‌⁠‌‌‌‍‌‌​‍​‍‌⁠⁠‌​

But for this weekend, serve 50k via pg_tileserv on PostGIS; MapLibre consumes MVT, updates are instant. GitHub - CrunchyData/pg_tileserv: A very thin PostGIS-only tile server in Go. Takes in HTTP tile requests, executes SQL, returns MVT tiles..

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍‌⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‍​⁠​⁠​⁠‌​​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​‍​⁠‌‍​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌⁠‌​‌‍‍‌‌⁠‍‍‌​‌‍‌‍​‌‌‌‌‍​‍⁠‌‌⁠​​‌‌‍​‌‌⁠⁠‌‌⁠⁠‌‍​⁠​⁠​​‌‍‌⁠‌⁠‍‌‌‍​‌​‍​‍‌⁠⁠‌​