How I made this website
For my first real post, it seems fitting to talk a bit about how I made this website and what lessons I learned. I know there's nothing groundbreaking here (in fact, there's a lot of basic stuff still to implement!), but my goal wasn't necessarily to have an incredible website. All I wanted was a place to store and share things I do that I previously didn't have a great outlet for. My primary requirements were control and speed. These influenced the technical choices that I made, which I will go more in depth about below. As for the content that I think belongs on a personal website, I plan to discuss that in a future post.
While I have been working with Python for a while, I didn't have any html/css/js experience until after I finished my undergrad degree. When I was a lab manager at UMASS, the PI I worked with wanted to use Amazon's mechanical turk to display websites online. If you haven't heard of mTurk, the basic idea is that people log on and do 'Human Intelligence Tasks' (HITs) which usually take a few seconds each and pay a few cents. To create these experiments, I had to learn html/css/js. After this, I had the skills to make my first site, which was a simple static site hosted on AWS. It had all the basics, including my cv, a blurb about my research, and pdfs of my publications. More recently, I've been wanting to do something with all the stuff I make, so I decided it was time for an upgrade.
There are a few choices I considered before ultimately settling on Flask as my backend. When I was more interested in the blog part of the site, I thought using Medium, Wordpress, or Github Pages + Jekyll would work well. The major reason I didn't go with any of these choices was because I wanted a lot of flexibility in terms of how I presented the things I created. With my own site I could create interesting, interactive experiences that might not be possible with these other platforms. I wanted everything possible to be in one place, so ultimately I knew I had to build it myself. As a bonus, I got to learn a ton about backend development, which I knew nearly nothing about.
As of right now, I'm pretty happy with where the site is at. I probably could have gotten 90% of the functionality I need in way less time with one of the other options I mentioned, but I was happy to learn about flask in the process. It's also much more fun to learn about how to work with a flexible system versus struggling to implement something on a simplified system.
If you want to check out the code that runs the site, it's available on my github.