I think this is a case of overthinking it. Aside from the aesthetics of the website presentation, a roll-your-own portfolio (as opposed to a web service) is just a website.
You will want a way to categorize the items; provide a description; provide some eye-catching thumbnail; and then provide the full-size image when the viewer's interest is sufficiently piqued. This is basically an e-commerce site (e.g. wordpress + woocommerce) without commerce elements. As a developer, you could probably make your own lightweight option, but you would find modifying an e-commerce package fairly straightforward.
If the portfolio item is a website, include screencaps of at least 1080p-sized and mobile viewports. Virtually all of your viewers will probably first interact on mobile. For still photography, something sized for 5 or 6 MB compressed file at the most lossless preset is probably sufficient, but you could go larger if you gate-keep a little to prevent front-loading massive images of things people have not yet shown interest in (clicked on).
e-commerce products will handle downsizing based on media queries for you, but if you write your own, you would make (or process on upload) several sizes (i.e. untouched (for zoom); normal (for basic presentation); thumbnail (for list presentation).