Youknowlikeit's in a totallyinourhandswiththeexperienceofusing a website.
It's likeperformancethat's onfrontanddevelopers, primarily a bigchunkofpurpose, a frontofdevelopmentsituation, allofexcessivepeoplecan.
YoucanhavespecialistslikeThinkaboutyou X andwireframestuffanddoresearch.
Buttheputtingitinto a websiteisallfromdevelopersjustlikeaccessibilitythat's infrontanddevelopershandswiththeexecutionof a designandintegratingtheanimationsandinteractionsandallthatstuff.
That's allfrontanddevelopmentwork.
That's incredible.
Wehavesomuchworktodoalreadyfrontanddevelopersthatyoucanmake a sweetcareeroutofitandlotsofpeoplearedoingitand I loveit.
I'vedoneitand I justthink, Wow, what a cooljobofthebestjobintheworldbeing a friendanddeveloperon.
There's a certainskillsetthatcomesalongwiththejob.
Soifyou'relike a friendofdeveloperlike I gotthis, I candothedesignit.
I candothe u X forit.
I canbuildtheform I canthinkaboutstates I coulddoallthiswork, Butatsomepoint, myfrienddevelop, I'm doneand I gottakickitoverthefencetosomebodywhocould, like, gothelastmileandmakeitdotheactualthingofsending a textmessage.
Knowif I willnotrunyourPHPfunctionCodepenprojectswillnotrunyourknowJavascriptyet.
SoButwhywouldyouchoosethosethings?
Becauseit's supercheap.
It's superfast.
It's cdnedge.
Don't wecallit a CD?
Endsedge?
No, I don't knowwhythere's you.
They'resupersecure.
There's nodatabasetobreakinto.
There's nofilepermissionstosetthatyougetups.
HTMthehttpsthatyoudon't havetofrickindealwith.
It's such a pain, yetthey'rejustveryfrontanddeveloperfriendlyplacestoputyourcode.
It's a fundamentalkindofconceptofthisjamstackstuff.
That's whereourrecipewebsitelives.
Sothat's whywedon't have a placetorunourlittlefunctiontotalktoJulio.
Solet's serveEarlessupserverliftitupthiswebsite, which I havenoaffiliationwithoranything.
ItisjustIthelpedmeunderstandwhat a cloudfunctionis, somaybethiswillbeusefultoyou, too.
It's calledWebtaskdotio.
It's a littlebitlikecodepennantthatit's aneditorinthebrowserso I canopenupWebtaskandthatcanactuallyeditthatcode.
And I canmake a function.
Sohere's just a functionthattakessomedata, andwhenit's donedoingwhateverit's gonnado, itcalls a callbackinreturnsthatdatawhat's coolaboutwhathassecondtestitrightinthere, compressthatrunbutton, it'llrunthatfunction.
Sohere, I'm gonnapost.
I'm gonnafakeposttothispieceofcode, and I'm gonnapassitsomeformdata, food, bar, whatever.
Hittherunbuttonand I canseethatitreturns.
I canevenconsoledoubtlogsstuffinthere, anditreturns a littlepieceofJasonformetouse.
Cool.
Sonow I havethislikepieceofnodethat I'm executingnow, uh, butthatnoteisuseless.
Thenodecode I wantis I'm gonnajustgocopyandpastethemcrapoutoftheGiuliodocksbecausethat's how I needtosend a textmessage.
Youknow, there's some a P I kestuffinthere, and I'm justgonnaThat's theirdocumentationforhowtosend a textmessage.
UmandthenWebtesthas a placetokeepyoursecretsifyouwantto, sothattheworldkindofcan't seethem.
Butcrucially, theygiveyou a u R l tohititthatthey'vegiveyouthat.
Now I have a girltorunmyfunction, whichisgreat.
Now I canuseitandthisiscoololdschoolweb.
I canusethisfunctionwithnotnoclientsidejavascriptatall.
Youjusthave a form I'm gonnaposttothatgirlthattheyjustgavemeon.
I'm gonnaaskherphonenumbertosendittoandjustpassitsomevaluetosendorwhatever, andithasthesubmitbuttonandthat's it.
So I canrunthatonCodepenisjust a That's it.
There's noCSSorJavaScriptinvolvedhereatall.
I justtypeinmyownphonenumberthereandnevercallme, and I'm justhavingitbarfoutside.
But I'm youknow, I'm inMacOS, so I havemymessagesetuporwhatever, andit's working.
It's hittingtwiliowiththatdata, andit's sendingme a textmessage.
I putthattogether, and I havenobusinessdoingthat, whichisgreat, andsoyouandyoudon't evenhavetohaveitspitoutcrap.
I couldhavetoldthatnotefunctiontoredirecttosomesuccesspageorsomethinglikethat.
It's probablymorelikely, though, thatyou'd haveaneventlisteneronyourformandyouwhateverposttothetothegirlthat I saidandyousenditsomedataandthenwaitfortheresponseanddofancyanimationsonyourpageorwhatever.
That's probablyamorelikelyscenario, butit's kindofcoolthatyoucandoitwithprogressiveenhancementto, andthisiswhat I did.
Youknow, I made a dumblittlerecipewebsitewhereyoucantypeinthephonenumberandyougettheselovelylittlerecipeforforoatmealcookies.
Sothat's totallypartofGemStackandserverlis.
Butthisisthiscangetharderandeasierthanthat.
Here's anexampleofgetting a loteasier.
Let's sayyouneed a formonyourwebsitethatsomethingelse a contactformorsomething.
I needbackendcodetobeabletodealwiththat.
Sowhatdoyouusedto?
We'regonnahavetobright a cloudfunctionandprotectour A P I keysmovable.
Sure, youcouldn't doitlikethat.
Butyoudon't haveto, becausethisis a superoldneedontheWeb.
Likepeoplewhoneededtoputformsonwebsites.
There's beenstartupstohelpthemdothatforever, sothere's Googleformsorwhatever, andWufuandtype, formandformStackandJohnformThere's a 1,000,000 APStodothis.
I thinkyouknowasoldasthescene.
Thisis a partofjamsact, too.
Ifyouaskme, thismeanssomebodyelsedealwithmyforms.
Letsomebodyelse's serversandstuffthatspecializeinthatbepartofthiswebsite, and I don't needanybackandlanguagesoranythingelse.
Youknow, I thinkthat's partofthisstoryaswell.
I cantake a wolfofformandhaveitworkrightoncodepen.
It's justcopyandpastecode, andthat's a fullyfunctional, paymentenabledform.
But I couldhostanywhere.
Butthereis, youknow, MauralittlebitMaurjammedstak e maybeisthisideathatyoucouldjustbringyourownHTMLformandthenjustpointtheactionattributesatoneoftheseotherserviceislike a newbreedofformprocessors.
BrowsershavethisnewthingontheWebpayment, a p I andthewholepointofitisn't toelikethey'renotactuallyprocessingpaymentsforyou?
Whatbrowsersairtryingtogiveyouhearisfreeyou Y u x forcheckingoutfrompageslikethey'llbeyourshoppingcartandyou'readdresscollectorandcreditcardinformation.
Generally, whenwe'regonnaput a commentformonitwherewecollecttheirnameandtheiremailandwhatcommentandwhenyouclickthebutton, it's gonnaturninto a pieceof, like, structuredata.
So, for, like, 100,000 tile, ifwehitourcloudfunctiontosendanemailah, 100,000 timesanditranforhalf a secondeachtime, whichiswaylongerthanitwilltaketorunandweuseis 512 megabytesaround, whichiswaymorethanit'lleverneed.
CoolAndthen, like I don't know, it's weirdtohaveourclientbeinchargeofcallingalltheseAPeyesdirectly.
Whydon't wewrite a cloudfunctionthat's likejust a notifyairandwesendsayOkay, notify.
I wantyoutosendanSMStothislocation, Andsoifitcankindofbelike a littlerouterforallthesethingsjusttogiveourselves a littlebitofabstractioninhere, andallof a suddenwe'rethinkingwe'relikefreakinarchitectsallthesuddenwehaven't learnedanything, really.
Butweallof a suddenwe'relikebackindeveloperstoo, youknow, whichisgreat.