$ErrorActionPreference = 'Stop' # ============================================================ # COLD COFFEES - ONE SHOT UPLOAD # ============================================================ $repo = 'C:\Users\admin\Desktop\nigelthomas-portfolio' $page = 'cold-coffees-guide.html' $url = "https://www.nigelthomas.live/$page" $src = Join-Path $env:USERPROFILE 'Downloads\cold-coffees-poster.jpg' $dst = Join-Path $repo 'assets\cold-coffees-poster.jpg' $utf8 = New-Object System.Text.UTF8Encoding $false # ============================================================ # IMAGE RESIZE HELPER (System.Drawing) # ============================================================ Add-Type -AssemblyName System.Drawing function Resize-Jpeg { param( [Parameter(Mandatory)][string]$InPath, [Parameter(Mandatory)][string]$OutPath, [int]$MaxWidth = 1200, [int]$Quality = 82 ) $img = [System.Drawing.Image]::FromFile($InPath) try { $ratio = [Math]::Min($MaxWidth / $img.Width, 1.0) $newW = [int][Math]::Round($img.Width * $ratio) $newH = [int][Math]::Round($img.Height * $ratio) $bmp = New-Object System.Drawing.Bitmap $newW, $newH $gfx = [System.Drawing.Graphics]::FromImage($bmp) try { $gfx.InterpolationMode = [System.Drawing.Drawing2D.InterpolationMode]::HighQualityBicubic $gfx.SmoothingMode = [System.Drawing.Drawing2D.SmoothingMode]::HighQuality $gfx.PixelOffsetMode = [System.Drawing.Drawing2D.PixelOffsetMode]::HighQuality $gfx.CompositingQuality = [System.Drawing.Drawing2D.CompositingQuality]::HighQuality $gfx.DrawImage($img, 0, 0, $newW, $newH) } finally { $gfx.Dispose() } $codec = [System.Drawing.Imaging.ImageCodecInfo]::GetImageEncoders() | Where-Object { $_.MimeType -eq 'image/jpeg' } $encParams = New-Object System.Drawing.Imaging.EncoderParameters 1 $encParams.Param[0] = New-Object System.Drawing.Imaging.EncoderParameter( [System.Drawing.Imaging.Encoder]::Quality, [long]$Quality) $bmp.Save($OutPath, $codec, $encParams) $bmp.Dispose() } finally { $img.Dispose() } } Set-Location $repo Write-Host '' Write-Host '=== COLD COFFEES UPLOAD ===' -ForegroundColor Cyan # ------------------------------------------------------------ # 1. PULL # ------------------------------------------------------------ git pull --rebase --autostash if ($LASTEXITCODE -ne 0) { Write-Host 'Git pull failed.' -ForegroundColor Red exit 1 } # ------------------------------------------------------------ # 2. MOVE/COPY POSTER INTO ASSETS FIRST (RESIZED) # ------------------------------------------------------------ Write-Host '' Write-Host '=== STEP 1: POSTER ===' -ForegroundColor Yellow if (-not (Test-Path $src)) { Write-Host "ERROR: Poster not found: $src" -ForegroundColor Red exit 1 } if (-not (Test-Path (Split-Path $dst))) { New-Item -ItemType Directory -Path (Split-Path $dst) | Out-Null } $srcSize = (Get-Item $src).Length Resize-Jpeg -InPath $src -OutPath $dst -MaxWidth 1200 -Quality 82 $dstSize = (Get-Item $dst).Length $saved = $srcSize - $dstSize $pct = if ($srcSize -gt 0) { [Math]::Round(($saved / $srcSize) * 100, 1) } else { 0 } Write-Host "ASSETS POSTER: $dst" -ForegroundColor Green Write-Host ("SOURCE SIZE : {0:N0} bytes" -f $srcSize) -ForegroundColor Green Write-Host ("ASSET SIZE : {0:N0} bytes" -f $dstSize) -ForegroundColor Green Write-Host ("SAVED : {0:N0} bytes ({1}%)" -f $saved, $pct) -ForegroundColor Green if ($dstSize -ge $srcSize) { Write-Host 'WARNING: resized file is not smaller - check source is a real JPG.' -ForegroundColor Yellow } # ------------------------------------------------------------ # 3. ARTICLE HTML # ------------------------------------------------------------ Write-Host '' Write-Host '=== STEP 2: ARTICLE HTML ===' -ForegroundColor Yellow $html = @' 5 Signature Cold Coffees: The Barista's Training Guide | Nigel A. Thomas
NIGEL A. THOMAS
Home › Blog › Bar & Beverage

5 Signature Cold Coffees — The Barista's Training Guide

By Nigel A. Thomas • Hospitality & F&B Training • October 2026

Cold coffee has developed into a major beverage category for modern cafés, hotels, resorts and food-and-beverage operations. Guests expect cold coffee to be properly chilled, balanced, attractive and consistent. The difference between an average iced beverage and a signature drink is usually not complicated equipment; it is disciplined preparation.

This guide presents five signature cold beverages from the accompanying Nigel A. Thomas training poster. The recipes cover espresso, cold brew, Americano, matcha, caramel, honey, chocolate, cream and cold foam.

Cold Coffee Service Principles

Consistency starts with measurement. Coffee strength, milk quantity, sweetener, ice and toppings all influence the final drink. When a beverage is sold as a signature item, the guest should receive the same experience regardless of which trained barista prepares it.

Keep milk and cold mixers chilled. Use clean ice and a dedicated ice scoop. Measure syrups and sauces rather than relying on free-pouring when recipe consistency is required. Keep glassware and equipment clean and ready before the shift begins.

Barista Training Rule

Measure first. Build consistently. Check the presentation. Serve immediately.

Recipe cards and training posters are most useful when they become part of the daily station routine rather than something used only during induction.

The 5 Signature Cold Coffees

01. Iced Honey Caramel Mocha

9 g coffee • 30 ml espresso • 180 ml milk (6 oz) • 15 ml caramel syrup (0.5 oz) • 15 ml honey (0.5 oz) • 15 ml chocolate (0.5 oz) • ice as needed

Method: Prepare the espresso. Combine the caramel, honey and chocolate with the coffee and milk. Build over ice and mix thoroughly so the flavours are evenly distributed. Serve immediately.

Making tips: Use fresh coffee beans, good-quality chocolate sauce and consistent measurements. Add caramel and honey in the correct order so the flavour profile remains repeatable from one drink to the next.

02. Honey Caramel Cold Brew Cold Foam

Medium-fine ground coffee • 80 ml cold brew • 15 ml honey • 15 ml caramel • ice as needed • cold foam as needed

Method: Prepare chilled cold brew. Add honey and caramel and mix until evenly distributed. Add ice and finish with a smooth layer of cold foam.

The combination of cold brew, honey, caramel and cold foam gives the drink a smooth dessert-style character while retaining the flavour of the coffee.

Making tips: Use fresh coffee beans, consistent cold-brew strength and properly chilled ingredients. The cold foam should be creamy and stable enough to provide a clear finishing layer.

03. Iced Chocolate Cream Protein Americano

9 g ground coffee, medium-fine • 30 ml espresso (25–30 sec) • chocolate syrup as needed • milk as needed • chocolate cream topping • ice as needed

Method: Extract the espresso using a controlled shot. Add the chocolate element and milk, build over plenty of ice and finish with chocolate cream.

Service specification: 16 oz cup • cold 4–10°C • espresso reference 9–10 bar.

Making tips: Use fresh coffee beans and a medium-fine espresso grind. A 25–30 second extraction provides the recipe's reference point; adjust only according to the coffee and equipment standard used by the operation.

04. Strawberry Iced Matcha Tiramisu Cream

2 g matcha powder • 160 ml milk • 15 ml strawberry purée / syrup • 15 ml tiramisu syrup • milk cream / tiramisu cream topping • ice as needed

Method: Prepare the matcha smoothly. Build the strawberry element, add the milk and matcha, then finish with the tiramisu cream. Keep the presentation clean and attractive.

The drink combines earthy matcha with strawberry sweetness and a dessert-style tiramisu finish.

Making tips: Use high-quality matcha powder, make the tiramisu cream smooth and fluffy, layer the strawberry syrup carefully and serve cold.

05. Vanilla Oreo Matcha Iced Cold Cream

2 g matcha powder • 30 ml espresso • 160 ml milk • 15 ml vanilla syrup • crushed Oreo topping • milk cold foam / vanilla Oreo cream

Method: Prepare the matcha and espresso components. Combine with chilled milk and vanilla syrup. Add ice and finish with cold foam or vanilla Oreo cream. Complete with crushed Oreo.

This dessert-style cold beverage combines matcha, espresso, vanilla and cookie flavours. Presentation is part of the guest experience, so keep the topping clean and consistent.

Making tips: Use quality matcha, smooth vanilla cream and evenly crushed Oreo. Shake or mix well before adding ice and serving.

Training the Bar Team

The five recipes demonstrate different beverage-building techniques. The Iced Honey Caramel Mocha focuses on espresso, milk and dessert flavours. The cold brew recipe teaches batch consistency and cold foam finishing. The Chocolate Cream Protein Americano reinforces espresso extraction and iced service. The two matcha beverages introduce modern layered presentation and the combination of coffee, tea, dairy and dessert-style toppings.

A useful training exercise is to have a trainee prepare the same beverage three times using measured ingredients. Compare sweetness, coffee strength, temperature, appearance and topping. The purpose is not simply to memorise the recipe but to understand the variables that affect consistency.

Cold Coffee Mise en Place

Before service, the bar should have coffee beans, espresso equipment, cold brew, milk, matcha, syrups, chocolate, honey, cream, cold foam ingredients, ice, cups and garnishes ready. Every item should have a defined place at the workstation.

Cold beverages are particularly sensitive to warm ingredients and poor ice management. Chilled mixers, sufficient ice and fast service help preserve the intended temperature and texture.

Quality Control Checklist

Before service: Check coffee, espresso equipment, cold brew, milk, matcha, syrups, chocolate, cream, ice and cups.

During service: Measure ingredients, follow the recipe sequence, maintain extraction standards and keep cold ingredients chilled.

Before handover: Check cup cleanliness, temperature, topping and presentation.

After service: Clean equipment and replenish the station for the next service period.

Free Cold Coffee Training Poster

The black-and-gold infographic brings the five signature beverages together as a quick-reference training sheet for baristas, café teams, hotels, resorts and F&B trainers.

INFOMATICS — FREE POSTER DOWNLOAD

5 Signature Cold Coffees — The Barista's Training Guide

Cold Coffees - 5 Signature Iced Recipes - Nigel A. Thomas Barista Training Guide FREE POSTER DOWNLOAD

More Beverage & Bar Articles

Nigel A. Thomas — Hospitality Executive, F&B Operations Professional and Career Mentor.

Connect on LinkedIn
'@ $pagePath = Join-Path $repo $page [System.IO.File]::WriteAllText( $pagePath, $html, $utf8 ) Write-Host "Article created: $page" -ForegroundColor Green # ------------------------------------------------------------ # 4. BLOG.HTML # ------------------------------------------------------------ Write-Host '' Write-Host '=== STEP 3: BLOG.HTML ===' -ForegroundColor Yellow $blogPath = Join-Path $repo 'blog.html' $blog = [System.IO.File]::ReadAllText($blogPath,$utf8) $title = "5 Signature Cold Coffees: The Barista's Training Guide" $meta = 'Bar & Beverage • Oct 2026 • 10 min read' $excerpt = 'Five signature cold coffee recipes covering iced mocha, cold brew cold foam, chocolate cream Americano, strawberry matcha tiramisu and vanilla Oreo matcha.' if ($blog.Contains($page)) { Write-Host 'Cold Coffees URL already exists in blog.html - skipped.' -ForegroundColor Yellow } else { $card = @"
$title
$meta
$excerpt
Read Article →
"@ $marker = '
$url 2026-10-03 monthly 0.8 "@ $pos = $sm.LastIndexOf('') if ($pos -lt 0) { Write-Host 'ERROR: not found.' -ForegroundColor Red exit 1 } $sm = $sm.Substring(0,$pos) + $entry + "`r`n" + $sm.Substring($pos) [System.IO.File]::WriteAllText( $smPath, $sm, $utf8 ) Write-Host 'Sitemap updated.' -ForegroundColor Green } # ------------------------------------------------------------ # 6. VERIFY LOCAL FILES # ------------------------------------------------------------ Write-Host '' Write-Host '=== STEP 5: LOCAL VERIFICATION ===' -ForegroundColor Yellow Write-Host "Article exists : $(Test-Path $pagePath)" Write-Host "Poster exists : $(Test-Path $dst)" Write-Host "Blog exists : $(Test-Path $blogPath)" Write-Host "Sitemap exists : $(Test-Path $smPath)" $checkHtml = [System.IO.File]::ReadAllText($pagePath,$utf8) Write-Host '' Write-Host "Poster reference count:" -ForegroundColor Cyan ([regex]::Matches($checkHtml,'/assets/cold-coffees-poster\.jpg')).Count Write-Host '' Write-Host "Infomatics count:" -ForegroundColor Cyan ([regex]::Matches($checkHtml,'INFOMATICS')).Count Write-Host '' Write-Host "Download button count:" -ForegroundColor Cyan ([regex]::Matches($checkHtml,'FREE POSTER DOWNLOAD')).Count # ------------------------------------------------------------ # 7. GIT # ------------------------------------------------------------ Write-Host '' Write-Host '=== STEP 6: GIT ===' -ForegroundColor Yellow git status --short git add $page $dst blog.html sitemap.xml git commit -m "Add Cold Coffees barista guide, poster, blog card and sitemap" if ($LASTEXITCODE -ne 0) { Write-Host 'Commit returned non-zero. Continuing to rebase/push check.' -ForegroundColor Yellow } git pull --rebase --autostash if ($LASTEXITCODE -ne 0) { Write-Host 'Rebase failed.' -ForegroundColor Red exit 1 } git push if ($LASTEXITCODE -ne 0) { Write-Host 'Push failed.' -ForegroundColor Red exit 1 } # ------------------------------------------------------------ # 8. LIVE VERIFICATION # ------------------------------------------------------------ Write-Host '' Write-Host '=== STEP 7: LIVE VERIFICATION ===' -ForegroundColor Yellow Write-Host 'Waiting 45 seconds for deployment...' -ForegroundColor Yellow Start-Sleep -Seconds 45 function Test-Live($u,$needle) { try { $r = Invoke-WebRequest -Uri $u -UseBasicParsing $ok = ($r.StatusCode -eq 200) if ($needle) { $ok = $ok -and $r.Content.Contains($needle) } return $ok } catch { return $false } } $liveChecks = @( @{ Name='Article' URL=$url Needle='5 Signature Cold Coffees' }, @{ Name='Poster' URL='https://www.nigelthomas.live/assets/cold-coffees-poster.jpg' Needle='' }, @{ Name='Blog' URL='https://www.nigelthomas.live/blog.html' Needle=$page }, @{ Name='Sitemap' URL='https://www.nigelthomas.live/sitemap.xml' Needle=$page } ) foreach ($c in $liveChecks) { $ok = Test-Live $c.URL $c.Needle if (-not $ok) { Start-Sleep -Seconds 20 $ok = Test-Live $c.URL $c.Needle } if ($ok) { Write-Host "$($c.Name): LIVE OK" -ForegroundColor Green } else { Write-Host "$($c.Name): NOT YET" -ForegroundColor Red } } Write-Host '' Write-Host '============================================================' -ForegroundColor Green Write-Host ' COLD COFFEES COMPLETE' -ForegroundColor Green Write-Host '============================================================' -ForegroundColor Green Write-Host '' Write-Host "Article: $url" -ForegroundColor Cyan Write-Host 'Poster : https://www.nigelthomas.live/assets/cold-coffees-poster.jpg' -ForegroundColor Cyan Write-Host '' Write-Host 'Submit the Article URL in Google Search Console.' -ForegroundColor Yellow