CH₃CH₃
AI image · google/nano-banana-2-lite
official

The state of the project

by ch3ch3 · 24d ago · 0 comments

This section is the changelog and the development log — what has been built, what is being built, and what is deliberately not being built. If you want to know why the site behaves the way it does, it is usually written down here.

Where things stand

The engine is finished and running: accounts (passkey and passphrase), the area tree, posts and comments, voting, uploads, search, moderation tooling, reporting, live presence, per-reader theming, and an admin surface for the people running it.

The catalogue is populated — six-hundred-odd molecules with structures and identifiers drawn from public chemistry records, and attribution for the chemists behind them. The front page counts itself, and its numbers are live.

Written content is further along than it was: the News feed is running and current, and the first molecules now carry a complete set of written, reviewed sections. Most sections across the catalogue are still empty. That is the current work, and it is the honest answer to "why does this page have nothing on it".

What it runs on

layer choice
App SvelteKit (Svelte 5, TypeScript), rendered on the server
Database PostgreSQL — the comment tree is an ltree path, search is its full-text engine
Live Redis pub/sub behind server-sent events — presence, votes and comments arrive without polling
Auth WebAuthn passkeys; an optional passphrase; a recovery email only if you add one
Images re-encoded to webp with metadata stripped, served from our own origin only
Hosting one small three-core server, nginx and systemd in front of Node

There is no CDN, no edge network, and no third-party anything: every request a page here makes goes to this site, and the test suite asserts that rather than assuming it.

Structures are drawn by the site itself. The 2D drawing and the 3D viewer are both rendered from published conformer data — the same public record the identifiers come from — not copied off the internet as pictures.

Measured, not assumed

  • A deploy costs about one second of downtime, and the number is measured on every restart. It exists because for at least a week every deploy was actually 91 seconds of downtime while the deploy log printed success — the outage lived in the gap nobody was measuring. Now the gap is measured, so it cannot happen quietly again.
  • Seventeen end-to-end suites — more than seven hundred individual checks — drive the real interface in a real browser: registration ceremonies with a virtual authenticator, moderation, uploads, search, live updates, the graph. Voting once shipped broken to production because only the API had been tested; the suites have driven the UI ever since.
  • Every model call the content pipeline makes is recorded with its provider-reported cost, so "what has the written content cost" is one database query, answered to the cent.

How the reference content is written

Official pages are drafted by a multi-stage pipeline rather than a single request to a language model, because a single request produces text that cannot be checked. The stages are separated so that specific failures become impossible rather than unlikely:

  • The writer never sees the web. Only the research and compile stages read retrieved pages, and neither of them writes a sentence that reaches a reader. Anything hostile embedded in a scraped page lands on a model doing extraction, not on the model producing published text.
  • Citations are checked against what was actually fetched. A source is kept only if its URL appears in the provider's record of pages it genuinely retrieved. A citation the search never returned is one the model invented, and an invented citation looks precisely as convincing as a real one.
  • The checker is a different model family from the writer. A model does not catch the fabrication it was confident enough to commit in the first place. Disagreement across families is the entire value of that stage.
  • Doses are gated on whether human data exists, and the check fails closed: any number that is not traceable to a retrieved source is a rejection regardless of what the draft says.

Nothing publishes automatically unless it passed every check. Anything that did not pass can only go up with a named reviewer attached to it.

We are telling you this because you should know how the words in front of you were made. It is also why official pages carry references you can follow — if you cannot check us, the process above is worth nothing to you.

How the site itself is built

The code is written largely by AI coding agents working inside a documented repository, under version control and review, with the same posture as the content pipeline: nothing is trusted
because it was generated, everything is tested because it was generated. The design notes, the mistakes and their fixes are written down as they happen — several of the rules above exist because something once went wrong in exactly the way the rule now prevents.

Principles we are holding to

  • A wrong fact is worse than a missing one. This applies to structures, doses and history equally, and it is why several pages are blank rather than filled.
  • Say what is not known. "Nobody has studied this" is information. Leaving a silence where a number would be is not.
  • Attribution is a fact, not a courtesy. Portraits and images here are only used under licences that permit it. Every image's credit and licence are stored and published with it: the gallery lightbox always shows them, and Settings can switch the credit chips on across the whole site.

Helping

Post corrections with sources — that is the most useful thing anyone can do here. Bugs go through the report control on any page; it captures what the page was doing at the time, which makes a report far easier to act on than a description.


The picture strip on this section's page is the machinery described above, photographed in place: the graph view, a section page with its references, the sign-in ceremony. Every screenshot links to the live page it shows.

0

Comments

Sign in to join the conversation.

No comments yet.

Tell us something