Reviews:
Description
The must-have trio for every nail kit – our best-selling white files & buffers ensure flawless nail sets every time.
Designed for both natural nails and extensions, these double-sided tools offer versatile grit options and are easy to sanitise. Perfect for beginners starting their kit or professionals looking to refresh their salon essentials.
Guild Accredited
Elevate your professional career with TGB Academy! It’s as easy as A, BIAB™, C to learn with The GelBottle. Available in 25+ locations globally, we’re your partner in achieving excellence, so book your place with TGB Academy today.
Global Head Office based in Brighton, employing over 130 staff and operating worldwide.
Recognised as an industry leader and innovator amongst our peers.
Transformed over 2 billion nails since our brand’s inception.
Feel Inspired
Share how you're using this TGB icon for a chance to feature on our website. Simply mention @the_gelbottle_inc or tag #tgbessentials on Instagram.
${product.name}
${formatPrice(productPrice)}
excl. VAT ${capacityValue && `/ ${capacityValue}`}
${!proOnly ? `
` : `Log in to buy`}
` } return '' }) }) .then(products => { const productListHtml = products.join('') const lists = document.querySelectorAll(`.recommendation-${widget}`) const widgetContainer = document.querySelector(`.br-widget-${widget}`) lists.forEach(list => { if(productListHtml !== '') { list.innerHTML = productListHtml; list.setAttribute('data-loaded', 'true') } else { widgetContainer.style.display = "none" } }) document.querySelectorAll('.br-product').forEach(product => { if (product) { if (!product.hasAttribute('data-listener-added')) { product.addEventListener("click", (e) => { const productId = product.getAttribute('product-id'); if (widgetMetadata) { var widget_data = {}; widget_data.wrid = widgetMetadata.rid; widget_data.wq = itemId ? itemId : ''; widget_data.wid = widgetMetadata.id; widget_data.wty = widgetMetadata.type; widget_data.item_id = productId; window.getBloomreach.then(function(BrTrk) { BrTrk.getTracker().logEvent('widget', 'widget-click', widget_data, true); }); } }); product.setAttribute('data-listener-added', 'true'); } } }); document.querySelectorAll('.br-widget-add-to-cart').forEach(btn => { if(btn) { btn.addEventListener("click", (e) => { e.preventDefault() const productId = btn.getAttribute('product-id') if(widgetMetadata) { var widget_atc_data = {} widget_atc_data.wrid = widgetMetadata.rid widget_atc_data.wq = itemId ? itemId : '' widget_atc_data.wid = widgetMetadata.id widget_atc_data.wty = widgetMetadata.type widget_atc_data.item_id = productId widget_atc_data.sku = productId window.getBloomreach.then(function(BrTrk) { BrTrk.getTracker().logEvent('cart','widget-add', widget_atc_data) }) } }) } }) function updateAddToCartUrl(quantity) { let addToCartButtons = document.querySelectorAll('.br-widget-add-to-cart') addToCartButtons.forEach((button) => { let originalUrl = button.getAttribute('href') let baseUrl = originalUrl.split('&qty=')[0] button.setAttribute('href', baseUrl + '&qty=' + quantity) }); } function handleQuantityButtonClick() { let action = this.getAttribute('data-action') let inputField = this.closest('.add-to-cart-wrapper').querySelector('.form-input--incrementTotal') let currentValue = parseInt(inputField.value, 10) if (action === 'inc') { inputField.value = currentValue + 1 } else if (action === 'dec') { if (currentValue > 1) { inputField.value = currentValue - 1 } } updateAddToCartUrl(inputField.value) } //this is needed since the event listener might be attached to the same button more than once document.querySelectorAll('.quantity-button').forEach((button) => { let newButton = button.cloneNode(true) button.parentNode.replaceChild(newButton, button) newButton.addEventListener('click', handleQuantityButtonClick) }); }) .catch(error => console.error(error)) } }) .catch(error => { console.error('There was a problem with the fetch operation:', error) }); } (function() { function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie) var ca = decodedCookie.split(';') for(var i = 0; i
You might also like
${product.name}
${formatPrice(productPrice)}
excl. VAT ${capacityValue && `/ ${capacityValue}`}
${!proOnly ? `
` : `Log in to buy`}
New In
related academy courses
FAQS
Latest News
- Featured
Introducing the World’s First Pastel BIAB™ Collection!
Meet the world’s first pastel BIAB™ shades — a groun...
- Tips
Need to Know: Using Our Pricing Calculator to Enhance Your Business
Nail industry trends shift constantly, and pricing should reflect dema...
- News
Behind the Scenes: The GelBottle at London Fashion Week AW25
LFW is always a whirlwind of creativity, and this season was no except...
- News
International Women's Day 2025: Accelerating Action in the Nail Industry
The theme for this year’s International Women's Day is ‘Ac...
- Featured
Confidence Boost: Retail Therapy for Your Clients (and Your Business!)
We've all been there; you've just finished a perfect set of nails, you...
- Tips
How to Repair Broken Nails: Professional Solutions for Nail Technicians
Every nail technician will face the same scenario, week in and week ou...
- Tips
How to Do Marble Nails with Gel Polish: Step-by-Step Guide
Creating elegant marble nails might look complex, but achieving this s...
- Tips
Common Application Issues: Troubleshooting & Pro Tips for Nail Technicians
Applying professional gel products should be a seamless process, but e...
Daisy's Picks
${product.name}
${formatPrice(productPrice)}
excl. VAT ${capacityValue && `/ ${capacityValue}`}
${!proOnly ? `
` : `Log in to buy`}
` } return '' }) }) .then(products => { const productListHtml = products.join('') const lists = document.querySelectorAll(`.recommendation-${widget}`) const widgetContainer = document.querySelector(`.br-widget-${widget}`) lists.forEach(list => { if(productListHtml !== '') { list.innerHTML = productListHtml; list.setAttribute('data-loaded', 'true') } else { widgetContainer.style.display = "none" } }) document.querySelectorAll('.br-product').forEach(product => { if (product) { if (!product.hasAttribute('data-listener-added')) { product.addEventListener("click", (e) => { const productId = product.getAttribute('product-id'); if (widgetMetadata) { var widget_data = {}; widget_data.wrid = widgetMetadata.rid; widget_data.wq = itemId ? itemId : ''; widget_data.wid = widgetMetadata.id; widget_data.wty = widgetMetadata.type; widget_data.item_id = productId; window.getBloomreach.then(function(BrTrk) { BrTrk.getTracker().logEvent('widget', 'widget-click', widget_data, true); }); } }); product.setAttribute('data-listener-added', 'true'); } } }); document.querySelectorAll('.br-widget-add-to-cart').forEach(btn => { if(btn) { btn.addEventListener("click", (e) => { e.preventDefault() const productId = btn.getAttribute('product-id') if(widgetMetadata) { var widget_atc_data = {} widget_atc_data.wrid = widgetMetadata.rid widget_atc_data.wq = itemId ? itemId : '' widget_atc_data.wid = widgetMetadata.id widget_atc_data.wty = widgetMetadata.type widget_atc_data.item_id = productId widget_atc_data.sku = productId window.getBloomreach.then(function(BrTrk) { BrTrk.getTracker().logEvent('cart','widget-add', widget_atc_data) }) } }) } }) function updateAddToCartUrl(quantity) { let addToCartButtons = document.querySelectorAll('.br-widget-add-to-cart') addToCartButtons.forEach((button) => { let originalUrl = button.getAttribute('href') let baseUrl = originalUrl.split('&qty=')[0] button.setAttribute('href', baseUrl + '&qty=' + quantity) }); } function handleQuantityButtonClick() { let action = this.getAttribute('data-action') let inputField = this.closest('.add-to-cart-wrapper').querySelector('.form-input--incrementTotal') let currentValue = parseInt(inputField.value, 10) if (action === 'inc') { inputField.value = currentValue + 1 } else if (action === 'dec') { if (currentValue > 1) { inputField.value = currentValue - 1 } } updateAddToCartUrl(inputField.value) } //this is needed since the event listener might be attached to the same button more than once document.querySelectorAll('.quantity-button').forEach((button) => { let newButton = button.cloneNode(true) button.parentNode.replaceChild(newButton, button) newButton.addEventListener('click', handleQuantityButtonClick) }); }) .catch(error => console.error(error)) } }) .catch(error => { console.error('There was a problem with the fetch operation:', error) }); } (function() { function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie) var ca = decodedCookie.split(';') for(var i = 0; i
!