How to Replace Your Own Roof in California

One of my rental properties is a triplex in Stockton, California. The roof uses standard residential shingles and has an area of about 4000 square feet. I got a roof replacement quote from a licensed contractor that specializes in roofing on May 10, 2023, for $28,270. Here are the details:

  • Tear off existing 1 layer of composition roofing
  • Any dry rot will be an extra charge to replace. Dry rot repair labor rate is $85.00 per hour per man plus material.
  • Roofing will be limited lifetime Certainteed Landmark Solaris cool shingle over one layer of Certainteed Roof Runner synthetic underlayment.
  • Venting per title 24 codes. 11 intake vents and 11 exhaust vents.
  • New pipe flashing painted to match roof color.
  • Certainteed Sure-Start 4 Star Warranty (10-yr. labor warranty % 50-year material warranty)
  • New TPO membrane roofing in dead valley
  • Includes building permit and dump fees.
  • New 5″ gutters with new down leaders an extra $3700

I got a quote from an all-purpose contractor who could do the job for $26,000. Here are the details:

  • Replace roof with California Cool shingles
  • Replace any dry rot
  • Underlayment would be felt paper, not synthetic underlayment

Since I think these quotes are outrageous, I decided to replace the roof myself with some friends, one of whom happens to be a roofer. Here’s how I did it.

Set up a ladder

A ladder must be on the job site for the Building Inspector’s use. The ladder must be set up to meet the following minimum standards.

  • The ladder shall meet OSHA Standards and be rated a minimum of 250 lbs.
  • Find a level, hard, slip-resistant spot on the ground free of debris to set the ladder feet on.
  • The ladder shall extend no less than 36 inches above the edge of the roof at the point providing access and secured (tied off).
  • Place the feet of the ladder at a distance of 1⁄4 the height of the ladder away from the building. In other words, if the ladder is 8 feet tall, place the bottom of the ladder 2 feet away from the building. If the ladder is 12 feet tall, place the bottom 3 feet from the building.
  • If you have a gutter, slip a 2 x 4 into it to keep it from being crushed by the ladder.

Note: Inspectors will not walk on tile roof coverings or pitches exceeding 5/12. Ladders are still required for access to the roof edge for these inspections. If a ladder is not provided or if the ladder does not meet the minimum requirements listed above, the inspection will be canceled. If a second inspection request is canceled for lack of access, a reinspection fee will be issued.

I have the Little Giant MegaLite 17 Ladder with Tip & Glide Wheels. This foldable and extendable ladder is very sturdy. I used a ratchet strap to secure the ladder to the builder.

Measure roof area

To measure the roof area, I took a screenshot of the roof from a satellite view in Google Maps. I then annotated the roof with letters, printed out the image, and took it with me on the roof.

To make taking measurements easier, instead of using a tape measure, I used a measuring wheel (Crescent Lufkin 4 in. Dual Wheel Small Measuring Wheel).

A measuring wheel allows you to take long measurements quickly and keep you away from the roof edges.

My estimated roof area was about 4000 sq ft. When ordering shingles, it’s best to add 10%.

Existing Roof

My existing roof consisted of the following:

  • Composition Shingles
  • Underlayment (tar paper)
  • 11 intake vents and 11 exhaust vents
  • Thermoplastic polyolefin (TPO) membrane roofing in the dead valley

New Roof

For the new roof, I estimate an area of 4500 sq ft.

The Cool Roof Rating Council (CRRC) ID is 0676-0130a.

You can add additional vents near the ridge.

Apply for a permit

There are 2 types of permits:

  1. Owner-Builder
  2. Licensed Contractor

Learn more

To do the job yourself, you need to apply for the owner-builder permit. Here are some application details:

  • Permit Fee: $185
  • E-Permit: Residential
  • Tear Off: Yes
    You can have up to 2 layers of shingles. If you have one layer, you can add another layer on top of the first layer. If you have 2 layers, then you’ll need to tear off both layers. I had one layer, but I decided to just tear it off anyway.
  • Resheet: No
    Resheeting is to replace all plywood under the shingles.
  • Structure: Main Structure
  • Original Roofing Material: 30yr Laminated Dimensional Composition
  • # of existing layers: 1
  • Proposed Roofing Material: 30yr Laminated Dimensional Composition
  • New Roof Material Product Information: Cool Roof CRRC ID 0676-0133, 
  • Area: 45 squares (1 square = 100 sqft)
  • Conditioned Space: No
    A conditioned space is a space between the roof and the ceiling that is air conditioned to be hot or cold. 
  • Roof slope < 2:12 pitch? No
    Most residential roofs in California have between a 4/12 and 9/12 slope. Roofs with a pitch exceeding 9/12 are called steep slope roofs.
  • Reroof less than 50% of the entire roof area: No

Once you get your permit, you must post it on the building. The city inspector will look for it when they come to inspect the work.

Inspections

According to the permit, one inspection is required and some are depending on need.

On the permit, there will be a form for the inspection to fill out for each inspection type.

In my case, I don’t think the special inspection (019) is needed, but the other two are needed.

The permit also indicates that the following inspections are needed:

  1. After removal of existing roofing for the plywood deck inspection.
  2. After new plywood or OSB sheathing is installed for the nailing inspection.
  3. After the project is complete for the final inspection

Inspections can be scheduled online at Stocktonca.gov/scheduleInspection. When you enter your permit ID, you’ll see some inspection options.

For the inspections, I would choose 015 Roof.

Inspections will occur between 7:30 AM and 4:00 PM. When you schedule an inspection, you can request an AM time window (7:30 AM to 12 PM) or a PM time window (12 – 4 PM) in the “Notes to inspector” field.

UPDATE: After scheduling the first inspection, the city inspector called and said that

  • he’d be at the site between 11 AM and 1 PM
  • the City of Stockton doesn’t require in-progress inspections, just final inspections.

So, I canceled the in-progress inspection and will just schedule one final inspection when the roof is complete.

Remove old roof

You’ll need to remove the old shingles and the underlayment (tar paper or synthetic underlayment).

You may also need to remove old roofing materials in places like the dead valley. In my case, there was a metal sheet and old TPO material.

If the fascia boards are rotten, you should remove and replace them as well. Use a pry bar and a metal-cutting blade to cut nails holding the fascia board in place.

For long pieces of fascia board on the 2nd story, you’ll need multiple workers laying down on the roof and leaning over to pull the boards off.

When disposing of the old roof, it’s easiest to park a dump truck in the driveway so you can throw the old roof materials from the roof into the truck. You can rent dump trailers from Home Depot, but then you need a truck to haul the trailer and you need a driver. Also, the trailers at Home Depot may not be available when you need them. In my case, I hired a guy who has a dump truck.

When you’re at the dump, you can just dump the garbage mechanically rather than by hand.

Buy new roof materials

I bought 15 pieces of 2x6x16′ wood for the fascia. You can find boards as long as 20′. However, some edges are longer than 20′, so you’d still have to splice two pieces together, which can be done using a galvanized tie plate.

I also bought 9 sheets of 4×8 OSB plywood to replace any rotten parts of the roof deck.

Paint fascia boards

Make sure to paint the fascia boards before installing them, including the ends after making any cuts. Paint protects the wood and delays rotting.

Install fascia boards

Installing the fascia boards is also a multi-person job.

Nails are shot into the wood using a pneumatic nail gun.

Buy vent flashing

Pipe flashing

1-1/4 in. x 3 in. Galvanized Steel Adjustable Pipe Flashing with Base and Rubber Collar

  • Fits 1 in. to 3 in. pipe diameters

T-top exhaust vent pipe flashing

T-Top 4 in. Bonderized Steel Exhaust Vent Pipe Flashing

Code cap vent flashing

4 in. Aluminum Code Cap Top Vent Pipe Flashing

Static air vent

Static roof vents allow air to escape from the attic. Often multiple static roof vents are needed to adequately ventilate the attic. Roof vents should be evenly spaced across the roof and installed just below the peak of the roof where heated air will rise. Learn more.

144 sq. in. NFA Galvanized Round-Top Roof Louver Static Vent

Buy materials

The shingles are

  • $43 / bundle
  • 3 bundles / square
  • 56 bundles / pallet

Replace any dry rot

Install underlayment

Install drip edge metal flashing

Deliver materials

Roof shingles are very heavy. Pay to have them delivered on top of your roof.

Make sure to have already stapled the waterproof underlayment before the shingles and other materials are delivered.

Install starter shingles

Install shingles

Along edges, have shingles extend beyond the edge by 0.5 – 1″.

Install vent flashing

Install ridge shingles

Where there is an exposed nail in the ridge shingles, cover with caulk and a small piece of shingle.

Install vents

Fasten vents using roofing screws

Buy at Home Depot

Spray paint exposed metal area

Install insulation and TPO in valley

Insulation sheets go under the TPO

TPO

Use a special heat tool to bond to pieces together.

Where the TPO meets shingles, apply caulk.

Put flashing as needed

Apply silicone to small areas that could cause leaks

For example,

  • over nails
  • where TPO meets shingles
  • where fascia boards meet

Apply wet patch to large areas that could cause leaks

For example, where shingles meet an A/C unit.

Insta360 Ace Pro Tips

Chest Mount

Use this magnetic chest mount for hands-free FPV (first-person view) filming. The camera should be positioned upside down to lay flat on your chest.

Daytime Video Recording

  • Choose “video mode”.
  • Swipe up.
    • For regular motion, choose “Standard” stabilization.
    • For very shakey motion, choose “High” stabilization.
  • Ratio: 16:9
  • Active HDR: On
  • Resolution: 1080p is good enough (4K will produce higher quality, but larger file sizes)
  • Frame Rate: 30 fps is good enough (higher frame rates are for faster action scenes)

Slow Motion Video Recording

Choose “slow motion” mode to record a video with a high frame rate. Allows you to shoot in 240 frames per second in 1080P, or up to 120 frames per second in 4K.

Night Shots and Low-Light Scenes

Choose “Pure Video” mode.

FlowState Stabilization

There are 3 stabilization options: Off, Low, Standard, and High. Choose High for very shaky situations.

Field of View (FOV)

Choose Dewarp to experience a wide FOV with minimal distortion. This is ideal for scenarios such as skiing and vlogging.

Quickly cancel a recording

You can quickly cancel a recording if you’ve messed up by long-holding the shutter button while recording.

Pause recording

If you have some downtime during a shot, for example, you’re waiting at an intersection or for something to happen, tap the screen while recording (at the bottom) to pause your recording. You can then tap to resume at any time. 

Quick Capture

When the camera is off, press the shutter button to start shooting with QuickCapture. The camera will start shooting using the last used shooting mode.

Pre-recording

Save 15 or 30 seconds of footage before you start recording. This can be handy if you want to catch something on film that is imminent.

Interval (long period)

Take a series of single photos over a long period of time. The photos can then be combined into a timelapse.

Burst (short period)

Take a series of photos in a short period of time (up to 10s). One use case is if you are alone and want to take a selfie or if you are with someone who is not good at taking photos. You can set the burst setting to 30p/10s, meaning 30 pictures in 10 seconds. Then, you can stand, smile, try different poses, etc, and later pick the best shots.

Timelapse (for static, fixed position shots)

Create a timelapse video that condenses a long scene into a short video by taking a photo at a set interval. Use a tripod or fix the camera in one spot.

  • Shoot length: infinite, 3m, 5m, 10m, … 10h
  • Interval: 0.5s, 1s, 2s, … 120s

For example, let’s say you want to film yourself having dinner on an airplane. You expect you will take 30 minutes to eat, so you choose 30m for “shoot length”. Then, you can adjust the interval to see how long the timelapse video will be. For example,

  • interval = 0.5s, => timelapse duration = 2m
  • interval = 10s, => timelapse duration = 6s

The timelapse duration is shown on the screen.

Timeshift (for moving shots)

This is like a moving time-lapse.

Auto-stop Recording

If you want to shoot a video and have the camera auto-stop recording, you can set the duration to one of the preset values. The default is infinity (until the battery dies). Other options include 15s, 30s, … 3h, etc.

45deg and 360deg horizon lock

In free-frame video mode, you can set 45deg and 360deg horizon lock. So, if the camera turns, the resulting video will still be level. I guess this is good if you are on a roller coaster that has loops.

Inconspicuous shooting

If you want to film without people knowing that you’re filming, you can do the following to make people think that the camera is turned off.

  • Turn off the indicator light so there’s no flashing red light on the camera.
  • Turn off “Front Screen Display”
  • Use the GPS remote to start and stop shooting without touching the camera.

When traveling

Driving:

  • mount the Ace Pro on the windshield facing the front of the vehicle (FPV)
  • Shoot either a regular video or a Timeshift video

Walking (Daytime)

  • mount the Ace Pro on your chest (FPV)
  • control the Ace Pro from your wrist using the GPS remote
  • hold an Insta360 X3 or X4 on an extended selfie stick such that the camera is at eye level to film yourself

Walking (Nighttime)

  • mount the Ace Pro either on your chest or on a selfie stick and use “Pure Video” mode to get good night shots. Don’t use the Insta360 X3/X4.

Hotel Room Tour

  • mount the Ace Pro on a selfie stick and film as FPV or film the screen up and film with yourself in the shot

Eating

  • use either the X3 or Ace Pro and create either a regular video or a timelapse video

Any time you don’t need a 360-degree video, use the Ace Pro, e.g.

  • filming the sky from your airplane window

Different Ways to Mount an Action Camera on a Rented Jet Ski

Disclaimer: I have not tested these methods yet, but theoretically they should work.

On Steering Handle

Use a U-bolt mount on the left handle grip. Use a selfie stick so you can see more of the driver in your shots. You can have the camera positioned in front of the driver or to the left or right of the driver.

If you have the selfie stick going over the steering unit, you may need to secure it in place using endless ratchet straps. You may need to loop the ratchet strap around the selfie stick once or twice to keep it from moving around.

To avoid damaging the plastic steering unit, wrap the selfie stick in pipe insulation, which you can buy at Home Depot.

On Life Vest

If you have a life vest with straps, you can secure your camera with selfie stick between the vest and the straps.

However, if you want to extend the selfie stick to get a bird’s-eye-view shot, then you’ll need to do more. One way is by inserting the long selfie stick between your body next and the vest next to your shoulder. To prevent the bottom of the stick from moving around, wear a belt that has a stick holder. To prevent the stick from moving around near your shoulder, hold it against the vest using a reusable rubber twist tie. If you use the 10′-long Insta360 selfie stick, the bottom of the stick is too large to fit in the stick holder in the belt. As a workaround, you can connect the Insta360 tripod attachment to the selfie stick and then insert that attachment into the belt. Another option is to remove the stick holder in the belt and screw the selfie stick to the belt using a 1/4″ male-to-male camera screw.

On Arm

You can rig together a selfie stick mount on your arm as pictured below. The benefit of this is you can move the camera around hands-free. Learn more.

Other Spots

Depending on the jet ski, you may be able to use endless ratchet straps to secure a selfie stick to other areas like the front, where the rear-view mirrors are, and the rear passenger handle. You can also use a suction mount, as pictured below, but you may want to tether it to the jet ski using a lanyard in case the suction mount fails while riding.

Since I have the following cameras

  • two Insta360 X3 (360-degree action cameras)
  • one Insta360 Ace Pro (traditional, single-direction action camera)

I would use the following setup on a rented jet ski:

Camera 1 (Insta360 X3)

Usage: Secure the camera under your life vest.

Views:

  • When speeding, keep the selfie stick retracted to avoid it breaking due to rough motion. You can get an FPV (first-person view) facing the direction of motion.
  • When not speeding, you can turn the camera on and then extend the stick upwards. This will allow you to get a bird’s eye view of everything around you.

Camera 2 (Insta360 X3)

Usage: Screw the U-bolt mount around the left handle. Screw the camera to the 10′-long selfie stick and screw the selfie stick to the U-bolt mount. Position the U-bolt mount so that the selfie stick lays over the right handle. Secure the stick to the steering unit using a ratchet strap. Wear the GPS action remote on your wrist and push the shutter button to start/stop shooting.

Views:

  • When speeding, don’t extend the stick fully to avoid it breaking due to rough motion. You can get a 3rd-person view of yourself and a partial view of the jet ski.
  • When not speeding, you can fully extend the stick and get a complete 3rd-person view of yourself and the jet ski.

Camera 3 (Insta360 Ace Pro)

Usage: Mount the suction mount somewhere on the front of the jet ski such that the camera can face you. Attach a lanyard to the camera and secure the lanyard to the jet ski so that you can retrieve the camera from the water in case it falls in. Wear the GPS action remote on your wrist and push the shutter button to start/stop shooting.

Views: Whether you are speeding or not, you can get a 3rd-person view facing you from the front of the jet ski. Since the Ace Pro is not a 360-degree camera, you can only film in the direction of the single lens.

Note: you can use one GPS Action Remote with both the X3 and the Ace Pro.

Easily Extend Images with Photoshop’s Generative Fill

If you have a photo that is too small and you wish it were wider or taller, you can use Photoshop’s Generative Fill feature to fix that. Here’s an example.

Open the image in Photoshop

Enlarge the canvas

Let’s say I want to make the image wider. Using the Crop tool, enlarge the canvas.

When you do this, you’ll see a command prompt below the image.

Click Generate

If you just click Generate, Photoshop will fill in the empty parts to blend in with the original image.

Try custom commands

You can also tell Photoshop how you want to fill in the empty space. For example, if I write, “Fill the empty space with a jungle”

or just “jungle”

I get three variations.

Create a Disco Theme in Your Living Room

Here’s one way to give your living room a disco theme.

Equipment

  • Sconces (I bought 3 rice paper lamp shade sconces on Amazon) In the picture above, these are the 3 pink wall lights.
  • Adjustable-color LED Light Bulbs (This is for the sconces. I set the color to pink.)
  • Uplights (This one on Amazon lets you change the color of the light) In the picture above, I just have one behind the sofa with a soft white (yellow) light.
  • LED Light Strip (I got mine from Costco. You can adjust the color.) In the picture above, this is the blue light behind the TV.
  • 1.5 RPM Speed Disco Ball Motor (I chose a speed of 1.5 RPM. Faster speeds make the lights move too quickly, which is distracting and headache-inducing)
  • Disco Mirror Ball (Mine is 8″ in diameter)
  • Spot Light (This is for the mirror ball. I bought this one because it allows me to adjust the aperture size / spot diameter.) In the picture above, I put it on the ottoman facing up to light up the mirror ball.
  • Northern Galaxy Light Aurora Projector (In the video above, I set the color to red (R) and blue (B) and disabled the green “star” lights. It’s on the ottoman and illuminates the ceiling).

Bend Rebar Using a Rebar Bender

Materials

  • Rebar (the one I have is 3/8″ in diameter)
  • Pipe (the one I have is 1/2″ in diameter)
  • Rebar bender
  • Pipe clamps
  • 2×4 or 2×6 piece of wood

Instructions

  1. Secure the pipe to the wood using the pipe clamps
  2. Slide the rebar into the pipe
  3. Position the rebar bender such that pulling it would cause the rebar to bend
  4. Stand on the wood and pull the rebar bend to the desired angle

Easily Create a Website Using Pre-made Components

In this tutorial, I’ll explain how you can easily create a website using pre-made components.

Note that the following is just one of many ways you can do this.

1. Install Parcel

Parcel in a simple, zero-configuration build tool. Here are some of its features.

  • It works with static HTML files, but it can also work with React and many other file types.
  • Parcel includes a development server out of the box with auto-reload.
  • Clear error messages and diagnostics
  • Fast build times
  • HTML, CSS, JS modification and compression using Gzip and Brotli
  • Image optimization (although I prefer an image CDN like ImageKit for that)
  • Parcel automatically includes content hashes in the names of all output files. This enables long-term browser caching.

2. Install Tailwind CSS

Tailwind CSS is a utility-first CSS framework.

Instructions on how to install both Parcel and Tailwind CSS.

If you will have CSS files separate from Tailwind CSS, in your tailwind.config.js file, make sure to add “css” as a file option.

3. Update Configs, Set Up Git, and Test Locally

Add a source and scripts to your package.json by copying the source and scripts to it so that it looks like below. Remove the “main”: “index.js” if it exists. Note that we’re using the glob ./src/**/*/index.html to tell Parcel to build all HTML files in all directories.

Run npm run build to test building the pages.

Run npm start to start a local dev server.

Open a browser and go to the server URL provided to verify the test page loads. Make a change to the HTML and Tailwind CSS classes to verify that changes are processed and the page auto-refreshes in the browser.

4. Set Up Git and Push to GitHub

  • Run git init to initialize a new local git repo.
  • Create a .gitignore file with the following contents
node_modules
.parcel-cache
.env
dist
  • Create a repo in GitHub and push your local changes to it, e.g.
git add *
git commit -m "first commit"
git branch -M main
git remote add origin [email protected]:javanigus/test-tailwind-site.git
git push -u origin main

All files in your GitHub repo should be there except for the ones in the .gitignore file.

5. Set Up Deployments to GitHub Pages

Install the gh-pages package by running npm install gh-pages --save-dev.

Add the following scripts to your package.json file:

"predeploy": "rm -rf dist .parcel-cache && parcel './src/**/*.html' build --public-url ./",
"deploy": "gh-pages -d dist"

The predeploy script will run the npm run build command before deploying to ensure that the latest production-ready files are used. You need to clear the cache by deleting the .parcel-cache folder first. Also, since GitHub Pages publishes your website in a folder below the root domain, you need to add a “public-url” flag to tell Parcel to remove the slash (/) for relative dependencies like CSS and JS files to avoid getting a 404 error.

Run npm run predeploy

The deploy script will use the gh-pages package to deploy the contents of the dist directory to the gh-pages branch of your GitHub repository.

Run npm run deploy

View your site at https://<username>.github.io/<repository>/. In my case, that’s https://javanigus.github.io/test-tailwind-ui-site/.

In GitHub, if you go to Settings > Pages, you’ll see that the commands above configure GitHub Pages for you.

6. Add Pre-made Sections to Your HTML Pages

You can use Tailwind UI to copy and paste a bunch of sections like header, footer, hero, contact us, etc.

https://tailwindui.com/components

You can also get Tailwind components from Flowbite.

7. Add Pre-made UI Elements to Your HTML Pages

You can use Material Tailwind to copy and paste a bunch of elements like buttons, cards, accordions, lists, tables, etc. You’ll first need to add the Material Tailwind CSS and JS to your HTML pages first.

Ripple Effect

<!-- from node_modules -->
<script src="node_modules/@material-tailwind/html@latest/scripts/ripple.js"></script>
 
<!-- from cdn -->
<script src="https://unpkg.com/@material-tailwind/html@latest/scripts/ripple.js"></script>

Icons

<!-- Material Icons Link -->
<link
  href="https://fonts.googleapis.com/icon?family=Material+Icons"
  rel="stylesheet"
/>
 
<!-- Font Awesome Link -->
<link
  rel="stylesheet"
  href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css"
  integrity="sha512-HK5fgLBL+xu6dm/Ii3z4xhlSUyZgTT9tuc/hSrtw6uzJOvgRr2a9jyxxT1ely+B+xFAmJKVSTbpM/CuL7qxO8w=="
  crossorigin="anonymous"
/>

8. Add Icons

Easily add icons from FontAwesome or SVG Repo.

9. Add Fonts

Find and load fonts for free from Google Fonts.

10. Add Backgrounds

Your page sections will look boring if they are just plain white. Here are some background ideas:

For example, I use this gradient background animation for the announcement banner commonly found stuck to the top of websites. You can find free images at Unsplash. You can find SVG backgrounds from svgbackgrounds.com. I also used one of the button styles from here.

11. Add Animation

I like anime.js. The documentation is clear and integration is simple. Just add a reference to the animeJS library on a cdn like CDNJS. Then, add write some JavaScript that uses animeJS in your main JavaScript file. If you want your animations to run when users scroll to a particular section of your site, you can add the Waypoints library from a CDN as well. In my example website, I first hide all elements by setting their opacity to 0. Then, I use Waypoints + AnimeJS to animate different elements. Here’s my code. I ended up loading jQuery, animeJS and Waypoints along with my main JS file at the bottom of the <body> element.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.2/anime.min.js" integrity="sha512-aNMyYYxdIxIaot0Y1/PLuEu3eipGCmsEUBrUq+7aVyPGMFH8z0eTP0tkqAvv34fzN6z+201d3T8HPb1svWSKHQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/noframework.waypoints.min.js" integrity="sha512-fHXRw0CXruAoINU11+hgqYvY/PcsOWzmj0QmcSOtjlJcqITbPyypc8cYpidjPurWpCnlB8VKfRwx6PIpASCUkQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<script src="main.js"></script>

12. Deploy

Whenever you’re done making a change, just run the following deployment commands.

npm run predeploy
npm run deploy

Here’s a test site I created. Not too bad for a day’s work.

https://javanigus.github.io/test-tailwind-ui-site

Next steps:

Additional Resources

Iced Cantaloupe Drink Recipe

This is a very refreshing drink to have, especially on a hot summer day.

Ingredients

  • 1 x Cantaloupe
  • 4 tbsp of sugar (I prefer all-natural monk fruit sweetener from Costco)
  • Water as needed

Instructions

  1. Slice the cantaloupe in half
  2. Use a tablespoon to scoop out and discard the seeds
  3. Use a melon scraper to scrape slivers of cantaloupe meat into a bowl
  4. Cut the melon slivers into short strips to make consuming easier. Or, before serving, blend the drink briefly to chop up the long slivers.
  5. Fill a 2.4L pitcher half full of water. I have this pitcher from Target.
  6. Add the sugar to the water and mix
  7. Add all the cantaloupe slivers into the pitcher
  8. Add more water to the pitcher until it’s full.
  9. Chill the drink in the fridge till it’s cold

Pictures

After blending very briefly