<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Ceora Ford</title>
    <description>The latest articles on Forem by Ceora Ford (@ceeoreo).</description>
    <link>https://forem.com/ceeoreo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F102841%2F8de180db-bbc1-4463-b2fd-02898e8d87fb.jpg</url>
      <title>Forem: Ceora Ford</title>
      <link>https://forem.com/ceeoreo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ceeoreo"/>
    <language>en</language>
    <item>
      <title>Next.JS in a Nutshell: Rendering</title>
      <dc:creator>Ceora Ford</dc:creator>
      <pubDate>Tue, 05 Dec 2023 16:58:00 +0000</pubDate>
      <link>https://forem.com/oktadev/nextjs-in-a-nutshell-5dj1</link>
      <guid>https://forem.com/oktadev/nextjs-in-a-nutshell-5dj1</guid>
      <description>&lt;p&gt;Next.JS is one of the most popular modern React frameworks out there. I’ve spent the past few months building with Next.JS and learning the ins and outs of the language. Next.JS caught my eye initially because it offers a more seamless experience by abstracting away some of the tedious tasks that come with working with React like bundling and compiling. These are the things that usually make me want to pull my hair out so I had to try out Next.JS when I discovered that these things are automatically configured for you.&lt;/p&gt;

&lt;p&gt;As I’ve been building, I’ve learned a lot along the way and I wanted to wrap my findings up into a blog post series that will cover a few things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Core concepts in Next.JS

&lt;ul&gt;
&lt;li&gt;Server side rendering vs Client side rendering&lt;/li&gt;
&lt;li&gt;Pages Router vs App router&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;What to do after learning the basics&lt;/li&gt;

&lt;li&gt;Helpful resources&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;This post will specifically focus on rendering. We’ll cover routing and next steps in the future posts. My goal is to give you an introduction to Next.JS and a place to start so you can move forward and learn more on your own! I’m also happy to write more articles on specific Next.JS topics. Feel free to leave any requests in the comments!&lt;/p&gt;

&lt;h2&gt;
  
  
  Core Concepts👩🏾‍💻
&lt;/h2&gt;

&lt;p&gt;Next.JS is built around some React concepts that you’ll be familiar with if you’ve worked with React before. But there are obviously a few things that make Next.JS a bit different. Next.JS has some enhancements that give it an added edge over React or other frameworks. I already mentioned the compiling and bundling improvements. Next.JS also comes with image and font optimizations that enhance user experience and site performance. Images are lazy-loaded and automatically resized based on device size. You can read more details on font optimization in the Next.JS documentation. &lt;/p&gt;

&lt;p&gt;Next.JS's main claim to fame is how rendering and routing are handled. Even if you haven’t worked with Next.JS before, you’ve probably at least heard terms like “Server-side rendering” and “Client-side rendering”. It’s really important to understand these concepts when you’re building applications with Next.JS. So let’s dive in. &lt;/p&gt;

&lt;h2&gt;
  
  
  Server Side Rendering vs Client Side Rendering⚙️
&lt;/h2&gt;

&lt;p&gt;In Next.JS, you can choose where you want your components to be rendered: on the server side or on the client side. Next.JS is all about performance optimization and for that reason, Next.JS uses server side rendering by default. &lt;strong&gt;Server side rendering&lt;/strong&gt; improves performance in a few ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data fetching → When data fetching is done on the server side, the time it takes to retrieve data is reduced since the server is architecturally closer to the data source&lt;/li&gt;
&lt;li&gt;Caching → When you render on the server, results can be easily and quickly cached which leads to faster response times for future requests.&lt;/li&gt;
&lt;li&gt;Bundling → Large dependencies can now be kept on the server which reduces the size of your bundle on the client side&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are other benefits but I think these 3 really highlight how server side rendering can improve performance. These changes might seem small but they add up quickly. If you want to know more about the mechanics of server side rendering, check out &lt;a href="https://nextjs.org/docs/app/building-your-application/rendering/server-components#how-are-server-components-rendered" rel="noopener noreferrer"&gt;this documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Static rendering, dynamic rendering, and streaming🔧
&lt;/h3&gt;

&lt;p&gt;Server side rendering can be done in 3 ways: &lt;em&gt;static, dynamic, or streaming.&lt;/em&gt; &lt;strong&gt;Static rendering&lt;/strong&gt; is the default. Information is rendered at build time meaning it’s preloaded before a request is made and cached. This is perfect for data that doesn’t need to be customized per user. Any information that is the same for every user can be statically generated. Again, this is a huge performance optimization. With &lt;strong&gt;dynamic rendering,&lt;/strong&gt; data is rendered on each request. This is good for data that is unique to each user or for information that changes quickly. &lt;/p&gt;

&lt;p&gt;When I first learned about static and dynamic rendering, I panicked a bit because I assumed that I would have to decide how each possible route and every piece of data on my site should be rendered. The great thing is that Next.JS automatically chooses for you. You still have control when you want to because you can specify when to cache or revalidate certain data. You can also choose to &lt;strong&gt;stream&lt;/strong&gt; some data in your UI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Streaming&lt;/strong&gt; is a new feature of Next.JS that’s only available with the App Router (which we’ll dive into soon). Streaming allows you to progressively render data from the server. Using this rendering method allows you to keep displaying parts of a page immediately while the streamed data is still loading. Instead of the whole page loading and forcing your user to stare at a blank screen, streaming allows you to pinpoint the data that needs more time to render while still displaying the rest of the page.&lt;/p&gt;

&lt;p&gt;To put all of this into context, an About page would be statically rendered since the information won’t change no matter who’s viewing it. Components on a profile page that can be changed such as display name or status would be dynamically rendered. For large amounts of data that can take time to load such as product reviews, posts on a social media feed, and the like, streaming can be used. &lt;/p&gt;

&lt;h3&gt;
  
  
  Client side rendering🔨
&lt;/h3&gt;

&lt;p&gt;Now, what about &lt;strong&gt;client side rendering&lt;/strong&gt;? &lt;strong&gt;Client side rendering&lt;/strong&gt; is rendered on the client side at request time. Server side rendering is the default so in order to use client side rendering, you have to opt in. Next.JS automatically handles whether server side components will be rendered statically or dynamically but it doesn’t do the same for client components. You have to manually specify when you want client side rendering to be used. &lt;/p&gt;

&lt;p&gt;When should you use client side rendering? Since you can use state and event listeners with client components, it’s perfect for interactive components that are meant to produce an immediate result for users. So think of liking a post or comment on a social media site. This kind of feature could be built with client components since liking something involves interactivity, data that changes quickly, and displaying said data to users immediately. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion👩🏾‍🏭
&lt;/h2&gt;

&lt;p&gt;So we’ve covered the basics of rendering in Next.JS. This is an overview and there’s obviously more that goes into rendering especially under the hood. If you want to learn more of the nitty gritty details, check out some of these resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nextjs.org/docs/app/building-your-application/rendering" rel="noopener noreferrer"&gt;Next.JS docs: Rendering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nextjs.org/learn/dashboard-app/static-and-dynamic-rendering" rel="noopener noreferrer"&gt;Next.JS Course: Chapter 8 on Static and Dynamic rendering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nextjs.org/learn/dashboard-app/streaming" rel="noopener noreferrer"&gt;Next.JS Course: Chapter 9 on Streaming&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The main take away you should walk away from this post with is: Next.JS really prioritizes performance. Relying primarily on server side rendering is done to enhance performance and user experience. If performance is important for the project you're working on, Next.JS might be the right choice for you!&lt;/p&gt;

&lt;p&gt;I’ll post part 2 of this series shortly! The information is already drafted so don’t worry it’s coming soon! If you have any questions or comments, please leave them below! I’ll try to get to as many of them as possible! Thanks for reading :)&lt;/p&gt;

</description>
      <category>react</category>
      <category>nextjs</category>
      <category>frontend</category>
      <category>javascript</category>
    </item>
    <item>
      <title>My Favorite Resources for Learning GraphQL</title>
      <dc:creator>Ceora Ford</dc:creator>
      <pubDate>Thu, 17 Mar 2022 18:25:11 +0000</pubDate>
      <link>https://forem.com/apollographql/my-favorite-resources-for-learning-graphql-30gc</link>
      <guid>https://forem.com/apollographql/my-favorite-resources-for-learning-graphql-30gc</guid>
      <description>&lt;p&gt;I recently held a Twitter Space where I discussed how I learned GraphQL during my first few months as a developer advocate here at Apollo. I went over the strategies I used which can be really helpful regardless of what language, framework, or tool you’re learning on the job. If you're interested in checking out the recording, I’ll leave a link at the end of this article.&lt;/p&gt;

&lt;p&gt;For now, I want to focus more on what I used to learn GraphQL. So here’s a quick list of my favorite resources for learning GraphQL. This list includes courses, videos, tutorials, and more. So no matter your preferred medium for educational content, you’ll find something that fits your style.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. &lt;a href="https://www.youtube.com/watch?v=dwLI70eP3mw" rel="noopener noreferrer"&gt;What is GraphQL YouTube Video&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;If you don’t know much about GraphQL or what problems it solves, this is a great video to start with. It covers the fundamentals of how GraphQL works and how developers benefit from using it.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/dwLI70eP3mw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  2.  &lt;a href="https://odyssey.apollographql.com/" rel="noopener noreferrer"&gt;GraphQL Odyssey Course&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This is the main course I relied on when I was first learning GraphQL. This is free and it includes tons of great information and interactive coding exercises. And once you finish all 5 modules, you get a certificate!&lt;/p&gt;

&lt;h2&gt;
  
  
  3. &lt;a href="https://www.moonhighway.com/live-events" rel="noopener noreferrer"&gt;GraphQL Is for Everyone Workshop&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;I was able to attend this workshop shortly after joining Apollo and it was amazing! This workshop is led by &lt;a href="https://twitter.com/eveporcello" rel="noopener noreferrer"&gt;Eve Porcello&lt;/a&gt; and I love the way she teaches. All the information is delivered in a fun and approachable style. This is a great workshop to attend especially if you’re completely new to GraphQL.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. &lt;a href="https://graphqlworkshop.com/" rel="noopener noreferrer"&gt;GraphQL Email Newsletter&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This email newsletter is also created by Eve Porcello. It’s an easy, low-stakes way to learn more about GraphQL. I’m a huge fan of Eve’s teaching style and this email course is just as great as everything else she creates.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. &lt;a href="https://www.apollographql.com/docs/tutorial/introduction/" rel="noopener noreferrer"&gt;Full Stack GraphQL Tutorial&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This Full Stack GraphQL tutorial is a great way to start building with GraphQL. I’m a huge proponent of project-based learning. But it can be intimidating to start a project with a new language all on your own. So this is a great way to have a guided learning experience as you begin working with GraphQL.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. &lt;a href="https://camiinthisthang.hashnode.dev/everything-i-learned-in-my-1st-year-as-a-swe-graphql" rel="noopener noreferrer"&gt;Everything I Learned in My 1st Year as a SWE: GraphQL Article&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;I really enjoyed this article because hearing the perspective of another GraphQL newbie really resonated with me. It was nice to read about parts of &lt;a href="https://twitter.com/camiinthisthang" rel="noopener noreferrer"&gt;Camila’s&lt;/a&gt; learning journey that mirrored my own. It also helped me to recognize areas of confusion that I, as a developer advocate and GraphQL educator, could help fill.  &lt;/p&gt;

&lt;h2&gt;
  
  
  7. &lt;a href="https://dev.to/shrutikapoor08/getting-started-with-graphql-emo"&gt;Getting Started with GraphQL Article&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This is an article that’s quite similar to this one. It includes an explanation of what GraphQL is and additional resources for learning. &lt;a href="https://twitter.com/shrutikapoor08" rel="noopener noreferrer"&gt;Shruti&lt;/a&gt; is a pillar in the GraphQL community so I’m sure you’ll find something useful in that article.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. &lt;a href="https://www.apollographql.com/docs/resources/graphql-glossary/" rel="noopener noreferrer"&gt;GraphQL Glossary&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;I have to include this glossary because it was so helpful for me! I used it as a handy reference along with my courses and tutorials so I could easily check my understanding of unfamiliar terminology.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;If you have any recommendations for GraphQL learning resources, please feel free to leave them in the comments below. Like I said, these are resources that I personally used and enjoyed. I’m sure that there are so many more out there.&lt;/p&gt;

&lt;p&gt;If you’re interested in actual learning tips, you can listen to the &lt;a href="https://twitter.com/ceeoreo_/status/1502008332923588610?s=20&amp;amp;t=DaI73vvdiPjKtR83WbEjbQ" rel="noopener noreferrer"&gt;recording of the Twitter Space&lt;/a&gt;. I plan on doing more Spaces about GraphQL, developer advocacy, and working at Apollo. So let me know if you have any suggestions. Thanks for reading💜&lt;/p&gt;

</description>
      <category>graphql</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Behind the Scenes of Our "What is GraphQL" Video</title>
      <dc:creator>Ceora Ford</dc:creator>
      <pubDate>Tue, 08 Mar 2022 16:01:18 +0000</pubDate>
      <link>https://forem.com/apollographql/behind-the-scenes-of-our-what-is-graphql-video-10hi</link>
      <guid>https://forem.com/apollographql/behind-the-scenes-of-our-what-is-graphql-video-10hi</guid>
      <description>&lt;p&gt;Everyone has their own learning style. Some people prefer to read educational content. There are some developers who like to skip the reading and go straight to building and breaking things. Lots of people really enjoy video content. Then there are people like me who switch between all learning styles and content forms depending on the subject.&lt;/p&gt;

&lt;p&gt;The developer experience team at Apollo realized we wanted to focus more on creating video content. It’s our job to create educational content that will appeal to developers and we want that to include videos. We recently released our first of many YouTube videos called What is GraphQL.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/dwLI70eP3mw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;It took a lot of hard work from the whole team. I wanted to talk about the process we went through to create and release this video. Our process is going to change and evolve over time. We’ll probably look at this first behind-the-scenes view and marvel at how much we’ve improved! &lt;/p&gt;

&lt;p&gt;So let’s pull the curtain back a bit and go over how we went about creating this video!&lt;/p&gt;

&lt;h2&gt;
  
  
  Coming up with ideas
&lt;/h2&gt;

&lt;p&gt;Of course, everyone on the team had a ton of ideas for our videos. GraphQL is such a broad topic and there are so many creative things you can do with videos. To narrow down our focus, we had to think about a few things.&lt;/p&gt;

&lt;p&gt;Videos can be hard to update and edit post-release. Apollo and GraphQL (and just tech in general) are constantly changing. It’s inevitable that some content will become deprecated in the long run. So for our more polished, high-effort videos, we decided to stick with concepts that are relatively constant and stable. &lt;/p&gt;

&lt;p&gt;What is GraphQL fits this really well! The fundamental features of GraphQL probably won't change any time soon. Plus, what better way to kick off our new video initiative than starting from the very foundation of everything!&lt;/p&gt;

&lt;p&gt;After deciding on what our first video would be about, we went on to write out our script.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating the script
&lt;/h2&gt;

&lt;p&gt;Scripting is not easy. It reminds me of what it’s like to write a talk or an article. Coming up with the script and storyline for the video was a painstaking process. We wanted to be sure that our video was technically sound and worded &lt;em&gt;just&lt;/em&gt; right. So we edited and edited and edited some more.&lt;/p&gt;

&lt;p&gt;Of course, at one point and time, we had to stop ourselves. We weren’t aiming for perfection. We wanted something that would be really good and useful to the community. So after we finalized the script,  our video team came up with some creative concepts to help us really get our ideas across.&lt;/p&gt;

&lt;p&gt;Next, we assigned lines to different team members. We wanted this video to reflect the people who make up the developer experience team at Apollo. If you’ve watched the video, you probably noticed how we switch up between narrators to do this. All of this was written into the script and gave each of us a chance to rehearse our individual lines so we could be prepared for the next step.&lt;/p&gt;

&lt;h2&gt;
  
  
  Filming our video
&lt;/h2&gt;

&lt;p&gt;Now onto filming. We got our fancy cameras and fancy lighting and started filming. And then we were done! &lt;/p&gt;

&lt;p&gt;If you’ve ever filmed any kind of scripted video content, you know it wasn’t that simple. We had to learn how to properly set up all our fancy video equipment. After we figured that out, we had to get everything in just the right spot. This took a lot of adjusting. We had to make sure our microphones, lights, and camera angles were in the right place to give us the results we wanted.&lt;/p&gt;

&lt;p&gt;Now we press record... and suddenly I can’t remember any of my lines. Remembering what I had to say was much harder than I expected. Once I could finally remember without messing up, I had to say my lines in a bunch of different ways to convey the tone we were going for. I had to make sure to look directly at the camera and smile.&lt;/p&gt;

&lt;p&gt;We eventually got enough good takes to wrap up filming. Each of my team members who are featured in the video went through a similar process. Once each of us finished recording, our video team expertly stitched everything together, adding in amazing graphics and effects.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s next?
&lt;/h2&gt;

&lt;p&gt;At the end of this process, we were able to release our video to the world! And the results have been amazing!! I'm incredibly proud of our team and I'm glad to see our hard work paying off.&lt;/p&gt;

&lt;p&gt;Now we’re working on our next video. We’re already planning ahead for future concepts by gathering ideas and writing scripts. We would love to hear from you if you have any suggestions! Feel free to leave them in the comments below.&lt;/p&gt;

&lt;p&gt;Keep an eye out for our next video and in (the most non-cliche way possible) subscribe to the &lt;a href="https://www.youtube.com/channel/UC0pEW_GOrMJ23l8QcrGdKSw" rel="noopener noreferrer"&gt;Apollo GraphQL YouTube Channel&lt;/a&gt; so you'll know when it drops!! Thanks for reading.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>graphql</category>
    </item>
    <item>
      <title>How to Maintain Your Skills as a Developer</title>
      <dc:creator>Ceora Ford</dc:creator>
      <pubDate>Thu, 13 May 2021 17:28:13 +0000</pubDate>
      <link>https://forem.com/codesandboxio/how-to-maintain-your-skills-as-a-developer-1e4e</link>
      <guid>https://forem.com/codesandboxio/how-to-maintain-your-skills-as-a-developer-1e4e</guid>
      <description>&lt;p&gt;It’s no secret that the tech industry is always changing. New frameworks are always emerging and new features are constantly being added to the languages and frameworks that already exist. This can be exciting but sometimes it can be hard to keep up. Some people work in environments that don’t welcome change. Not everyone’s team is looking to implement the latest innovation. &lt;/p&gt;

&lt;p&gt;Zachariah, CEO and CTO of &lt;a href="https://squadcast.fm/" rel="noopener noreferrer"&gt;SquadCast&lt;/a&gt;, had this experience. In &lt;a href="https://codesandbox.io/podcasts/version-one/Zachariah-Moreno-SquadCast" rel="noopener noreferrer"&gt;episode 3 of the Version One podcast&lt;/a&gt;, he talked about an experience he had early on in his career. He was in a position that didn’t allow for much growth. So how was he able to keep his coding skills up to par? &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;So what I did was I used that time to contribute to open source projects, research, sharpen my skills, [to] kind of stay sharp.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As Zachariah mentioned, there are many things you can do to stay sharp. This post will explain 5 ways you can maintain and grow your coding skills. &lt;/p&gt;

&lt;h2&gt;
  
  
  Read other people's code
&lt;/h2&gt;

&lt;p&gt;When it comes to getting better at a certain coding language or framework, we usually think that we need to work on some fancy, new project. While that isn't a bad idea, reading other people's code is another very helpful step. Reading other people's code can often be overlooked but it's a great way to familiarize yourself with new and old syntax and to test your ability to understand unfamiliar codebases. &lt;/p&gt;

&lt;p&gt;Where can you find projects to read through? A great place to start is GitHub. Check out your favorite open source projects and products. Casually read through the code and see what you can learn. Is there a feature that you're curious about? Try to find out how it was implemented. You can also search for projects by language. If there is a language you want to brush up on, you can check out some of the most popular &lt;/p&gt;

&lt;h2&gt;
  
  
  Work on top of already existing code
&lt;/h2&gt;

&lt;p&gt;Work on existing projects. You can find your own projects and iterate on them, adding new features or changing the structure of your code. You can also search for open source projects on GitHub. Find a project that's in a language you would like to brush up on and find an issue you can tackle. If you're not quite comfortable with making open source contributions, you can either stick to your own existing projects or read this helpful, &lt;a href="https://codesandbox.io/post/how-to-make-your-first-open-source-contribution" rel="noopener noreferrer"&gt;step-by-step guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Working on existing code is great because it presents new challenges. You have to figure out code that may be deprecated or hard to understand, even if it’s your project. By doing this, you'll train yourself to navigate unfamiliar codebases. This is a very valuable skill to gain since oftentimes in professional settings, you’ll have to add to code that already exists instead of starting something from scratch. &lt;/p&gt;

&lt;h2&gt;
  
  
  Watch other people code
&lt;/h2&gt;

&lt;p&gt;Watch other people code on platforms like YouTube and Twitch. Through videos and live streams, you can see other developers code and problem solve out loud. You can follow their thought pattern and see how they fix and tackle bugs and other problems in their code. There’s so much you can gain from watching this process. You can learn new syntax, learn how to approach and solve problems, and learn how to implement new features.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do coding challenges
&lt;/h2&gt;

&lt;p&gt;Try completing coding challenges and exercises. There are tons of websites out there like &lt;a href="//hackerrank.com"&gt;HackerRank&lt;/a&gt; and &lt;a href="https://www.codewars.com/" rel="noopener noreferrer"&gt;CodeWars&lt;/a&gt; that present problems that you have to solve with your code stack of choice. These challenges are made to be short and to the point while also forcing you to solve complex problems. They’re a great way to stay sharp and keep up with any language. &lt;/p&gt;

&lt;h2&gt;
  
  
  Read articles about code
&lt;/h2&gt;

&lt;p&gt;There are tons of developer blogs out there. Developer blogs are full of gems. There’s so much you can learn from reading articles. If there’s a topic you want to learn more about, do a quick Google search or search on sites like &lt;a href="http://dev.to"&gt;dev.to&lt;/a&gt; for articles that can help. &lt;/p&gt;

&lt;p&gt;Reading articles written by other developers is another way to see how other people think and problem solve. As mentioned earlier, this is invaluable and can add to your skills and knowledge. So when you come across an article that covers a topic you’re interested in, take the time to read through it. And make note of any points that stood out to you. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Tech moves fast but even so, growth can sometimes feel stagnant. If you feel like you’re at a standstill, try these tips. By doing these things, you’ll be able to stay sharp and grow your skills. There’s still more you can learn from Zachariah and his journey to becoming a CEO and CTO of SquadCast. Make sure to give his &lt;a href="https://codesandbox.io/podcasts/version-one/Zachariah-Moreno-SquadCast" rel="noopener noreferrer"&gt;Version One episode&lt;/a&gt; a listen to find out more!&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/4MJ9C6HYscUi8UiOsMl2Ej" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>career</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to Make Your First Open Source Contribution</title>
      <dc:creator>Ceora Ford</dc:creator>
      <pubDate>Thu, 06 May 2021 16:25:37 +0000</pubDate>
      <link>https://forem.com/codesandboxio/how-to-make-your-first-open-source-contribution-2oim</link>
      <guid>https://forem.com/codesandboxio/how-to-make-your-first-open-source-contribution-2oim</guid>
      <description>&lt;p&gt;Open source software is a huge part of the tech industry. Over and over, we hear about the power of open source. In &lt;a href="https://codesandbox.io/podcasts/codesandbox-podcast/elizabet-oliveira" rel="noopener noreferrer"&gt;episode 2 of The CodeSandbox Podcast&lt;/a&gt;, guest Elizabet Oliveira discussed open source and how it has impacted her career. This article will focus on getting you up and running as an open source contributor. Let's start by discussing why you should be interested in getting involved with open source. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why you should start contributing to open source projects
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;I think, yes [open source has helped me in my career], because I think it's easier to have interviews... And also I ended up talking in react conf in Las Vegas. And after that, I started talking in other conferences. And so I think it opened a lot of doors.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We don't have an infinite amount of time and I'm sure there are tons of things on your to-do list. So you might be wondering why you should even be thinking about contributing to open source software. Is it really worth the time and effort?&lt;/p&gt;

&lt;p&gt;There are many benefits of contributing to open source projects. Assess your career and development goals and you might be able to accomplish them by contributing to open source software. Here's a brief and non-exhaustive list of some of the benefits of getting involved with open source:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Familiarize yourself with Git&lt;/li&gt;
&lt;li&gt;Gain experience&lt;/li&gt;
&lt;li&gt;Get attention from employers and recruiters&lt;/li&gt;
&lt;li&gt;Connect with other developers in the community&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Learn Git and GitHub Basics
&lt;/h2&gt;

&lt;p&gt;Before you can go scouting for an open source project to work on, you should know the basics of Git and GitHub. You don't need to be an expert. But there are a few commands you should definitely know and understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;git init&lt;/li&gt;
&lt;li&gt;git clone&lt;/li&gt;
&lt;li&gt;git checkout -b&lt;/li&gt;
&lt;li&gt;git branch&lt;/li&gt;
&lt;li&gt;git add&lt;/li&gt;
&lt;li&gt;git commit -m&lt;/li&gt;
&lt;li&gt;git merge&lt;/li&gt;
&lt;li&gt;git push&lt;/li&gt;
&lt;li&gt;git pull&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This article won't discuss what these commands do or how they work. This is a checklist for you to measure your understanding. If you are unfamiliar with any of these Git commands, check out this helpful &lt;a href="https://www.git-tower.com/blog/git-cheat-sheet/" rel="noopener noreferrer"&gt;Git cheat sheet&lt;/a&gt;. To make sure you understand when and how to use each command, I suggest you create your own project locally using Git and push your project to GitHub. This will help you to become familiar with how Git and GitHub work together. Once you feel comfortable, you can move on to the next step. &lt;/p&gt;

&lt;h2&gt;
  
  
  Find a project you feel comfortable working on
&lt;/h2&gt;

&lt;p&gt;This step may seem intimidating at first. Sometimes, you see a project that can seem complex or beyond your skill level. Some projects on GitHub are very robust and extensive. Not to mention the sheer number of open source projects on GitHub. How can you find something to work on that interests you and fits your skill level?&lt;/p&gt;

&lt;p&gt;There are a few ways to do this. You might have already found an open source product or project that you're interested in. If this is the case check for Issues with the &lt;strong&gt;good first issue&lt;/strong&gt; or &lt;strong&gt;first timers only&lt;/strong&gt; tag. These have been specifically marked for beginners or those with little open source experience. If you don't already have a project in mind, check &lt;a href="https://www.firsttimersonly.com/" rel="noopener noreferrer"&gt;First Timers Only&lt;/a&gt; and the &lt;a href="https://github.com/MunGell/awesome-for-beginners" rel="noopener noreferrer"&gt;Awesome for Beginners&lt;/a&gt; repository for more options. You can also ask other developers that you know or people in the community for suggestions.&lt;/p&gt;

&lt;p&gt;Once you find a project, there's still more you need to do to make meaningful contributions to a project. You'll need to know how to communicate when getting involved with a project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Communication guidelines
&lt;/h2&gt;

&lt;p&gt;First and foremost, make sure that you're being polite and kind when talking to anyone involved with the project. This rule goes for all online communication. It's important to remember that maintainers are busy people and may have multiple responsibilities to tackle at one time. So be patient with them and always communicate respectfully.  &lt;/p&gt;

&lt;p&gt;Most projects will have communication guidelines specifically outlined for the project. These can usually the found in the &lt;code&gt;README.md&lt;/code&gt; or &lt;code&gt;CONTRIBUTING.md&lt;/code&gt; file. Make sure to read through the whole document and when the time comes to actually contribute your code to the project, be sure that you're following the structure and guidelines that maintainers have specified.&lt;/p&gt;

&lt;p&gt;Aside from reading and following the &lt;code&gt;CONTRIBUTING.md&lt;/code&gt; guidelines, here are some general rules that you should try to adhere to when opening up issues, submitting pull requests (both of which will be covered soon), and any other communication between you and others involved in the project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When you open an issue, be sure to thoroughly describe the bug or problem you've run into. Include information that will help maintainers or others to reproduce the bug locally on their end.&lt;/li&gt;
&lt;li&gt;It's also good to provide a possible solution if you have one in mind. This streamlines communication and will help maintainers to quickly determine whether or not your possible contribution fits the direction of the project.&lt;/li&gt;
&lt;li&gt;Try including comments in your code. Other people working on the project likely aren't familiar with your coding style or how you think. Including explanatory comments in your code will make your logic clear and thus, others will be able to quickly understand how your code works.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you have chosen the project you would like to work with and you've read the &lt;code&gt;CONTRIBUTING.md&lt;/code&gt; and/or &lt;code&gt;README.md&lt;/code&gt; thoroughly, you're ready to actually contribute your code to the project. &lt;/p&gt;

&lt;h2&gt;
  
  
  Contribute to Your First Project
&lt;/h2&gt;

&lt;p&gt;With your open source project already chosen, there are a few ways you can decide on what you would like to add to the project. You can work on pre-existing issues which can be found under the "Issues" tab on GitHub. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu8359uc3r4iif2317hng.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu8359uc3r4iif2317hng.png" alt="Issues tab on GitHub" width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When going through existing issues, you can look for things marked with the &lt;strong&gt;good first issue&lt;/strong&gt; or &lt;strong&gt;first timers only&lt;/strong&gt; tag (as previously mentioned). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fheks8ogy4b9cj3dwgbla.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fheks8ogy4b9cj3dwgbla.png" alt="Good First Issue tag on an issue" width="746" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you find an issue that you're interested in, it may be useful to leave a comment on the issue outlining the solution you would like to implement. &lt;/p&gt;

&lt;p&gt;You can also create an issue based on a bug you've noticed or a feature you think needs to be improved. Do this by clicking the "New Issue" button. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsu1ptzg7h8anorakztgc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsu1ptzg7h8anorakztgc.png" alt="New Issue button on GitHub" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you decide to open a new issue, be sure to provide relevant information that will allow maintainers to understand the bug you've run into and/or the feature you would like to add or improve and why. Remember the communication tips that were mentioned earlier. &lt;/p&gt;

&lt;p&gt;You can skip creating an issue and just submit a pull request. This will cut out some communication that goes with creating and submitting an issue. This means you can get right to work. But keep in mind that the project maintainer may decide to decline your pull request. So the work you've done may not be used in the end. If this is the route you'd like to go, you can move on to the following steps which will cover the process of submitting a pull request.&lt;/p&gt;

&lt;p&gt;Of all the options, I recommend working on a pre-existing issue. Make sure that you follow the guidelines set out by maintainers in the &lt;code&gt;README.md&lt;/code&gt; and &lt;code&gt;CONTRIBUTING.md&lt;/code&gt; files no matter what route you decide to take.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Fork your project of choice
&lt;/h3&gt;

&lt;p&gt;On GitHub, fork the repository you've chosen to work with. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsifejoxn8iqf557k5998.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsifejoxn8iqf557k5998.png" alt="Forking a repository on GitHub" width="800" height="92"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This will create a copy of the project that will be saved under your GitHub account.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ohjjhypi737x9d5dofe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ohjjhypi737x9d5dofe.png" alt="Copy of forked repository on your GitHub account" width="666" height="156"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Clone your fork
&lt;/h3&gt;

&lt;p&gt;To clone the fork you've created, click the "Code" button and copy the URL that's provided.&lt;/p&gt;

&lt;p&gt;In your terminal, change into the directory that you want to hold your forked project&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; &amp;lt;directory_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now clone your forked repository using git clone and the URL you just copied&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone &amp;lt;url&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Change into the folder that was just created. This will likely match the name of the project you forked. So if we're using the Sandpack repo as an example, that would be [sandpack]:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; &amp;lt;project_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Create a branch locally
&lt;/h3&gt;

&lt;p&gt;Before you start working, create a separate branch that will hold all the code that you add or edit.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; &amp;lt;branch-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Make your changes
&lt;/h3&gt;

&lt;p&gt;Now you can finally code! You may also be editing copy, fixing grammatical errors, or improving documentation. Whatever changes you're looking to make, you can finally do it at this step!&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Commit and push your changes
&lt;/h3&gt;

&lt;p&gt;Before you commit and push your changes, make sure to run and test your code. Once your sure that your code is functioning as desired, you can commit and push your changes to GitHub.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s1"&gt;'commit message here'&lt;/span&gt;
git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin &lt;span class="nb"&gt;head&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  6. Create a pull request
&lt;/h3&gt;

&lt;p&gt;Go to the original project on GitHub and you should see a prompt encouraging you to open a new pull request from the branch you created. Click the "Compare and pull request" button. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd4tnxgdu5uthhe1otcpg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd4tnxgdu5uthhe1otcpg.png" alt="Compare and pull request button" width="800" height="80"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you do this you will be shown a text editor. Fill this in with all the relevant information needed to understand the work you've just done. When you do this, click the "Create pull request" button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F768u0gie4xjvgi8csgkd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F768u0gie4xjvgi8csgkd.png" alt="Text editor and Create pull request button" width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you create your pull request, you'll have to wait on maintainers to respond. If the work you've done is error free and fits the scope and direction of the project, maintainers might merge your work into the project. They may request that you make changes to the work you've done. They might also decide to reject your pull request. If this happens, don't be discouraged. Maintainers will probably have a good reason for doing this and it's likely that will let you know. You can decide to work on another issue in the same project or you can find a new project to work with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Open source can seem intimidating. But once you dive into it, you'll see how rewarding it can be and you'll quickly reap the benefits. Here's a quick summary of the steps you need to take when you contribute to open source: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Thoroughly read through the &lt;code&gt;README.md&lt;/code&gt; and &lt;code&gt;CONTRIBUTING.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Fork the project repository&lt;/li&gt;
&lt;li&gt;Clone the project locally&lt;/li&gt;
&lt;li&gt;Create a feature branch for your work&lt;/li&gt;
&lt;li&gt;Once you finish make changes, commit and push your work&lt;/li&gt;
&lt;li&gt;Open a PR&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once you've done this, you'll officially become an open source contributor! If you'd like to prepare yourself more before getting started or if you want to learn more about open source, here are some resources I found very useful. &lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://opensource.guide/how-to-contribute/" rel="noopener noreferrer"&gt;Open Source Guide - How to Contribute to Open Source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.katherinempeterson.com/how-to-contribute-to-your-first-open-source-project" rel="noopener noreferrer"&gt;How to Contribute to Your First Open Source Project by Katherine Peterson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://css-tricks.com/open-source-etiquette-guidebook/" rel="noopener noreferrer"&gt;An Open Source Etiquette Guidebook by Sarah Drasner and Kent C. Dodds&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/devteam/hacktoberfest-etiquette-for-contributors-ec6"&gt;Hacktoberfest Etiquette for Contributors by Christina Gorton&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opensource</category>
      <category>beginners</category>
      <category>coding</category>
    </item>
    <item>
      <title>This Month on CodeSandbox - April 2021 Edition</title>
      <dc:creator>Ceora Ford</dc:creator>
      <pubDate>Wed, 28 Apr 2021 15:58:13 +0000</pubDate>
      <link>https://forem.com/codesandboxio/this-month-on-codesandbox-april-2021-edition-1e0m</link>
      <guid>https://forem.com/codesandboxio/this-month-on-codesandbox-april-2021-edition-1e0m</guid>
      <description>&lt;p&gt;Welcome to the first edition of This Month on CodeSandbox. This is a series where I'll be highlighting some of the amazing work being done by people in the community. As you can tell from the title, this will be a monthly series and, typically, the work I share will center around a certain topic or technology. I'll share work from CodeSandbox along with other platforms too. You can also find out what we've been working on so you can keep up to date with the CodeSandbox team.&lt;/p&gt;

&lt;p&gt;This edition is all about animation. Animations are great because they can be created with a variety of different technologies like React and Three.js and they can take your design to the next level. Lots of people use CodeSandbox to create and share some really fascinating animations and it’s mind-blowing! Here are a few I've come across that I really loved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Community Spotlight
&lt;/h2&gt;

&lt;p&gt;&lt;iframe src="https://codesandbox.io/embed/9cenu"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;a href="https://codesandbox.io/s/9cenu" rel="noopener noreferrer"&gt;Playground&lt;/a&gt; by &lt;a href="https://codesandbox.io/u/supahfunk" rel="noopener noreferrer"&gt;Fabio Ottaviani&lt;/a&gt; - This mesmerizing 3D animation was built with Three.js and react-three-fiber. Three.js and react-three-fiber together make building 3D animations in React applications possible. I'm already thinking of ways I want to use this in the future!&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://codesandbox.io/embed/nhndw"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;a href="https://codesandbox.io/s/nhndw" rel="noopener noreferrer"&gt;Rotating Stars&lt;/a&gt; by &lt;a href="https://codesandbox.io/u/twanmulder" rel="noopener noreferrer"&gt;Twan Mulder&lt;/a&gt; - This is the kind of animation that would make a great addition to a portfolio, blog, or even a product site. You can recreate this with just HTML and CSS so it's the perfect way to spice up a project.&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://codesandbox.io/embed/cell-fracture-forked-3rjsl"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;a href="https://codesandbox.io/s/cell-fracture-forked-3rjsl" rel="noopener noreferrer"&gt;Cell Fracture&lt;/a&gt; by &lt;a href="https://codesandbox.io/u/drcmda" rel="noopener noreferrer"&gt;Paul Henschel&lt;/a&gt; - This animation may seem deceptive at first glance. You only see the word "Hello" in simple black text. But click once to see "Hello" burst into colorful pieces. Cell Fracture was built with Three.js.&lt;/p&gt;
&lt;h2&gt;
  
  
  Around the Web
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Xm4BObh4MhI"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;a href="https://youtu.be/Xm4BObh4MhI" rel="noopener noreferrer"&gt;12HR+ YouTube Coding Bootcamp 2021!&lt;/a&gt; by &lt;a href="https://codesandbox.io/u/kubowania" rel="noopener noreferrer"&gt;Ania Kubów&lt;/a&gt; - This isn't really related to animation. But I just had to share this. Ania created this free, 12-hour coding boot camp, all taught using CodeSandbox. She covers HTML, CSS, and JavaScript through project building. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.thatsanegg.com/blog/your-first-css-animation/" rel="noopener noreferrer"&gt;Your First CSS Animation&lt;/a&gt; by &lt;a href="https://codesandbox.io/u/twanmulder" rel="noopener noreferrer"&gt;Twan Mulder&lt;/a&gt; - If you like "Rotating Stars" animation, then you'll really enjoy this article. Twan gives a step-by-step explanation of how to recreate his rotating CSS animation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.smashingmagazine.com/2020/11/threejs-react-three-fiber/" rel="noopener noreferrer"&gt;A Dive Into React And Three.js Using react-three-fiber&lt;/a&gt; by &lt;a href="https://codesandbox.io/u/iamfortune" rel="noopener noreferrer"&gt;Fortune Ikechi&lt;/a&gt; - A few of the projects featured earlier were built using Three.js and react-three-fiber. If you're interested in learning more about these technologies, this is a great place to start.&lt;/p&gt;
&lt;h2&gt;
  
  
  What We're Up To
&lt;/h2&gt;

&lt;p&gt;These announcements aren't really related to animation. But I'm still very excited to share some of what we've been doing at CodeSandbox. &lt;/p&gt;

&lt;p&gt;This month, we launched two new podcasts - &lt;a href="https://codesandbox.io/podcasts/version-one" rel="noopener noreferrer"&gt;Version One&lt;/a&gt; and the &lt;a href="https://codesandbox.io/podcasts/codesandbox-podcast" rel="noopener noreferrer"&gt;CodeSandbox Podcast&lt;/a&gt;. Version One dives into the product development journey of some really amazing online tools while the CodeSandbox Podcast focuses on members of the community and how they use CodeSandbox.&lt;/p&gt;

&lt;p&gt;Episodes for both podcasts are released twice a month. So episodes one and two of Version One and the CodeSandbox Podcast are already available! Find the latest episodes below. &lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/3lIxK1Qbi5g0Z5ZBmOCic4" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;iframe src="https://open.spotify.com/embed/episode/3UZIORihk3z3jQdEYFkS2v" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codesandbox</category>
      <category>community</category>
      <category>animation</category>
    </item>
    <item>
      <title>Why Community is Important for Developers</title>
      <dc:creator>Ceora Ford</dc:creator>
      <pubDate>Tue, 27 Apr 2021 15:54:36 +0000</pubDate>
      <link>https://forem.com/codesandboxio/why-community-is-important-for-developers-25g8</link>
      <guid>https://forem.com/codesandboxio/why-community-is-important-for-developers-25g8</guid>
      <description>&lt;p&gt;There are a plethora of developer communities out there. Countless times, I've been encouraged to join some online or in-person community for developers and I'm sure you have too. After listening to the  &lt;a href="https://codesandbox.io/podcasts/version-one/Vercel-Guillermo-Rauch" rel="noopener noreferrer"&gt;episode 2 of the Version One podcast&lt;/a&gt;, I was reminded of the value of community.&lt;/p&gt;

&lt;p&gt;The second episode of the Version One podcast features guest &lt;a href="https://twitter.com/rauchg" rel="noopener noreferrer"&gt;Guillermo Rauch&lt;/a&gt;, CEO and Co-founder of &lt;a href="https://vercel.com/" rel="noopener noreferrer"&gt;Vercel&lt;/a&gt;. When discussing how he started coding, Guillermo mentioned an online forum which played a huge part in his growth as a developer. As Guillermo's experience demonstrates, community can be a huge catalyst for growth as a developer. By why is that the case? And where can you find said communities? &lt;/p&gt;

&lt;h2&gt;
  
  
  Why you need to invest in community
&lt;/h2&gt;

&lt;p&gt;Coding isn't always an easy task. There are multiple hurdles that many people confront along their developer journey. Running into difficult errors, dealing with difficult coding concepts, job searching, career growth- the list could go on forever. It becomes so much easier to deal with these things when you have a helpful community to lean on.  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I started finding different communities that were helping me figure things out. And that also, whenever I would figure something out, I would contribute back, too.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When you find a community that fits your interests and career goals, you'll have a place where you can turn to ask questions and get advice from developers all over the world. You can also share your own insights and help others along the way. As time goes on, your developer network will continue to grow and you'll become a better developer. This is why it's so important to invest in community, no matter what skill level you're at.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to find the right community for you
&lt;/h2&gt;

&lt;p&gt;Now that you know community is so valuable, it's time to actually find one for yourself. You don't need to be part of every single one you come across. That can easily become overwhelming. Focus on actively participating in just a few. &lt;/p&gt;

&lt;p&gt;If it's safe to do so in the area where you live, you can look around for local meetups and communities. Check websites like &lt;a href="https://www.meetup.com/" rel="noopener noreferrer"&gt;Meetup&lt;/a&gt; and search for groups using keywords that are related to whatever language or technology you would like to be more involved with.&lt;/p&gt;

&lt;p&gt;Thankfully, we have social media and platforms like Discord and Slack which enable remote community building. Twitter is a developer hot spot. It's a great place to go to share what you're working on and learning and to ask and answer questions. It's good to know, though, that Twitter isn't always a safe space. But it still holds a ton of value. &lt;/p&gt;

&lt;p&gt;To find Discord and Slack communities, search "[insert language or tech stack of interest] communities on Discord/Slack" on Google. It also helps to ask developers you already know for recommendations. When you find a community that matches your interests, keep an eye out for active moderators and a Code of Conduct. Both of these things ensure the safety of community members. Of course, this isn't absolute and people with bad intentions may still slip in. But having moderators and a Code of Conduct that is heavily promoted means that your online safety is being prioritized and that's very important.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;It's clear that being part of a community can do wonders for your growth as a developer. Searching for, joining, and participating in developer communities online or in-person (if it's safe) will be well worth the effort and time you invest. Guillermo's podcast episode reminded me of this. There's much more to learn from his journey to becoming a startup founder. So make sure to give his Version One interview a listen.&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/3lIxK1Qbi5g0Z5ZBmOCic4" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>community</category>
      <category>career</category>
      <category>coding</category>
    </item>
    <item>
      <title>A Beginners Guide to Project Building</title>
      <dc:creator>Ceora Ford</dc:creator>
      <pubDate>Mon, 19 Apr 2021 17:15:16 +0000</pubDate>
      <link>https://forem.com/codesandboxio/a-beginners-guide-to-project-building-2okc</link>
      <guid>https://forem.com/codesandboxio/a-beginners-guide-to-project-building-2okc</guid>
      <description>&lt;p&gt;Building projects is a great way to learn and grow as a developer. There are always new skills to learn and we also need to maintain the skills we already have. Project building is a great way to do that.&lt;/p&gt;

&lt;p&gt;We recently got to chat with Charlie Gerard, senior front end developer of Netlify, about project building on the CodeSandbox Podcast and it got me thinking. Many of us probably have a long running list of projects we want to start or have started and never finished. It’s pretty common for developers to have several domain names without any finished project to use them on. How can you start to tackle this problem? How do you actually start and finish projects? &lt;/p&gt;

&lt;p&gt;This article will answer those very questions. If you want to know what steps you can take to successfully start and finish projects, keep reading! &lt;/p&gt;

&lt;h2&gt;
  
  
  Establish a goal
&lt;/h2&gt;

&lt;p&gt;Before starting, you should establish what your main objective is. What do you want to accomplish with your project? Try to be as specific as possible, including what languages or frameworks you want to build with and what new things you would like to learn. Here’s an example of a great project goal: "Build a gif search engine with JavaScript using the GIPHY API".&lt;/p&gt;

&lt;h2&gt;
  
  
  Make a game plan
&lt;/h2&gt;

&lt;p&gt;Now that you have your project goal in place, you have to make a plan. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;" Once I have my question and I know what I want to prove, then I can break down the project into small chunks that are doable in my schedule."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Break your project down into small, actionable steps. Again, try to be as specific as possible. &lt;/p&gt;

&lt;p&gt;I typically create a Notion document for each project I build. I create a checklist of all the steps I think I need to take to complete my project. Of course, the scope of your project may change over time. So adjust your game plan as needed. &lt;/p&gt;

&lt;p&gt;Having a clear cut plan in place will make project building go smoothly for you. &lt;/p&gt;

&lt;h2&gt;
  
  
  Start small and iterate over time
&lt;/h2&gt;

&lt;p&gt;The size of your project will depend on what your main objective is. After creating your project plan, you might realize that your project will be a big undertaking. This can be intimidating. To overcome this, you should try starting small and iterating over time.&lt;/p&gt;

&lt;p&gt;Think about what your MVP or minimum viable product is. What is the most basic form of your project? Aim to create your MVP first and iterate on your project over time. You can include possible iterations and improvements in your project game plan. &lt;/p&gt;

&lt;h2&gt;
  
  
  Celebrate small wins
&lt;/h2&gt;

&lt;p&gt;Progress can sometimes feel slow, especially with larger projects. At this point, you should have small actionable steps in place to help move things along. Each step that you complete is worthy of celebration! &lt;/p&gt;

&lt;p&gt;Try sharing your progress with others. Twitter is a great place for this. When you complete a step in your game plan, take time to reflect on what you’ve learned and how you’ve improved. You can take this and write articles, Twitter threads, or even make video content to share with others. &lt;/p&gt;

&lt;h2&gt;
  
  
  Adjust project scope if needed
&lt;/h2&gt;

&lt;p&gt;This was a point Charlie made in her podcast episode and I think this is a step we often overlook. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Maybe I pause that project and then I know that I'll get back to it later when I have more knowledge or when I re-frame the question in a way that it can actually be achieved. So to me, that's my way of finishing things."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's okay to adjust the scope of your project. Learning that your project goal was too ambitious or having a busy schedule that doesn't allow for lots of project building is completely normal. It's an inevitable part of being a developer who builds side projects. &lt;/p&gt;

&lt;p&gt;If you run into an issue like this, your first inclination may be to just abandon your project. But that isn't always necessary. This might be an opportunity for you to adjust the scope of your project. Go back to your plan and see where you can make some changes. Making project goals smaller or cutting your plan short can be helpful at this stage. This can be upsetting at first but there will always be time and opportunities in the future. Time and more experience may be what you need to move your project ahead so adjusting your project scope to allow for this isn't a failure by any means.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Project based learning is one of the best ways to keep sharp as a developer. But it's also important to know how to finish the projects that you start. So remember these 5 points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Establish a goal&lt;/li&gt;
&lt;li&gt;Make a game plan&lt;/li&gt;
&lt;li&gt;Start small and iterate over time&lt;/li&gt;
&lt;li&gt;Celebrate small wins&lt;/li&gt;
&lt;li&gt;Adjust project scope if needed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is just a portion of the helpful insights Charlie shared on the CodeSandbox Podcast. Make sure to &lt;a href="https://codesandbox.io/podcasts/codesandbox-podcast/charlie-gerard-netlify" rel="noopener noreferrer"&gt;give her interview a listen&lt;/a&gt; and learn more about the awesome work she does.&lt;br&gt;
&lt;iframe src="https://open.spotify.com/embed/episode/5NLw30nyowTpwjV9HDq7bg" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>coding</category>
      <category>projects</category>
      <category>beginners</category>
    </item>
    <item>
      <title>What I Learned From Bombing My Technical Interview</title>
      <dc:creator>Ceora Ford</dc:creator>
      <pubDate>Thu, 12 Nov 2020 14:21:42 +0000</pubDate>
      <link>https://forem.com/ceeoreo/what-i-learned-from-bombing-my-technical-interview-22b5</link>
      <guid>https://forem.com/ceeoreo/what-i-learned-from-bombing-my-technical-interview-22b5</guid>
      <description>&lt;p&gt;So... I embarrassingly bombed a technical interview yesterday. It was... BAD. In all honesty, this interview had the potential to be great. Both people interviewing me were very calm and kind. And I had the opportunity to show off my own project and add a new feature to it. If you've ever done a technical interview before, you know this is one of the best case scenarios (aside from no technical interview at all). And yet, I totally blew it.&lt;/p&gt;

&lt;p&gt;I rambled A LOT. I forgot key terminology. When I was adding a new feature to my web app, I forgot key steps and I explained what I was doing poorly. I ended up ending the interview early because I was getting so stressed out and nervous.&lt;/p&gt;

&lt;p&gt;This was a position I &lt;em&gt;really&lt;/em&gt; wanted. I was really disappointed in myself and I felt like trash to be completely honest. I was kind of thinking about switching professions for a minute too😂 &lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1326598528697851906-139" src="https://platform.twitter.com/embed/Tweet.html?id=1326598528697851906"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1326598528697851906-139');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1326598528697851906&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;But, I want to look back on this experience and point out some of things I could have done better and will do better next time. So if you have a technical interview coming up, this one's for you!&lt;/p&gt;

&lt;h2&gt;
  
  
  1. GET ENOUGH SLEEP THE NIGHT BEFORE
&lt;/h2&gt;

&lt;p&gt;This is number one for a reason. I pretty much pulled an all nighter the night before. I was practicing what I was going to say, preparing for an upcoming workshop I'm hosting, and watching Marvel movies. Basically, a recipe for disaster.&lt;/p&gt;

&lt;p&gt;I thought I was in high school again when I used to pull all nighters and take a test the next morning and still get a near perfect score. My brain doesn't work like that anymore. So I will &lt;em&gt;never&lt;/em&gt; be doing that again. I'm convinced this is the main reason why my explanations were all over the place and pretty much nonsensical.&lt;/p&gt;

&lt;p&gt;So make sure you get enough sleep before your interview! In my case, I probably would have been better off sleeping than practicing like I had done. Without sleep, all that practice was pretty much useless.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Do a mock interview with a friend
&lt;/h2&gt;

&lt;p&gt;I'm a huge believer in mock interviews. I've done one for almost every technical interview I've had... except for this one. I'm positive that walking through my code with a trusted friend or colleague would have helped me &lt;em&gt;immensely&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I wasn't sure what feature I should build to impress the interviewers so I was really scattered. I was jumping between two features and I'm sure that didn't look good. If I had practiced with a mock interview, I would've asked for feedback and seen what feature I should have implemented during the interview. A mock interview also would have helped me to fine tune my explanations. So yes, next time I &lt;em&gt;will&lt;/em&gt; be doing a mock interview with someone.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Take notes before the interview
&lt;/h2&gt;

&lt;p&gt;The more I think about this interview, the more I realize how chaotic my brain was at the time (see point number one). Now that I think about it, it's actually kind of funny. Just a few minutes before the interview started, I thought it might be a good idea to write down the steps I needed to follow to add my desired feature. This was a good idea I think except I wrote them on sticky notes and the sticky notes somehow got scattered out of order all over my desk. Can you feel the chaos??&lt;/p&gt;

&lt;p&gt;This obviously made things worse for me since I got so flustered that I completely blanked on what I was supposed to be doing. And the sticky notes were all over the place and I couldn't get them back in order. Now I know that it's probably best to either write them down on a sheet of paper or type the steps out in a markdown file.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Talk a LOT
&lt;/h2&gt;

&lt;p&gt;This usually isn't very hard for me because I'm a naturally talkative person and I actually enjoy talking through my code. This time was different though. I couldn't get my thoughts straight (again, see number one) and I had a lot of awkward pauses. For technical interviews, it's best to just voice you're thoughts even if you're not exactly sure what's going on.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Use tons of pseudocode
&lt;/h2&gt;

&lt;p&gt;Again, this is something I LOVE to do. Using pseudocode helps me to get my thought process straight and point out flawed logic quickly. It's also a great way to show your interviewer how you think and approach problems. I didn't use pseudocode enough during this interview but I'll make sure to utilize this technique during my next one.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Don't drink coffee before the interview!
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer: this is purely my personal preference so please feel free to disregard this completely&lt;/strong&gt; This is something that might surprise you. But I tend to get a little jittery whenever I drink coffee. So whenever I have to do something that's nerve racking, I make sure to avoid coffee at all cost. I did not do that for this interview. I drank coffee because I hadn't slept and I thought it would help. But it just made me super jumpy and of course, I got the jitters. This made me more nervous and that made me panic. So yeah, as you can imagine, it was a disaster. Note to self: don't drink coffee before an interview.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Don’t put too much pressure on yourself
&lt;/h2&gt;

&lt;p&gt;This one is hard. Most of us need to work and if you’re out of work, that makes any job interview very high pressure. For me, I really, really wanted this job. I was excited about the role and the people I would get to work with. So I put a lot of pressure on myself to impress and perform well. But all that pressure made me do the opposite. This is a tough one to follow but I’m going to try not to do this next time. I’m still figuring out how to get pass this reaction I have to any opportunity I’m excited about. If you have any tips, please share!!&lt;/p&gt;




&lt;p&gt;As you can see, a lot of my mistakes stemmed from lack of sleep. I'm not going to say that I'm the best at technical interviews. But I've never performed like this. There are some things I know how to do well and I just didn't do them this time around. And I'm 100% positive it's because I didn't get enough sleep. So if there's one thing you take away from this, it should be this: &lt;strong&gt;Sleep is very important! So please try to get enough rest before your interview!!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now, to be clear, I'm not writing this article to overly criticize myself. Thinking about what happened still stings but I'm done beating myself up about it. I'm sure I'll think about this some day and laugh. But I'm writing this now to learn from the situation and maybe even help someone else! So please learn from my mistakes!&lt;/p&gt;

&lt;p&gt;Lots of lovely people have been kind enough to give me some technical interview tips. I plan on putting all those together in a more comprehensive blog post! So stay tuned for that. Feel free to leave any tips you have in the comments! You can also share your own interview horror stories if you like😆 Thanks for reading!&lt;/p&gt;

</description>
      <category>interview</category>
      <category>codenewbie</category>
      <category>coding</category>
    </item>
    <item>
      <title>Wait... Serverless Isn't Actually Serverless?</title>
      <dc:creator>Ceora Ford</dc:creator>
      <pubDate>Fri, 30 Oct 2020 08:54:27 +0000</pubDate>
      <link>https://forem.com/ceeoreo/wait-serverless-isn-t-actually-serverless-pp5</link>
      <guid>https://forem.com/ceeoreo/wait-serverless-isn-t-actually-serverless-pp5</guid>
      <description>&lt;p&gt;Before we get into the topic of this article, I want to tell a little story. I started learning more about cloud engineering and AWS a few months ago. I had finally wrapped my head around what cloud actually was. Then I was introduced to this concept of serverless computing and... I was thoroughly confused to say the least.&lt;br&gt;&lt;br&gt;
&lt;iframe class="tweet-embed" id="tweet-1296188715417636866-284" src="https://platform.twitter.com/embed/Tweet.html?id=1296188715417636866"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1296188715417636866-284');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1296188715417636866&amp;amp;theme=dark"
  }



&lt;br&gt;
I finally started to understand some AWS foundational concepts and resources and now I was learning about serverless. This absolutely threw me for a loop. You might relate to how I felt a few months ago. If so, this post is just for you.&lt;/p&gt;

&lt;p&gt;I'm going to break down what serverless computing actually is. I'll also point out some essential AWS serverless resources to know. But to understand serverless computing, it's good to first understand cloud computing. So let's begin by first establishing what cloud computing is.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is cloud computing?
&lt;/h2&gt;

&lt;p&gt;Your code needs to be hosted on a server. Depending on the size of your code and the amount of users you expect to use your product or website, you might need many servers. Companies used to have their own facilities and warehouses that held their servers and many still do. But for many, this is not ideal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Servers can be difficult to maintain&lt;/strong&gt;. I'm not sure about you but sometimes when I have a lot of tabs open and lots of apps running on my laptop, my laptop starts to act a little funny. Sometimes if I'm using my computer on my bed where vents are blocked by blankets, my computer starts to act strange. You’ve probably experienced the same thing before. Something similar happens with servers too.&lt;/p&gt;

&lt;p&gt;Servers may begin to malfunction when there is lots of code running and many users accessing that code. Servers are also affected by changing temperatures. Maintaining servers and the buildings that house them can become expensive too. Over time, these issues can become hard to manage. That's where AWS and other cloud providers come in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud computing is basically renting out servers and data storage that's owned by someone else.&lt;/strong&gt; With AWS, that means using servers owned by Amazon. This cuts out the need to buy and maintain physical servers. The issues I mentioned earlier are no longer a problem. AWS offers more than storage which is obvious as their list of services seems to never end. Through AWS, you gain access to resources like storage services, servers, networking, analytics, AI, and more.&lt;/p&gt;

&lt;p&gt;Aside from the wealth of resources cloud computing allows you to access, there are many other benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You pay only for what you use. This can be very cost effective.&lt;/li&gt;
&lt;li&gt;You can easily spin up and use new servers when needed, allowing you to scale quickly.&lt;/li&gt;
&lt;li&gt;You can deploy applications globally.&lt;/li&gt;
&lt;li&gt;All of this leads to quicker development and deployment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cloud computing might seem great and it is (for the most part). So where does serverless computing come in? And why is it necessary? What even &lt;em&gt;is&lt;/em&gt; it? Let's start there first.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Serverless?
&lt;/h2&gt;

&lt;p&gt;With cloud computing, you don't have to worry about server maintenance. But you can decide what type of server to deploy, how much computing power you'll require, how many servers you want, and much more. &lt;strong&gt;You don't own the servers but you still have a lot of control over them&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Serverless takes cloud computing to the next level. You don't have to worry about the servers &lt;strong&gt;at all&lt;/strong&gt;. Here's one key thing to remember: &lt;strong&gt;serverless does not mean there aren't any servers&lt;/strong&gt;. Check the meme I shared in the intro for a reminder. You still need servers to host and run your code. &lt;strong&gt;With serverless computing, you let go of the responsibilities and control you have with cloud computing&lt;/strong&gt;. This means that you can completely focus on your code without having to configure your servers to meet your needs.&lt;/p&gt;

&lt;p&gt;This is &lt;strong&gt;really&lt;/strong&gt; powerful! You don't have to learn any infrastructure to deploy code using serveless computing. All your time can be spent focusing on your code and you still get many of the benefits of cloud computing. Serverless can be very low cost and it's super easy to scale up or down with serverless. Of course, like everything, there are some drawbacks to going the serverless route. It may not be the best option for you depending on what your needs are. But we won't get into that right now. (Maybe in a future edition of Learn AWS With Me?)&lt;/p&gt;

&lt;p&gt;At this point, you now know what past me struggled with! You know the difference between cloud computing and serverless computing. You also know that serverless isn't &lt;em&gt;actually&lt;/em&gt; serverless. Now, let's cover some of the serverless resources AWS has to offer.&lt;/p&gt;

&lt;h2&gt;
  
  
  AWS Serverless Resources You Should Know
&lt;/h2&gt;

&lt;p&gt;AWS has a &lt;strong&gt;lot&lt;/strong&gt; to offer. So, as you can imagine, there are a lot of serverless resources available. I'll point you to the ones I use the most and the ones you might be interested in too!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Lambda
AWS Lambda is super useful! This service allows you to run serverless functions. You only pay for the time your code runs. I've used AWS Lambda to run Twitter bots. There are tons of things you can do with AWS Lambda.&lt;/li&gt;
&lt;li&gt;S3
S3 stands for Simple Storage Service. S3 offers you simple, secure storage. This is a great resource to play around with. Try hosting a static site with S3. This was my first AWS project and it's a great place to start!&lt;/li&gt;
&lt;li&gt;DynamoDB
Amazon DynamoDB is a noSQL database service. I haven't gotten to work with DynamoDB (yet). But this &lt;a href="https://www.dynamodbguide.com/what-is-dynamo-db/" rel="noopener noreferrer"&gt;What is DynamoDB?&lt;/a&gt; article from the &lt;a href="https://www.dynamodbguide.com/" rel="noopener noreferrer"&gt;DynamoDB guide&lt;/a&gt; site is a great place to learn from!&lt;/li&gt;
&lt;li&gt;SNS
SNS stands for Simple Notification Service. This service allows you to automatically send emails or text messages based on certain occurrences within your AWS account. We used SNS in the &lt;a href="https://www.ceoraford.com/posts/never-get-an-unexpected-aws-bill-again!/" rel="noopener noreferrer"&gt;Never Get an Unexpected AWS Bill Again!&lt;/a&gt; lesson. If you want to get a better idea of how SNS works, follow along with the lesson and create your own billing alarm.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you want to experiment with some of these resources, check out this &lt;a href="https://www.thedevcoach.co.uk/serverless-beginner-project/" rel="noopener noreferrer"&gt;article with 3 serverless projects&lt;/a&gt; you can start working on.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;To sum all this up, no, serverless is &lt;strong&gt;not&lt;/strong&gt; actually serverless. Now that I understand what serverless is, I find it really fascinating! I'm now able to utilize serverless resources offered by AWS and other companies and it honestly makes my life so much easier (most of the time😂). With this new knowledge, you can jump into building and deploying amazing things! If you do, make sure to share with me!&lt;/p&gt;

&lt;p&gt;If there's an AWS topic you'd like me to cover, feel free to let me know in the comments below! Thanks for reading!!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>serverless</category>
      <category>cloud</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How I Learned JAMStack</title>
      <dc:creator>Ceora Ford</dc:creator>
      <pubDate>Tue, 20 Oct 2020 15:03:07 +0000</pubDate>
      <link>https://forem.com/ceeoreo/how-i-learned-jamstack-21ee</link>
      <guid>https://forem.com/ceeoreo/how-i-learned-jamstack-21ee</guid>
      <description>&lt;p&gt;In July, I was asked to participate in a &lt;a href="https://www.youtube.com/watch?v=JsHqFyTJtos&amp;amp;t=492s" rel="noopener noreferrer"&gt;panel for GraphQL Summit and talk about JAMStack&lt;/a&gt;. I was so hype and excited!! I was going to have the opportunity to talk with some really cool people at a really cool conference. But there was 1 problem. I didn't know much of anything about JAMStack.&lt;/p&gt;

&lt;p&gt;HOW WAS I SUPPOSED TO LEARN JAMSTACK IN ENOUGH TIME TO TALK ABOUT IT AT A CONFERENCE WITH EXPERTS???????&lt;/p&gt;

&lt;p&gt;Well there were a couple things I did so that I could hold my own in the conversation. Here's a quick run down of the resources I used and things I did to learn JAMStack fast.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. I read a &lt;em&gt;few&lt;/em&gt; articles
&lt;/h2&gt;

&lt;p&gt;These are all of the articles I read to get a good idea of what JAMStack actually was.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.cloudflare.com/learning/cdn/what-is-a-cdn/" rel="noopener noreferrer"&gt;What is a CDN? - Cloudflare&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.learnwithjason.dev/blog/wtf-is-jamstack/" rel="noopener noreferrer"&gt;WTF is JAMstack - Learn With Jason&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.smashingmagazine.com/2019/06/jamstack-fundamentals-what-what-how/" rel="noopener noreferrer"&gt;JAMstack Fundamentals - Smashing Magazine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/shortdiv/can-a-spa-be-jamstack-5gci#:~:text=In%20light%20of%20this%20definition,sense%20can%20be%20considered%20JAMstack.&amp;amp;text=Instead%2C%20the%20JAMstack%20recommends%20front,content%20ingestion%20at%20build%20time."&gt;Can a SPA Be JAMstack? - Divya on DEV&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because I had a time constraint, I couldn't spend a whole lot of time compiling a bunch of articles to read and study. This forced me to stick to a small number of articles which was actually a good thing. No matter what you decide to learn, don't bog yourself down with a gigantic list of resources. Doing that usually prolongs getting your hands dirty and building stuff.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. I watched the &lt;a href="https://www.youtube.com/watch?v=A_l0qrPUJds&amp;amp;t=3576s" rel="noopener noreferrer"&gt;freeCodeCamp JAMstack course&lt;/a&gt; on YouTube
&lt;/h2&gt;

&lt;p&gt;I admittedly didn't watch the &lt;em&gt;whole&lt;/em&gt; thing. But I watched just enough to get me started with Eleventy. Phil Hawthorne explains things really clearly and despite being experienced, I think he also breaks things down in a beginner-friendly way. He makes sure to explain some of the terms that are unfamiliar to those new to JAMstack.&lt;/p&gt;

&lt;p&gt;The only thing about this video is that it's really long. But there are time stamps in the video description so you can jump around if you want to. And you can always pause and pick up where you left off later. Or you can be like me and just not finish it. Whatever works best for you!&lt;/p&gt;

&lt;h2&gt;
  
  
  3. I built projects
&lt;/h2&gt;

&lt;p&gt;Or I should say, I &lt;em&gt;started&lt;/em&gt; projects. If you watch the panel, you'll notice that I specically mentioned two projects I started: &lt;a href="https://www.ceoraford.com/" rel="noopener noreferrer"&gt;my blog&lt;/a&gt; and &lt;a href="https://www.dayinthelife.dev/" rel="noopener noreferrer"&gt;dayintheline.dev&lt;/a&gt;. I didn't have enough time to actually finish either of them before the panel.&lt;/p&gt;

&lt;p&gt;My blog is done now (obviously) and I'm still working on &lt;a href="https://www.dayinthelife.dev/" rel="noopener noreferrer"&gt;dayinthelife.dev&lt;/a&gt;. Building a project allowed me to explore some of the different static site generators out there. (Eleventy is my favorite if you care.) I got to see &lt;em&gt;how&lt;/em&gt; JAMstack works after learning what it is. Having this experience helped me to talk about JAMstack like I kind of knew what I was doing.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you can take away from this
&lt;/h2&gt;

&lt;p&gt;You might be reading this if you're interested in learning JAMstack. But I think my experience can be applied to any tech stack or coding language. There are a few things I did right in this situation that you can apply to almost any discipline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I stuck to a handful of resources and didn't get caught up in hoarding articles, courses, videos, and everything else out there&lt;/li&gt;
&lt;li&gt;I built something with what I learned&lt;/li&gt;
&lt;li&gt;I talked about what I learned (aka practiced learning in public)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last part might seem intimidating since I was on a conference panel. To be quite honest, it was EXTREMELY intimidating for me. But speaking at a conference isn't the only form of learning in public. You can stream on Twitch. You can write articles. You can make videos. You can even talk to a family member or friend about what you've learned and built! Just take the opportunity to teach someone else what you've learned!&lt;/p&gt;

</description>
      <category>jamstack</category>
      <category>learning</category>
      <category>coding</category>
    </item>
    <item>
      <title>Never Get an Unexpected AWS Bill Again!</title>
      <dc:creator>Ceora Ford</dc:creator>
      <pubDate>Tue, 08 Sep 2020 16:37:41 +0000</pubDate>
      <link>https://forem.com/ceeoreo/never-get-an-unexpected-aws-bill-again-5526</link>
      <guid>https://forem.com/ceeoreo/never-get-an-unexpected-aws-bill-again-5526</guid>
      <description>&lt;p&gt;One of the things that prevents a lot of people from exploring AWS is the cost. Some AWS services are very expensive. Accidentally forgetting to cut something off and getting charged is the worst feeling. Trust me, I know.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Faws-billp-meme.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Faws-billp-meme.JPG" alt="Meme of guy looking confused. This how I am when I get an unexpected AWS bill" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Is this an irrational fear? Is this something people think of just as an excuse for not getting started? Absolutely not. This is definitely, 1000% a valid fear. I'm sure most people involved with AWS have a horror story about getting charged unexpectedly. The great thing is that there are steps you can take to prevent this from happening. For the first installation of Learn AWS With Me, I'm going to cover 3 things you can do to make sure you don't get billed unexpectedly.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Cut Things Off IMMEDIATELY
&lt;/h2&gt;

&lt;p&gt;This might seem really obvious but I mean it. Seriously. This is something you should get into the habit of doing early. If you're just practicing and you want to make sure you know how to navigate the AWS console, make sure to undo your work immediately!! Did you just spin up an EC2 instance? Great!! SHUT IT DOWN!! You just figured out how to use RDS? Amazing! Shut. It. DOWN!!!!!&lt;/p&gt;

&lt;p&gt;Not all AWS services are expensive. AWS Lambda is one example. Leaving a practice lambda running won't cost you a whole lot. But this definitely isn't always the case. I mentioned EC2 and RDS earlier because I know from experience that those two can be VERY expensive. So, again, &lt;strong&gt;MAKE SURE TO SHUT THINGS DOWN ONCE YOU FINISH PRACTICING&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Set Up Billing Alerts
&lt;/h2&gt;

&lt;p&gt;Did you know that you can set up billing alerts on AWS? I didn't learn this until it was too late (more on that later). Setting up a billing alert can save you sooo much pain, heartache, and most importantly, money. Follow these steps to set up billing alerts right now!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the AWS management console, search for a service called &lt;strong&gt;CloudWatch&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Fcost-step1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Fcost-step1.png" alt="Image of AWS console CloudWatch service" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On the left hand corner of the CloudWatch dashboard, click &lt;strong&gt;Billing&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Fcost-step2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Fcost-step2.png" alt="Image of Billing tab under CloudWatch service" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Create Alarm&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Fcost-step3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Fcost-step3.png" alt="Create Alarm button" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For Step 1, we have to track a metric. We want this alarm to track &lt;strong&gt;EstimatedCharges&lt;/strong&gt; as our metric. Set the currency to whatever fits your location.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Fcost-step4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Fcost-step4.png" alt="Image of metric tracking page" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;At the bottom of the page, you can define your price limit. You can set the limit to 0 if you don't want to go past the free tier limits. After you've defined your price limit, click &lt;strong&gt;Next&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Fcost-step5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Fcost-step5.png" alt="Price field and next button" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For Step 2, define what kind of notification you want to receive. You should set this to &lt;strong&gt;In Alarm&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For &lt;strong&gt;Select an SNS topic&lt;/strong&gt; click &lt;strong&gt;Create new topic&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Fcost-step6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Fcost-step6.png" alt="SNS topic page" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can SNS topic whatever you like. I chose, 'toomuchmoney'. Now set it to whatever email you want the notifications to be sent to. Click &lt;strong&gt;Create Topic&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Fcost-step7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.ceoraford.com%2Fstatic%2Fimg%2Fcost-step7.png" alt="Choosing SNS Topic name" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Next&lt;/strong&gt; on the bottom right-hand corner.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For Step 3, choose alarm name next. You can give this the same name as your topic if you like. You can also add a description for this alarm if you want to.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Step 4 is just previewing what you've already done. If everything looks good, you can finish things off by clicking &lt;strong&gt;Create alarm&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now you have an alarm that will tell you whenever you get close to passing your price threshold.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Open a Support Case
&lt;/h2&gt;

&lt;p&gt;What if you're past the point of no return? What if you already got the email from AWS telling how much you'll be charged? Does it sound like this is something I'm remembering? Well, that's because this happened to me recently and I was devastated. Thankfully, there &lt;em&gt;is&lt;/em&gt; something you can do to fix this.&lt;/p&gt;

&lt;p&gt;You can open up a support case! How?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on the &lt;strong&gt;Support&lt;/strong&gt; button in the top right hand corner and choose &lt;strong&gt;Support Center&lt;/strong&gt;. You can also search for support in the AWS Management Console.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create Case&lt;/strong&gt; and click &lt;strong&gt;Account and billing support&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Fill out the details that best fits your situation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's important to keep in mind that you don't want to take advantage of this method too often. I've only had to submit a support case once and someone from the AWS support team got back to me within a few days and waived my bill. But I have heard that they aren't always so forgiving after the first time. So don't rely on this feature too much. It might not turn out well for you all the time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;AWS can be expensive. But I don't want that to stop you from learning how to use some of the services AWS has to offer. If you follow some of the advice outlined in this post, you can be sure that unexpected costs won't be something you have to struggle with. And if you slip up, you can always try option 3. Look out for the next Learn AWS With Me post coming soon! If you want to be notified when that drops, follow me here. And of course, if you have any requests, leave them in the comments below. Thanks for reading!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>beginners</category>
      <category>cloud</category>
    </item>
  </channel>
</rss>
