A launch is a day. A codebase is a decade. Everything in the first seven parts gets you to production; this last part is about what keeps you sane there — because the systems that survive are not the ones with the cleverest architecture, they are the ones whose owners built small, boring habits around them. Four habits, to close the series: performance as a budget, security as a routine, maintenance as a rhythm, and a working relationship with the agents that now write most of the first drafts.
Performance is a budget, not a sprint
Performance work fails when it is an annual panic (“the site feels slow, someone optimize it”) and works when it is a number someone is allowed to say no with. The 2026 targets are stable and public: LCP ≤ 2.5 s, INP ≤ 200 ms, CLS ≤ 0.1 — measured on real users (Part 7’s RUM), not on your laptop.
The practice: give every route an asset budget — HTML, CSS, JS, fonts, images, each with a cap — and enforce it in CI (bundle-size check) and in review. Most over-budget pages are not engineering mysteries; they are a hero image nobody compressed, a font nobody subset, a dependency someone added for one function. The fixes are the Part 2 and Part 4 toolkit: AVIF, content-visibility, islands over hydration, platform APIs over libraries. Budget first, measure always, heroics never.
Security is a habit — the supply chain woke up
The old list still applies — validate inputs (Part 5), hash with Argon2, set the headers, rotate the secrets. But 2025–2026 added a chapter every full-stack developer now needs to know by name: Shai-Hulud, the first self-replicating npm worm (September 2025, 500+ packages stealing maintainer tokens; v2 hitting 796 packages with 132M monthly downloads), followed by Mini Shai-Hulud in spring 2026, which minted valid SLSA provenance attestations from stolen OIDC tokens and compromised TanStack releases and two OpenAI employee laptops. The Axios incident (70M weekly downloads) used a postinstall script to drop a RAT. Snyk counts supply-chain attacks up 38% year over year.
The lesson is uncomfortable: provenance is a signal, not a proof, and “it was the latest version” became an attack vector. The defenses that actually held, in order of effort:
- Release-age cooldown — refuse versions published in the last 24 hours to 7 days. Most poisoned versions are detected and pulled within hours; waiting a beat removes you from the blast window. pnpm 11 defaults
minimumReleaseAgeto one day; npm addedmin-release-agein v11.10; Renovate and Dependabot have the same knob. This is the single highest-value setting in this section. - No untrusted install scripts — installing and executing are different things;
--ignore-scriptsby default, allowlist what genuinely needs to build (pnpm does this out of the box). - Pin immutable references — GitHub Actions by commit SHA, Docker images by digest, everything else by lockfile with
npm ci. Mutable tags get rewritten. - Shrink the blast radius — short-lived OIDC tokens instead of long-lived secrets, least-privilege workflow permissions, no
pull_request_targetcheckouts of PR code, and a CODEOWNERS rule so dependency-manifest changes need a second human. - Detect what slips through — behavioral scanners (Socket, GuardDog) in CI, because
npm auditonly knows yesterday’s CVEs.
Maintenance is a rhythm
Dependencies decay on a schedule whether you touch them or not; the only choice is whether you pay the maintenance cost in weekly installments or in one annual, terrifying lump sum.
The weekly version is deliberately boring: an update bot (Renovate or Dependabot, both with cooldown windows from the section above) opens small PRs, CI from Part 7 verifies them, a human glances at the diff, merge. Twenty minutes a week keeps you one step behind current, where every update is small enough to understand and small enough to revert. The annual version — forty major versions of everything at once, a “migration project” with its own codename — is the same hours multiplied by fear.
Documentation deserves the same rhythm: README for humans (how to run it), ADRs for decisions (why it is like this), and — the 2026 addition — AGENTS.md for the agents (how to work here).
Working with agents for years
The agentic workflow from Part 1 grew standards while this series was being written. AGENTS.md — a README-for-agents file with build steps, conventions, and testing instructions — went from OpenAI’s mid-2025 convention to 60,000+ projects, and was donated to the Linux Foundation’s Agentic AI Foundation at the end of 2025; nearly every tool (Codex, Cursor, Copilot, Gemini CLI, Claude Code) reads it, and CLAUDE.md files increasingly just point at it. SKILL.md packages make workflows portable across agents. MCP became the standard plumbing for giving agents real context — your database, your issues, your devtools.
The habits that make this work long-term rather than as a demo:
- Keep the instruction file minimal. Agent-following quality degrades with bloated instructions — the file lists setup commands, test commands, and the five conventions you actually enforce, nothing else. This site’s own AGENTS.md is the example.
- Tests are the agent’s guardrails, not yours. An agent that can run the suite verifies its own work (the agentic loop); an agent that cannot will confidently break things. The CI pipeline from Part 7 is what makes agent output reviewable at speed.
- Your job moved, it did not disappear. Specification, architecture, security review, taste — the 29%-trust number from Part 1 is not a problem to solve, it is the job description. You merge it, you own it.
- Know the regulatory calendar if you touch high-risk domains. The EU AI Act’s full obligations land August 2026 — logging, traceability, and human-oversight requirements that the Part 7 observability stack already half-satisfies.
The map, one year from now
The series is complete, and the honest closing advice is: reread Part 1 in twelve months. Versions will move — Node 27 will be LTS, React will ship another minor, some tool in these pages will have a successor — but the shape will not have moved: the platform under everything, a component model, a meta-framework, a boundary with validation, a database with physics, a pipeline with a rollback, and habits over heroics. Full-stack in 2026 is not knowing all of this by heart. It is knowing that it exists, in which order to learn it, and where to look it up with the version numbers attached.
Graduation practice
One project, end to end, small but real:
- A content-plus-API app with one interactive island, built with the Part 2 platform and Part 3/4 framework of your choice.
- A Part 5 boundary with schema validation, Better Auth, and a Part 6 database with expand-contract migrations.
- A Part 7 pipeline with previews, OpenTelemetry on the golden path, and a rollback you have tested on purpose.
- An
AGENTS.md, a performance budget in CI, a release-age cooldown, and a standing weekly twenty minutes with the update bot.
Then write about what broke. That write-up — on your own site, built with whatever stack you now own — is the actual diploma. 从入门到入土,土地是开始。