Skip to main content
Fifteen Years In (and Counting) featured

Fifteen Years In (and Counting)

March 01, 2026

6 min read
MetaPersonal
Photo by Ken Cheung

So… what’s the point of all this?

Honestly, it started small.

I wanted my own personalized @ email address, and this website became a side effect.

Looking back at more than a decade of iterations, migrations, experiments, and rewrites, it is hard to call that side effect small.

This site became my sandbox — a place to test ideas, break things safely, and learn technologies I wouldn’t otherwise touch in my day job.

At the time, photography was pulling me in the opposite direction — out of the office, away from screens, and into the world. The site became a place to display that work, and somewhere along the way, the two things fed each other.

If you prefer the short version, here’s the timeline:

  • 2010: Domain and custom email
  • 2013: Blogger era
  • 2016: Single-page site, first AWS experiments
  • 2018: Full AWS migration
  • 2020: Migrated from AWS to GitLab Pages
  • 2021–Present: Migrated to Cloudflare Pages (current)

October 2010 — The Domain Era

I registered my primary domain in October 2010. I don’t remember exactly what it looked like back then, but I remember why I built it.

Around the same period, I signed up for Google Apps1, which gave me personalized access to services like Gmail, Drive, and Docs.

Mission accomplished — custom email address secured. Everything after that was a bonus.

October 2013 — The Blogger Years

By 2013, I had moved to Blogger.

My only gripe was the lack of file-level access to the server.

But despite that limitation, I still got close to the look and feel I wanted by working within the publishing tools, customizing templates, and understanding the platform’s constraints2.

Personal website homepage during the Blogger era, used from 2013 to 2016.

This was where it all started: simple, imperfect, and entirely mine.

Not pictured is the default landing page: a full-width image carousel of my photography, a focus that carried into later versions.

October 2016 — Taking Control

Around this time, I pivoted the site from a blogging configuration to a single-page informational website — and cleared out the previous posts along with it.

In a way, it felt like the right time. Three years in, the original goal of the site had been quietly achieved.

I had been pushed outside and tried things I would not have attempted otherwise — mountaineering, scuba diving, and activities I had previously convinced myself were too dangerous or too far out of reach. The blog posts documenting that period were sparse and inconsistent, so I made a clean break.

This was also when I began experimenting with AWS3. I used S3 to host files and images — and ran into CORS for the first time, which taught me a lot about cross-origin requests and how to configure them. I set up CloudFront as a CDN to accelerate the site, and worked with Elastic Beanstalk to manage the virtual machines hosting my server-side (PHP) code.

Single-page personal website redesign during early AWS experimentation, around 2016 to 2018.

A quiet turning point, when the site began to grow up with me.

I’ve apparently been using my tagline for quite some time:

“To lead and work closely with experienced Software Developers on a variety of challenging projects.”

When I originally wrote that out of college, “challenging” meant greenfield projects.

In reality, it often meant maintaining legacy systems — not that I’m complaining.

August 2018 — Full AWS Migration

By this point, the site was fully migrated to AWS — giving me more control over the infrastructure and opening the door to experimenting with other web technologies.

At least that was the idea, until the service fees arrived. 💸

To be fair, the cost wasn’t outrageous. But going from paying nothing to paying something feels significant.

I was no longer restricted to static HTML with inlined CSS and JavaScript.

I now had an environment where I could properly publish projects built with frameworks and tools like AngularJS, Handlebars, and Node.js.

Personal website after full AWS migration, showing the 2018 to 2020 version.

By this chapter, it wasn’t just a website anymore, it was part of my story.

2020 to Present — Static, Distributed, Automated

The current iteration was rebuilt with GatsbyJS in 2020 and remains the version running today.

By 2020, I wanted to simplify operations and lean harder into a static-first workflow. I migrated from AWS to GitLab, used GitLab Pages to host the site, and started experimenting with Cloudflare as a CDN layer. When Cloudflare Pages became available in 2021, I eventually moved hosting there.

It may sound like overkill for a personal website — and maybe it is — but that’s kind of the point.

This setup lets me experiment with different CI/CD ecosystems while keeping deployment clean and automated. A simple push to a remote repository eventually makes its way to production without me manually moving a single file.

Compared to where this site started — inlined CSS inside a hosted blogging template — that still feels a little magical.

I don’t know how long I’ll keep this exact setup, but I’m enjoying how it has turned out so far.

Beyond the technical side, this setup gives me the flexibility to highlight another passion: displaying the photographs I've taken over the years in a polished, dynamic way.


Moving Forward

That is the journey of a personal website that began in 2010 and now spans more than a decade.

There are many websites like this one. But this one is mine.

Throughout all of this, I’ve been working full-time as a software developer. While the technology stacks between my personal projects and professional work don’t always overlap, that’s exactly what keeps things interesting.

At its core, this site has always been about exploration.

Sometimes that exploration is technical — new frameworks, infrastructure experiments, automation pipelines, and the occasional rewrite that probably wasn’t strictly necessary.

Other times, it happens far from a screen.

Beneath the surface on a scuba dive.
On a mountainside after a long ascent.
In a new country, navigating unfamiliar streets with a camera in hand.

Different environments — same mindset: preparation, curiosity, adaptation, and a willingness to learn from mistakes.

Marc resting on the ground halfway through the mountain trail.
Resting on the ground halfway up the mountain trail.

Going forward, I plan to use this website to document:

  • Technological experiments
  • Issues I’ve encountered
  • Solutions (and sometimes better alternatives discovered later)
  • Scuba diving and mountaineering trips
  • Travel experiences and the perspectives they bring
  • The photographs that tie all of it together

I may not be the first to write about these things.

But that doesn't matter.

The point is to build, to explore, and to leave a trail for the next version of myself to look back on.

My practical goal is simple: publish regularly, even when the post is short, so progress stays visible.

Footnotes

  1. Now known as Google Workspace. At the time of writing, pricing starts at $6 USD per user/month. Fortunately, I registered before the free tier was discontinued and have been able to continue using it. https://workspace.google.com

  2. I inlined custom CSS and JavaScript within the template, used CDNs for common libraries, and hosted image assets via Picasa — a free image hosting service at the time. Picasa has since been discontinued and replaced by Google Photos. https://picasa.google.com

  3. Also known as Amazon Web Services. Unlike the services I used previously, my AWS account is still alive — and billing. https://aws.amazon.com

Marc Santos

Marc Santos

Full-Stack Engineer & Product Developer

I write about what I’m actually building — features on this site, developer tooling, and applied computer vision — with the occasional detour into photography.

When I’m not at a screen, I’m usually underwater, on a mountainside, or somewhere new with a camera.

About MarcBuild a product together

Keep reading

Stop Documentation Drift

Stop Documentation Drift

Mar 29, 2026

Building a Travel Map

Building a Travel Map

Mar 15, 2026