Helps prevent sunburn. If used as directed with other sun protection measures (see Directions), decreases the risk of skin cancer and early skin aging caused by the sun.
Instructions
For sunscreen use:
Apply generously 15 minutes before sun exposure
Apply to all skin exposed to the sun
Children under 6 months of age: ask a doctor
Made in USA
ONE life x one face
ONE BOTTLE. ONE METAL TUBE. NO ROUTINE.
Moisturizer, broad-spectrum SPF 15, and retinol in one old-school aluminum tube.No tiny bottles. No order of operations. No 11-minute bathroom ceremony.Built like a tool, not a beauty product.
RETINOL Built In
Retinol is one of the only ingredients scientifically shown to help reduce visible signs of aging.Some brands sell it for $200 a pop. BROTEGE has retinol built in, so you can save your money for more important things — like pizza and fantasy football.
20,000+ BROS CAN’T BE WRONG!
In just over a year, more than 20,000 dudes have tried BROTEGE. If you’re one of them — THANK YOU.Slapping cream on your face is officially less weird than pretending you’re still 23.
NO GREASE. NO WHITE CAST.
Lightweight, fast-absorbing, and built to disappear.Won’t leave your face shiny, chalky, or smelling like you got trapped in a Sephora.
+ SPF BUILT IN
Broad-spectrum SPF 15 built right in — because you were never going to buy a separate sunscreen, and we both know it.Formulated for daily use. So light, you’ll forget you’re being responsible.
60-DAY FACE FIX
Try BROTEGE for 60 days. If your face doesn’t look visibly better, we’ll give you a full refund.Subscribe and save. Cancel anytime — zero guilt trip. We also have commitment issues.
These are so sick. Be the coolest dad at pickup.
Use this text to share information about your collection.
Pretty nice product. I like the ingredients and it helped my skin a lot. It came with a free tube key which looked really cool. However, when I tried to use it, it ripped a couple holes in the metal tube so the lotion comes out the top and sides when I try and turn the key. Overall nice product and I will probably try again when this one is empty.
Good Boy Protection Daily Moisturizer + Shotgun Lip Balm 3-Pack Person
Ordered Aug 26th
It is now Sept 10th
I wish I could give zero stars for the horrendous shipping times (mind you they are in the same state! no more than 6 hours away) I might as well have picked it up myself, at least I’d have the product in hand to review.
-10000 / 10 DO NOT RECOMMEND
I originally found Brotege through Instagram and decided to give them a try after seeing their products. I ordered their Good Boy Protection Daily Moisturizer, and I’m really glad I did.
The whole experience was easy from beginning to end. Ordering was straightforward, communication and tracking were simple, and everything went smoothly with my purchase.
I’m always a little cautious when trying a company for the first time after discovering them on social media, but Brotege gave me a great first impression. I’m happy I came across them and would definitely feel comfortable ordering from them again.
After years of harrassing my husband to no avail about wearing sunscreen at a bare minimum, this is the first skincare product I’ve ever gotten him to use on his own! I noticed an immediate difference in his skin. Even just 48 hours into use, his face isn’t dry anymore even before application of the moisturizer. Brotege is an absolute game changer and I can’t reccomend it enough!
Great stuff. Thanks. I now remain youthful and handsome.
A
Good Boy Protection Daily Moisturizer + Shotgun Lip Balm 3-Pack Andy
The moisturizer is so light on my face and not oily at all ! The El Chapo lip balm keeps my lips soft and moisturized and tbe design is sick cant wait to try out the other two balms !
My wife gifted me this moisturizer the first time, and I was so impressed that I decided to subscribe this time. I appreciate that it doesn’t leave a thick white layer like other moisturizers, and despite having oils, I’m not getting any younger. So, I highly recommend this moisturizer.
Retinol and SPF isn't a real thing. Solid cream but sketchy advertising.
Choosing a selection results in a full page refresh.
Press the space key then arrow keys to make a selection.
Your cart
-
Your cart is currently empty.
New subtotal:
$0.00 USD
Add To Your Order
El Chapo Beeswax Lip Balm
$10.00$10.00$6.66
Good Boy Protection Daily Moisturizer
$24.99$19.99
El Chapo + Good Boy Protection Bundle
$34.99$26.65
You sure you don’t want to subscribe?
Save 25% when you subscribe + get a free tube key
$25.00$18.75
That’s $6.25 off, Einstein!!
-If you don't love it, you can cancel anytime. -25% off first month, renews at 25% off for life. -LIMITED: Free Tube Key with every first order subscription!
You sure you don’t want to subscribe?
Save 25% when you subscribe + get a free tube key
$25.00$18.75
That’s $6.25 off, Einstein!
- If you don't love it, you can cancel anytime.
25% off first month, renews at 25% off for life
- LIMITED: Free Tube Key with every first order subscription!
.
* Does not change variant prices or recurring Recharge contract pricing.
* Requires two SAVED, ACTIVE, correctly configured Shopify discount codes.
*/
(()=>{
'use strict';
if(window.__brotegePromoV8Installed)return;
window.__brotegePromoV8Installed=true;
const CFG={
productId:9446693634333,
subscriptionCode:'KC5XPRRJZGWY', // $8.75 off, subscription, first payment only
oneTimeCode:'ST847FZ0SRPE' // $15 off, one-time purchase
};
const root=((window.Shopify&&window.Shopify.routes&&window.Shopify.routes.root)||'/').replace(/\/?$/,'/');
const normalize=x=>String(x||'').trim().toUpperCase();
const ownCodes=[CFG.subscriptionCode,CFG.oneTimeCode].map(normalize);
const isOwn=x=>ownCodes.includes(normalize(x));
const getCodes=cart=>(cart.discount_codes||[]).map(x=>typeof x==='string'?x:x.code).filter(Boolean);
const rawFetch=window.fetch.bind(window);
const mutatingCartPath=/\/cart\/(add|change|update|clear)(?:\.js)?\/?$/i;
const pathFor=part=>root+'cart/'+part;
const sleep=ms=>new Promise(resolve=>setTimeout(resolve,ms));
let busy=false,queued=false,timeout=0;
let rejectedKey='',lastCartItems='',lastAttemptKey='';
async function readCart(){
const response=await rawFetch(pathFor('cart.js'),{credentials:'same-origin',cache:'no-store'});
if(!response.ok)throw new Error('cart.js HTTP '+response.status);
return response.json();
}
async function writeDiscount(codes){
const response=await rawFetch(pathFor('update.js'),{
method:'POST',credentials:'same-origin',
headers:{'Content-Type':'application/json','Accept':'application/json'},
body:JSON.stringify({discount:codes.join(',')})
});
if(!response.ok)throw new Error('Discount update HTTP '+response.status);
return response.json();
}
function state(cart){
const items=(cart.items||[]).filter(x=>Number(x.product_id)===CFG.productId&&Number(x.quantity)>0);
if(!items.length)return '';
const kinds=new Set(items.map(x=>x.selling_plan_allocation?'sub':'one'));
if(kinds.size!==1)return 'mixed';
return kinds.has('sub')?CFG.subscriptionCode:CFG.oneTimeCode;
}
function signature(cart){
return JSON.stringify((cart.items||[]).map(x=>[
x.variant_id,x.quantity,Boolean(x.selling_plan_allocation),x.selling_plan_allocation?.selling_plan?.id||''
]));
}
function status(status,code,cart){
document.dispatchEvent(new CustomEvent('brotege:discount-status',{
detail:{status,requestedCode:code||'',cartTotalCents:cart?.total_price??null}
}));
}
async function synchronize(){
if(busy){queued=true;return;}
busy=true;
try{
const cart=await readCart();
const desired=state(cart),existing=getCodes(cart),fingerprint=signature(cart);
if(lastCartItems!==fingerprint){rejectedKey='';lastAttemptKey='';lastCartItems=fingerprint;}
if(!desired||desired==='mixed'){
if(existing.some(isOwn)){
const updated=await writeDiscount(existing.filter(c=>!isOwn(c)));
status(desired==='mixed'?'mixed':'removed','',updated);
}else status(desired==='mixed'?'mixed':'not-in-cart','',cart);
return;
}
const matching=existing.find(x=>normalize(x)===normalize(desired));
if(matching && !existing.some(c=>isOwn(c)&&normalize(c)!==normalize(desired))){
// Code presence does not guarantee discount eligibility.
const record=(cart.discount_codes||[]).find(x=>normalize(typeof x==='string'?x:x.code)===normalize(desired));
status(record&&record.applicable===false?'ineligible':'code-present',desired,cart);
return;
}
const unrelated=existing.filter(x=>!isOwn(x));
if(unrelated.length){
// Never overwrite a customer's manually supplied unrelated promo code.
status('other-discount-present',desired,cart);
return;
}
const key=fingerprint+'|'+normalize(desired);
if(rejectedKey===key||lastAttemptKey===key)return;
lastAttemptKey=key;
const result=await writeDiscount([desired]);
const applied=(result.discount_codes||[]).find(x=>normalize(typeof x==='string'?x:x.code)===normalize(desired));
if(!applied || applied.applicable===false){
rejectedKey=key;
console.info('[Brotege promo] Code not confirmed. Check eligibility, saved/active codes and Shopify checkout.',desired);
status('not-confirmed',desired,result);
}else{
status('code-present',desired,result);
}
}catch(error){
console.warn('[Brotege promo] Unable to synchronize discount',error);
status('error','',null);
}finally{
busy=false;
if(queued){queued=false;schedule(350);}
}
}
function schedule(ms=300){clearTimeout(timeout);timeout=setTimeout(synchronize,ms);}
function isCartMutation(input,init){
let url='',method='GET';
try{
url=typeof input==='string'?input:input?.url||'';
method=(init?.method||input?.method||'GET').toUpperCase();
return method!=='GET'&&mutatingCartPath.test(new URL(url,location.href).pathname);
}catch(e){return false;}
}
// Observe theme AJAX fetches. Internal reads/writes use rawFetch, preventing recursion.
window.fetch=function(input,init){
const watched=isCartMutation(input,init);
const response=rawFetch(input,init);
if(watched)response.then(r=>{if(r.ok)schedule(380)}).catch(()=>{});
return response;
};
// Some themes use XMLHttpRequest instead of fetch.
const xhrOpen=XMLHttpRequest.prototype.open;
const xhrSend=XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.open=function(method,url,...rest){
try{this.__brWatch=String(method).toUpperCase()!=='GET'&&mutatingCartPath.test(new URL(url,location.href).pathname);}
catch(e){this.__brWatch=false;}
return xhrOpen.call(this,method,url,...rest);
};
XMLHttpRequest.prototype.send=function(...args){
if(this.__brWatch)this.addEventListener('load',()=>{if(this.status>=200&&this.status<300)schedule(380)},{once:true});
return xhrSend.apply(this,args);
};
window.brotegeSyncPromo=()=>schedule(120);
document.addEventListener('cart:updated',()=>schedule(160));
document.addEventListener('DOMContentLoaded',()=>schedule(180),{once:true});
if(document.readyState!=='loading')schedule(180);
window.addEventListener('pageshow',()=>schedule(180));
document.addEventListener('visibilitychange',()=>{if(!document.hidden)schedule(180);});
// Catch themes with nonstandard cart events. Checks do not repeatedly POST.
setInterval(()=>{if(!document.hidden&&!busy)schedule(0);},6500);
})();