Al’s Sweeper & Sewing Center

Al’s Sweeper is an eCommerce website built with React. The website shares information about the business, services they provide, a contact form to easily reach the company, a catalog where visitors can shop for vacuums and vacuum parts, and a shopping cart handled with Redux.

Technologies

  • React / Next.js
  • Tailwind CSS
  • Redux Toolkit
  • Commerce.js
  • SendGrid

View Site

Source Code

Screenshot of Al's Sweeper

Purpose and Goal

I reached out to Al’s Sweeper & Sewing Center because they did not have a website. I offered them my services, and they happily accepted. I created a PDF presenting my design choices, six different logo options, business card mockups, available domains, a homepage mockup, and a visual site map to explain the pages and flow of the website.

I wanted to create a website where visitors could easily reach the company and purchase products online rather than requiring the visitor to be in the area to pick up an item.

Problems

A problem I ran into when building this website was when a visitor would view the catalog or a product. It would take several seconds for the data to populate the page.

Every page request would fetch a product or list of products and then display them to the user. Retrieving the data on every request was slow and resulted in a poor user experience. To fix this issue, I incorporated incremental static regeneration making the shopping experience quick and snappy. By caching the data for a set period, product pages would be instantly ready for the user.

Lessons Learned

This project was my first experience with eCommerce applications. At this time, eCommerce was very intimidating. I chose Commerce.js because it allowed me to add online shopping capabilities easily. I read through the documentation and created a demo store. This practice led to a smooth integration into the website.

This project was my first time utilizing caching to speed up page requests. I have incorporated caching into other projects after I learned how simple it is to set up with Next.js.