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
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
- Introduction to Mix — Elixir documentation — applications, deps, and tasks.
Mix— Elixir documentation — the build tool reference.