jonnifyelixir
F5 / F5.01 / roadmap

F5.01 · part 1 of 3

The development roadmap

The Portal is built along one path, and naming it up front keeps every decision honest. The path is: HTML templating, then a simple web server, then the Portal logic behind it, then Phoenix, then Fly in production. The ordering is the point. You do not build the engine in full and bolt on a web layer at the end; you get a thin slice running first — a tracer bullet — and grow it. The system is always runnable, so risk is paid down early and there is always something to show.

Two ways to build the same Portal, and why the order changes everything. Then the five stages, one at a time.

Two strategies

The difference between the two approaches is not how much you build but when the thing first runs. Start thin and the first running build arrives on day one; the unknowns that sink projects — does the web layer reach the engine, does a request round-trip — are answered immediately. Build big up front and that answer comes last, when it is most expensive. Select an approach to compare.

First running build · select an approach

BIG DESIGN UP FRONT first runs at the end START THIN, ITERATE first runs on day one, then grows ● first running build

approach: Start thin, iterate

first running build: day one

A thin slice that runs is worth more than a thick design that does not. The roadmap is that instinct, spread across the course: ship a runnable Portal early, then make it real.

The five stages

Each stage leaves the Portal runnable and adds one capability. The first two are already in hand or are this module’s work; the engine stages are the body of F5; Phoenix is F6; Fly is a later chapter, out of this course’s scope. Mapped onto the codebase, the split is simple: the engine lives in one tree, the web layer in another, and only the web layer changes when the front end does.

# the roadmap, mapped onto one Mix project
portal/
  lib/
    portal/         # Portal logic — the engine, grows in F5.02–F5.09
    portal_web/     # the web layer — thin now (F5.01), Phoenix later (F6)
  mix.exs           # deps: {:bandit}, {:plug} now;  {:phoenix} arrives in F6

# 1 templating  — HTML/EEx on screen .......... done
# 2 web server  — thin Plug + Bandit ........... F5.01  (here)
# 3 Portal      — domain, contracts, events .... F5.02–F5.09
# 4 Phoenix     — replace the server, add UI ... F6
# 5 Fly         — deploy to production ......... upcoming (out of scope)

the instinct

Get something running, then iterate — never a long march with nothing to run.

the roadmap

Templating → thin server → engine → Phoenix → Fly, in that order.

Next: a thin web server in Elixir — stage two, the server that makes the Portal runnable today.

References

Primary sources for this lesson, and where it connects in the course.

Sources

Related in this course