I've got a site with one base URL that is run on one Craft instance. The site is for a yearly event and each year the header / footer / body page elements / design are different. However, we want to keep all previous years pages in existence with the look and feel of that year so people can look at that page exactly as it existed in that year. URL structure would be something like example.com (current year), example.com/2017, example.com/2018, etc.
However, there are some of consistent codebase elements that I would like to have as easily editable for each unique year. For example, SEO elements like meta descriptions and social media descriptions should be unique for each year, while still being easily updatable using the same field across individual year entries.
What I'm debating is the best way to set this up in Craft to balance site speed and overall manageability. A few options I'm thinking about:
Do a different entry and layout for each year and then reuse the individual fields that need to be editable across all pages in the different templates.
Do one base template and then use conditional logic that swaps in the CSS, header structure, footer structure, etc. for each year. Would also somehow need to have multiple matrix fields available in this to add unique content structure for each year. Concerned about lots of database queries for this one and impact on site speed.
Some sort of hybrid approach leveraging different entry types across template(s) but not exactly sure what that would look like.
Other suggestions on approach or thoughts about which option is better? Thanks!