The do it yourself resource for homeowners from home improvement professionals.

How to Build a Curbless Shower

A curbless shower reduces a major tripping hazard in your bathroom. You may want to know how to build a curbless shower to help someone with mobility problems. For this project to be completed properly, you will need to pay particular attention to the preparation of the subfloor.

Tools You’ll Need How to Build a Curbless Shower

Most of the same tools are needed whether you use a pre-fabricated shower pan or linear drain.

  • Utility knife
  • Measuring tape
  • Power drill
  • Circular saw
  • Hole saw
  • Tile saw
  • Thin-set
  • Caulking gun
  • Trowel

How to Build a Curbless Shower Steps

For pre-fabricated shower pan:

  1. Measure and mark the subflooring where the shower pan will be installed.
  2. Cut away subflooring with a circular saw without cutting into floor joists.
  3. Cut lumber blocks to fasten between floor joists just beneath the edges of remaining subfloor.
  4. Fasten 2 x 4 ledgers around exposed joists.
    1. Install these at a level that leaves room for new subfloor plywood sheets to be installed level with top of exposed joists.
  5. Cut and install new subflooring pieces to build the recessed subfloor.
  6. Cut hole in the recessed subfloor for drain.
  7. Assemble drain unit and seal to shower pan.
  8. Dry fit the shower pan.
  9. Spread thin-set with trowel over recessed subfloor and underside of pan.
  10. If kit includes waterproof sheeting, then lay it down before installing pan.
  11. Place pan over recessed subfloor and weigh down with boxes of tile.
  12. After pan has cured in place, install tile over pan.

For linear drain shower:

  1. Make shower area subfloor level and flush with bathroom floor.
  2. Cut strip of subflooring over waste pipe in the dimensions necessary to hold linear drain unit.
  3. Glue PVC pipe of linear drain to waste line.
  4. Cut floor wedges to fit shower area.
  5. Spread thin-set and press wedges into place with slope going down toward drain.
  6. Spread thin-set between linear drain area and bathroom floor.
  7. Install backer board to newly spread thin-set.
  8. Trowel more thin-set over wedges and backer board.
  9. Install waterproof sheeting.
  10. Push locator pins through sheeting near drain.
  11. Neatly fold edges of sheeting down and inward at shower corners.
  12. Apply thin-set 6 inches up shower walls.
  13. Connect drain extension and clamping collar.
  14. Use caulking gun to place sealant along sides of drain.
  15. Proceed with tiling, grouting, and caulking the rest of the shower.
  16. Carefully cut away sheeting over drain with utility knife.
  17. Screw drain spacers and strainer cover into place.

Get Speedy Results with PJ Fitzpatrick

Following the directions for how to build a curbless shower can be time consuming and difficulties may arise when dealing with the subfloor. The bath experts at PJ Fitzpatrick can provide great value in terms of speed, cost, and quality. Ask us for an estimate today.

Need help with this project?

We have trained professionals that can help.

Contact us today. 1-888-446-6492 Get Estimate

P.J. Fitzpatrick, Inc.

21 Industrial Blvd
New Castle, DE 19720

  • NJ Lic. #13VH10727200
  • DE Lic. #2009603070
  • PA Lic. #PA011323
  • MD Lic. #105494

© 2020 P.J. Fitzpatrick, Inc.

Website by the Prager Microsystems, Inc. Digital Marketing Agency

Live Chat With Us
[gravityform id="20" title="false" description="false"]
<div class='gf_browser_unknown gform_wrapper' id='gform_wrapper_20' ><form method='post' enctype='multipart/form-data' id='gform_20' action='/diy/shower-installation/how-to-build-a-curbless-shower/'> <div class='gform_body'><ul id='gform_fields_20' class='gform_fields top_label form_sublabel_below description_below'><li id='field_20_1' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_20_1' >Your Name:<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_20_1' type='text' value='' class='medium' aria-required="true" aria-invalid="false" /></div></li><li id='field_20_4' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_20_4' >Phone Number:<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_phone'><input name='input_4' id='input_20_4' type='text' value='' class='medium' aria-required="true" aria-invalid="false" /></div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_20' class='gform_button button' value='Submit' onclick='if(window["gf_submitting_20"]){return false;} window["gf_submitting_20"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_20"]){return false;} window["gf_submitting_20"]=true; jQuery("#gform_20").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_20' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='20' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_20' value='WyJbXSIsIjExY2Q2ODU0YWI0Y2RiZGJiMzBhMmEyNzEwY2IwZDM1Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_20' id='gform_target_page_number_20' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_20' id='gform_source_page_number_20' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div><script type='text/javascript'> jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 20) {jQuery('#input_20_4').mask('(999) 999-9999').bind('keypress', function(e){if(e.which == 13){jQuery(this).blur();} } );} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [20, 1]) } ); </script>