This is an introduction to my choice of framework in building this website.
Several options I considered for my website:
- Django
- Django’s opinionated Model model with its strong database ties seemed a bit much for a relatively static site
- It’s huge and unnecessarily complicated for a simple website
- It would be a great learning experience in Python
- Vanilla PHP
- I have a lot of experience in vanilla PHP at my internship at Northern Michigan University working in the Information Services department where I develop web applications for internal use.
- I often find myself frustrated with PHP’s quirkiness and wouldn’t learn new material if I used this for my personal website.
- Silex
- This is a micro-framework built using components of the much larger Symfony framework.
- I discovered Silex in Heroku’s PHP deployment guide where I noticed that it was small enough to not draw unneeded overhead and extensible enough for my website to grow as it needed.
I opted to go with Silex. The source code is available here for your perusal.
I have gone through many iterations of this site. The first version was simply a clone of the homepage that I have on my university’s computer science department server. This wasn’t a very useful homepage as many of the projects that I wanted to show in a portfolio were tied to a database on that server.
I eventually moved towards a one-page style layout (in this commit) where the links in the navbar would scroll the page to pre-defined regions. I then ditched the old multipage layout and at this point I discovered Grav. After difficulties integrating Grav within my app (read more here), I decided to roll my own blogging solution modeled after Grav’s markdown content system.
I included a YAML Front Matter + Markdown Parser and used that to define the metadata for a blogpost.
There is still much to do (post sort order, paging, tagging, etc), but I appreciate the experience that I have gained in building this blogging system.