Creating a Raised Bed Garden on Concrete

Concrete doesn't have to mean the end of your gardening ambitions. A well-built raised bed transforms a patio, driveway, or parking pad into productive growing space without a single jackhammer swing. The trick isn't fighting the concrete—it's working above it with proper drainage, the right soil depth, and a frame that won't buckle under hundreds of pounds of wet earth. What separates a thriving raised bed from a swampy failure comes down to three things: drainage holes that actually work, soil depth matched to what you're growing, and a frame built to handle the outward pressure of saturated soil. Get those right, and you can grow tomatoes where a car used to park. Skip any one, and you're looking at root rot by July.

  1. Find Your Sunniest Spot. Choose a spot that gets six to eight hours of direct sun for vegetables, or four to six for herbs and greens. Sweep the concrete clean and check for major cracks or slopes—anything more than a quarter-inch dip per foot will cause water pooling. Mark your bed dimensions with chalk, keeping it narrow enough to reach the center from both sides without stepping in.
  2. Assemble the Frame. Cut your lumber to length and assemble the base frame using exterior-grade screws at each corner. For beds over four feet long, add a center support brace to prevent bowing. Pre-drill screw holes in cedar or composite to avoid splitting. The frame should sit flat on the concrete with no gaps—use shims under corners if the slab slopes.
  3. Create Escape Routes for Water. Flip the assembled frame and drill three-quarter-inch drainage holes every twelve inches along the bottom boards. Space them about four inches from the inner edge so they won't be blocked when soil settles. If your bed sits directly on concrete with no air gap, drill additional holes and plan for a thicker gravel layer to compensate.
  4. Line It Right. Cut landscape fabric to line the inside of the frame, running it up the sides and overlapping at corners. Staple it to the top inner edge of the boards every six inches. The fabric should be permeable—it keeps soil in but lets water drain. Trim excess fabric flush with the top of the frame once secured.
  5. Lay Your Foundation Layer. Spread two to three inches of three-quarter-inch drainage rock or pea gravel across the bottom of the lined bed. This layer creates air pockets and prevents soil from becoming waterlogged on the non-permeable concrete below. Level it roughly but don't obsess—it doesn't need to be perfectly flat.
  6. Fill With Living Soil. Mix equal parts quality topsoil, compost, and peat moss or coir, then fill the bed to within two inches of the top edge. Don't use garden soil alone—it compacts too much in raised beds. Water thoroughly as you fill to settle the mix and reveal low spots. Top up after the first watering and let it rest overnight before planting.
  7. Lock It Down Before Filling. Once filled, the bed weighs too much to move easily, so position it exactly where you want it before adding soil. If the concrete slopes or you need to level the bed, use composite shims under the low corners. For permanent installations on a patio, run a thin bead of construction adhesive under the frame to prevent sliding.
  8. Water Deep and Often. Raised beds on concrete dry out faster than in-ground gardens because there's no moisture wicking up from below. Water deeply when the top two inches of soil feel dry—usually every other day in summer. Install a soaker hose or drip line on a timer if hand-watering becomes tedious. Monitor drainage during the first few heavy rains to confirm water isn't pooling.