This is a personal website I built for myself. The site is used to host projects, share thoughts, and aggregate data. The design is clean and simple with a limited color scheme and few edges. With a responsive design, it has been optimized for reading content on mobile and web devices.

It was built with my favorite stack of web app technologies which, as of writing this, is a ReactJS frontend and a Python backend. As a foundational platform, a Postgres database, a Redis cache, and a GraphQL layer were also added. For this project, I want to highlight one technology I had chosen for the UI delivery, NextJS. NextJS is a tool that brings the best of both server-side and client-side rendering to ReactJS. This seemed particularly useful for the purposes of this site since a lot of the content was meant to be static. While this site does take advantage of the image optimizations and code pre-fetching touted by the software, the most interesting feature I have found has been the dynamic route generation. All of the thought and project pages are statically generated at build time rather than runtime, unlike most server-side rendering platforms. What’s more, because the build process is running its own Node server in a docker container, it can dynamically load data from a datasource WHILE generating these static files. This makes the site much more performant and provides a quick advantage for SEO.