Build a shopping app with Azure Static Web Apps

Published Jul 13 2021 07:27 AM 2,183 Views
Microsoft
Build a shopping app with Azure Static Web AppsBuild a shopping app with Azure Static Web Apps

If you're looking for tips and best practices on how to create and deploy fully featured web apps with Azure Static Web Apps, we created a series of short practical videos to help you with various use cases. You can look at the announcement here and watch all videos here: Azure Tips and Tricks: Static Web Apps.

 

After you've deployed the first version of your web app and set up your CI/CD workflow, you'll probably want to fine tune your app configuration and start implementing more advanced features, such as authentication and authorization.

 

We'll cover in this post some common features you may want in your web apps, by building a shopping web app. The base sample code we'll use is implemented with React, Angular, Vue.js and Svelte so you can pick your favorite framework to follow along.

 

To help you with all these featuress, I'll be joined by my friends Ayşegül Yönet, Simona Cotin and Burke Holland.

What you'll learn here

  • Configure routing, SPA fallback and redirections
  • Add a serverless API
  • Integrate user authentication
  • Configure authorization and roles
  • Set up custom domains

Additional learning resources

Configure routing

If you're building a Single Page Application, chances are you'll be using HTML5 routing meaning your app will break if you do not configure a server-side fallback to you base index.html file. We'll have a look on how to configure this among other common routing tasks.

 

 

Add a serverless API

After your web front-end is properly set up, you may want to do some back-end processing to retrieve and store data in a database for example. Serverless functions are perfect for that, and allows to create an API by only focusing on what you're trying to achieve without having to create and manage an actual server.

 

 

Integrate user authentication

Managing and verifying users' unique identity is an important piece of most web apps nowadays, especially if you're looking to provide a secure personal space for your users. We'll see how to leverage built-in authentication providers to quickly integrate authentication in your static web app.

 

 

Configure authorization and roles

After implementing authentication, the logical next step is often to secure the access to various parts of your app, including the API. You can do that with configuring user roles and authorization levels for your routes, to prevent unwanted access and secure your app resources.

 

 

Set up custom domains

If you've deployed a Static Web App before, you've probably noticed that the generated public URL isn't something you'll likely remember and want to share publicly. We'll see how to set up a custom domain for your static web app, along with generating a free HTTPS certificate.

 

 

What's next

That's it for this post! If you would like to deepen your knowledge around Static Web Apps, you can take a look at the docs overview to find out all the things you can do with Static Web Apps.

 

Please share any questions or experiences you've had on these topics in the comments. Thanks for reading!
%3CLINGO-SUB%20id%3D%22lingo-sub-2542576%22%20slang%3D%22en-US%22%3EBuild%20a%20shopping%20app%20with%20Azure%20Static%20Web%20Apps%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2542576%22%20slang%3D%22en-US%22%3E%3CDIV%3E%3CEM%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22swa-02-banner.jpg%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F295442i2F06275A0BDF9E0C%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22swa-02-banner.jpg%22%20alt%3D%22Build%20a%20shopping%20app%20with%20Azure%20Static%20Web%20Apps%22%20%2F%3E%3CSPAN%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3EBuild%20a%20shopping%20app%20with%20Azure%20Static%20Web%20Apps%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3EIf%20you're%20looking%20for%20tips%20and%20best%20practices%20on%20how%20to%20create%20and%20deploy%20fully%20featured%20web%20apps%20with%20Azure%20Static%20Web%20Apps%2C%20we%20created%20a%20series%20of%20short%20practical%20videos%20to%20help%20you%20with%20various%20use%20cases.%20You%20can%20look%20at%20the%20%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fapps-on-azure%2F16-tips-to-master-your-azure-static-web-apps%2Fba-p%2F2457825%22%20target%3D%22_self%22%3Eannouncement%20here%3C%2FA%3E%26nbsp%3Band%20watch%20all%20videos%20here%3A%20%3CA%20href%3D%22https%3A%2F%2Faka.ms%2FStaticWebAppsTips%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%22%3EAzure%20Tips%20and%20Tricks%3A%20Static%20Web%20Apps%3C%2FA%3E.%3C%2FEM%3E%3C%2FDIV%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CDIV%3E%3CSPAN%3EAfter%20you've%20deployed%20the%20first%20version%20of%20your%20web%20app%20and%20set%20up%20your%20CI%2FCD%20workflow%2C%20you'll%20probably%20want%20to%20fine%20tune%20your%20app%20configuration%20and%20start%20implementing%20more%20advanced%20features%2C%20such%20as%20authentication%20and%20authorization.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CDIV%3E%3CSPAN%3EWe'll%20cover%20in%20this%20post%20some%20common%20features%20you%20may%20want%20in%20your%20web%20apps%2C%20by%20building%20a%20shopping%20web%20app.%20The%20%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fmslearn-staticwebapp%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%3Ebase%20sample%20code%3C%2FSPAN%3E%3C%2FA%3E%3CSPAN%3E%26nbsp%3Bwe'll%20use%20is%20implemented%20with%20React%2C%20Angular%2C%20Vue.js%20and%20Svelte%20so%20you%20can%20pick%20your%20favorite%20framework%20to%20follow%20along.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CDIV%3E%3CSPAN%3ETo%20help%20you%20with%20all%20these%20featuress%2C%20I'll%20be%20joined%20by%20my%20friends%20%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Ftwitter.com%2FAysSomething%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%3CSPAN%3E%3CSTRONG%3EAy%C5%9Feg%C3%BCl%20Y%C3%B6net%3C%2FSTRONG%3E%3C%2FSPAN%3E%3C%2FA%3E%3CSPAN%3E%2C%20%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Ftwitter.com%2Fsimona_cotin%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%3CSPAN%3E%3CSTRONG%3ESimona%20Cotin%3C%2FSTRONG%3E%3C%2FSPAN%3E%3C%2FA%3E%3CSPAN%3E%26nbsp%3Band%20%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Ftwitter.com%2Fburkeholland%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%3CSPAN%3E%3CSTRONG%3EBurke%20Holland%3C%2FSTRONG%3E%3C%2FSPAN%3E%3C%2FA%3E%3CSPAN%3E.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CH3%20id%3D%22toc-hId-2087328532%22%20id%3D%22toc-hId-2087328532%22%3E%3CSPAN%3EWhat%20you'll%20learn%20here%3C%2FSPAN%3E%3C%2FH3%3E%0A%3CUL%3E%0A%3CLI%3E%3CSPAN%3EConfigure%20routing%2C%20SPA%20fallback%20and%20redirections%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%3E%3CSPAN%3E%20Add%20a%20serverless%20API%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%3E%3CSPAN%3E%20Integrate%20user%20authentication%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%3E%3CSPAN%3E%20Configure%20authorization%20and%20roles%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%3E%3CSPAN%3E%20Set%20up%20custom%20domains%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CH3%20id%3D%22toc-hId-279874069%22%20id%3D%22toc-hId-279874069%22%3E%3CSPAN%3EAdditional%20learning%20resources%3C%2FSPAN%3E%3C%2FH3%3E%0A%3CUL%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Faka.ms%2Flearn%2Fswa%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%3EInteractive%20tutorials%20on%20Static%20Web%20Apps%3C%2FSPAN%3E%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fstatic-web-apps%2F%3FWT.mc_id%3Djavascript-17844-cxa%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%3EStatic%20Web%20Apps%20docs%20overview%3C%2FSPAN%3E%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fmslearn-staticwebapp%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%3EShopping%20app%20source%20code%20template%3C%2FSPAN%3E%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FAzure%2Fstatic-web-apps-cli%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%3EStatic%20Web%20Apps%20CLI%3C%2FSPAN%3E%3C%2FA%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CH2%20id%3D%22toc-hId-269370965%22%20id%3D%22toc-hId-269370965%22%3E%3CSPAN%3EConfigure%20routing%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CDIV%3E%3CSPAN%3EIf%20you're%20building%20a%20%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FSingle-page_application%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%3CSPAN%3ESingle%20Page%20Application%3C%2FSPAN%3E%3C%2FA%3E%3CSPAN%3E%2C%20chances%20are%20you'll%20be%20using%20%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FAPI%2FHistory%2FpushState%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%3CSPAN%3EHTML5%20routing%3C%2FSPAN%3E%3C%2FA%3E%3CSPAN%3E%26nbsp%3Bmeaning%20your%20app%20will%20break%20if%20you%20do%20not%20configure%20a%20server-side%20fallback%20to%20you%20base%20%3C%2FSPAN%3E%3CEM%3Eindex.html%3C%2FEM%3E%3CSPAN%3E%26nbsp%3Bfile.%20We'll%20have%20a%20look%20on%20how%20to%20configure%20this%20among%20other%20common%20routing%20tasks.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CDIV%3E%3CDIV%20class%3D%22video-embed-center%20video-embed%22%3E%3CIFRAME%20class%3D%22embedly-embed%22%20src%3D%22https%3A%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Fsrc%3Dhttps%253A%252F%252Fwww.youtube.com%252Fembed%252FA70tGiaHCTE%253Flist%253DPLlrxD0HtieHgMPeBaDQFx9yNuFxx6S1VG%26amp%3Bdisplay_name%3DYouTube%26amp%3Burl%3Dhttps%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253DA70tGiaHCTE%26amp%3Bimage%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FA70tGiaHCTE%252Fhqdefault.jpg%26amp%3Bkey%3Db0d40caa4f094c68be7c29880b16f56e%26amp%3Btype%3Dtext%252Fhtml%26amp%3Bschema%3Dyoutube%22%20width%3D%22200%22%20height%3D%22112%22%20scrolling%3D%22no%22%20title%3D%22YouTube%20embed%22%20frameborder%3D%220%22%20allow%3D%22autoplay%3B%20fullscreen%22%20allowfullscreen%3D%22true%22%3E%3C%2FIFRAME%3E%3C%2FDIV%3E%3C%2FDIV%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId--1538083498%22%20id%3D%22toc-hId--1538083498%22%3E%3CSPAN%3EAdd%20a%20serverless%20API%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CDIV%3E%3CSPAN%3EAfter%20your%20web%20front-end%20is%20properly%20set%20up%2C%20you%20may%20want%20to%20do%20some%20back-end%20processing%20to%20retrieve%20and%20store%20data%20in%20a%20database%20for%20example.%20%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fazure-functions%2F%3FWT.mc_id%3Djavascript-17844-cxa%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%3EServerless%20functions%3C%2FSPAN%3E%3C%2FA%3E%3CSPAN%3E%26nbsp%3Bare%20perfect%20for%20that%2C%20and%20allows%20to%20create%20an%20API%20by%20only%20focusing%20on%20what%20you're%20trying%20to%20achieve%20without%20having%20to%20create%20and%20manage%20an%20actual%20server.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CDIV%3E%3CDIV%20class%3D%22video-embed-center%20video-embed%22%3E%3CIFRAME%20class%3D%22embedly-embed%22%20src%3D%22https%3A%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Fsrc%3Dhttps%253A%252F%252Fwww.youtube.com%252Fembed%252FVzML-6DClVU%253Flist%253DPLlrxD0HtieHgMPeBaDQFx9yNuFxx6S1VG%26amp%3Bdisplay_name%3DYouTube%26amp%3Burl%3Dhttps%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253DVzML-6DClVU%26amp%3Bimage%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FVzML-6DClVU%252Fhqdefault.jpg%26amp%3Bkey%3Db0d40caa4f094c68be7c29880b16f56e%26amp%3Btype%3Dtext%252Fhtml%26amp%3Bschema%3Dyoutube%22%20width%3D%22200%22%20height%3D%22112%22%20scrolling%3D%22no%22%20title%3D%22YouTube%20embed%22%20frameborder%3D%220%22%20allow%3D%22autoplay%3B%20fullscreen%22%20allowfullscreen%3D%22true%22%3E%3C%2FIFRAME%3E%3C%2FDIV%3E%3C%2FDIV%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-949429335%22%20id%3D%22toc-hId-949429335%22%3E%3CSPAN%3EIntegrate%20user%20authentication%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CDIV%3E%3CSPAN%3EManaging%20and%20verifying%20users'%20unique%20identity%20is%20an%20important%20piece%20of%20most%20web%20apps%20nowadays%2C%20especially%20if%20you're%20looking%20to%20provide%20a%20secure%20personal%20space%20for%20your%20users.%20We'll%20see%20how%20to%20leverage%20built-in%20authentication%20providers%20to%20quickly%20integrate%20authentication%20in%20your%20static%20web%20app.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CDIV%3E%3CDIV%20class%3D%22video-embed-center%20video-embed%22%3E%3CIFRAME%20class%3D%22embedly-embed%22%20src%3D%22https%3A%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Fsrc%3Dhttps%253A%252F%252Fwww.youtube.com%252Fembed%252FTygnLOA68B0%253Flist%253DPLlrxD0HtieHgMPeBaDQFx9yNuFxx6S1VG%26amp%3Bdisplay_name%3DYouTube%26amp%3Burl%3Dhttps%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253DTygnLOA68B0%26amp%3Bimage%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FTygnLOA68B0%252Fhqdefault.jpg%26amp%3Bkey%3Db0d40caa4f094c68be7c29880b16f56e%26amp%3Btype%3Dtext%252Fhtml%26amp%3Bschema%3Dyoutube%22%20width%3D%22200%22%20height%3D%22112%22%20scrolling%3D%22no%22%20title%3D%22YouTube%20embed%22%20frameborder%3D%220%22%20allow%3D%22autoplay%3B%20fullscreen%22%20allowfullscreen%3D%22true%22%3E%3C%2FIFRAME%3E%3C%2FDIV%3E%3C%2FDIV%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId--858025128%22%20id%3D%22toc-hId--858025128%22%3E%3CSPAN%3EConfigure%20authorization%20and%20roles%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CDIV%3E%3CSPAN%3EAfter%20implementing%20authentication%2C%20the%20logical%20next%20step%20is%20often%20to%20secure%20the%20access%20to%20various%20parts%20of%20your%20app%2C%20including%20the%20API.%20You%20can%20do%20that%20with%20configuring%20user%20roles%20and%20authorization%20levels%20for%20your%20routes%2C%20to%20prevent%20unwanted%20access%20and%20secure%20your%20app%20resources.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CDIV%3E%3CDIV%20class%3D%22video-embed-center%20video-embed%22%3E%3CIFRAME%20class%3D%22embedly-embed%22%20src%3D%22https%3A%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Fsrc%3Dhttps%253A%252F%252Fwww.youtube.com%252Fembed%252Fr5yrxgc12q4%253Flist%253DPLlrxD0HtieHgMPeBaDQFx9yNuFxx6S1VG%26amp%3Bdisplay_name%3DYouTube%26amp%3Burl%3Dhttps%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253Dr5yrxgc12q4%26amp%3Bimage%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252Fr5yrxgc12q4%252Fhqdefault.jpg%26amp%3Bkey%3Dfad07bfa4bd747d3bdea27e17b533c0e%26amp%3Btype%3Dtext%252Fhtml%26amp%3Bschema%3Dyoutube%22%20width%3D%22200%22%20height%3D%22112%22%20scrolling%3D%22no%22%20title%3D%22YouTube%20embed%22%20frameborder%3D%220%22%20allow%3D%22autoplay%3B%20fullscreen%22%20allowfullscreen%3D%22true%22%3E%3C%2FIFRAME%3E%3C%2FDIV%3E%3C%2FDIV%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-1629487705%22%20id%3D%22toc-hId-1629487705%22%3E%3CSPAN%3ESet%20up%20custom%20domains%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CDIV%3E%3CSPAN%3EIf%20you've%20deployed%20a%20Static%20Web%20App%20before%2C%20you've%20probably%20noticed%20that%20the%20generated%20public%20URL%20isn't%20something%20you'll%20likely%20remember%20and%20want%20to%20share%20publicly.%20We'll%20see%20how%20to%20set%20up%20a%20custom%20domain%20for%20your%20static%20web%20app%2C%20along%20with%20generating%20a%20free%20HTTPS%20certificate.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CDIV%3E%3CDIV%20class%3D%22video-embed-center%20video-embed%22%3E%3CIFRAME%20class%3D%22embedly-embed%22%20src%3D%22https%3A%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Fsrc%3Dhttps%253A%252F%252Fwww.youtube.com%252Fembed%252FSpQgKfJ87fE%253Flist%253DPLlrxD0HtieHgMPeBaDQFx9yNuFxx6S1VG%26amp%3Bdisplay_name%3DYouTube%26amp%3Burl%3Dhttps%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253DSpQgKfJ87fE%26amp%3Bimage%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FSpQgKfJ87fE%252Fhqdefault.jpg%26amp%3Bkey%3Db0d40caa4f094c68be7c29880b16f56e%26amp%3Btype%3Dtext%252Fhtml%26amp%3Bschema%3Dyoutube%22%20width%3D%22200%22%20height%3D%22112%22%20scrolling%3D%22no%22%20title%3D%22YouTube%20embed%22%20frameborder%3D%220%22%20allow%3D%22autoplay%3B%20fullscreen%22%20allowfullscreen%3D%22true%22%3E%3C%2FIFRAME%3E%3C%2FDIV%3E%3C%2FDIV%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId--177966758%22%20id%3D%22toc-hId--177966758%22%3E%3CSPAN%3EWhat's%20next%3C%2FSPAN%3E%3C%2FH2%3E%0A%3CDIV%3E%3CSPAN%3EThat's%20it%20for%20this%20post!%20If%20you%20would%20like%20to%20deepen%20your%20knowledge%20around%20Static%20Web%20Apps%2C%20you%20can%20take%20a%20look%20at%20the%20%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Ffr-fr%2Fazure%2Fstatic-web-apps%2F%3FWT.mc_id%3Djavascript-17844-cxa%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%22%3E%3CSPAN%3Edocs%20overview%3C%2FSPAN%3E%3C%2FA%3E%3CSPAN%3E%26nbsp%3Bto%20find%20out%20all%20the%20things%20you%20can%20do%20with%20Static%20Web%20Apps.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CDIV%3E%3CSPAN%3EPlease%20share%20any%20questions%20or%20experiences%20you've%20had%20on%20these%20topics%20in%20the%20comments.%20Thanks%20for%20reading!%3C%2FSPAN%3E%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-2542576%22%20slang%3D%22en-US%22%3E%3CDIV%3E%0A%3CDIV%3E%3CSPAN%3ELearn%20how%20to%20implement%20various%20features%20for%20building%20a%20shopping%20app%20with%20Azure%20Static%20Web%20Apps.%3C%2FSPAN%3E%3C%2FDIV%3E%0A%3C%2FDIV%3E%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2542576%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EAzure%20App%20Service%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EServerless%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EWeb%20Apps%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Co-Authors
Version history
Last update:
‎Jul 13 2021 07:27 AM
Updated by: