You may have noticed some posts from our friends at the Strategist on the Cut. They’ll be dropping in every now and again, sharing their expertise on the basics you don’t have time to research and the weird and wonderful things you don’t yet know you need.
Swimsuit season is upon us, and to help you hit the beach (or lake, or pool) in style, we spoke to more than two dozen fashionable women — including stylists, fashion editors, and chefs — about their favorite bikini or two-piece bathing suits. Each person sent along personal recommendations based on fit, style, body type, and activity (could you surf in it? Is it more of a sunbathing suit?), all of which we used as a blueprint to find some similar options to round out your search.
For a range of styles made for women with bigger busts, Bustle fashion and beauty features editor Amanda Richards recommends Swimsuits for All’s bikinis (which run up to size 34). “They have anything from sporty swimwear, to boring one-pieces (which I love), to Ashley Graham’s super-sexy, super-revealing collection in a wide range of sizes.” Australian swim brand Matteu also makes a minimal two-piece for busty women that Tatiana Ikasovic, the founder of jewelry line Fade to Black Studio, says “has the perfect cut and style; I have a bigger bust, and don’t like wearing overwhelming patterns or unnecessary padding.”
If you have a small chest and just want to accentuate what you’ve got, fashion marketing associate Keena Bautistasays, “It’s always good to opt for ruffles and anything frilly.” She recommends Hawaiian label Made by Dawn for an added boost of confidence. For tinier busts, Chloe Kernaghan, co-founder of Sky Ting Yoga, also loves the two-pieces in the Onia x We Wore What collaboration, because their “perfect balconette-style” tops “look good even though I have a small chest.” Flannery Klette-Kolton, the co-founder of Big Little Get Together, also raved about the pieces from this collaboration.
Should you want more of a supported, push-up effect, stylist Lotta-Liina Lavanti also recommends a retro swimsuit with underwire, like hers from Lahana Swim, which “reminds me of the bikinis girls used to wear in California in the late ’90s.”
High-waisted styles, which have reemerged since their heyday in the ’40s and ’50s, were popular among the women we surveyed for their modest, slimming effect and “throwback feel.” Kristen Nichols, an associate editor at Who What Wear, directed us to French brand Oséree’s “lumière” bikini set for its fit and style. “The high-waisted bottoms have a waist-defining effect that I’m always missing, with a low-slung style, but my favorite part is its metallic glitter finish,” she says. Caitlin Mociun, founder and designer of Mociun, says that the fabric “adds a touch of interest and shimmer without looking cheesy.”
Aza Ziegler, the designer behind surf-inspired brand Calle del Mar, prefers Pale Swimwear’s high-waisted bottoms, which “make me feel like a ’50s movie star and fit like the comfiest shorts.” If you’re looking for something with personality and structure, we would also recommend one of Marysia’s Instagrammable retro suits — the scalloped edges are a nice touch.
If you prefer something punchier, but high-waisted, Hana Elion of the band Overcoats recommends New York–based designer Mara Hoffman, who’s known for her graphic prints and bold colors. And if you’re not a fan of this particular style, Hoffman also makes vibrant one-pieces and low-rise bikinis. Laia Garcia, deputy editor of the Wing’s print magazine, No Man’s Land, recommends La Double J’s suits for maximalists looking for an explosion of color. “I am really into the idea of just getting a top and a bottom in different prints and full-on embracing the madness.”
Celebrity favorite Solid & Striped also makes bold bikini separates for about half the price, and Araks does very elegant color-blocking, too (lots of stylish women love their lingerie for that same reason).
Or, if you’re only looking to spend around $100 on a set, Lili Goksenin, senior editor at Mr Porter, suggested J. Crew’s “reliably good and well-made” bikinis which she’s worn “for approximately 15 straight summers.” Another plus of going with J. Crew, according to Goksenin, is “that the mix-and-matching is endless.” Lauren Gerrie, the other co-founder of Big Little Get Together, also recommends the brand for its affordable, “classic cuts.”
For another popular and less-expensive bikini, J.J. Mitchell (the other half of Overcoats) suggests COS, because she says it’s hard to beat the brand’s quality and the price point. Two-piece suits from & Other Stories are also a good option if you want to nail that Mara Hoffman look on a budget. For something no-frills and affordable, Lively offers a good selection of muted separates. And Topshop also offers a range of styles and prints at lower price points, too.
Stylist Doria Santlofer recommends this Nu Swim two-piece for those looking to show less skin. “It’s definitely the perfect, uncomplicated choice,” she says. The top is not only versatile (you could easily wear it straight from the pool to dinner), but it also gives more protection from the sun. Gabriela Pelletier, buyer at Lisa Says Gah, agrees: “We love Nu Swim because the pieces are incredibly seasonless, and can not only be worn as a swimsuit but also as a bodysuit, top, or layering piece under a sheer organza or crochet dress.” Monk Oil co-founders Katie Ryan Roth and Monika Stanislawek also suggest the brand Babes in Bathers for its gender-inclusive styles that offer plenty of coverage and come in bright colors. “You can get a super-stylish suit that doesn’t look like lingerie, because that might not your thing, or because you’re not interested in constantly having to slather yourself in sunscreen all the time — which of course our oceans could do without.” For those looking for even more coverage, we suggest the two-pieces from Hunza G.
To prevent any wonky tan lines, you’ll want something with thin, supportive straps, like this style that sister duo Sarah and Joanna Halpin, the founders of style collective What She Said, recommend. They discovered Matteau via social media, and ever since, it’s been their go-to for “comfort, support, ease, and minimal tan lines.” Stylist Mellany Sanchez also recommends a Brazilian-cut bikini from the Rosemilk or Melissa Simone if you’re going for a fully bronzed look. Simple high-cut styles — like Calle del Mar’s ’90s-esque knitted bottoms and comfy bandeau tops, or an affordable bandeau like this with removable straps — will help prevent tan lines, too.
Plus-size bikinis can be tricky in terms of support, but Richards says you can always find great options at Eloquii and ASOS Curve. “Eloquii’s pieces are a bit more niche stylistically, but they are very high quality and well-made for plus-size bodies. ASOS Curve has really great swimwear for plus-size women up to a size 24 — the styles are usually pretty chic and not so fussy or overly sexy.”
Alix Tunell, senior beauty editor at Refinery29, loves Malia Mills’s swimsuits and notes that they size up for curvier women, too (sizing extends to a size F in tops, and a size 16 in bottoms). “The suits fit like great lingerie should — no digging, no readjusting required, even after a huge wave knocks you over — and come in material that feels far too nice to get wet,” she says. And stylist Sissy Saint-Marie loves ModCloth because “they come in a multitude of fun prints and styles.”
If you’re more interested in getting in the water than laying out, Flagpole (a New York–based brand with an athletic focus) offers bikinis designed to be both stylish and sturdy enough to surf in. For a less-expensive option, stylist Rebecca Dennett suggests this bikini from Tuulikki, a brand whose philosophy is that swimwear should stay put. “Whether you are surfing in it, jumping into a river, or just laying out on the beach like me — nothing is moving! You won’t be having that feeling of when you’re underwater knowing your top has popped off,” according to Dennett. She says the Tuulikki’s fit is super-flattering and comfortable for curvier girls, too. Hawa Hassan, the founder of cult hot-sauce brand Basbaas, also loves Mikoh suits because “the pieces are stylish and hardware free. There won’t be any slippage or fallout.”
Eres’s mom-approved designs are ideal for someone who wants a little more support and a torso-lengthening silhouette. And should mom want a comfortable bikini with some give, photographer Danielle Aceino recommends Aare Swim’s two-pieces. “As a woman and a mother, I was searching for a suit that would help me feel ‘myself’ again after nearly exclusively wearing maternity clothes, and theirs is edgy but flattering to my newly earned softer hips and stomach. I appreciate that I can look and feel stylish and fun while also being able to comfortably chase the little ones.” For the sustainable mom, Alicia Yates, owner of Thank You Have a Good Day, has her eye on Augustine Amsterdam. “The silhouettes are elegant, color palette is spot on, and this collection uses ecofriendly fabrics derived from recycled fishing nets.”
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"17":17,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(17),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(135),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let i=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||i.classList.remove("open")})}function gtmSendReport(e,n,t){let i={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(i.eventLabel=n.href),gtm.reportNow(i)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const i=t.split("?"),o=new URLSearchParams(i[1]);for(let e of n.entries())o.set(e[0],e[1]);t=`${i[0]}?${o.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),(auth.isSubscriber()||auth.isMobileAppRequest())&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"4":4,"17":17,"124":124,"135":135}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(408),Fingerprint2=require(407),DS=require(406),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(408),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"408":408,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]