A long time ago in a galaxy far, far away
It is a period of agentic coding in the FOSS galaxy. Chats with AI are abused to produce flooding AI slop.
Striking from a cluster of senior developers hidden between the billion slop-coders of the big corp, agentic craftsmen of the FOSS community won the first victory in a battle with the powerful floodings of the outside fleet of coders. The big corp fears that another contribution could bring a thousand more free software projects into the agentic craftsmen's hands, and big corp control over the FOSS communities would be lost forever.
To crush free software once and for all, the big corp is concentrating computing power and draining the markets. Powerful enough to destroy an entire community, its competition spells certain doom for the champions of freedom.
So I got superpowers. As with all powers they can be used for good or bad. Also, be careful with the source of those powers. Who controls them? Those control you! Concentration is a problem and we need local distributed models at some point. We are not there yet.
Use the powers for good and support your free software community.
At least for me, agentic coding with Anthropic Claude Opus 4.6 enabled me to try something I never would have without it:
A new PostgreSQL-backed ZODB storage with JSONB transcoding and a replacement for the catalog fully querying PostgreSQL.
I started it a week ago.
It's still between early final and experimental for sure, but it works extremely well.
ZODB has served the Zope and Plone community for over two decades. But its storage model — opaque pickle blobs and BTree-based catalog indexes — hasn't aged well. You can't query your data with SQL. You can't inspect object state without unpickling. And the catalog is a black box that lives inside the very database it indexes.
Time to change that. Four modules, one mission — get ZODB out of the pickle jar:
- zodb-json-codec — A Rust-powered transcoder that turns opaque pickles into queryable JSON. No code execution, no attack surface, just bytes in, JSON out.
- zodb-pgjsonb — A full ZODB storage that keeps your objects in PostgreSQL JSONB instead of binary blobs. MVCC, undo, history, blobs — the works. Small blobs stay in PostgreSQL, large ones tier out to S3 (optional).
- plone-pgcatalog — Replaces Plone's ZCatalog with pure PostgreSQL queries. No more BTree indexes in the database — let Postgres do what Postgres does best. Experimental.
- zodb-s3blobs — Moves ZODB blobs to S3-compatible object storage with a local LRU cache. Works with any base storage.
Together: pickle bytes → JSON → PostgreSQL → queryable, modern, fast.
Want to try it? Check out
- plone-pgcatalog example for a working example setup with Plone on PostgreSQL with catalog.
- zodb-pgjsonb example for a Zope/Plone with S3 in Minio (but classic ZCatalog)
Contributions, feedback, and battle testing are very welcome.
