Why: the goal or problem

Imagine a family recipe site where relatives add Markdown dishes. Its team uses Ruby templates so layout changes reach every page without copying recipes.

How: work toward a solution

Start a family recipe archive with three Markdown articles and one layout. Next runs the Ruby build, creates an index and three article pages, then sends files through hosting to the browser. Missing layout stops this example before output. Reading these files needs no Ruby request handler. Personal Save records need a separate API. Previous, Reset, or reload restores earlier states.

Build a family recipe archive

Concept simulation

Jekyll

Next traces source → build → output → host → browser.

Build environment ends before hosting

  1. 01 Three Markdown articles + layout
    • family-recipes.md
    • pantry-tips.md
    • kitchen-notes.md
    • Shared layout
  2. 02 Ruby build · layouts

    Waiting

  3. 03 Generated HTML files 0

    index.html · family-recipes.html · pantry-tips.html · kitchen-notes.html

  1. 04 Static host · publish files
  2. 05 Browser · read three articles

Three Markdown articles + layout

Execution boundary
Build: Ruby + Markdown + Liquid → HTML. Hosting does not run Ruby per read.
State and responsibility
Publisher maintains build dependencies; private records require another storage path.

A fictional demo within this article. Reset or reload restores its initial state.

What: the concept

Jekyll transforms Markdown and layouts into a static site using a Ruby build workflow. Generation and hosting are separate choices.

Maintain build dependencies separately from hosting.

Source