keehar.net a personal/portfolio/fun website?
(i really needed to update my website from something other than static pages)
after collecting a bit of reference material for the vibe and color pallete of how i would like the site to be, i created some prototype layouts based off of msx.horse in photoshop.
i knew i wanted to have the site to have a feed capability to post 'projects', just anything i fully create, to have them all in one place instead of scattered across sites, repositiories, etc., i wanted this project feed to be able to be filtered too (to help users find what they are looking for easier). i also wanted the site to have something similar for photo albums, as i lacked a space for photo content in full-long form as almost all sns are designed for quick content that fits within certain constraints. a blog capability was a secondary want, but came easily after building out the project and photo feeds.
not being too familiar with web development, my brute force approach to creating the feed functionalities was to post them to a mysql database, but i decided this didnt make sense since only i would be posting to the website, and required more resources even if not much more.
i looked at how my previous jekyll github pages website worked, i liked the functionality of it because if i wanted to create a new post i would just create a new html file that would be added to the site. so, i decided on a functionality like this, for each project there is a folder with all the assets it needs to be rendered. a .txt is read and loaded into the webpage, this .txt also holds the information for the preview card in the feed. the photo and blog functionalities work in a similar fashion
in order to make the user experience as smooth as possible, i opted for the design to load content into the index.php with AJAX requests rather than load an entire new page every time one is opened. i also added state saving to perserve some options the user selects (such as the project filter arrows).
now was time to host the website (but, obviously a lot happened between these two paragraphs, designing, making assets, add funcitonalities, polishing, adding content, etc).
as i havent lived somewhere permanently i ruled out hosting my own LAMP server, and went for a VPS. Hosting a LAMP server on a VPS allowed me the flexibility of not having the maintain the hardware, uptimes, but also being able to host multiple low traffic websites on it (cutting down price per website).
as i wanted to make sure there was as little friction as possible between me and deploying content to the website (and the fact that only i would be adding content), i opted to create a ci/cd pipeline to always have the website up to date whenever the main branch on the github repo is updated. when there is a new commit pushed to the main branch, the workflow is automatically triggered, ssh'ing into the VPS, cd'ing into the website directory, and performing a git pull.