Build a shopping app with Azure Static Web Apps
source link: https://techcommunity.microsoft.com/t5/apps-on-azure/build-a-shopping-app-with-azure-static-web-apps/ba-p/2542576?WT_mc_id=DOP-MVP-4025064
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Build a shopping app with Azure Static Web Apps
What you'll learn here
Additional learning resources
Configure routing
Add a serverless API
Integrate user authentication
Configure authorization and roles
Set up custom domains
What's next
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
%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
Jul 13 2021 07:27 AM
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK