
- Next.js
- Go
- MongoDB
- Portfolio
Portfolio site: laying a foundation for three languages
20
Today I started my personal portfolio site. It will have three parts: the public site, an API that serves the data, and an admin panel for me.
The first decision was about languages. The site has to work in English, Russian and Uzbek. I have tried adding something like that at the end before, and the result was bad: the texts scatter across every corner of the code and collecting them back is nearly impossible.
So on day one I created a separate file and gathered every interface string there. Button labels, headings, error messages — all in one place. There is no longer a literal "Send" anywhere in the code; instead there is a reference to that string.
The second decision was Go for the backend. The reason is simple: it compiles into a single file, and putting that file on the server is enough. No extra runtime to install.
I made the admin panel a separate application. At first I wanted to fold it into the site itself, then changed my mind: they serve completely different purposes. The site has to be fast and good looking; the admin panel has to be convenient. There is no sense in breaking one while improving the other.
By the end of the day the site was still empty, but its skeleton was standing straight.