The best travel gear our team has tested over the past 20 years, with an emphasis on durability and versatility.
Gear PatrolEvery product is carefully selected by our editors. If you buy from a link, we may earn a commission. Learn more
On the road, or dirt path, you need gear you can count on. Because one choice product can be the difference between a safe, enjoyable journey and regrettable misadventure — or worse, a trip cut short.
Here, we’ve rounded up some of the best travel items our team has tested over the past two decades, with an emphasis on versatility and durability. After all, you never know what might be around the bend.
Why You Should Trust Us: Covering products is our core mission, not a side hustle. And we use real-world testing to inform our recommendations. Learn more about our methodology.
Best Travel Pack
Patagonia Black Hole Micro MLC Backpack 22
The perfect travel backpack: tons of functional features, tiny footprint. Designed specifically to meet more stringent carry-on standards but rugged enough for a backcountry day hike.
Best Adventure Duffel
Filson Scout All-Weather 50L Duffle Bag
Filson’s take on a rugged adventure duffel is more stylish than a Black Hole but just as functional and versatile. Yet, it still boasts a comparable price.
Best Crossbody Bag
Peak Design Outdoor Sling
A minimalist, hands-free sling with a weatherproof coating built for just the essentials. Available in three sizes.
Best Packing Cube
Peak Design Ultralight Packing Cube
Doubles as a crossbody bag after you arrive at your destination. Packs down incredibly small when empty.
Best Dopp Kit
The North Face Base Camp Travel Canister
A durable, 3.5-liter take on the traditional dopp kit, modeled after TNF’s iconic Base Camp Duffel.
Best Camp Coffee
No Normal
Attention ounce counters and coffee aficionados: one tube of this dark roast coffee paste contains 20 cups of coffee. So go ahead and leave the French press at home.
Best All-Around Mountain Jacket
Arc’teryx Beta AR Jacket (Revised)
This classic maintains its workhorse mentality and streamlined aesthetic while upping its sustainability and durability.
Best Lightweight Insulated Jacket
Patagonia Nano-Air Ultralight Full-Zip Hoody
Perfect for days that call for a heap of breathability and a touch of coziness.
Best Hiking Socks
Darn Tough Hiker Micro Crew Cushion Socks
More-than-average amounts of wool in these mid-cushioned outdoor socks means above-average comfort, mositure wicking and temperature regulation.
Best Walking Shoes
Hoka Transport
A high-traction Vibram outsole, an abrasion-resistant Cordura upper and stability, security and comfort right where you need them: the Transport has it all, and then some.
Best Travel Shoe
Arc’teryx Kragg
Technically these are approach shoes, but the single layer upper made of breathable, stretchy Spacermesh and collapsible heel scream “comfort on the road”.
Best Bluetooth Tracker
Apple AirTag
Who brings an AirTag into the woods? Smart, savvy campers, that’s who. Keep track of valuables like coolers, bikes and other expensive gear by attaching one of these trackers with a compatible mount.
Best Carabiner
Matador BetaLock
This nifty, aircraft-grade aluminum carabiner can be locked to deter theft. Just don’t lose the keys.
Best Water Bottle
RTIC Outback Bottle
The ceramic lining on this leak-proof insulated water bottle maintains fresh taste and smell, so every sip goes down easy.
Best Water Filter
HydraPak Seeker+ 3L
This almost-weightless backcountry water storage can now be used as a go-to water filtration solution. Collect water, then roll and squeeze to filter. Pack it down to pocket size when your thirst is quenched.
Related Topics
`;e.insertAdjacentHTML(i,s)}return document.getElementById(t)}_repeatDynamicAds(t){const i=[],n=t.location===u.Recipe?99:this.locationMaxLazySequence.get(t.location),s=t.lazy?P(n,0):0,o=t.max,r=t.lazyMax,a=0===s&&t.lazy?o+r:Math.min(Math.max(s-t.sequence+1,0),o+r),l=Math.max(o,a);for(let n=0;n=o;i.push(e({},t,{sequence:s,lazy:r}))}}return i}_locationEnabled(e){const t=this._clsOptions.enabledLocations.includes(e.location),i=this._clsOptions.disableAds&&this._clsOptions.disableAds.all||document.body.classList.contains(“adthrive-disable-all”),n=!document.body.classList.contains(“adthrive-disable-content”)&&!this._clsOptions.disableAds.reasons.has(“content_plugin”);return t&&!i&&n}constructor(e,t){this._clsOptions=e,this._adInjectionMap=t,this._recipeCount=0,this._mainContentHeight=0,this._mainContentDiv=null,this._totalAvailableElements=[],this._minDivHeight=250,this._densityDevice=h.Desktop,this._pubLog={onePerViewport:!1,targetDensity:0,targetDensityUnits:0,combinedMax:0},this._densityMax=.99,this._smallerIncrementAttempts=0,this._absoluteMinimumSpacingByDevice=250,this._usedAbsoluteMinimum=!1,this._infPageEndOffset=0,this.locationMaxLazySequence=new Map([[u.Recipe,5]]),this.locationToMinHeight={Below_Post:Ee,Content:Ee,Recipe:Ee,Sidebar:Ee};const{tablet:i,desktop:n}=this._clsOptions.siteAds.breakpoints;this._device=((e,t)=>{const i=window.innerWidth;return i>=t?”desktop”:i>=e?”tablet”:”phone”})(i,n),this._config=new pe(e),this._clsOptions.enabledLocations=this._config.enabledLocations,this._clsTargetAdDensitySiteExperiment=this._clsOptions.siteAds.siteExperiments?new we(this._clsOptions):null,this._stickyContainerAdsExperiment=new xe,this._stickyContainerRecipeExperiment=new Ae}}function ke(e,t){if(null==e)return{};var i,n,s={},o=Object.keys(e);for(n=0;n=0||(s[i]=e[i]);return s}class De{get enabled(){return!0}}class Re extends De{setPotentialPlayersMap(){const e=this._videoConfig.players||[],t=this._filterPlayerMap(),i=e.filter((e=>”stationaryRelated”===e.type&&e.enabled));return t.stationaryRelated=i,this._potentialPlayerMap=t,this._potentialPlayerMap}_filterPlayerMap(){const e=this._videoConfig.players,t={stickyRelated:[],stickyPlaylist:[],stationaryRelated:[]};return e&&e.length?e.filter((e=>{var t;return null==(t=e.devices)?void 0:t.includes(this._device)})).reduce(((e,t)=>(e[t.type]||(E.event(this._component,”constructor”,”Unknown Video Player Type detected”,t.type),e[t.type]=[]),t.enabled&&e[t.type].push(t),e)),t):t}_checkPlayerSelectorOnPage(e){const t=this._potentialPlayerMap[e].map((e=>({player:e,playerElement:this._getPlacementElement(e)})));return t.length?t[0]:{player:null,playerElement:null}}_getOverrideElement(e,t,i){if(e&&t){const n=document.createElement(“div”);t.insertAdjacentElement(e.position,n),i=n}else{const{player:e,playerElement:t}=this._checkPlayerSelectorOnPage(“stickyPlaylist”);if(e&&t){const n=document.createElement(“div”);t.insertAdjacentElement(e.position,n),i=n}}return i}_shouldOverrideElement(e){const t=e.getAttribute(“override-embed”);return”true”===t||”false”===t?”true”===t:!!this._videoConfig.relatedSettings&&this._videoConfig.relatedSettings.overrideEmbedLocation}_checkPageSelector(e,t,i=[]){if(e&&t&&0===i.length){return!(“/”===window.location.pathname)&&E.event(“VideoUtils”,”getPlacementElement”,new Error(`PSNF: ${e} does not exist on the page`)),!1}return!0}_getElementSelector(e,t,i){return t&&t.length>i?t[i]:(E.event(“VideoUtils”,”getPlacementElement”,new Error(`ESNF: ${e} does not exist on the page`)),null)}_getPlacementElement(e){const{pageSelector:t,elementSelector:i,skip:n}=e,s=H(t),{valid:o,elements:r}=s,a=ke(s,[“valid”,”elements”]),l=j(i),{valid:c,elements:d}=l,u=ke(l,[“valid”,”elements”]);if(“”!==t&&!o)return E.error(“VideoUtils”,”getPlacementElement”,new Error(`${t} is not a valid selector`),a),null;if(!c)return E.error(“VideoUtils”,”getPlacementElement”,new Error(`${i} is not a valid selector`),u),null;if(!this._checkPageSelector(t,o,r))return null;return this._getElementSelector(i,d,n)||null}_getEmbeddedPlayerType(e){let t=e.getAttribute(“data-player-type”);return t&&”default”!==t||(t=this._videoConfig.relatedSettings?this._videoConfig.relatedSettings.defaultPlayerType:”static”),this._stickyRelatedOnPage&&(t=”static”),t}_getMediaId(e){const t=e.getAttribute(“data-video-id”);return!!t&&(this._relatedMediaIds.push(t),t)}_createRelatedPlayer(e,t,i,n){“collapse”===t?this._createCollapsePlayer(e,i):”static”===t&&this._createStaticPlayer(e,i,n)}_createCollapsePlayer(t,i){const{player:n,playerElement:s}=this._checkPlayerSelectorOnPage(“stickyRelated”),o=n||this._potentialPlayerMap.stationaryRelated[0];if(o&&o.playerId){this._shouldOverrideElement(i)&&(i=this._getOverrideElement(n,s,i)),i=document.querySelector(`#cls-video-container-${t} > div`)||i,this._createStickyRelatedPlayer(e({},o,{mediaId:t}),i)}else E.error(this._component,”_createCollapsePlayer”,”No video player found”)}_createStaticPlayer(t,i,n){if(this._potentialPlayerMap.stationaryRelated.length&&this._potentialPlayerMap.stationaryRelated[0].playerId){const s=this._potentialPlayerMap.stationaryRelated[0];this._createStationaryRelatedPlayer(e({},s,{mediaOrPlaylistId:t}),i,n)}else E.error(this._component,”_createStaticPlayer”,”No video player found”)}_shouldRunAutoplayPlayers(){return!(!this._isVideoAllowedOnPage()||!this._potentialPlayerMap.stickyRelated.length&&!this._potentialPlayerMap.stickyPlaylist.length)}_determineAutoplayPlayers(){const e=this._component,t=”VideoManagerComponent”===e,i=this._context;if(this._stickyRelatedOnPage)return void E.event(e,”stickyRelatedOnPage”,t&&{device:i&&i.device,isDesktop:this._device}||{});const{player:n,playerElement:s}=this._checkPlayerSelectorOnPage(“stickyPlaylist”);n&&n.playerId&&n.playlistId&&s?this._createPlaylistPlayer(n,s):Math.random(){E.event(e,”noStickyPlaylist”,t&&{vendor:”none”,device:i&&i.device,isDesktop:this._device}||{})}),1e3)}_initializeRelatedPlayers(e){const t=new Map;for(let i=0;ie-t))}filterUsed(){this._map=this._map.filter((({dynamicAd:e})=>!e.used))}reset(){this._map=[]}constructor(){this._map=[]}}class Le extends Me{}const Te=e=>{const t=A(),i=(()=>{const e=I()?”mobile”:”tablet”;return R(O)?”desktop”:e})(),n=e.siteAdsProfiles;let s=null;if(n&&n.length)for(const e of n){const n=e.targeting.device,o=e.targeting.browserEngine,r=n&&n.length&&n.includes(i),a=o&&o.length&&o.includes(t);r&&a&&(s=e)}return s};try{(()=>{const e=new K;e&&e.enabled&&(e.siteAds&&(e=>{const t=Te(e);if(t){const e=t.profileId;document.body.classList.add(`raptive-profile-${e}`)}})(e.siteAds),new Pe(e,new Le).start(),new Ie(new X(e),e).init())})()}catch(e){E.error(“CLS”,”pluginsertion-iife”,e),window.adthriveCLS&&(window.adthriveCLS.injectedFromPlugin=!1)}}();
