S01·014Tim Neutkens over Next.js
Deze aflevering gaan we het hebben over Next.js met niemand minder dan de lead maintainer van het project: Tim Neutkens.
Deze aflevering gaan we het hebben over Next.js met niemand minder dan de lead maintainer van het project: Tim Neutkens.
- ▸Hoe je incrementeel naar TypeScript migreert
- ▸Wat Core Web Vitals voor performance betekenen
- ▸Hoe Next.js hybrid rendering (static en dynamic) werkt
- ▸Waarom image optimization meer dan 50% van pagina's uitmaakt
- ▸Hoe je bijdraagt aan open source via Good First Issues
Transcript
Welkom bij aflevering veertien van CodeKlets.
Zoals jullie van ons wel gewend zijn dat we iedere keer wel een beetje iets een beetje
anders doen.
En dat is dit keer ook zo.
En vandaag hebben we een gast co-host, compleet nieuw concept hebben we eigenlijk nog nooit
gedaan.
Dus een co-host die te gast is en waarom doen we dat?
Hebben de rest van de host ruzie met mij?
Dat is sowieso niet aan de orde.
Maar we vinden het vooral belangrijk dat we de tweewekelijke publicatie vasthouden van
de podcast.
Dat is een tip van Randall.
Randall is de host van de prijs winnende podcast met Nerds op tafel.
En die heeft een motto, the show must go on.
Dus kost wat kost moet je gewoon, zij doen iedere week, doen ze een opname, moet
altijd doorgaan.
Dus ze zorgen altijd wel dat er genoeg hosts zijn die de show door kunnen laten
gaan.
Nou, dat advies lijkt mij wel handig om dat op te volgen.
Dus vandaar dat wij dat ik vandaag in ieder geval heb gevraagd aan mijn collega Joost
Mijles om mede host te zijn is voor mij geen onbekende voor jullie misschien wel.
Maar hij is mijn directe collega bij Aviva Solutions.
Maar dat is niet de belangrijkste reden.
De belangrijkste reden is dat hij zelf ook ervaring heeft met Next.js.
Dat is vandaag voor de gast die we vandaag hebben, is dat eigenlijk komt dat we heel
goed van pas.
Dan kunnen we met jou ook wat hele goede inhoudelijke vragen stellen.
Want ja, ik stel soms niet zo heel slimme vragen of ja, nou, dat is misschien wel
goed.
Want niet alle luisteraars die hebben ervaring met Next.js, dus dan ben ik de vertegenwoordiger
van de luisteraars.
Dus dat lijkt me een goede rolverdeling.
Maar goed, welkom Joost.
Ja, dank je wel Saber.
Ja, niemand, tenminste, er zullen zeker wel links en rechts luisteraars zijn die
jou kennen.
Maar zou je zelf kunnen introduceren?
Wat doe jij in het dagelijkse leven als developer?
Ja, we zijn nu drie en een half jaar collega's, denk ik.
In die afgelopen drie en een half jaar heb ik een heel stuk sitecore en commerce
gedaan.
Dat heb ik eigenlijk sinds ik bij Aviva ben gekomen en gespecialiseerd.
Met sitecore, commerce, je kent onze accelerator die we gebouwd hebben met React, bovenop
sitecommerce.
Maar de laatste jaar ben ik steeds meer enthousiast geworden over Jamstack.
En daar komt ook mijn interesse van Next.js vandaan.
Als je dan nog iets verder naar het heden gaat, dan de laatste half jaar, dan worden
we echt diep ingedoken met een nieuw initiatief binnen Aviva, een platform noemen we dat.
En dat is eigenlijk de tegenhanger van DXP, wat sitecore is.
Als je helemaal alles uit de box krijgt, is een platform de manier om een modeware DXP
te hebben.
Bij hem een SaaS-based aanpak, service naar wensen combineert, om daar je oplossingen
uit te kiezen, om daar je platformen modeware samen te stellen.
En in context daarvan zou je op zoek gaan naar wat past nou goed bij ons.
Met het achterhoofd react-stuk kennis wat we hebben.
En toen zijn we uitgekomen bij Next.js, nadat we verschillende dingen vergeleken hebben,
bijvoorbeeld Gatsby.
Daar komen we straks nog wel even op, denk ik.
En dat is in heel kort wat ik doe.
In de laatste tijd ben ik dan naast de Next.js bezig met bezigheden, ben ik met Create
React heb bezig.
Dat is nog een stukje sitecore werk wat ik doe.
Oh, cool.
Nou, dan die kennis komt denk ik al van pas voor vandaag, dus ik verwacht wel heel goede
vragen van je.
Ja, precies.
Maar goed, we hebben vandaag ook een gewone gast die niet helemaal gewoon is, het is
Tim Neutkens.
Tim is de hoofdmaintener van Next.js.
Hij heeft een passie voor het maken van schaalbare applicaties en het verbeteren
van de ontwikkelaarservaring.
Tim was al een bekend gezicht binnen de Versel community voordat hij bij Versel zelf
ging werken.
Verder draagt hij een steentje bij aan Next.js, Micro en MDX.
Tim heeft een sterke achtergrond in e-commerce en CMS oplossingen.
En welkom, Tim.
Hoi.
Dat was ze.
Ik ben stiekem wel trots dat we je te pakken hebben gekregen.
Want andere hosts weten ook dat ik hoop dat ik die jongen van Next.js te pakken
krijg, want ik wil ook echt een keer in de show hebben.
Twee redenen, want onze site is inmiddels met Next.js gemaakt.
Dus ik dacht, dat lijkt wel een goede reden om jou uit te nodigen.
Dus welkom.
Ja, zeker.
En ook Nederland, wat een keer anders is dan anders.
Normaal spreek ik altijd in het Engels op podcasts en zo.
Oh ja.
Ja, ja.
Dan is het normaal een dubbele eer.
Dus ja, wel een internationaal werkveld heb je natuurlijk.
Dus dat gaan we denk ik zo ook wel over hebben.
Ja, de ijsbreker is misschien een groot woord, maar wat we heel vaak vragen aan
onze gasten is van, hoe ben je nou echt begonnen met software ontwikkelingen?
En van welke leeftijd?
Want dat verschilt nog best wel bij mensen.
De ene is echt, Wanderen was echt begonnen vanaf zijn zesde jaar en sommigen zijn
echt, nou weet ik veel, 30's of 35's, dat zijn wat later rollen ze erin.
Maar hoe ben jij begonnen met software ontwikkelingen?
Ja, goede vraag.
Ik ben begonnen met programmeren op mijn 14e, 15e zoiets.
Misschien 16e.
Ik kan het me niet helemaal meer herinneren.
Ik zat in ieder geval op de middelbare school.
En ik was gewoon in vrije tijd dingen aan het lezen over software engineering.
En toen kwam ik uiteindelijk, deed een site teken die heette CodeAcademy.
Daar kon je cursus op doen.
Dat was in, ik denk het eerste of tweede jaar dat CodeAcademy bestond.
Daarvoor waren er niet echt van die hele interactieve platforms waar je kon leren eigenlijk.
Je had zeg maar geen CodeSandbox of Rapelit of wat dan ook zeg maar.
Dus toen kwam CodeAcademy uit.
En CodeAcademy was eigenlijk interactief leren van programmeertalen.
Dus je kon er JavaScript leren of PHP of Python en Java enzovoort.
En ik begon toen met JavaScript.
Dat vond ik zelf heel erg lastig op dat moment.
Het was toen 15 weken ofzo.
En dat kwam ook omdat ik niet direct de resultaten kon zien van de code die je schreef.
En toen kwamen ze met de nieuwe cursus PHP.
Daar had ik al heel erg snel bij van oh wacht.
Als ik hier iets in schrijf kan ik ook meteen in mijn browser zien wat het resultaat is.
En dat hield heel erg met het visueel leren van dingen.
Zeg maar als je iets veranderde dan hoef je alleen met refreshen.
En dan zag je de aanpassing die je had gemaakt live of op een website.
En dat was toen ook heel makkelijk om het live te zetten op een website enzovoort.
Omdat je gewoon het FTP, gewoon een bestandje over sleet en het staat online zeg maar.
Dus zo ben ik eigenlijk begonnen.
En toen eigenlijk steeds verder erin gegaan.
Dus steeds meer persoonlijke websites gaan maken enzovoort.
Gewoon om het te proberen.
Niet eerst met heel veel druk erachter van oké ik wil dit persoonlijk.
Of wat dan ook. Ik vond het gewoon leuk om te doen.
En toen uiteindelijk ook een paar websites voor het bedrijf van mijn ouders.
Meegeholpen met maken enzovoort.
Mijn ouders hebben een tuincentrum.
En die gingen steeds meer online.
Dus hadden niet eens een webshop op dat moment.
Dat was in, ik kan me niet eens meer herinneren welk jaar.
Maar echt heel lang geleden, tien jaar geleden ofzo.
En ze hadden eigenlijk zeg maar.
Een paar websites en die websites waren echt super lang geleden gemaakt.
Dat is een grote table zeg maar.
Table layout en alles stond daarin.
En dat was gewoon plat HTML met een klein beetje PHP.
En die gingen toen update enzovoort.
Soms stonden de prijzen van producten.
Ja, dan moest je die even aanpassen en dat soort dingen.
Dus dat begon ik steeds meer te doen.
Dat was wel grappig.
En toen uiteindelijk zijn ze ook begonnen met het bouwen van een webshop.
Met Gentoo op dat moment.
Daar hebben ze een webshop op gezet.
Timeplantenwinkel.nl.
Als je ooit planten zoekt, keer daar terecht.
Shout out.
En die webshop was gebouwd met Gentoo.
Super ingewikkeld.
PHP framework.
Zeker voor een zestienjarige.
En dat ging allemaal wel goed op zich.
Toen...
Ik studeerde op dat moment.
Want ik had mijn VMBO afgemaakt.
En toen ging ik naar de MBO toe.
MBO-ICT-beheer.
ICT-beheer is helemaal geen programmeren.
Dat is alleen maar netwerken aanleggen.
Software installeren.
Geautomiseerd uitrollen van complete netwerken.
Dat soort dingen.
Alles wat niet programmeren is.
Maar gewoon DevOps-achtige dingen.
Alleen dan interne netwerken.
En terwijl ik op die opleiding zat.
Toen werd ik ook heel erg motiveerd door mijn mentor.
Die...
Maar ook omdat ik had gezegd dat ik programmeren wel interessant vond.
Enzovoort.
Van hey, je kunt ook dit en dit proberen.
Enzovoort.
Dus die hield me daar heel erg mee.
Met van oké, dit kun je nog meer leren.
Binnen software engineering en software development.
Enzovoort.
Zelfs...
Ook al was dat niet een onderdeel van de opleiding zelf.
Ik kreeg er geen punten voor.
Ik kreeg eigenlijk helemaal...
Daar had ik helemaal geen nut aan eigenlijk voor die opleiding.
Maar het was heel interessant.
En ik had eigenlijk heel veel geluk dat die mentor toen...
Dat ook gewoon, zeg maar, motiveerde eigenlijk.
En daardoor begon ik steeds mijn websites te maken.
We hadden ook een soort vak.
Dat heette Service Desk.
Waarin je eigenlijk het bestaande bedrijfsleven...
Of zeg maar, goede doelen enzovoort.
Die dus een website willen en alleen gewoon geen geld hebben...
Om die websites te laten maken.
Die kwamen dan bij de school aan.
Bijvoorbeeld van, hey, we willen eigenlijk wel een website.
En dan konden wij dat doen met WordPress enzovoort.
Nou, studenten kunnen op zich heel simpel met WordPress doen.
Dus dan leer je meer over hoe STP werkt en dat soort dingen.
Dat had ik al een keertje gedaan.
Dus daar...
Dat hielp heel erg met ontwikkelen enzovoort.
En dan in het tweede jaar van die MBO-opleiding, dat was twee jaar lang...
Was het, zeg maar, vier periode stage lopen en één periode nog naar school.
En die vier periode was gewoon en één stuk doorwerken bij een bedrijf.
En toen had ik eigenlijk het geluk dat mijn vader heel toevallig bij een of andere event van de punk iemand anders tegenkwam.
Die toevallig heel vlakbij woonde en een klant van het bedrijf was.
Van de tuincentrum dus.
Alleen heel toevallig.
En die was aan het vertellen tegen mijn vader.
Ja, ik heb een agency waar dus een aantal developers hebben zitten die elke dag bezig zijn met het bouwen van websites.
En toen zei mijn vader dus van oh ja, dat vindt mijn zoon vast interessant enzovoort.
En die is nog op zoek naar een stageplek.
Is dat misschien iets?
En ik zat natuurlijk op een ECT wereldopleiding.
Dus dat is eigenlijk niet echt, dat matcht niet helemaal met een website die websites bouwt.
Maar uiteindelijk na heel veel aandringen enzovoort had ik uiteindelijk toch een sollicitatiegesprek voor die stage zeg maar.
Dus daarheen gegaan, verteld wat ik allemaal gedaan had.
Die webshop gebouwd enzovoort.
Heel veel met WordPress enzovoort.
En ja, dus ik had wel de verwachting van ja, dat gaat gewoon niet lukken enzovoort.
En toen een paar dagen later, toen belde de leidegevende van die club toen op van hey, we willen het wel proberen met je.
En zeg maar, de eigenaar van die agency had ook nog een ECT-beheerbedrijf daarnaast.
Dus die had uiteindelijk al zo'n bedacht van ja, als het niet lukt, dan kan je altijd nog daar gaan proberen zeg maar.
Als ECT-beheerder.
Maar uiteindelijk is dat niet gebeurd gelukkig.
Dus ik was daar gewoon begonnen en ja, gewoon zes maanden lang stage gelopen.
Superleuke tijd met iedereen daar.
Gewoon superveel leren van al die mensen die gewoon in de praktijk werken.
Ja.
Waardoor dat je gewoon heel veel dingen leert die je daarvoor nog niet kende of wel vanweest alleen het niet gebruikt had enzovoort.
Bijvoorbeeld ja, source control, git bijvoorbeeld.
En een heleboel andere dingen, ticket systemen enzovoort.
En toen ik denk een maand na dat ik gestart was daar, toen kwam die eigenaar van de agency naar mijn desk toe.
En die zei van hey, heb je een momentje?
En die nam me toen mee naar een conference room.
En die zei van hey, heel veel mensen binnen het bedrijf die zeggen dat we je aan moeten nemen, want je doet het heel erg goed schijnbaar.
Dus en ik dacht dat ik iets verkeerd had gedaan ofzo, want ik werd dus even apart genomen, zeg maar.
En dus zei die ja, heel veel mensen die vinden dat ze je aan moeten nemen als je klaar bent met school enzovoort.
Na die stage was ik klaar met school, zeg maar.
Met MBO in ieder geval.
En ik had eigenlijk het doel dus om dan door te gaan studeren en gewoon software engineering ofzo te gaan doen.
Die opties had ik toen ook nog allemaal, zeg maar.
Dus ik had eigenlijk de optie tussen, want dan zeg je ja, denk er maar over.
Je kunt ook zeggen ik ga door studeren nog vier jaar en dan ben je op je twintigste klaar en that's it.
Dat kan natuurlijk ook.
En toen heb ik met mijn ouders overlegd enzovoort.
En mijn ouders zijn ondernemers, dus die vinden het ook heel erg dat zeg maar je leert heel erg veel door te werken en gewoon daar heel erg op te focussen.
Het is een heel erg goed overleg met ouders enzovoort.
Want toen was ik nog zeventien overigens om het in een context te plaatsen.
En toen zei ik eigenlijk van ja, oké, ik heb nu dus een keuze tussen.
Ik ga werken en ik ga heel veel ervaring opdoen.
Of ik ga nog vier jaar naar een software engineering of media design opleiding of wat dan ook.
En dan krijg ik waarschijnlijk heel veel van de dingen die ik al heb geleerd door te werken.
En dan ga je er eigenlijk alleen maar heen voor het papiertje oké je hebt hbo niveau zeg maar.
Wat ook mogelijk te bepalen is door gewoon heel veel werkervaring te hebben en te laten zien van oké dit zijn alle projecten die ik heb gedaan.
En deze mensen die die vinden dat ik dit niveau heb zeg maar.
Dus uiteindelijk koos ik ervoor om dat aanbod aan te nemen.
Dus dan ga ik daar gaan werken bij die agency voor ongeveer 2,5 jaar ofzo.
En terwijl ik daar werkte, kom ik meer aan aanraken met open source.
Dus ik had veel, niet eens veel contact met mensen in open source of wat dan ook.
Ik had gewoon in mijn vrije tijd veel tijd over en ik vond programmeren heel erg leuk.
Dus ik was naast mijn baan die al veertig uur per week programmeren was.
In principe was ik ook nog aan het programmeren.
En toen kwam ik dus uiteindelijk uit bij een project dat binnen de Magento community relatief populair was voor front-end tooling.
Dat was een soort package over gulp en nog wat andere tooling heen om eigenlijk het makkelijker te maken om front-ends te bouwen met Magento.
Dus daar ben ik toen mee kunnen helpen. Heel veel PR's gedaan enzovoort.
Omdat we dat ook gebruikten bij de agency waar ik werkte.
En toen daarna kwam ik op Hacker News, dus nieuwspunt Y Combinator.
Daar kwam ik een project tegen dat heette Hyper.
Hyper is een terminal die gebouwd is op werktechniek.
Die is gebouwd door Vercel.
Dus dat was eigenlijk de eerste aanreking die ik had met Vercel.
Ik had toen nog site, dat mocht je dat kennen.
En toen kwam ik in aanraking met T-Community.
Dus ik kwam in een Slack.
Ik was een van de eerste 100 mensen die in die Slack zat van Vercel.
En dat was op het moment dat ze echt nog maar met z'n vier of vijven waren binnen Vercel.
Dus toen begon ik eigenlijk...
Ik vond het wel een interessant project.
Er was dus een terminal gebouwd met webtechnieken.
Dus met Electron.
Alle regels waren HTML enzovoort.
Styling was gewoon CSS.
En het gebruikte React.
Wat ik op dat moment nog niet echt gebruikt had.
En Redux voor de state management.
Dus elke karakter dat je typte was een Redux action die getriggerd werd.
En als je dan op Enter drukte, dan werd er een hoop states doorgepast naar een terminal emulator.
En dat was allemaal interessant.
Die approach die we hadden op dat moment, dat was niet de beste approach voor een terminal.
Dus later is dat allemaal gefixt door een andere soort library te gebruiken.
Die eigenlijk alles in canvas doet.
Dus als je typen dan is het gewoon een canvas waar dingen op gerendeld worden.
Dat veel meer performant is.
Dat hele stukje techniek zit ook in VS Code bijvoorbeeld.
VS Code is een terminal.
En VS Code is ook een Electron app.
Dus dat was wel interessant.
Dus daar had ik heel veel aan gecontribuut.
Ik zat in die Slack.
Ik praatte heel veel met verschillende mensen.
Heel de community die ze op dat moment hadden.
En dat was gewoon heel interessant voor mij.
Omdat ik heel veel aan het leren was van die mensen.
Dus dat was wel gaaf.
En toen uiteindelijk kreeg ik wat contact met de CEO van Versel.
Kishen Marouche.
Op dat moment ken ik hem nog niet helemaal goed.
Dus toen zorgde ik hem een keer op.
Toen bleek dat hij sokken-taillouden had gemaakt.
Monkoes enzovoort.
Monkoes is toch die ORM voor...
Ja, voor MongoDB.
En dat soort dingen.
Dus hele grote open source projecten enzovoort.
Was een van de early adopters van Node, zeg maar.
Dus heel veel van de packages in de ecosystem waren gebouwd.
Vanuit het bedrijf dat hij geco-founded had.
LearnBoost.
En toen leerde ik hem een beetje beter kennen enzovoort.
En toen zei hij eigenlijk van...
Oké, ik heb gezien dat je heel veel contribueert aan Hyper.
We zijn bezig met een nieuw project, Next.js.
En we zouden er best wel wat hulp bij kunnen gebruiken in open source, zeg maar.
Dus ik zei oké, kijk wel een keer naar.
En toen bleek dat dat heel erg zoals PHP was.
Dus je maakt eigenlijk een pages directory.
En in die pages directory kun je dus JavaScript files gooien.
En dat is eigenlijk net zoals met PHP.
Waar je eigenlijk dus een index punt PHP maakt.
En dan begin je het code te schrijven in PHP.
En dan zie je meteen wat er eigenlijk gebeurt op het scherm enzovoort.
Dat was met Next ook zo.
Maar dan voor Node.js en React.
Dus je maakt een index.js.
Daar exploiteer je een React component.
En dat React component is meteen gerenderd op je scherm.
Maar zelfs op dat moment al.
Dus zeg maar, voordat ze Next 1.0 had uitgebracht.
Was het al met HotModule Replacement.
Dus in plaats van dat je moet refreshen.
Kon je dus een aanpassing maken.
Opslaan en dan zag je meteen op je scherm.
Zonder dat je moet refreshen.
Of hoeft te refreshen.
Dus dat was wel interessant.
Dus dat was wel best wel een goede developer experience.
Alles stond wel nog in de kinderschoenen op dat moment.
Zeg maar, als je nu terugkijkt.
Dat is wel vier jaar geleden voor context.
Maar er was dus wel veel potentie.
In ieder geval dat is wat ik erin zag.
Dus heel veel potentie voor oké.
Als je met React werkt.
Dan is dit wel echt een goede oplossing voor het.
Zeg maar niet hoeven nadenken over oké.
Welke routing oplossing ga ik gebruiken.
Of welke compiler ga ik gebruiken.
Hoe moet ik Webpack installeren.
En opzetten enzovoort.
Dat is wat toen nog echt iedereen was handmatig aan het doen.
Dus iedereen zette handmatig zijn Webpackconfig op.
En dan moesten ze daarna nog Babel configureren.
Je moest uitzien te vogelen welke transforms nodig waren.
Om een React Compiler goed te compileren.
En als je dat dan uitgevogeld had.
Dan bleek negen van de tien keer dat je toch niet alle transforms goed had staan.
Waardoor je in productie niet gecompileerde code kreeg.
Dus dat die niet geminefied was enzovoort.
Dus ik zag dat Next daar heel erg mee hielp.
Door eigenlijk alles te standardiseren.
Dus alles dat er al in.
Als je gewoon een app wilt gaan bouwen.
Wat is het voor.
Want dat had ik bijvoorbeeld in die tijd bij die agency gezien.
Als er geen standaard is.
Over dit is de manier waarop iedereen het gaat doen binnen het bedrijf.
Dan heb je dus elk project een andere soort config.
En over de lange termijn geeft dat heel grote problemen.
Omdat ze dan elke keer of net gaat er iemand weg.
Dus iemand die gaat bij een ander bedrijf werken.
En die heeft dan net alles gemaakt binnen het bedrijf.
Of ze zijn vergeten hoe dat de config werkt.
Omdat er bijna geen documentatie is.
En dat soort dingen.
Dat is puur, dat is niets.
Omdat, zeg maar, dat is niet dat het zo is alleen bij die agency.
Dat is bij elk bedrijf dat ik tegenkwam.
Op conferences, bij meetups enzovoort.
Die vertelden allemaal hetzelfde verhaal.
Oké, ja, we zijn niet blij met onze config.
We gaan migreren naar deze applicatie en deze compiler.
En dan gaat het misschien wel opgelost zijn of wat dan ook.
Alleen, het kan er eigenlijk altijd op neer dat ze gewoon, zeg maar,
te weinig tijd hadden om dit allemaal uit te bouwen, zeg maar.
Zeker bij agencies waar je, zeg maar, projecten aan het bouwen bent.
Voor, zeg maar, de eindgebruikers of de eindklanten.
Die veelal, zeg maar, onderschatten hoeveel werk dat dan is, zeg maar.
En dat documenteren dan eigenlijk zeggen van oké, jullie bouwen die applicatie.
Jullie moeten ervoor zorgen dat die schaalbaar blijft enzovoort.
En dat stukje documenteren is voor jullie rekening, zeg maar.
Ja, precies. Maar dit was ook een beetje, even kijken.
Ik was niet per se helemaal in het begin met React betrokken,
maar toen ik daar een beetje bij inrolde, dat was ook vanuit Aviva,
vanwege ons commerce platform.
Ik deed toen daarvoor Angular.
Ja goed, ik ben geen Angular fan, dat weten mensen wel.
Toen ben ik React gedaan. Het was de eerste als je van,
hey, wat is React nou? Doe die zo raar, een beetje gekke JSX.
Het kwartje viel niet meteen. Toen het eenmaal viel,
toen ik er een beetje mee ging spelen,
toen je merkte, toen was het nog dat je starter kits had, zeg maar.
Dus dat je echt gewoon iemand had dan nagedacht
over een bundel van configs voor, wat was het toen,
gulp, krunt soms ook nog.
En als je geluk had ook een goede config voor webpack.
En dan kon je dan een GitHub klonen, daar kwam het blijkop neer.
En dan kon je mee starten.
En dat was ook in die tijd,
Joe Man was ook volgens mij al een beetje,
dat moest het er ook zijn geweest.
Dus dat was eigenlijk de beginfase.
Ja, precies.
Dat is vier jaar geleden of zo, denk ik toch, Saber?
Ja, zoiets.
Ja, net als vier jaar geleden.
Ja, klopt.
Ja, maar het is echt bizar,
want eigenlijk is vier jaar geleden niet eens zo heel lang geleden.
Ja, dat lijkt echt heel lang geleden.
Er is echt veel gebeurd.
Maar toen hoorde, ik denk dat ik,
en dat durf ik echt niet te zeggen,
dat ik Next.js zo half heb gezien liggen,
zo van oké, één van de vijf, zes opties,
dat ik dacht van oké, wat is nou de goede?
Ja, ik weet, ik kan hier niet uit kiezen.
Ja, ik had er wel echt tijd voor om daar echt helemaal in te duiken.
Ik ben in principe niet de front-end developer,
maar gewoon full-stack.
En dan is het, het moet meteen werken, als het ware.
Ja, dat hielp dan, zou dan helpen.
Dus op dat moment was het, er was best veel reurings.
Laat ik het zo zeggen.
We hadden volgens mij Next.js, Gatsby,
en zo nog tien Starter Kids en Create ReactApp.
Was het toen al wel of niet? Dat weet ik niet eens.
Ja, in 2016 was een interessante tijd.
Er waren eigenlijk, zeg maar, Create ReactApp was toen net aangekondigd ofzo,
voor als ik me kan herinneren.
Webpack was Webpack 1, Webpack 1.0, dus nu Webpack 5.
De bebel was bebel 6 of 5 zelfs nog.
En er waren gewoon heel veel losse boilerplates, zoals je zei.
Heel veel mensen die het zelf instelden omdat ze die boilerplates niet konden vinden.
Ik was daar onder andere schuldig aan.
Er waren gewoon heel weinig, er waren heel veel keuze.
Alleen het was heel lastig om die keuzes te maken.
Gatsby op dat moment was nog niet zoals je het vandaag kent.
Next was nog niet zoals je het vandaag kent.
Wat wel handig is bij Next is dat heel veel van de core primitives,
dus de dingen die we vanaf het begin in het framework hebben gezet,
zijn nog steeds hetzelfde.
Dus vrijwel alle top-level APIs,
dus de pages map, de link API, de router,
alles is nog ongeveer hetzelfde als het was in Next 1.
En het meeste wat we hebben gedaan is eigenlijk de onderliggende implementaties verbeterd
en nieuwe features erbij gezet.
Dus heel veel dingen om schaalderheid van je applicatie te vergroten,
om je code te optimaliseren.
Dus te zorgen dat de code die je schrijft
minder, zeg maar, bundlesize oplevert dan, zeg maar, vier jaar geleden.
En tijdens dat alles proberen om zoveel mogelijk backwards compatibility te hebben.
Dus, zeg maar, apps die in Next 1 zijn geschreven,
die zijn grotendeels compatible met Next 10.
Next 10 is wat we vorige maand hebben gereleased.
Ja, precies.
Daar komen we zo op.
Niet dat ik je helemaal wil afremmen,
maar voordat we dan naar Next.js gaan, had ik nog wel...
Vind je dat je vooral in front-end of back-end of ben je full-stack?
Ja, dat is natuurlijk een beetje een populaire term,
maar waar opereer je en wat vind je zelf?
Want volgens mij, voor mij, als je nu aan iemand vraagt,
ja, dat kom ik toch op, Next.js,
maar hoe positioneer je Next.js?
Dat is niet alleen maar front-end.
Dat is ook eigenlijk het back-end-deel.
Maar waar word je heel enthousiast van?
Juist van de front-end of van de back-end?
Ja, het is voor mezelf, zeg maar,
ik kan mezelf niet goed classificeren
en dat zou dan full-stack-ish moeten zijn of zo.
Ja, precies.
Want ik trouwens, ja, er is er veel over te zeggen.
Ja precies, dat weet ik, ja.


