Ship the Streaming Writing Assistant

packaging the full app

Part of: Streaming Writing Assistant

Everything so far has been pieces: framing, a generator route, delta chunking, a client parser, storing the draft, buffering, budget guards. Shipping means wiring all of it into one small, runnable web app. Finish this lesson and the build lands in your Portfolio . The shape of the finished app Two files cover it: - A backend (Flask or FastAPI) with one route that streams SSE frames from the model, exactly like lesson 2, wrapped with lesson 7's budget guard. - A single index.html with a textarea for the writing prompt, a "Generate" button, and a <div the JavaScript from lesson 4 appends tokens into live. Run it with uvicorn app:app --reload, open http://localhost:8000, type a prompt, click Generate, and watch the draft appear live. That's the whole product. What "shipped" means here Same checks as every build in this track. It runs from a clean start with one command (uvicorn app:app). It survives an empty prompt or a dropped connection without crashing, thanks to lessons 6 and 7's guards. And someone else could point their browser at it and use it with no explanation beyond "type a prompt, click Generate." Don't skip the harden lessons in the real build It's tempting to wire the h

Challenge: End-to-End Stream Round Trip