In 2020 my husband and I moved to a one-bedroom apartment in Northwest Portland with a 4-by-10 foot second-floor balcony, which was about 20 square feet of planting footprint after we put out two chairs and a small side table. Prior to that, I had been gardening in a real backyard for a decade. The balcony garden I ended up building in that space produced more salad, pesto, and tomatoes than I expected, and taught me more about container discipline than the backyard had in ten years. Here is the layout that worked, and would work again tomorrow.

First, the honest constraints

A balcony or small patio is not a raised bed. You need to know what you are up against before you buy a single pot.

  • Weight.Wet soil weighs roughly 85 pounds per cubic foot. Check your balcony’s weight rating, and keep heavy pots over support beams (usually against the building wall, not the outer edge).
  • Wind. Balconies get more wind than you think, especially above the second floor. It dries out soil fast and knocks over anything top-heavy.
  • Sun. Before you buy a single thing, actually track your sun. Mark the shadow on the balcony floor at 10 AM, 1 PM, and 4 PM for a few days in June. You need at least 6 hours of direct sun for most vegetables, 4 hours for leafy greens and herbs.
  • Water. Container soil dries faster than in-ground soil. In July heat, most containers need water daily, some twice. Plan how you are going to do this before you commit.

The containers I actually used

Two years of experimentation and some regrets landed me on this lineup for a 20-square-foot balcony facing south-southwest:

Containers, total footprint ~18 sq ft:

2x EarthBox Original (29" x 14" x 11"):
  Best container ever made for vegetables.
  Self-watering reservoir. $70 each.
  Planted: one with cherry tomatoes, one with peppers.

2x 18" resin self-watering planters:
  Picked up at Costco, $35 each.
  Planted: one with bush beans, one with cucumber.

1x 24" diameter terracotta pot:
  Herbs: basil, parsley, thyme, oregano, chives.

1x Vego 17 gal fabric grow bag:
  Salad greens, cut-and-come-again.
  ~$28 on Amazon.

1x 12" hanging planter, balcony rail mount:
  Strawberries (Albion, everbearing).
  Second hanger with nasturtiums for aphid trap.

1x rail-mount trough (36" x 8"):
  Radishes, green onions, cilantro in rotation.

The crops that worked

Container gardening rewards certain vegetables and punishes others. After two summers, here is what I would repeat without hesitation:

Cherry tomatoes, single plant per EarthBox

One determinate or semi-determinate cherry tomato (Sungold, Sun Sugar, or Juliet) in an EarthBox will produce through September. Do not try full-sized slicers in a container this size, they sulk. Stake at planting with a 5-foot steel trellis.

Sweet peppers

Shishito, mini bell, or Lipstick peppers all love containers. The EarthBox-equivalent root volume is perfect for them. Two plants per box, or one pepper and one eggplant if you want variety.

Bush beans, not pole beans

Pole beans need a trellis system most balconies do not have. ‘Provider’ or ‘Contender’ bush beans, 12 plants in an 18-inch pot, give you a solid four-week harvest window. Succession plant a second pot three weeks behind the first.

One cucumber plant, compact variety

‘Bush Slicer’ or ‘Salad Bush’ stays under 3 feet tall. A single plant in an 18-inch self-watering container produces more cucumbers than two people can eat, roughly 20-30 cukes over the summer. Trellis vertically against the railing.

Cut-and-come-again lettuce

A fabric grow bag is perfect for mixed lettuce, chard, mustard greens, and kale. Plant densely, harvest outer leaves weekly, and the same plants produce for 8-10 weeks before they bolt. Start in April, replant in August for fall.

Herbs, permanent container

One 24-inch pot with 4-5 herbs earns its space more than anything else. Basil (replant annually), parsley (biennial, treated as annual), thyme, oregano, chives. The herbs you use two or three times a week become the reason you bother walking outside.

The crops I would skip

I tried and failed at enough things that my list of container vegetables to avoid is probably as useful as the list of successes:

  • Zucchini and summer squash. Needs a 20-gallon container minimum and gets squash vine borer anyway.
  • Corn. Wind-pollinated, you need at least 12-15 plants in a block. Not happening on a balcony.
  • Full-size tomatoes. Cherokee Purple in a 15-gallon container will set maybe three tomatoes total. Use a real bed.
  • Potatoes. The grow-bag systems produce, but the yield per square foot is low enough that I would rather use the space for something that actually pays back.
  • Broccoli and cauliflower. Long season, single harvest per plant, and they attract every cabbage moth in the neighborhood.

Watering: the make-or-break

The single biggest difference between a thriving and a dead container garden is watering consistency. Self-watering containers with reservoirs (EarthBox, the resin planters) are not a luxury. They are the reason the garden survived a 10-day stretch in July where I was traveling and my neighbor did not water perfectly.

For the non-self-watering containers (fabric bag, terracotta pot, rail trough), I set up a basic Rain Bird drip kit on a battery-timer (Melnor 3024) for $65 total. One tubing loop, emitters at each container, 15 minutes every morning at 7 AM. This upgrade in year two transformed the whole project. In year one I was watering by hand in the July heat and it was a second job.

Soil and fertilizer

Container soil needs to be different from raised-bed soil. Container plants have no soil ecosystem around them, so you feed more and you rely on the potting mix to drain well.

I use FoxFarm Ocean Forest potting soil, sometimes cut 50/50 with FoxFarm Happy Frog for a lighter mix in the self-watering containers. I add one cup of Dr. Earth Starter Fertilizer per container at planting, and I foliar-feed every two weeks with diluted fish emulsion (Neptune’s Harvest) at half strength starting when plants are six weeks old. Container plants visibly respond to foliar feeding in a way in-ground plants rarely do.

A rough month-by-month calendar

April: plant lettuce, spinach, peas, radishes, green onions. Start hardening off tomato and pepper seedlings on the balcony during the day.
Mid-May: transplant tomato, pepper, cucumber, and eggplant. Direct-sow bush beans. Start harvesting lettuce outer leaves.
June-August: harvest everything. Foliar-feed biweekly. Replant radishes and green onions every three weeks. Succession-plant bush beans.
September: tomatoes hit peak, peppers still producing. Replant lettuce, spinach, arugula for fall. Pull cucumber when it stops.
October-November: cool-weather greens, parsley, chives still going. Rip out spent tomato/pepper plants. Top-dress remaining containers with fresh compost.

The actual food it produced

Two summers of data, roughly, from that 18 square feet of containers:

  • Cherry tomatoes: 800-1,200 tomatoes per summer from one plant
  • Peppers: 25-40 per plant, depending on variety
  • Cucumbers: 25 from one plant, dependable
  • Bush beans: 3-4 pounds per pot, over 4 weeks
  • Lettuce: weekly salads for two people, April through July
  • Herbs: constant, all season

That is not self-sufficiency. It is probably $200-300 worth of produce per year, against maybe $350 in setup costs the first year and $80 a year after that for fresh soil and seedlings. The math breaks even slowly, but the flavor, the freshness, and the daily 30 minutes of hands-in-dirt time are the real return.

What I'd actually do

If you are starting a balcony or patio garden this spring in zone 7-9, buy one EarthBox, one 18-inch self-watering planter, one fabric grow bag, and one 24-inch pot for herbs. Put the EarthBox in your sunniest spot and plant one Sungold cherry tomato. Put bush beans in the self-watering planter. Put a mix of lettuces in the grow bag. Put the herbs in the pot by the door so you actually walk past them. Run a cheap drip kit on a timer. Come back to this article in August, and you will not need anything else for a long time.