My blog: 2001 - Today
This site is almost 24 years old now. TWENTY FOUR.
When I think about myself at 24... man. What an ignorant, overconfident punk, this site must be.
So, this all started as a work study project in college - a monolithic PHP+MySQL app that evolved into a multi-service, server side rendered javascript front end that hits a REST API (with an integration layer, various caching strategies, standalone CMS, etc)... but it's maintained a similar theme, and I've been very intentional about collecting and keeping as much data as possible the entire time.
Why?
Why not just use social media, medium, substack, or whatever else?
- It's fun
- I own the data and I control the experience
- If you don't build your personal brand, someone else may build it for you
On fun
First of all, I really enjoy the digital scrap booking aspect of having a website: collecting, organizing, and visualizing data about my life, sharing photos, and getting my thoughts out there. It's fun to easily relive and share experiences with all of this data connected.
I also love tinkering and use it as an excuse to play with different technologies. It's a great way to learn and exercise skillsets that I don't always get to flex in whatever job I'm holding.
Finally, it's a really good creative outlet. We need creative outlets, and sometimes my job doesn't fully scratched that itch... so I come here to play.
On the data and experience
It's mine. In my databases and on servers that I'm leasing, and I've integrated with all sorts of 3rd party services to push/pull data about my life.
Having everything in 1 place let's me do fun things like, see what I did on any given day, year, or in a given location. It lets me map all of my geotagged content and build histograms to visualize when certain things have come and gone from my life, like dogs, friends, jobs, etc.
I get to be creative in how I present and visualize my data, and that's what makes it the most fun, imo.
Finally, it serves as a really good aide to my own memory. I can't tell you how often I pop over to the search page here, just to answer a question about some experience that I've had. 😄
On personal branding
When someone googles me, I want to control the top result(s). I want old friends to be able to find me and reach out and I want potential employers or partners to see what I've put out there and know what they're getting.
Like I mentioned above, if you don't control your own brand, someone else may build it for you... and I've inadvertently done this for a lot of people in my life because I'm diligent about tagging my content. So, if I've got a photo or story about you, I'll probably add your name as a tag for my own organization and memory... but if you don't have a good online presence otherwise, a search for your name might point someone to my website. This has actually resulted in a lot of old friends "reaching out" to ask me to untag that one party photo or whatever, hahah.
Ultimately, having a website like this makes it so, so easy to introduce myself and tell my story. And that brings me to...
No one really gives a shit
Often times when folks first see my website they're a little surprised by how much I put out there. One of my coworkers recently saw my homepage and asked if the dot on that map is literally where I'm at right now, and ... yep. It was. I've been putting my real time location, photos, and thoughts on the internet for over a decade and if there's one thing I've learned it's that: no one gives a shit. Much of this stuff is already available via public record and other services I'm using. I've just tied it all together in a nice little package.
There are a couple generations of folks that've been trained to not put anything on the internet, that anything you put out there will bite you. I believe the opposite.
Put what you want people to find on the internet, be deliberate about it, and own it.
The tech
If you're really curious about the iterations, I've got it largely documented on my portfolio, but the current stack is effectively as follows.
The frontend is a typescript-based, Server Side Rendered NuxtJS app (Node + VueJS). This gives me good SEO while making the experience reactive and snappy.
The backend is a RESTful Python API (flask) that reads from a MySQL database, along with some caching.
Content management happens in a couple ways: integration with 3rd party services and via a web-based interface.
The integration layer is collection of rudimentary python scripts that are run on a schedule. Any data that's pulled from a 3rd party service is stored directly into a Mongo database and then transformed and saved into the MySQL database.
The Content Management System is currently using Django Admin and was ~75% built by Claude AI. I'd never really used Django Admin, so I just gave the AI my database schema along with a handful of prompts, and it got me rolling. It had a hard time with some of my polymorphic relationships and other dependent data, but I was able to fix it up.
This is all running in docker containers on a Digital Ocean Droplet with 2 VCPUs and 4GB of RAM. Cloudflare also sits in front of everything as a DNS and CDN.
Conclusion
Is this overkill? yes.
Is it fun? totally.
Does anyone give a shit? nope.
If you have a personal website, let me know!
If you don't, start one!