Blog

All posts
John Damask · 2026-03-22
frontenddevlogarchitecture

Now I Get It! has grown to 11 HTML pages -- the main upload page, gallery, blog, FAQ, five policy/legal pages, an admin panel, and a dashboard. Every single one had its own hard-coded footer: the same copyright line and navigation links, duplicated in both the HTML and the CSS. One page had no footer at all. Changing a link meant editing every file. Classic copy-paste debt.

The fix was straightforward: a single footer.js file that every page loads with a <script> tag. It's a self-contained function that injects its own CSS and builds the footer DOM on the fly -- the same pattern I already use for the feedback widget on generated pages. Two modes: public pages get the copyright plus navigation links (Blog, FAQ, Policies, johndamask.com), while admin pages get just the copyright line, triggered by a data-footer-mode="admin" attribute on the script tag.

Eleven pages now share one 47-line JavaScript file. About 280 lines of duplicated HTML and CSS are gone. The takedown-status page finally has a footer. And the next time I need to add a link or update the copyright year, it's a one-line change in one file.