Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Vibecoding 101 @ Esade

Vibecoding 101 @ Esade

Vibecoding masterclass given at Esade on Jan 21 2026 with Esade Entrepreneurship club

Nicolas Grenié

January 22, 2026

Transcript

74 slides
  1. 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 } ] } }
  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
  3. @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
  4. @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
  5. @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
  6. @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
  7. @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
  8. Advantage for API provider @picsoung Who is calling the API

    Charging for API usage Turn off bad users Restrict access to your own data
  9. @picsoung
 look at the current UI for the prompt enhancer,

    It feels cramped. Help me simplify it, remove clutter.


More Decks by Nicolas Grenié

Other Decks in Technology