overthemike
Building tools I wish existed. Open source advocate and developer in my free time. Proud contributor and fan of valtio and related libraries (@valtiojs).
https://github.com/synpatico
Synpatico is about compressing and accelerating JSON APIs by separating structure from values. Instead of sending the full JSON over and over, you fingerprint the “shape” (keys, nesting, etc.) and then just send the values with a reference to that shape.
That yields:
Smaller payloads (50–80% raw reduction, 15–20% even after gzip).
Faster parsing & serialization (since structures are cached, only values move).
Deterministic analytics hooks (every structure has an ID, so you can track usage patterns cheaply).
https://github.com/synpatico/genome: generate a unique hash for an object based on its property names and types, while ignoring values.
https://github.com/synpatico/core: The encode / decode logic between the server and the client so they can break down and rebuild JSON on each end.
https://github.com/synpatico/client: A zero-code adoption SDK for web apps. Optionally monkey-patches fetch and XMLHttpRequest so requests/responses can be auto-compressed/decoded without app code changes. Adds hooks for analytics (e.g. counting how often a shape is seen, or where in the app it was triggered).
I'm now working on a reverse proxy to put in front of an API that will automatically handle the encoding of JSON calls only when a handshake between the client and server have taken place.
I'm also working on an analytics engine that will track API usage *down to the touches of the property* instead of just data on the endpoints themselves.
I turned 42 this year...so that either means that I should know the answer to life, the universe, and everything; or I *am* the answer. Until next year.
“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” – Martin Fowler
“If debugging is the process of removing bugs, then programming must be the process of putting them in.” – Edsger W. Dijkstra