Hypothetically, consider a social photo platform - each pic gets its own url, this page contains the image, text about the image, buttons for the user to click, related pics, and some user-specific elements (maybe notifications, etc.).<p>There are different ways of going about the frontend. In each case, elements specific to the logged-in-user and the related images get fetched via api calls and are rendered client side.<p>For rendering the rest of the page -<p>1. Everything is rendered client side - one can use a single page application to handle the routing. The page structure stays the same, and new image uri's and the associated content are fetched via api calls.<p>SEO is a priority, so pure client side rendering is suboptimal.<p>2. Server side rendering for each page with NextJS or even Express is another option.<p>3. Another way is to do a static export in something like NextJS - which will generate separate html files for each image.<p>4. Now my thought is to skip all of that and go old school with sed/awk. We'll have a template file with all the styling elements and placeholders for the image uri and its description, etc. Then a script iterates through a list of values (queried from a database) specific to each image (img source URIs, description text, etc.) and uses sed to replace the placeholders in the template file and output a separate html file.<p>Each file has the same javascript to load the user-specific components.<p>Every time someone adds a new image, the script runs with the uri of the image and the description, etc. as the variables passed to it, and adds a new html file in a flat file structure.<p>These "variables" are stored in a database. So whenever we change the "design" of the page, we repeat the same process again - regenerate each html file.<p>The flat file structure will run into limitations, which is solvable with a directory structure. Nginx remains performant with large numbers of files.<p>Right now, we use NextJS with a mix of server side rendering and static pages, so it is all good. But I have been wondering about achieving something similar with more rudimentary (and performant) tools.<p>There's not too much additional work involved - templatizing the html file is straightforward, and this won't be difficult to script.<p>What's good and bad about this?