You don’t need an advanced degree in mixology to put together an enviable living room bar. But you do need these spirits, bitters and tonics.
CourtesyEvery product is carefully selected by our editors. If you buy from a link, we may earn a commission. Learn more
Stocking a bar cart may seem intimidating, but it’s simpler than you think. With a mix of essential base spirits, aperitifs, liqueurs, bitters, non-alcoholic mixers and a few unexpected bottles to show off your personality, you’ll be ready to make hundreds of cocktails for even your most discerning guests.
1. Tequila
Siete Leguas Blanco
Blanco tequilas can sometimes be a bit lacking in flavor, but Siete Leguas’s take on the form blends a blanco’s traditional smoothness with an intense flavor of cooked agave.
2. Bourbon
Knob Creek Small Batch 9-Year Bourbon
Bottled at a robust 100 proof, Knob Creek’s 9-Year Bourbon boasts a hearty oak flavor after spending nearly a decade encased in the stuff.
3. Rum
Plantation Barbados 5 Years
A happy medium between light and dark, this tropical golden rum spends the first three or four years of its aging process in retired bourbon barrels.
4. Gin
Sipsmith London Dry Gin
Equally at home in a martini or negroni, Sipsmith’s traditional London Dry Gin is distilled in its namesake city from a smooth and complex blend of 10 different botanicals.
5. Single Malt Whisky
Suntory Whisky Toki
The acclaimed world of Japanese whisky can be intimidating and expensive, but this bottle from industry leader Suntory makes for an approachable and affordable introduction.
6. Mezcal
Pierde Almas La Puritita Verda
Like a good, quality tequila, this young mezcal is made with 100 percent pure agave. Use its subtle smoky flavor to punch up your margaritas, or sip it over ice.
7. Absinthe
St. George Absinthe Verte
St. George was first out of the gate with a new American absinthe after the spirit’s ban was lifted in 2007, and its authentic recipe remains the best way to chase the green fairy.
8. Triple Sec
Cointreau
There’s no more essential or versatile liqueur than orange liqueur, which figures in too many classic cocktails to count. And there’s no more essential orange liqueur than clear and complex Cointreau.
9. Aromatic Bitters
Angostura Bitters
The most ubiquitous bitters in existence, Angostura’s vaguely medicinal blend of herbs and spices is a must-have for any home bartender looking to make old-fashioneds or Manhattans.
10. Orange Bitters
Regan’s Orange Bitters
If you’re willing to venture outside of Angostura when it comes to bitters (and you should), your first stop should be Regan’s refined take on old-school citrus bitters.
11. Dry Vermouth
Routin Dry Vermouth
Sometimes vermouth can be an afterthought, but not this French-made concoction of sauvignon blanc and jacquère wines that’s been infused with 17 different plants and spices.
12. Sweet Vermouth
Antica Formula
Far less cloying than your average Italian vermouth, Antica Formula brings a bittersweet complexity to your cocktails. Keep this and your dry vermouth in the fridge once opened to maintain freshness.
13. Aperitivo
Forthave Spirits Red Aperitivo
Lovingly crafted in a natural botanical-focused Brooklyn distillery, this American aperitivo makes for a bright and refreshing alternative to the usual Amari standbys of Campari and Aperol.
14. Club Soda
Regatta Pacific Sea Salt Club Soda
Club soda adds length to a number of popular drinks, and Regatta’s innovative and premium version uses evaporated sea salt to achieve the perfect level of carbonation.
15. Tonic
Fever-Tree Premium Indian Tonic Water
Fever-Tree’s tonic utilizes authentic quinine from Central Africa and bitter orange oils from Mexico, for flavor that blows away your typical supermarket fare.
16. Ginger Beer
Maine Root Ginger Brew
Ginger ale’s sharper, stronger cousin, ginger beer brings bite to tipples like the Moscow mule. Maine Root’s rendition is exceptionally spicy and ginger-forward.
Related Topics
`;e.insertAdjacentHTML(i,s)}return document.getElementById(t)}_repeatDynamicAds(t){const i=[],n=this._removeRecipeCapExperiment.result&&t.location===d.Recipe?99:this.locationMaxLazySequence.get(t.location),s=t.lazy?A(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([[d.Recipe,5]]),this.locationToMinHeight={Below_Post:Ae,Content:Ae,Recipe:Ae,Sidebar:Ae};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 ae(e),this._clsOptions.enabledLocations=this._config.enabledLocations,this._clsTargetAdDensitySiteExperiment=this._clsOptions.siteAds.siteExperiments?new be(this._clsOptions):null,this._stickyContainerAdsExperiment=new Se,this._stickyContainerRecipeExperiment=new Ce,this._removeRecipeCapExperiment=new ue}}function Pe(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 Oe{get enabled(){return!0}}class Ee extends Oe{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]||(C.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)&&C.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]:(C.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=R(t),{valid:o,elements:r}=s,a=Pe(s,[“valid”,”elements”]),l=M(i),{valid:c,elements:d}=l,h=Pe(l,[“valid”,”elements”]);if(“”!==t&&!o)return C.error(“VideoUtils”,”getPlacementElement”,new Error(`${t} is not a valid selector`),a),null;if(!c)return C.error(“VideoUtils”,”getPlacementElement”,new Error(`${i} is not a valid selector`),h),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 C.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 C.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 C.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(){C.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 ke extends De{}try{(()=>{const e=new G;e&&e.enabled&&(new we(e,new ke).start(),new xe(new F(e),e).init())})()}catch(e){C.error(“CLS”,”pluginsertion-iife”,e),window.adthriveCLS&&(window.adthriveCLS.injectedFromPlugin=!1)}}();
