back to blogs

Building a website can be intimidating as there are usually many factors to consider. For my website, I wanted to be a part of the building journey as much as possible. This is mostly to:

  • keep my dev skills alive (I do not code in my day job),
  • demonstrate that I can code, and
  • try something new (I have mostly developed Java, .NET, and Vue.js projects in the past)

general anatomy

My site is built using Gatsby.js, which is a static site generator. For those unfamiliar with web/app development, this basically means data won't be dynamically loaded when using the site. After the site is deployed, all the code and data needed for it to function are already there - server-side processes aren't needed.

Static sites still use some data-fetching mechanism to facilitate populating content from project builds into the site's pages. The typical choice for this data-fetching mechanism is REST, whose data format can be XML, JSON, plaintext, etc. Depending on how the project is configured, Gatsby.js can use GraphQL for querying site content. GraphQL differs from REST in that the former isn't restricted by the technical structure of the data being sent or received; in programmatic terms, this means functions sending and receiving data via a REST API have a predefined set of parameters becuase they depend on URLs and request types.

This is a core feature of Gatsby - when using GraphQL, all data sources are gathered and composed in a schema at build time, and after deployment, data returned by queries are passed to components and provided to the browser. For more information on Gatsby.js, visit their documentation page.


My site is a peek into who I am and what interests me. I have many interests and may speak on things outside of security and even technology on this site. My goal is really just to share information and perspective over a "written" medium, and I hope someone will find value out of them.

enhancements (updated as of sep 2, 2021)

Things I'd like to get around to over the next year:

  • showcase interactive learning activities (i.e. explaining a techinical concept) on the "playground" page
  • create and utilize a tagging system/feature for my blogs
  • overall refactor code and add features to better responsiveness, user experience, etc.
  • improve design and aesthetics of site (form and function are both important pillars of a product to me)

I'm aiming to publish a specific blog post roadmapping any immediate enhancements I'd like to complete over this next year.

© 2022