Plastic Bank

Generative engine optimization (GEO) and AI development for the social enterprise that pays vulnerable coastal communities to collect ocean-bound plastic.

155 published pages built to be quoted, with every factual claim tied to a named source and marked up so assistants can attribute it

Problem

Plastic Bank's visibility depended on conventional search, where a ranking position earns a click. Assistants changed that. They answer the question directly, name a handful of sources, and the rest of the page never gets seen. For an organization whose funding and partnerships depend on being understood accurately, the risk was not just lost traffic. It was being summarized second-hand, or left out of the answer entirely, on the exact questions it is most qualified to answer.

How

Rather than optimize existing marketing pages, I built a separate resource at rivers.plasticbank.com covering the science of river-to-ocean plastic leakage. The premise was that assistants cite what is easiest to verify, so the site is structured for verification first. Every claim traces to peer-reviewed research, marked up as ScholarlyArticle, and the questions people actually ask are answered in schema.org question and answer pairs rather than buried in prose. River and basin pages carry Place and GeoCoordinates data so a model can resolve which river is meant. The interactive map runs on MapLibre GL against OpenFreeMap vector tiles, replacing a watermarked raster basemap. The whole site is plain HTML, CSS, and JavaScript with no build step or bundler, which keeps it fast and keeps the markup legible to anything reading it. A Filipino locale serves the communities Plastic Bank collects with. Alongside it I shipped the Plastic vs. Fish 2050 countdown, which ships from one source to two targets: a self-contained block for the WordPress site and a standalone static build.

Result

Both properties are live. Plastic Bank now has a citable, source-backed corpus on the questions closest to its mission, structured so an assistant can quote it and attribute it correctly rather than paraphrase a third party. The build is deliberately boring: static files, no build step, and content that stays true whether it is read by a person, a crawler, or a model.

Numbers

Built with

MapLibre GL OpenFreeMap GeoJSON schema.org Static HTML, CSS, JS Vercel WordPress