The project.
MoeLog is four npm packages, one server, one protocol and a plan to be ported to five more languages. Everything is AGPL-3.0 and everything is on GitHub.
The JavaScript and TypeScript SDK. Four packages published under @moecorp.
Ingest API and dashboard. Elysia, SQLite today, Postgres next, SvelteKit.
MLWP v1 and the conformance suite. Extracted once the protocol freezes.
Ports. They implement the spec, not the JS.
Roadmap.
How to help.
Run it on something real and open an issue when it lies to you.
Port the conformance suite to a language you know.
Argue with the protocol before v1 freezes it.
Do not send a PR that adds a runtime dependency; it will be closed.
Every contributor signs a CLA. Not out of ceremony: dual licensing needs a single copyright holder, and without it the commercial license can never exist.
Every package has a byte limit checked in CI.
Not one, in any published package, ever.
Capture is validate plus push. Nothing else.
No throw ever escapes the SDK. If MoeLog breaks, your app never finds out.
Nothing identifiable is collected unless you declare it explicitly.
The spec is the reference, not the JavaScript implementation.
What could go wrong.
The bus factor is one. The mitigation is the spec: if this stops, the protocol and the conformance suite are still there and still AGPL.
That is intended for services, and it is a real cost for adoption. Dual licensing is the escape hatch, once there is someone to negotiate with.
Then MoeLog competes on bytes and on setup cost alone. Those are still real, and they are still not solved.