Pitch deck design for startups and businesses

With 18+ years of experience, I create marketing materials and presentations for both big tech companies and startups, including investor decks and business presentations.

Based in the San Francisco Bay Area

TRUSTED BY TEAMS AT


Our Pitch Deck Design Packages

PITCH DECK CLEANUP

$450

For decks up to 12 slides
4~6 business days

Do you have all of your content in the deck but need a polished, branded design before your next presentation? I’ll refine your existing slides with clean, professional design upgrades and polished visuals that support your message and brand.• Typography & visual hierarchy overhaul
• Your brand fonts, colors, and logo applied
• Clean layouts & balanced structure
• Alignment & spacing fixed throughout
• Your images added professionally
• 1-2 rounds of revisions

EXTENDED PITCH DECK CLEANUP

$550

For larger decks up to 22 slides
~7 business days

Do you have all of your content in the deck but need a polished, branded design before your next presentation? I’ll refine your existing slides with clean, professional design upgrades and polished visuals that support your message and brand.• Typography & visual hierarchy overhaul
• Your brand fonts, colors, and logo applied
• Clean layouts & balanced structure
• Alignment & spacing fixed throughout
• Your images added professionally
• 1-2 rounds of revisions


Before & After Slide Transformations


Need a custom color palette?

Try the free AI Color Palette Generator. After you create one you like, I can add it to your deck when I work on it.

Frequently asked questions

How does this work?

  • It's simple — submit your project through the form, and I'll review it and send you a quote. Once confirmed, I get to work. You'll receive your polished deck within the turnaround time, ready to present.

What file formats do you deliver?

  • I deliver in whatever format works best for you — PowerPoint (.pptx), Google Slides, or Canva. You'll receive a fully editable file you can update anytime.

Can I request revisions?

  • The Pitch Deck Cleanup includes one round of revisions. The Full Pitch Deck includes three rounds. Additional revision rounds are available as an add-on.

How long does it take?

  • Deck Cleanup takes 4–6 business days. Full Pitch Deck takes about 7 business days. Rush delivery is available as an add-on if you need it sooner.

Do you write the content for my deck?

  • For all of them, you provide the content and I handle the design. For the Full Pitch Deck, I may suggest content edits to enhance design and shape the narrative and story structure.

What if I'm not sure which service I need?

  • Book a free 15-minute review — I'll look at your deck and tell you exactly what it needs. No cost, no commitment.

Let's connect!

Email me and let me know what you need and I can send you a quote. You can also book a complimentary 15-minute consultation to discuss your project and explore how I can help. Its a no-obligation chat and its a great way to make sure we're the right fit for your vision.

Services

PITCH DECK CLEANUP

$450

For decks up to 12 slides
4~6 business days

Do you have all of your content in the deck but need a polished, branded design before your next presentation? I’ll refine your existing slides with clean, professional design upgrades and polished visuals that support your message and brand.• Typography & visual hierarchy overhaul
• Your brand fonts, colors, and logo applied
• Clean layouts & balanced structure
• Alignment & spacing fixed throughout
• Your images added professionally
• Two rounds of revisions

EXTENDED PITCH DECK CLEANUP

$550

For decks up to 22 slides
~7 business days

Do you have all of your content in the deck but need a polished, branded design before your next presentation? I’ll refine your existing slides with clean, professional design upgrades and polished visuals that support your message and brand.• Typography & visual hierarchy overhaul
• Your brand fonts, colors, and logo applied
• Clean layouts & balanced structure
• Alignment & spacing fixed throughout
• Your images added professionally
• Three rounds of revisions

Do you have a larger deck? Contact me with details for an estimate.


Additional Services

White papers

Need a polished white paper or sales sheet to share after your presentation? I can refine an existing document or design one from scratch using your text content.

WHITE PAPER
CLEANUP

$150 per page

One side of a single page. Your content is already in place, but you’d like the design cleaned up and polished. Includes 1-2 rounds of revisions.

WHITE PAPER
FULL DESIGN

$225 per page

You provide the content, and I’ll design a fully branded, print-ready layout with typography, colors, charts and graphics. Includes 3 rounds of revisions.

LONG FORM EBOOK PDF

Contact for quote

Need a longer document such as an ebook, interactive PDF, manual, or booklet? I can design those as well. Pricing is customized based on the scope of the project rather than a per-page rate.


Templates

template conversion

Email for quote

Do you have a template (editable or non-editable) that was created in one program and you would like it created in another? I can do that. Prices vary depending upon complexity. Email me for a quote.

template creation

Email for quote

Template creation using your brand guidelines in PowerPoint, Google Slides, or Canva. A reusable foundation your team can build on.


Single slide graphic

$120

Just need to elevate one important slide or complex infographic? Whether it’s a timeline, roadmap, flyer, or key visual, I’ll polish the design so it communicates clearly and looks professional. Includes 2-3 rounds of revisions.


Add-ons

  • Additional slides - $50 each

  • Rush delivery - $200

  • Vectoring logo or AI graphic - $200

  • Sourcing Stock Images - XXX

  • Extra round of revisions - $50

  • Branding Package - Email for quote


Custom work

Many projects require custom scope. I can also work for you on an hourly basis. Contact me for more information.


Palette Studio

After you create one you like, I can add it to your deck when I work on it.

Select a color harmony scheme and a mood and hit "Generate Palette". Hover any swatch to preview its hex code, or click to copy it instantly. HEX, RGB, and HSL values are available for every color in the palette below. Use the Export CSS button to copy all five colors as ready-to-use CSS custom properties.

Palette Studio

Color Palette Generator

Your palette will appear here
Copied!
var psScheme = 'analogous'; var psMood = 'vivid'; var psCurrentPalette = null; var psSchemes = ['analogous','complementary','triadic','monochromatic','random']; var psMoods = ['vivid','pastel','earthy','dark','neon','neutral','warm','cool']; var i, btn; for (i = 0; i < psSchemes.length; i++) { (function(scheme) { var el = document.getElementById('tab-' + scheme); if (el) { el.addEventListener('click', function() { var j; for (j = 0; j < psSchemes.length; j++) { var t = document.getElementById('tab-' + psSchemes[j]); if (t) t.className = 'ps-tab'; } el.className = 'ps-tab active'; psScheme = scheme; }); } })(psSchemes[i]); } for (i = 0; i < psMoods.length; i++) { (function(mood) { var el = document.getElementById('mood-' + mood); if (el) { el.addEventListener('click', function() { var j; for (j = 0; j < psMoods.length; j++) { var m = document.getElementById('mood-' + psMoods[j]); if (m) m.className = 'ps-mood-btn'; } el.className = 'ps-mood-btn selected'; psMood = mood; }); } })(psMoods[i]); } document.getElementById('psGenBtn').addEventListener('click', psGenerate); document.getElementById('psExportBtn').addEventListener('click', psExportCSS); document.getElementById('psCodes').addEventListener('click', function(e) { var t = e.target; if (t && t.getAttribute('data-copy')) { psCopy(t.getAttribute('data-copy')); } }); document.getElementById('psSwatches').addEventListener('click', function(e) { var t = e.target; while (t && t !== this) { if (t.getAttribute('data-copy')) { psCopy(t.getAttribute('data-copy')); return; } t = t.parentNode; } }); function hslToHex(h, s, l) { h = ((h % 360) + 360) % 360; s = s / 100; l = l / 100; var a = s * Math.min(l, 1 - l); function f(n) { var k = (n + h / 30) % 12; var color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1); var hex = Math.round(255 * color).toString(16); return hex.length === 1 ? '0' + hex : hex; } return '#' + f(0) + f(8) + f(4); } function hexToRgb(hex) { var r = parseInt(hex.slice(1,3), 16); var g = parseInt(hex.slice(3,5), 16); var b = parseInt(hex.slice(5,7), 16); return r + ', ' + g + ', ' + b; } function hexToHsl(hex) { var r = parseInt(hex.slice(1,3),16) / 255; var g = parseInt(hex.slice(3,5),16) / 255; var b = parseInt(hex.slice(5,7),16) / 255; var max = Math.max(r,g,b), min = Math.min(r,g,b); var h, s, l = (max + min) / 2; if (max === min) { h = 0; s = 0; } else { var d = max - min; s = l > 0.5 ? d / (2 - max - min) : d / (max + min); if (max === r) h = ((g - b) / d + (g < b ? 6 : 0)) / 6; else if (max === g) h = ((b - r) / d + 2) / 6; else h = ((r - g) / d + 4) / 6; } return Math.round(h*360) + 'deg, ' + Math.round(s*100) + '%, ' + Math.round(l*100) + '%'; } var colorNames = [ [0,'Crimson'],[10,'Vermillion'],[20,'Tangerine'],[30,'Amber'],[40,'Gold'], [50,'Chartreuse'],[60,'Lime'],[80,'Mint'],[120,'Emerald'],[150,'Seafoam'], [180,'Teal'],[200,'Cerulean'],[220,'Azure'],[240,'Cobalt'],[260,'Indigo'], [280,'Violet'],[300,'Magenta'],[320,'Rose'],[340,'Blush'],[360,'Crimson'] ]; function nameFromHue(h) { h = ((h % 360) + 360) % 360; var closest = colorNames[0]; var minDist = 999; var i, d; for (i = 0; i < colorNames.length; i++) { d = Math.abs(colorNames[i][0] - h); if (d < minDist) { minDist = d; closest = colorNames[i]; } } return closest[1]; } var moodParams = { vivid: { sMin:60, sMax:85, lMin:45, lMax:65 }, pastel: { sMin:30, sMax:55, lMin:70, lMax:88 }, earthy: { sMin:20, sMax:50, lMin:35, lMax:60 }, dark: { sMin:40, sMax:70, lMin:15, lMax:35 }, neon: { sMin:85, sMax:100, lMin:50, lMax:65 }, neutral: { sMin:5, sMax:20, lMin:40, lMax:75 }, warm: { sMin:45, sMax:75, lMin:45, lMax:65 }, cool: { sMin:40, sMax:70, lMin:40, lMax:65 } }; function rnd(min, max) { return min + Math.random() * (max - min); } function buildColor(h, mood) { var p = moodParams[mood]; var s = rnd(p.sMin, p.sMax); var l = rnd(p.lMin, p.lMax); var hex = hslToHex(h, s, l); return { hex: hex, name: nameFromHue(h), rgb: hexToRgb(hex), hsl: hexToHsl(hex) }; } function generateColors(scheme, mood) { var base = mood === 'warm' ? rnd(0,60) : mood === 'cool' ? rnd(180,300) : rnd(0,360); var hues = []; var colors = []; var p, lStep, i, l, s, hex; if (scheme === 'analogous') { var spread = rnd(20, 40); hues = [base - spread*2, base - spread, base, base + spread, base + spread*2]; } else if (scheme === 'complementary') { var comp = base + 180; hues = [base - 15, base, base + 15, comp - 15, comp + 15]; } else if (scheme === 'triadic') { hues = [base, base - 10, base + 120, base + 135, base + 240]; } else if (scheme === 'monochromatic') { p = moodParams[mood]; lStep = (p.lMax - p.lMin) / 4; for (i = 0; i < 5; i++) { l = p.lMin + lStep * i; s = rnd(p.sMin, p.sMax); hex = hslToHex(base, s, l); colors.push({ hex: hex, name: nameFromHue(base), rgb: hexToRgb(hex), hsl: hexToHsl(hex) }); } return colors; } else { for (i = 0; i < 5; i++) hues.push(rnd(0, 360)); } for (i = 0; i < hues.length; i++) colors.push(buildColor(hues[i], mood)); return colors; } var schemeNames = { analogous: ['Gentle Gradient','Soft Horizon','Flowing Tones','Subtle Shift','Harmonic Drift'], complementary: ['Bold Contrast','Opposing Forces','Dynamic Duo','Vivid Split','Charged Pair'], triadic: ['Triple Play','Three Body','Vivid Triangle','Triad in Motion','Color Chord'], monochromatic: ['Single Story','One Note','Tonal Study','Shade Suite','Deep Dive'], random: ['Happy Accident','Wild Mix','Spontaneous','Chaos Theory','Free Spirit'] }; var moodDescs = { vivid: 'Rich, saturated tones full of energy.', pastel: 'Soft, airy hues with a dreamy quality.', earthy: 'Grounded, natural tones from the landscape.', dark: 'Deep, moody shades with quiet intensity.', neon: 'Electric, high-energy colors that pop.', neutral: 'Understated, versatile tones for any context.', warm: 'Sun-kissed hues radiating comfort and energy.', cool: 'Calm, refreshing tones with a serene quality.' }; function psGenerate() { var colors = generateColors(psScheme, psMood); var names = schemeNames[psScheme]; var name = names[Math.floor(Math.random() * names.length)]; var palette = { name: name, description: moodDescs[psMood], colors: colors }; psCurrentPalette = palette; psRender(palette); } function psRender(palette) { document.getElementById('psEmpty').style.display = 'none'; var wrap = document.getElementById('psPaletteWrap'); wrap.style.display = 'flex'; document.getElementById('psPaletteName').textContent = palette.name.toUpperCase(); document.getElementById('psPaletteDesc').textContent = palette.description; var swatches = document.getElementById('psSwatches'); swatches.innerHTML = ''; var i, c, s, info, hex, name; for (i = 0; i < palette.colors.length; i++) { c = palette.colors[i]; s = document.createElement('div'); s.className = 'ps-swatch'; s.style.background = c.hex; s.setAttribute('data-copy', c.hex); info = document.createElement('div'); info.className = 'ps-swatch-info'; hex = document.createElement('div'); hex.className = 'ps-swatch-hex'; hex.textContent = c.hex; name = document.createElement('div'); name.className = 'ps-swatch-name'; name.textContent = c.name; info.appendChild(hex); info.appendChild(name); s.appendChild(info); swatches.appendChild(s); } var codes = document.getElementById('psCodes'); codes.innerHTML = ''; var cell, dot, lb1, v1, lb2, v2, lb3, v3; for (i = 0; i < palette.colors.length; i++) { c = palette.colors[i]; cell = document.createElement('div'); cell.className = 'ps-code-cell'; dot = document.createElement('div'); dot.className = 'ps-dot'; dot.style.background = c.hex; lb1 = document.createElement('div'); lb1.className = 'ps-code-label'; lb1.textContent = 'HEX'; v1 = document.createElement('div'); v1.className = 'ps-code-val'; v1.textContent = c.hex; v1.setAttribute('data-copy', c.hex); lb2 = document.createElement('div')