Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Vibecoding 101 @ Esade
Search
Nicolas Grenié
January 22, 2026
Technology
62
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Vibecoding 101 @ Esade
Vibecoding masterclass given at Esade on Jan 21 2026 with Esade Entrepreneurship club
Nicolas Grenié
January 22, 2026
More Decks by Nicolas Grenié
See All by Nicolas Grenié
How we turned PMs into vibecoders
picsoung
0
76
Developers are the new buyers: why developer experience matters
picsoung
0
140
The GPT Odyssey: When Code becomes Conversations
picsoung
0
110
Desarrolla un GPT: Lecciones y Aprendizajes
picsoung
0
51
Empowering Customer Success Operations With No-code Flows
picsoung
0
100
How developer relations can boost your partnerships program
picsoung
0
77
Developers love webhooks, you should too
picsoung
0
160
Duct tape of entrepreneurs
picsoung
0
100
API 101, What, Where, When
picsoung
0
110
Other Decks in Technology
See All in Technology
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
250
When Does a Local Qwen Start to Break
morshoto
0
190
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
600
2026-09-04 SRE Tech Talk #15 怠惰なTerraform / Lazy Terraform
masasuzu
0
230
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/6 - 2026/8
oracle4engineer
PRO
0
120
OpenTelemetry eBPF Instrumentationの舞台裏 / Behind the Scenes of OpenTelemetry eBPF Instrumentation
ymotongpoo
1
260
Bet AI Day 2026丨AIを「使う」から、AIが「働く」へ ― LayerXが進める「組織AI」の社会実装
layerx
PRO
3
2.8k
GuardDuty 検知対応を DevOps Agent で効率化しようとしている話 / GuardDuty Investigations with DevOps Agent
masahirokawahara
1
330
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
140
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
310
Sigmaユーザーのための有用リソース一挙公開 & Sigmaで使えるMCP #sigma_ucj /useful-resources-for-sigma-computing-users-and-mcps-with-sigma
shinyaa31
0
160
Bet AI Day 2026丨AIによって本質に戻るシステムリスク管理
layerx
PRO
0
1.3k
Featured
See All Featured
So, you think you're a good person
axbom
PRO
2
2.1k
Amusing Abliteration
ianozsvald
1
290
We Have a Design System, Now What?
morganepeng
55
8.3k
My Coaching Mixtape
mlcsv
0
310
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
560
Site-Speed That Sticks
csswizardry
13
1.5k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
720
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
Transcript
Vibecoding 101 ESADE Jan. 2026 Nicolas Grenié Developer
Advocate @picsoung
Nicolas Grenié Developer Advocate SLNG.ai @picsoung
None
40k+ icons 15k users #2 ProductHunt Top 5 Lovable
Shipped 2000$ of revenue
Other projects Contractiontrack.com imsometal.com my-bingo-card.com
Goal: Jump in the world of building Remove jargon
How does an app work?
It’s has to be written in code Different programming languages
for different things
None
None
None
Client Server Applications
Client Server Applications
Client Server Applications
You first develop locally Then you deploy for the world
to see
Application Programming Interface @picsoung @picsoung
@picsoung @picsoung UI
UI @picsoung @picsoung
What is going to happen? @picsoung @picsoung
@picsoung @picsoung
👋 You have GIF? @picsoung @picsoung
👍 Sure, here @picsoung @picsoung
That was an API 🎉 @picsoung @picsoung
@picsoung @picsoung APIs Are servers Talking to other servers
@picsoung
Examples @picsoung
@picsoung
@picsoung
@picsoung
Programming is like ordering at Chipotle @picsoung
There is an API for that! @picsoung
Let’s Call Some APIs @picsoung
https://api.imgflip.com Memes API! @picsoung
Memes API! @picsoung
Step 1: Read documentation @picsoung
Step 2: Call the API In the browser In the
terminal Using an App
🎁 Debug APIs outside of your code
JSON data format @picsoung { "success": true, "data": { "memes":
[ { "id": "61579", "name": "One Does Not Simply", "url": "https://i.imgflip.com/1bij.jpg", "width": 568, "height": 335, "box_count": 2 }, { "id": "101470", "name": "Ancient Aliens", "url": "https://i.imgflip.com/26am.jpg", "width": 500, "height": 437, "box_count": 2 } ] } }
@picsoung response = { "success": true, "data": { "memes": [
{ "id": "61579", "name": "One Does Not Simply", "url": "https://i.imgflip.com/1bij.jpg", "width": 568, "height": 335, "box_count": 2 }, { "id": "101470", "name": "Ancient Aliens", "url": "https://i.imgflip.com/26am.jpg", "width": 500, "height": 437, "box_count": 2 } ] } } JSON data format
@picsoung response.success { "success": true, "data": { "memes": [ {
"id": "61579", "name": "One Does Not Simply", "url": "https://i.imgflip.com/1bij.jpg", "width": 568, "height": 335, "box_count": 2 }, { "id": "101470", "name": "Ancient Aliens", "url": "https://i.imgflip.com/26am.jpg", "width": 500, "height": 437, "box_count": 2 } ] } } JSON data format
@picsoung response.data { "success": true, "data": { "memes": [ {
"id": "61579", "name": "One Does Not Simply", "url": "https://i.imgflip.com/1bij.jpg", "width": 568, "height": 335, "box_count": 2 }, { "id": "101470", "name": "Ancient Aliens", "url": "https://i.imgflip.com/26am.jpg", "width": 500, "height": 437, "box_count": 2 } ] } } JSON data format
@picsoung response.data.memes { "success": true, "data": { "memes": [ {
"id": "61579", "name": "One Does Not Simply", "url": "https://i.imgflip.com/1bij.jpg", "width": 568, "height": 335, "box_count": 2 }, { "id": "101470", "name": "Ancient Aliens", "url": "https://i.imgflip.com/26am.jpg", "width": 500, "height": 437, "box_count": 2 } ] } } JSON data format
@picsoung response.data.memes[0] { "success": true, "data": { "memes": [ {
"id": "61579", "name": "One Does Not Simply", "url": "https://i.imgflip.com/1bij.jpg", "width": 568, "height": 335, "box_count": 2 }, { "id": "101470", "name": "Ancient Aliens", "url": "https://i.imgflip.com/26am.jpg", "width": 500, "height": 437, "box_count": 2 } ] } } JSON data format
@picsoung response.data.memes[0].url { "success": true, "data": { "memes": [ {
"id": "61579", "name": "One Does Not Simply", "url": "https://i.imgflip.com/1bij.jpg", "width": 568, "height": 335, "box_count": 2 }, { "id": "101470", "name": "Ancient Aliens", "url": "https://i.imgflip.com/26am.jpg", "width": 500, "height": 437, "box_count": 2 } ] } } JSON data format
Security? @picsoung
@picsoung API Key oAuth
Advantage for API provider @picsoung Who is calling the API
Charging for API usage Turn off bad users Restrict access to your own data
Let’s try @picsoung Boilerplate Solution
oAuth @picsoung
Oauth Scopes @picsoung
Webhook @picsoung
Webhook @picsoung Ping me when something happens
Vibecoding vs. AI assisted coding? @picsoung
@picsoung vibecode
@picsoung
@picsoung
@picsoung Describe the app and its features
@picsoung One stop prompt Iterative process
@picsoung Use ChatGPT to write the PRD (Product Requirements Document)
@picsoung Or images
@picsoung
@picsoung
@picsoung
@picsoung
@picsoung
@picsoung look at the current UI for the prompt enhancer,
It feels cramped. Help me simplify it, remove clutter.
@picsoung
Share documentation and code snippets @picsoung
AI is an intern Treat it as such @picsoung
Challenges @picsoung
SEO @picsoung
SEO @picsoung Ask to create sitemap.xml robots.txt Llms.txt Opengraph tags
Backend @picsoung
@picsoung 100 credits ($25 worth) Code: ESADE