A New Personal Website
Febuary 18, 2025Hello world! This is my new personal website. In this post I'll be writing about it's technology, purpose, and plan for continued development.
The technology used here is pretty straight-forward for those familiar with web development. I'm using Go for my custom server, SQLite for data storage, and default browser technologies for the front end.
The only dynamic data here is the form used to contact me. This form sends the information to the server program I wrote, which then processes the data and fills the database. There is a simple admin page where I can check the messages. I use encrypted cookies for administrative login.
Go and SQLite make this exceedingly simple to set up. Using the standard go libraries, the server is only one page of code. Serving static files with go is as simple as:
http.Handle("/", http.FileServer(http.Dir("./static")))
Then I have a handler function that both receives the contact form and displays all of the received messages. This works by checking the http method. If the method is "GET", I check for the special admin cookie, then display a list of all messages within the database. If the method is "POST", I sanitize the form data and insert it into the SQLite database.
Absolutely everything else on the website is just static HTML and minimal css stylings. In the future, I might push updating the blog into it's own admin panel, but I prefer writing updates on the commandline and sending updates over ssh. I do this so I can have very specific control of the html, and possibly write little JavaScript demos from the comforot of my favorite editor.
Thanks for reading, have a great day!