<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts tagged #skeleton ui</title><description>All posts tagged with skeleton ui on queen.raae.codes</description><link>https://queen.raae.codes/tag/skeleton-ui/</link><item><title>💀📄 ~ SSG even for authenticated routes in Gatsby</title><link>https://queen.raae.codes/2022-01-07-skeleton/</link><guid isPermaLink="true">https://queen.raae.codes/2022-01-07-skeleton/</guid><description>In yesterday&apos;s email, I alluded to a different approach for authenticated routes. Instead of reaching for client-side only routes I more often utilize…</description><pubDate>Fri, 07 Jan 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In &lt;a href=&quot;/2022-01-06-client-only-routes/&quot;&gt;yesterday&apos;s email&lt;/a&gt;, I alluded to a different approach for authenticated routes.&lt;/p&gt;
&lt;p&gt;Instead of reaching for &lt;a href=&quot;https://www.gatsbyjs.com/docs/how-to/routing/client-only-routes-and-user-authentication/#adjusting-routes-to-account-for-authenticated-users&quot;&gt;client-side only routes&lt;/a&gt; I more often utilize statically generated pages even for the authenticated routes these days.&lt;/p&gt;
&lt;p&gt;You can protect these routes the same way Gatsby documents for client-side only routes. However, this does not consider a visitor refreshing a page while on an authenticated route. The code will kick the visitor off the page before the authentication status is determined.&lt;/p&gt;
&lt;p&gt;Instead, I recommend assuming the visitor is supposed to be there if they hit an authenticated route. While waiting for the data to load, I will show a skeleton version of the page. If it turns out the visitor is not supposed to be there, I kick them off.&lt;/p&gt;
&lt;p&gt;A skeleton version of a page is as much of the user interface as is possible without the data only available client-side. There is often a lot to show, menus, headers, icons, etc.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://my.usepow.app/profile/&quot;&gt;&lt;img src=&quot;./skeleton.jpg&quot; alt=&quot;Skeleton Profile page&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can see the skeleton version of a profile page in action for &lt;a href=&quot;https://my.usepow.app/profile/&quot;&gt;POW!&lt;/a&gt;. If you get kicked off too soon, disable javascript to see it.&lt;/p&gt;
&lt;p&gt;This approach gives a better experience for visitors using your app correctly; they will get a smooth transition from skeleton to the page filled with data. Visitors testing out routes they should not be on will get a flash of skeleton page before being kicked off, a slightly subpar experience.&lt;/p&gt;
&lt;p&gt;Incidentally, the same topic of discussion, and pair programming, as on yesterday&apos;s &lt;a href=&quot;https://youtu.be/WzrjHVy134M&quot;&gt;unauthorized and rum-fueled treasure hunt&lt;/a&gt; in the sharky waters around the Gatsby islands, helping Mirjam with Conference Buddy v2.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://youtu.be/WzrjHVy134M&quot;&gt;&lt;img src=&quot;./yt-screenshot.jpg&quot; alt=&quot;Screengrab of the intro&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;br&gt;
Did any of this make sense?
Reply to let me know either way...&lt;/p&gt;
&lt;p&gt; &lt;br&gt;
All the best,&lt;br&gt;
Queen Raae&lt;/p&gt;
</content:encoded></item><item><title>📺 👩‍💻 ~ Client-side only routes with Gatsby</title><link>https://queen.raae.codes/2022-01-06-client-only-routes/</link><guid isPermaLink="true">https://queen.raae.codes/2022-01-06-client-only-routes/</guid><description>The Gatsby Conf announcement reminded me of how this whole YouTube thing started. In April of 2020, I got asked if I wanted to submit a talk for Gatsby Virtual…</description><pubDate>Thu, 06 Jan 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The Gatsby Conf announcement reminded me of how this whole YouTube thing started. In April of 2020, I got asked if I wanted to submit a talk for Gatsby Virtual Days. I did, and Gatsby sent over a microphone, and a ring light... and the rest, as they say, is history 🤪&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://youtu.be/kKp7Syxyxnw&quot;&gt;The talk&lt;/a&gt; walks you through how to create client-side only routes for authenticated users in Gatsby, following &lt;a href=&quot;https://www.gatsbyjs.com/docs/how-to/routing/client-only-routes-and-user-authentication/#handling-client-only-routes-with-gatsby&quot;&gt;the approach found in the Gatsby Docs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://youtu.be/kKp7Syxyxnw&quot;&gt;&lt;img src=&quot;./yt-thumbnail.jpg&quot; alt=&quot;YouTube Thumbnail&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;These days I like to generate a skeleton version of even these pages statically, then sprinkle in the user-specific data when it&apos;s loaded and ready. However, the above is still valid and is an excellent approach when converting an existing React app to Gatsby!&lt;/p&gt;
&lt;p&gt; &lt;br&gt;
Have you used Gatsby in a more app-like project?&lt;br&gt;
Let me know!&lt;/p&gt;
&lt;p&gt; &lt;br&gt;
All the best,&lt;br&gt;
Queen Raae&lt;/p&gt;
&lt;p&gt; &lt;br&gt;
&lt;strong&gt;PS:&lt;/strong&gt; Tonight we are helping Mirjam with the &lt;a href=&quot;https://youtu.be/WzrjHVy134M&quot;&gt;Conference Buddy v2 authentication flow&lt;/a&gt;, not tags as previously announced in Monday&apos;s email.&lt;/p&gt;
</content:encoded></item></channel></rss>