The <i>first</i> thing that jumped out at me was this:<p><pre><code> csv_data = [",".join(map(str, tbl.columns_dict))]
csv_data += [",".join(map(str, row.values())) for row in tbl()]
</code></pre>
Sigh. He's not "building the app". This code is <i>wrong</i>. It's not escaping the CSV properly, so embedded commas and similar control characters will result in gibberish output.<p>I'm just so fed up with this JS+HTML SPA framework demos where everybody thinks that stringly-typed programming is the only way to do things, where instead of using a <i>proper</i> library that actually encodes/decodes file formats properly there's this kind of quick & dirty script snippet that is basically broken under all but ideal conditions. ("It worked, once, on my computer, with toy data. Job done!")<p>I get it, this exercise is about comparing the essentials of different frameworks. But that comparison ought to include <i>things that matter</i>, such as correct handling of Accept-Language, safe escaping of data, sorting on <i>date</i> columns, virtualising lists too big to handle in one go, etc... That's what actually matters, that's what takes actual time when getting something to production. Not the folder structure or file naming conventions.<p>The author mentions "How will coding assistants influence builders?" but ChatGPT can spot this kind of error, and more: <a href="https://chatgpt.com/share/793e6353-817f-4765-ab33-f3131906378c" rel="nofollow">https://chatgpt.com/share/793e6353-817f-4765-ab33-f313190637...</a>