Building in public / with AI

A serious website.
Without Next.js?

How little do we actually need? We’re finding out, one requirement at a time.

This website is the first working example.

Real requirements.
Real results.
Built in public.

Concept illustration of a browser, Traefik, Varnish, Node.js with sirv, and build artifacts.
Delivery concept. Follow the request below for the cache hit and cache miss paths.

How many requests reach the server?

Follow the request. See what the cache changes.

Illustrative data
Browser to Traefik to Varnish, branching into a cached response or an origin request.
On a cache miss, Node.js + sirv serves files generated during the build. It does not generate them per request.
Illustrative blue requests and coral origin requests curves; no measured traffic values.
Measured request statistics are a next step. These curves illustrate the idea.
Explore delivery and caching

Every dependency needs a reason.

The current choices, with their requirements and trade-offs.

Explore the decisions
Docker Compose surrounds three groups: Build with Node.js, TypeScript and Vite; Browser with React and React Router; Delivery with Traefik, Varnish and sirv.
Build the artifacts, load the application, deliver public responses. A conceptual map of responsibilities; each choice still needs evidence.

What will make this stack grow?

Each new requirement is another test.

Scope under discussion
A running public website leads to visible evidence in progress. Dotted branches propose interactive features, APIs with stored data, and access with transactions.
Possible next experiments, not a mandatory stack: richer interactions, stored data, or accounts and transactions—only when a real need justifies them.
Explore planned solutions

Can we add the capability without carrying unnecessary complexity?

The dead ends are part of the story.

Failed attempts, alternative ideas, open questions. They all teach us something.

Follow the development
  • Adopted

    Works under stated conditions.

    Useful. For now.

  • Rejected

    Here is why it did not fit.

    Still valuable.

  • Unresolved

    The next thing to test.

    Ideas on the list.

Ways to record an investigation’s outcome, not claims of completed experiments.