[]
Lights, camera, romance! Sarah Shahi and boyfriend Adam Demos fell in love after meeting on the set of Netflix’s Sex/Life — and their real-life relationship is equally as steamy.
The duo filmed the series together in the fall of 2020 in Canada, playing sexy former lovers who get caught in a love triangle. In the show, Shahi’s character, Billie, is married to Cooper (Mike Vogel) but yearns for her wilder days when she hooked up with Demos’ Brad.
Offscreen, the L Word alum was going through a divorce when the risqué role came into her life — and not necessarily thinking about finding love again.
Us Weekly exclusively confirmed in June 2020 that Shahi and Steve Howey had separated two months prior after 11 years of marriage. The former spouses, who share three children, son William and twins Violet and Knox, finalized their divorce in January 2021.
Shahi wrapped Sex/Life one month prior to her divorce being finalized. At the time, she reflected on how much her life had changed over the past few months.
“And it’s a wrap on Billie Mann. @sexlife. My alter ego,” she captioned a series of photos of her on-camera persona in December 2020. “The layered, wildly complex, hurricane of a character I had the honor of portraying. The saint and the sinner wrapped up in a messy pink bow.”
The Texas native then got a little more personal, adding, “This show was more than just another gig. It changed the direction of my life. It unleashed parts of my heart I had hidden for so long. It helped me find my truth. I was broken open. Finally.”
{ let bidders = [‘a9’, ‘ix’, ‘iris’]; // create a requestManager to keep track of bidder state to determine when to send ad server // request and what amazonSlots to request from the ad server var requestManager = { adserverRequestSent: false, }; //loop through bidder array and add the bidders to the request manager: bidders.forEach( function( bidder ) { requestManager[bidder] = false; } ); // return true if all bidders have returned function allBiddersBack() { var allBiddersBack = bidders // get the booleans from the object .map( function( bidder ) { return requestManager[bidder]; } ) // get rid of false values – indicates that the bidder has responded .filter( Boolean ) // if length is equal to bidders, all bidders are back .length === bidders.length; return allBiddersBack; } // handler for header bidder responses function headerBidderBack( bidder ) { // return early if request to adserver is already sent if ( requestManager.adserverRequestSent === true ) { return; } // flip bidder back flag if ( bidder === ‘a9’ ) { requestManager.a9 = true; console.log(‘second promise a9 ready’); } else if ( bidder === ‘ix’ ) { requestManager.ix = true; console.log(‘second promise ix ready’); } else if ( bidder === ‘iris’ ) { requestManager.iris = true; console.log(‘second promise iris ready’); } // if all bidders are back, send the request to the ad server if ( allBiddersBack() ) { resolve( url ); } } if ( typeof apstag == ‘object’ && apstag ) { apstag.fetchBids({ slots: [{ slotID: window.prerollTag[vHash], mediaType: ‘video’ }] }, function( bids ) { console.log( “AMI jwp amazon bid callback”, new Date().getTime(), bids ); window.jwpBids[vHash].amazon = true; if ( bids.length > 0 ) { //If we have received any bids back try { console.log(“AMI jwp amazon bid request ad”, bids[0].encodedQsParams); url = url + ‘&scp=’ + bids[0].encodedQsParams; } catch ( e ) { console.log(e); } } else { console.log(“AMI jwp amazon no bids”); } headerBidderBack(‘a9’); }); } else { headerBidderBack(‘a9’); } headertag.cmd.push( function() { headertag.retrieveVideoDemand( [{‘htSlotName’: ‘preroll’}], function( demand ) { console.log( “AMI jwp IX callback”, demand ); if ( ‘undefined’ !== typeof demand.preroll && demand.preroll.length ){ window.jwpBids[vHash].ixBids = demand.preroll[0].targeting.price; console.log( ‘AMI jwp IX Bids’, new Date().getTime(), demand.preroll[0].targeting ); var vastURL = new URL( url ); var vastParams = new URLSearchParams( vastURL.search ); if ( vastParams.has( ‘cust_params’ ) ) { var custParams = new URLSearchParams( vastParams.get( ‘cust_params’ ) ); } else { var custParams = new URLSearchParams(); } var keys = Object.keys( demand.preroll[0].targeting.price ); for ( var key of keys ) { custParams.set( key, demand.preroll[0].targeting.price[key][0]); } vastParams.set( ‘cust_params’, custParams.toString() ); vastURL.search = vastParams.toString(); url = vastURL.toString(); } headerBidderBack(‘ix’); } ); } ); // Get main item context data window.irisContext.getContext(jwplayer(el).getPlaylistItem().mediaid).then(function(data) { // Encode the context data console.log( ‘AMI jwp IrisTV Bids’, new Date().getTime(), data.context ); // Replace the server url with the context data (this is for simple ad requests), // If you have the serverUrl dynamically configured, then you will need to append the context data // under cust_params, so this is just for testing purpose if ( data.context && Object.keys( data.context ).length ) { var vastURL = new URL( url ); var vastParams = new URLSearchParams( vastURL.search ); if ( vastParams.has( ‘cust_params’ ) ) { var custParams = new URLSearchParams( vastParams.get( ‘cust_params’ ) ); } else { var custParams = new URLSearchParams(); } custParams.set( ‘iris_context’, data.context.join(‘,’)); vastParams.set( ‘cust_params’, decodeURIComponent( custParams.toString() ) ); vastURL.search = vastParams.toString(); url = vastURL.toString(); } headerBidderBack(‘iris’); }); setTimeout(function(){ resolve( url ); }, 10000); }); } var player_jwplayer_EhbdDly2_l3ahXupL_div = jwplayer(el).setup(videoParams).on(“ready”, function(){ var el = decodeURIComponent( “jwplayer_EhbdDly2_l3ahXupL_div” ); var playerInstance = jwplayer(el); ns_.StreamingAnalytics.JWPlayer( playerInstance, { publisherId: “6036076”, labelmapping: “ns_st_pu=”AMI”, c3=”Us Weekly”, ns_st_ge=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_ia=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_ce=”” + decodeURIComponent( “1” ) + “”, ns_st_ddt=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_tdt=”” + decodeURIComponent( “%2Anull” ) + “””, }); }).on(‘adsManager’, (e) => { var vHash = ‘ami’ + decodeURIComponent( ‘EhbdDly2’ ); const { adsManager, videoElement } = e; const iasConfig = { anId: ‘928572’, campId: `${jwplayer().getWidth()}x${jwplayer().getHeight()}`, // This is dynamic based on player dimensions, but can be hard coded chanId: window.prerollTag[vHash], placementId: ‘Open Auction’, pubOrder: ‘Video’, pubId: ‘Direct’ }; if (googleImaVansAdapter) { googleImaVansAdapter.init(window.google, adsManager, videoElement, iasConfig); } }).on( ‘time’, function( e ) { var id = this.id; var pct = Math.round( e.position ); if ( ! window.amiPlayersData ) { window.amiPlayersData = {}; } if ( ! window.amiPlayersData[id] ) { window.amiPlayersData[id] = { m3: false, m10: false }; } if ( window.amiPlayersData[id][‘m3’] === false && pct >= 3 ) { window.amiPlayersData[id][‘m3’] = true; console.log( ‘3sec played: ‘, id ); window.dataLayer = window.dataLayer || []; dataLayer.push( {event: ‘JWPlayEvent’, jwTime: ‘3s played’} ); } if ( window.amiPlayersData[id][‘m10’] === false && pct >= 10 ) { window.amiPlayersData[id][‘m10’] = true; console.log( ’10sec played: ‘, id ); window.dataLayer = window.dataLayer || []; dataLayer.push( {event: ‘JWPlayEvent’, jwTime: ’10s played’} ); } }).on( ‘complete’, function( e ) { if ( window.amiPlayersData && window.amiPlayersData[ this.id ] ) { window.amiPlayersData[ this.id ][‘m3’] = false; window.amiPlayersData[ this.id ][‘m10’] = false; console.log( ‘clear played: ‘, this.id ); } }).once(“play”, function(){ var el = decodeURIComponent( “jwplayer_EhbdDly2_l3ahXupL_div” ); var playerInstance = jwplayer(el); loadIrisPlugin(playerInstance, playerInstance.getConfig().plugins[“https://ovp.iris.tv/plugins/jwplayer/v2/iris-jwplayer8.adaptive.min.js”]) }).on(‘play’, (e) => { var el = decodeURIComponent( “jwplayer_EhbdDly2_l3ahXupL_div” ); var vHash = “ami” + decodeURIComponent( “EhbdDly2” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); // skip if the video was paused and trying to resume if (jwplayer(el).getState() !== ‘idle’ && jwplayer(el).getState() !== ‘complete’) { return; } window.permutive.track(“VideoPlay”, { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “EhbdDly2” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language:”English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video play”); }).on(‘complete’, (e) => { var el = decodeURIComponent( “jwplayer_EhbdDly2_l3ahXupL_div” ); var vHash = “ami” + decodeURIComponent( “EhbdDly2” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); // skip if the video was paused and trying to resume if (jwplayer(el).getState() !== ‘idle’ && jwplayer(el).getState() !== ‘complete’) { return; } window.permutive.track(“VideoComplete”, { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “EhbdDly2” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video event:”, e); window.lock_25 = false; window.lock_50 = false; window.lock_75 = false; window.lock_100 = false; }).on(‘time’, (e) => { var el = decodeURIComponent( “jwplayer_EhbdDly2_l3ahXupL_div” ); var vHash = “ami” + decodeURIComponent( “EhbdDly2” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); var progress = (e.currentTime/e.duration).toFixed(2); if ( (0.25 === progress && false === window.lock_25) || (0.5 === progress && false === window.lock_50) || (0.75 === progress && false === window.lock_75) || (100 === progress && false === window.lock_100) ) { window.permutive.track(“VideoProgress”, { play_id: el, //this will stay constant for all of the events emitted during the same video play progress: Number(progress), video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “EhbdDly2” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); if ( 0.25 === progress ) { window.lock_25 = true; } if ( 0.5 === progress ) { window.lock_50 = true; } if ( 0.75 === progress ) { window.lock_75 = true; } if ( 1 === progress ) { window.lock_100 = true; } console.log(“Permutive video play progress ” + progress); } }).on(‘mute’, (e) => { var el = decodeURIComponent( “jwplayer_EhbdDly2_l3ahXupL_div” ); var vHash = “ami” + decodeURIComponent( “EhbdDly2” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.permutive.track(“VideoEvent”, { play_id: el, //this will stay constant for all of the events emitted during the same video play event: (e.mute) ? “sound off” : “sound on”, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “EhbdDly2” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() } }); console.log(“Permutive video event:”, e); }).on(‘fullscreen’, (e) => { var el = decodeURIComponent( “jwplayer_EhbdDly2_l3ahXupL_div” ); var vHash = “ami” + decodeURIComponent( “EhbdDly2” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.permutive.track(“VideoEvent”, { play_id: el, //this will stay constant for all of the events emitted during the same video play event: (e.fullscreen) ? “fullscreen on” : “fullscreen off”, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “EhbdDly2” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() } }); console.log(“Permutive video event:”, e); }).on(‘ready’, (e) => { var el = decodeURIComponent( “jwplayer_EhbdDly2_l3ahXupL_div” ); var vHash = “ami” + decodeURIComponent( “EhbdDly2” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); console.log(jwInfo); window.lock_25 = false; window.lock_50 = false; window.lock_75 = false; window.lock_100 = false; window.permutive.track(“VideoLoad”, { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “EhbdDly2” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video load event”); }).on(‘adPlay’, (e) => { var el = decodeURIComponent( “jwplayer_EhbdDly2_l3ahXupL_div” ); var vHash = “ami” + decodeURIComponent( “EhbdDly2” ); window.adInfo = e; var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.adlock_25 = false; window.adlock_50 = false; window.adlock_75 = false; window.adlock_100 = false; window.permutive.track(“VideoAdPlay”, { play_id: el, //this will stay constant for all of the events emitted during the same video play ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: “instream” //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “EhbdDly2” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video ad play”); }).on(‘adClick’, (e) => { var el = decodeURIComponent( “jwplayer_EhbdDly2_l3ahXupL_div” ); var vHash = “ami” + decodeURIComponent( “EhbdDly2” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.permutive.track(“VideoAdClick”, { play_id: el, //this will stay constant for all of the events emitted during the same video play ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: “instream” //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “EhbdDly2” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video ad click”); }).on(‘adTime’, (e) => { var el = decodeURIComponent( “jwplayer_EhbdDly2_l3ahXupL_div” ); var vHash = “ami” + decodeURIComponent( “EhbdDly2” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); var progress = (e.position/e.duration).toFixed(2); if ( (0.25 >= progress && false === window.adlock_25) || (0.5 >= progress && false === window.adlock_50) || (0.75 >= progress && false === window.adlock_75) || (0.95 >= progress && false === window.adlock_100) ) { window.permutive.track(“VideoAdProgress”, { play_id: el, //this will stay constant for all of the events emitted during the same video play progress: Number(progress), ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: “instream” //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “EhbdDly2” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); if ( 0.25 >= progress ) { window.adlock_25 = true; } if ( 0.5 >= progress ) { window.adlock_50 = true; } if ( 0.75 >= progress ) { window.adlock_75 = true; } if ( 0.95 >= progress ) { window.adlock_100 = true; } console.log(“Permutive video ad progress ” + progress); } }).setPlaylistItemCallback(function(item, index) { return waitForAmazon // Wait until Amazon is loaded. .then(() => performAsyncBidding( player_jwplayer_EhbdDly2_l3ahXupL_div, item, index ), () => { console.log(“AMI JWP bidding FAILER”); }) // External bidding. .then(tag => { // Update the playlist item. console.log(“AMI jwp new headerbid”, tag); return Object.assign({}, item, { adschedule: [{ tag, offset: “pre” }] }); }).catch(function(e){ console.log(“AMI jwp bidding failed”, e); return item; }); // If bidding fails, use unmodified playlist item. });; clearInterval(checkJWReady); } }, 500); })(); ]]>
When celebrating her birthday in January 2021, the Person of Interest alum again reflected on her good fortune, noting that her relationship with Demos is one of the many “privileges” she’s been afforded as she’s grown older.
“It’s a privilege to wake up every day with excitement as to what the day COULD bring, to look at Christmas lights and Halloween decorations with more astonishment than my kids,” she wrote via Instagram at the time. “To get giddy at the smell of pages of a freshly opened book. To have found my love @adam_demos, to laugh until the sun comes up (sleep is boring), to dance when there’s no music.”
Four months later, Shahi gushed over her man when celebrating his birthday, admiring how two very different people could be a perfect match.
“Not exactly sure how two people on opposite sides of the world could have more in common, were meant to meet, were meant to be together,” she wrote via Instagram in May 2021. “But I do know I met my soulmate.”
The UnREAL alum replied: “My forever and more.. I love you so f–king much my baby ️️️️.”
Shahi later commented on Demos’ own birthday post, writing, “My baby … you’re worth everything and more. Gonna celebrate you forever.”
Scroll down to relive Shahi and Demos’ most romantic moments as a couple:
Credit: Courtesy of Sarah Shahi/Instagram
Life Imitates Art! ‘Sex/Life’ Stars Sarah Shahi and Adam Demos Make the Cutest Couple IRL: Photos
Lights, camera, romance! Sarah Shahi and boyfriend Adam Demos fell in love after meeting on the set of Netflix’s Sex/Life — and their real-life relationship is equally as steamy. The duo filmed the series together in the fall of 2020 in Canada, playing sexy former lovers who get caught in a love triangle. In the show, Shahi’s character, Billie, is married to Cooper (Mike Vogel) but yearns for her wilder days when she hooked up with Demos’ Brad. Offscreen, the L Word alum was going through a divorce when the risqué role came into her life — and not necessarily thinking about finding love again. Us Weekly exclusively confirmed in June 2020 that Shahi and Steve Howey had separated two months prior after 11 years of marriage. The former spouses, who share three children, son William and twins Violet and Knox, finalized their divorce in January 2021. Shahi wrapped Sex/Life one month prior to her divorce being finalized. At the time, she reflected on how much her life had changed over the past few months. “And it’s a wrap on Billie Mann. @sexlife. My alter ego,” she captioned a series of photos of her on-camera persona in December 2020. “The layered, wildly complex, hurricane of a character I had the honor of portraying. The saint and the sinner wrapped up in a messy pink bow.” The Texas native then got a little more personal, adding, “This show was more than just another gig. It changed the direction of my life. It unleashed parts of my heart I had hidden for so long. It helped me find my truth. I was broken open. Finally.” [jwplayer EhbdDly2-l3ahXupL] When celebrating her birthday in January 2021, the Person of Interest alum again reflected on her good fortune, noting that her relationship with Demos is one of the many “privileges” she’s been afforded as she’s grown older. “It’s a privilege to wake up every day with excitement as to what the day COULD bring, to look at Christmas lights and Halloween decorations with more astonishment than my kids,” she wrote via Instagram at the time. “To get giddy at the smell of pages of a freshly opened book. To have found my love @adam_demos, to laugh until the sun comes up (sleep is boring), to dance when there’s no music.” Four months later, Shahi gushed over her man when celebrating his birthday, admiring how two very different people could be a perfect match. “Not exactly sure how two people on opposite sides of the world could have more in common, were meant to meet, were meant to be together,” she wrote via Instagram in May 2021. “But I do know I met my soulmate.” The UnREAL alum replied: “My forever and more.. I love you so f–king much my baby ️️️️.” Shahi later commented on Demos’ own birthday post, writing, “My baby … you’re worth everything and more. Gonna celebrate you forever.” Scroll down to relive Shahi and Demos’ most romantic moments as a couple: [podcast_block]
Credit: Courtesy of Sarah Shahi/Instagram
Where It All Began
The pair giggled on the set of Netflix’s Sex/Life in September 2020 while filming in Canada.
Credit: Courtesy of Sarah Shahi/Instagram
That’s a Wrap
The actors both praised their Sex/Life costars and coworkers after the project wrapped in December 2020. “That’s a wrap on the greatest job and experience of my life!!” Demos captioned a solo shot on set.
Shahi, for her part, shared behind-the-scenes moments from the show, captioning them, “This show was more than just another gig. It changed the direction of my life. It unleashed parts of my heart I had hidden for so long. It helped me find my truth.”
Credit: Courtesy of Adam Demos/Instagram
New Year, Same Couple
The lovebirds got cozy on New Year’s Eve in December 2020, sharing their first official photo as a couple on social media.
Credit: Courtesy of Adam Demos/Instagram
Apple of My Eye
Demos paid tribute to his girlfriend in January 2021 on her 41st birthday, sharing photos of the pair apple picking. “Happy bday my baby, I f*#kin love you. You’re everything,” he gushed.
Credit: Courtesy of Adam Demos/Instagram
Hollywood Love
The Falling Inn Love actor shared a throwback set photo in February 2021 of the duo cuddling up in honor of their first Valentine’s Day together.
Credit: Courtesy of Sarah Shahi/Instagram
Main Squeeze
“My forever squeeze … happy Valentine’s baby @adam_demos #happyvalentinesday ️,” the Bad Therapy actress wrote via Instagram in February 2021.
Credit: Courtesy of Sarah Shahi/Instagram
Happy Place
“My forever ️,” Shahi captioned a sweet snap with her man on a romantic getaway in March 2021.
Credit: Courtesy of Adam Demos/Instagram
Just Peachy
The duo enjoyed the great outdoors in Georgia in May 2021 while Shahi was on location for the upcoming DC Comics film Black Adam.
Credit: Courtesy of Sarah Shahi/Instagram
Rat Pack
The twosome donned matching leather jackets in May 2021 that read, “The Rats” with a rose design on the back.
Credit: Courtesy of Adam Demos/Instagram
Birthday Boy
“The most magical birthday thanks to my angel @sarahshahi I’m truly blown away,” the Janet King alum wrote via Instagram in May 2020, alongside photos from his romantic and adventurous celebration in Georgia.
Credit: Courtesy of Sarah Shahi/Instagram
Soulmates
The Chicago Fire alum gushed about her man on his 36th birthday in May 2021, taking a look back at their romance via Instagram. “I do know I found my forever. I do know I’ve never loved deeper, harder, more ferociously,” she wrote. “I do know I’m overly grateful for him. I do know I’ve loved him for a thousand lifetimes before and will love him for a thousand lifetimes more. Happy birthday my baby ️.”
Credit: Courtesy of Adam Demos/Instagram
Big Apple
The couple stood in awe of their show’s success while looking at a billboard in New York City’s Times Square in June 2021. “Just f*#ckin wow,” Demos captioned a series of photos. “Absolutely rattled and Beyond grateful! I’m a lucky lucky man!!!” Shahi commented, “Full on magic I️u.”
Credit: Courtesy of Sarah ShahiInstagram
Throwback
The duo fully embraced their Sex/Life alter egos in a behind-the-scenes show photo posted by Shahi in July 2021.
Credit: Courtesy Adam Demos/Instagram
Sweet Memory
Demos shared an adorable selfie of the couple and captioned the post with a single red heart in July 2021.
Credit: Jordan Strauss/Invision/AP/Shutterstock
Red Carpet Debut
The twosome looked more in love than ever at the 2021 People’s Choice Awards in December 2021.
Credit: Courtesy of Adam Demos/Instagram
A Special Day
“Happy birthday to my ️ My home @sarahshahi,” Demos captioned his girlfriend’s birthday tribute via Instagram in January 2022.
In order to view the gallery, please allow Manage Cookies