Over an Open Fire

Camping food that’s good enough to eat

Part of the fun of camping is cooking over a fire, and it’s especially fun if the food comes out especially good. We’ve developed some low-impact, high-return recipes to get you

motivated to plan your next camping trip. (Fully tested in the field, too.)

Because of the ingredients involved, these recipes are for car camping (which, though we appreciate the get-away-from-it-all-ness of backpacking, does generally lead to better-tasting food). We endorse the easy route! So break out the trashy magazines and sit yourself down with a fat bag of trail mix. Crack open a beer and listen to the birds.

A note on our menu: We developed it chronologically, assuming a 24-hour trip starting with dinner. Each meal uses leftovers from previous recipes—recipes so delicious you’ll leave no trace behind.

P.S. If backpacking is your thing, we’ve tested out some dehydrated chili.

CHOW Product Gallery

This soap comes in a tiny, leakproof bottle—and it’s biodegradable!
Campsuds Suds N Scrubber, $9.95

Choose-a-size trash bags in a tiny, portable package.
Simplehuman Bag Capsule, $5.99

This mesh pop-up tent keeps pesky critters off your dinner.
Coghlan’s Fold-Away Food Cover, $2.95

Compact yet mighty, one of these minitowels can fit in your wallet and doubles as a dishrag.
Liberty Mountain Lightload Towels, $2 for two

Flexible wire framing snugly hugs foods, eliminating campfire casualties.
Flexible Grill Basket, $14.95

Designed to sit in your campfire’s coals, this footed cast iron pot withstands the hottest cooking temperatures.
Logic Camp Dutch Oven, $89.95 for 6-quart capacity

A tiny, stylish mess kit from Scandinavia.
Outdoor Meal Kit, $19.99

These pieces pack flat, then fold out into convenient serving- and eating-ware.
Orikaso Dinner Set, $10.95

var arrows = $j('#slideshow-camp .arrow'); var slides = $j('#slideshow-camp .slide'); var current_slide = 0;

hideArrow('prev'); $j('#slideshow-camp').find('.slide').eq(current_slide).addClass('active'); //slides.eq(current_slide).addClass('active'); var image_height = $j('.slide.active img').height(); $j('#ss_nav').css('top', image_height + 25 + 'px'); // Position the nav 25 px below the slide image $j('#ss_nav_text').html([current_slide + 1] + ' of ' + [slides.length]);

//$j('#slideshow-camp').find('.arrow').each(function(a) { $j.each($j('.arrow'), function(a) { $j(this).click(function() { if ($j(this).hasClass('prev')) { // arrow = prev current_slide--; } else { // arrow = next current_slide++; }

$j(slides).removeClass('active'); // hide all slides $j('#slideshow-camp').find('.slide').eq(current_slide).addClass('active'); // show current slide $j('#ss_nav_text').html([current_slide + 1] + ' of ' + [slides.length]); // update nav text

// show or hide prev/next buttons if we're at the beginning or end of the list (current_slide == 0) ? hideArrow('prev') : showArrow('prev'); (current_slide == slides.length - 1) ? hideArrow('next') : showArrow('next');



function hideArrow(dir) { if (dir == 'next') { $j('#slideshow-camp').find('.arrow.next').eq(0).css('display', 'none'); $j('#ss_nav').css('paddingRight', 31 +'px'); // set padding to the width of right arrow so it doesn't jump left/right when there's only one arrow } else { $j('#slideshow-camp').find('.arrow.prev').eq(0).css('display', 'none'); } }

function showArrow(dir) { if (dir == 'next') { $j('#slideshow-camp').find('.arrow.next').eq(0).css('display', 'block'); $j('#ss_nav').css('padding-right', 0); } else { $j('#slideshow-camp').find('.arrow.prev').eq(0).css('display', 'block'); } }

See more articles