BUILT WITH REACTJS

This site has a React front end and a backend powered by a Wordpress REST api. I originally built this site in 2016 with Wordpress when I was first getting started with web development. In mid-2020, immediately after taking an online ReactJS course on Coursera.com, I rebuilt it as a ReactJS/Redux app that looked nearly identical to the Wordpress original. It was my first foray into creating a fully-blown ReactJS/Redux web application. In 2026 I modernized it, moving it to TypeScript, Vite and Redux Toolkit, adding a test suite and prerendered pages, and giving it a look of its own.


I like ReactJS. I've been working with Angular since 2018 and by comparison I find React more intuitive and more performant. Additionally, the ReactJS community is large and growing, which results in more searchable online help content and more and better tooling.


Front End: React 19, written in strict TypeScript and built with Vite, with Redux Toolkit for state and data, Bootstrap, and icons from the free version of Font Awesome. The original Wordpress version used a professionally-designed third-party theme, and the first React version duplicated it using open source tools. Today the site has its own design, taken from the home page: black, Courier type and a single amber accent. I encountered a variety of design and technical challenges with the home page, which you can read more about in this blog post, Animations in ReactJS.

Every page is prerendered to html with its data when the site is built, so search engines and link previews see each page's content without running any JavaScript, and the browser takes over from there. The data from Wordpress, GitHub and YouTube is validated against zod schemas, a Vitest suite covers more than 95% of the code, and GitHub Actions tests, releases and deploys every change.

Source code: https://github.com/lpm0073/lawrencemcdaniel.com

I designed and coded the logo cube animation on the home page and then later wrote this blog article that discusses my design considerations and some of the unique challenges I encountered along the way, and their solutions.

Back End: The back end is a Wordpress REST api and the AWS Cloudfront content delivery network. Wordpress is a great back end solution, though oddly, I never read nor hear much about this. I manage a medium-sized Wordpress hosting platform for my clients so this obviously impacts my decision. This site mostly needs back-end support to provide image assets. Currently, there are around 500 images on this site which are all ultimately served by AWS Cloudfront CDN. I like Wordpress because there's a lot of important minutia like backups, security, permissions, data backups etcetera that Wordpress takes care of out of the box. I use some premium Wordpress plugins to help with image optimization and CDN synchronization which make adding new images pretty painless. The Wordpress REST api can take several seconds to respond, so the site never waits on it: each page arrives with its data already in the html, and the browser keeps a copy of every api response and refreshes it in the background. Lastly, the Wordpress REST api is robust (and free).

Backend API URL: https://api.lawrencemcdaniel.com/

Progressive Web App (PWA): This site is fully-functional and performant regardless of Internet quality, even if there's no Internet service at all. It's observably performant because all of the site assets are precached and served locally. It's more resilient because it works fine even with sparse or non-existent Internet service.

Part of this is made possible simply because the World Wide Web Consortium implemented a set of standards for implementing a local browser javascript-based service worker. A service worker is a script that your browser runs in the background, separate from a web page, opening the door to features that don't need a web page or user interaction. They manage the client side of synchronizing web apps; topics like precaching, runtime caching, request routing, and background code and static asset synronization. I'm using Google Workbox, a library that bakes in a set of best practices and removes all of the heavy lifting involved in working with service workers.

In my case converting my standard React app into a PWA involved modifying/creating the following:

Infrastructure: This site runs on AWS primarily because I had existing multi-tenant infrastructure there that I could leverage for this site (see diagram below). But that aside, there are a couple of things about AWS that are hard to beat for small projects. First, S3/Cloudfront are effectively zero cost, and they are super resilient and performant. And second, the site is just files in S3, so there is no web server to manage at all. GitHub Actions builds the site, tests it and uploads it to S3 on every release.

CDN: https://cdn.lawrencemcdaniel.com/

AWS React Hosting Architecture
The hosting architecture as of 2020. The site itself is still served from S3 through CloudFront; since then, GitHub Actions builds, tests and deploys it.

Code Samples & Publications

Also checkout out my side project, "Matrix Digital Rain for React", here

These are a combination of managed GitHub repositories that I use for instructional purposes, combined with repositories belonging to open source organizations to which I am the maintainer. Most of these also demonstrate best practices for software management including pre-commit, linting techniques, and devops methods for automating unit testing, documentation and CI-CD operations for build, deploy and code dependency package updates.

Repository
Full StackData ScienceCloud
⭐🍴👁🐛
6845686
Last commit: Oct 2026
Total commits: 3,337

Python (40.8%)
HCL (34.7%)
JavaScript (18.6%)
FullStackWithLawrence/react-mdr

React Matrix Digital Rain Effect gives you your favorite Matrix movie screen effect in the form of a React component. The source originates from an October 2021 blog article written by Adam Nagy, "Matrix raining code effect using JavaScript".

  • Lightweight: The active code in this repository is less than 100 lines. It uses a canvas for rendering, which should ensure that it is both performant and that it works in most browsers.
  • Use Anywhere: The <MatrixRainingLetters /> component tag can be placed anywhere in your jsx return function. It accepts custom classes and responds normally to CSS styling.
⭐🍴👁🐛
246241
Last commit: Nov 2023
Total commits: 5

JavaScript (98.5%)
CSS (1.5%)
FullStackWithLawrence/django_with_react

License: MIT This is a fully functional reference project that demonstrates a hybrid Django + ReactJS setup. After building this environment locally you can view this example page with ReactJS running inside of Django. The React app in this project was scaffolded with Create React App. It is completely scalable and is wrapped inside of a Django app located in django_with_react/djangoapps/frontend. You build the React app normally, using npm run build or yarn run build. This single view within the frontend app enables the Django templating system to automatically find and seamlessly integrate the React build's optimized js and css bundles. You have the option of using both Django urls.py as well as React Router. Additionally, you can pass data to the React app using both a traditional REST api or using the Django template context. The React build is served entirely by Django's templating system and native static asset functionality. There are some anciliary objectives as well that bear mentioning. The local development stack consists of the following fundamental building blocks:

  1. Python Virtual Environment This project uses Python3.9 with what I consider to be the ideal set of PyPi packages for a garden variety Django project as of this writing.
  2. Django project that was scaffolded with cookiecutter-django and includes a fully configured implementation of Django REST Framework that is ideally suited for serving a REST api for the ReactJS frontend.
  3. The ReactJS app.
  4. Sphinx documentation server that was also scaffolded with CookieCutter
  5. Docker which provides all backend services (see the list below, in this section)
  6. HTTPS. This project also includes documentation and an example of how to implement https in your local development environment, which is helpful for things like testing oauth.
  7. Opinionated Code Styling Enforcement. This project includes an example implementation of pre-commit with black and flake8 code formatters. The Docker backend services consist of the following:
Full Stack
⭐🍴👁🐛
113119
Last commit: Sep 2026
Total commits: 239

Python (62.0%)
HTML (18.1%)
Shell (7.7%)
lpm0073/lawrencemcdaniel.com

My personal web site. Of note:

  • React single page web app
  • Redux state management
  • Progressive web app architecture using workbox
  • Static asset precaching using service-worker.js
  • Logo cube on home page. see LogoCube source and my blog post on Animations in React
  • Matrix Digital Rain Effect component. Gives you your favorite Matrix movie screen effect in the form of a React component. Implemented as an npm package.
  • Content component. An optimized content library sourced by Api's from GitHub, YouTube and Wordpress.
⭐🍴👁🐛
51517
Last commit: Jul 2026
Total commits: 1,018

JavaScript (92.4%)
CSS (5.4%)
XSLT (0.9%)
smarter-sh/smarter-chat

The official chat UI for Smarter LLMClients. Drop it into any website, whether React, Next.js, WordPress, Django, Flask, Node.js or plain HTML, and it gets its behavior and its look from the LLMClient's YAML manifest. Smarter Chat is the chat window of the Smarter web console's prompt engineering workbench, published on npm so you can put the same chat on your own website: a marketing site, a customer portal, a storefront, an intranet or an application. You build and run the chatbot on Smarter, and this package displays it on your pages. The complete guide is at docs.smarter.sh. Documentation · Storybook · Changelog · Issues

Full Stack
⭐🍴👁🐛
0000
Last commit: Oct 2026
Total commits: 246

TypeScript (85.7%)
JavaScript (7.4%)
CSS (5.6%)
smarter-sh/web-integration-example

Demonstrates the basic pattern for integrating a @smarter.sh/ui-chat npm component into an existing web page. This is a generic integration pattern that is intended to facilitate plugin tool development for any ecosystem, including for example, Microsoft Dynamics, Microsoft Sharepoint, SAP, salesforce.com, Wordpress, Drupal, Wix, Squarespace, Shopify, and others. See also: Read the Docs: Production Deployment Guide Injects a lightweight react.js app into the DOM. The app itself is freely downloadable at @smarter.sh/ui-chat, or alternatively you can fork https://github.com/smarter-sh/smarter-chat.

Full Stack
⭐🍴👁🐛
0003
Last commit: Mar 2026
Total commits: 68

JavaScript (51.5%)
Makefile (26.0%)
HTML (11.2%)

These are articles that I've published. Usually from my personal blog, but every now and then from other sources.

Article
ChatGPT Full Stack Using React + AWS Serverless

Build a custom ChatGPT web app in no time with this open source ready-for-production React + AWS Serverless scaffolding. This completely free, public GitHub repository includes Vite, Terraform, AWS API Gateway and AWS Lambda.

ChatGPT Full Stack Using React + AWS Serverless
Adding React To A Django Project

Learn the right way to combine Django and ReactJS. This article includes links to a public repository with a fully documented, fully-functional reference project that you can setup in less than an hour and run in your local dev environment using Docker.

Adding React To A Django Project
Customizing Service Workers in ReactJS Progressive Web Apps with Google Workbox

Learn how to customize Google Workbox’s default behavior for a service worker in your React app. This articles explains how to modify the behavior of the service worker life cycle, enabling fully automated updates of your app in the background. Includes a bonus section with a React Bootstrap component alert for app update announcements.

Customizing Service Workers in ReactJS Progressive Web Apps with Google Workbox
Animations in ReactJS

Sophisticated animations pose some interesting challenges in ReactJS, especially when using CSS keyframes. I recently created a cool CSS/JS animation for a ReactJS project, and it turned out to be harder than I’d anticipated. Hopefully this article will help you to avoid, or at least anticipate some of the challenges that I faced.

Animations in ReactJS

Videos from my YouTube Channel, Full Stack With Lawrence

Video
Build a ChatGPT chatbot with React and AWS Serverless

This is a full stack implementation of each of the 30 example applications found in the OpenAI API official documentation, implemented using ReactJS, ViteJS, Terraform and the AWS Serverless components, API Gateway and Lambda. There are example Terraform implementations for Lambda using both Python and Node.js. Links: - The GitHub repository in this video: https://github.com/FullStackWithLawrence/aws-openai - This application deployed to production: https://openai.lawrencemcdaniel.com/ - OpenAI API Example apps: https://platform.openai.com/examples - Blog article: https://blog.lawrencemcdaniel.com/chatgpt-full-stack-using-react-aws-serverless/ - OpenAI Python API With AWS API Gateway + Lambda - https://youtu.be/FqARAi8nS2M

Build a ChatGPT chatbot with React and AWS Serverless