<?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: Alejandro Foronda</title>
    <description>The latest articles on Forem by Alejandro Foronda (@pika11).</description>
    <link>https://forem.com/pika11</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%2F301558%2F1f7aa8c9-b21e-461c-a6cd-8c139d720549.jpg</url>
      <title>Forem: Alejandro Foronda</title>
      <link>https://forem.com/pika11</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/pika11"/>
    <language>en</language>
    <item>
      <title>Learn Next.JS by doing!</title>
      <dc:creator>Alejandro Foronda</dc:creator>
      <pubDate>Sun, 11 Oct 2020 14:51:25 +0000</pubDate>
      <link>https://forem.com/pika11/learn-next-js-by-doing-1038</link>
      <guid>https://forem.com/pika11/learn-next-js-by-doing-1038</guid>
      <description>&lt;p&gt;&lt;a href="https://nextjs.org/"&gt;Next.JS&lt;/a&gt; is a great framework! &lt;/p&gt;

&lt;p&gt;I created something that (hopefully) makes it fun to learn. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://next-small-challenge.vercel.app/"&gt;Learn Next.JS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Is small set of 3 small challenges. I will definitely appreciate all feedback possible since this can be improved and maybe create similar resources for other technologies? &lt;/p&gt;

&lt;p&gt;Let me know what you think!!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3aJnbtcB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/dpwvkkj4qvchlwwdzyql.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3aJnbtcB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/dpwvkkj4qvchlwwdzyql.png" alt="Challenge 1 Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--purGGGG3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/w6yg9a7z7xfshzbt71gr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--purGGGG3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/w6yg9a7z7xfshzbt71gr.png" alt="Challenge 2 Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--heGgbeS8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/oeiyl2sh0zzlfjn27yfj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--heGgbeS8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/oeiyl2sh0zzlfjn27yfj.png" alt="Challenge 3 Screenshot"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://next-small-challenge.vercel.app/"&gt;Solve the challenges!&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>react</category>
    </item>
    <item>
      <title>Creating websites with txt files! | Proof of concept | Would love to hear your feedback!</title>
      <dc:creator>Alejandro Foronda</dc:creator>
      <pubDate>Wed, 12 Feb 2020 01:40:19 +0000</pubDate>
      <link>https://forem.com/pika11/creating-websites-with-txt-files-proof-of-concept-would-love-to-hear-your-feedback-1bce</link>
      <guid>https://forem.com/pika11/creating-websites-with-txt-files-proof-of-concept-would-love-to-hear-your-feedback-1bce</guid>
      <description>&lt;h1&gt;
  
  
  Can programming be more accessible?
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://thatgoodcompany.com/"&gt;Proof of Concept&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I believe so!, but first... Why should programming, or technology creation be more accessible? &lt;/p&gt;

&lt;p&gt;The answer (at least for me) lies on the fact that there are so many creators out there that want to make so many things and have great ideas but they find themselves in front of a very steep road to do so. And we as engineers haven't made the path much smoother over time. In fact even many experienced developer can have a rough time on SO answers or reddit forums. &lt;/p&gt;

&lt;h1&gt;
  
  
  How?
&lt;/h1&gt;

&lt;p&gt;There are many people and great companies working on democratizing technology for everyone with all sorts of different approaches. Myself took the approach of making it text based, as if you were taking notes.&lt;/p&gt;

&lt;p&gt;The first idea was to configure a JSON file to change colors, add products and so on, and even though JSON is really human friendly is not human enough for people just getting started. &lt;/p&gt;

&lt;p&gt;So I came up with this approach, where you basically put the name of a property, a colon and the value without { [ " which might and surly has scared a lot of people in the past. &lt;/p&gt;

&lt;h1&gt;
  
  
  Sample
&lt;/h1&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name: My product!

price: 19.99

description: 

My Awesome product is awesome

lorem ipsum
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Just like that you would create a product and have it ready on a predefined template. &lt;/p&gt;

&lt;h1&gt;
  
  
  Future &amp;amp; Present
&lt;/h1&gt;

&lt;p&gt;I have no idea if this would actually increase productivity of a lot of people or if this is not something that would actually help someone. It even could be used from any note taking app out there, Notion was a big inspiration for this as well &lt;/p&gt;

&lt;p&gt;I really hope it does, as the same mechanism could be used for making blogs, or even APIs where programers could use it as a headless CMS... but I'm getting ahead of myself. If you have some time I would definitely love to hear your thoughts and suggestions.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Code Challenge #5 | styled jsx | Raising Card</title>
      <dc:creator>Alejandro Foronda</dc:creator>
      <pubDate>Thu, 09 Jan 2020 16:28:09 +0000</pubDate>
      <link>https://forem.com/thatgoodcompany/code-challenge-5-styled-jsx-raising-card-42d7</link>
      <guid>https://forem.com/thatgoodcompany/code-challenge-5-styled-jsx-raising-card-42d7</guid>
      <description>&lt;h2&gt;
  
  
  Challenge
&lt;/h2&gt;

&lt;p&gt;Make the card component be able to receive an image prop and display it on the top half of the card. &lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://codesandbox.io/embed/kjnik?module=/components/card.js"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/s/raising-card-sample-kjnik?module=components/card.js"&gt;Solve the challenge on CodeSandbox&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remember&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To edit the sandbox you'll need to fork it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Solution
&lt;/h2&gt;

&lt;p&gt;You can send your solutions and request any help by reaching us via twitter to &lt;a href="https://twitter.com/thatgoodcompany"&gt;@thatgoodcompany&lt;/a&gt; or via email to &lt;a href="//mailto:contact@thatgoodcompany.com"&gt;contact@thatgoodcompany.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>challenge</category>
      <category>javascript</category>
      <category>css</category>
    </item>
    <item>
      <title>The joy of creating - The reason why I learned to code</title>
      <dc:creator>Alejandro Foronda</dc:creator>
      <pubDate>Sun, 05 Jan 2020 00:03:39 +0000</pubDate>
      <link>https://forem.com/pika11/the-joy-of-creating-the-reason-why-i-learned-to-code-c6k</link>
      <guid>https://forem.com/pika11/the-joy-of-creating-the-reason-why-i-learned-to-code-c6k</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;When you experience the feeling of writing weird words that somehow create a website you can't go back.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Byproduct
&lt;/h1&gt;

&lt;p&gt;I have a &lt;strong&gt;business development&lt;/strong&gt; bachelor's degree but somehow I've been working as a software developer for about 6 years now. Although I was always interested in technology and computers and the famous Game Boy it never crossed my mind that I could be the one creating things that could run on said devices. &lt;/p&gt;

&lt;h2&gt;
  
  
  How I "entered" the industry then?
&lt;/h2&gt;

&lt;p&gt;In my third year of college, I and a few classmates wanted to create what we now would call a "web app". We had this idea of making an online place where you could bet on local soccer matches (we later found that this was illegal but that's the beauty of being young, right? 🥳 also the service never came to fruition so no laws were broken).&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting started
&lt;/h3&gt;

&lt;p&gt;To achieve this we needed a lot of web development work done and neither of us had the skills or a friend that could help and knew how to do it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Web Apps
&lt;/h3&gt;

&lt;p&gt;Some of you might be thinking that here I learned to code, and in just 3 weeks we had our MVP (that term didn't exist or wasn't popular back then) done!... &lt;strong&gt;That didn't happen&lt;/strong&gt; We did try, but as soon as we saw &lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/code&gt; we were like "Oh @!*@$&amp;amp;% no &amp;amp;@#($# way!".&lt;/p&gt;

&lt;p&gt;We ended up going to a company that would sell us the product, which was super expensive (actually it was pretty accessible since the company was new but for early '20s college students it was insane).&lt;/p&gt;

&lt;h3&gt;
  
  
  Lessons
&lt;/h3&gt;

&lt;p&gt;So the final product worked, but it wasn't what we imagined. The meetings with the company were tedious, we couldn't communicate efficiently, everyone was just tired about the idea and we found out about the illegality of the service so we just put everything to rest. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;However&lt;/strong&gt; even though, the final product wasn't what we imagined I loved it, maybe not the design or how it worked, I loved it because something that I imagined had become real and people around the globe could potentially access it and use it. &lt;/p&gt;

&lt;p&gt;So.. My past me was thinking, I'm probably going to have many more ideas like this one "Am I going to go to a company every time?"&lt;/p&gt;

&lt;h2&gt;
  
  
  My first game
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;I started with something simple, so I decided to grab a book on C++ and decided to make a game... Yeah 🤦🏻‍♂️&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Since I was probably going to have more ideas like the one I and my classmates had, I decided that I probably should learn how to create those types of products.&lt;/p&gt;

&lt;p&gt;I started with something simple, so I decided to grab a book on C++ and decided to make a game... Yeah, you can figure out what happened next and if you don't immediately think "What's wrong with you" please don't start this way and don't make the same mistake I made.&lt;/p&gt;

&lt;p&gt;That path didn't turn out well to say the least however thanks to the book I did learn about loops, variables, primitives, and conditionals which turn out to be very helpful eventually. &lt;/p&gt;

&lt;p&gt;I did end up making the game I wanted but with a low-code | no-code tool &lt;a href="https://www.construct.net/en"&gt;Construct 2&lt;/a&gt; that with knowledge from the book it felt like I had superpowers. &lt;/p&gt;

&lt;h2&gt;
  
  
  Create
&lt;/h2&gt;

&lt;p&gt;Eventually, I found myself to limited by Construct 2, even though is a great tool I wanted to do more.&lt;/p&gt;

&lt;p&gt;Seeing my first game become a reality was exactly what I needed to once again grab a book, watch Youtube, Coursera, Udacity and learn more about how to create things. When you experience the feeling of writing weird words that somehow create a website you can't go back. &lt;/p&gt;

&lt;p&gt;I personally think that in the industry we make everything really hard for newcomers, maybe we're in too deep that we don't see how hard it is for others to understand... but I remember, and it's really difficult. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Wow I wish there's a day when I can write code as fast as he does.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The thing I remember the most is when I was watching a tutorial video from &lt;a href="https://twitter.com/jeffrey_way"&gt;@jeffrey_way&lt;/a&gt; and just thinking "Wow I wish there's a day when I can write code as fast as he does".&lt;/p&gt;

&lt;h2&gt;
  
  
  Opportunities
&lt;/h2&gt;

&lt;p&gt;After many, many hours of watching tutorials, failing miserably I was able to break into the industry and I'm so happy I took this path. &lt;/p&gt;

&lt;p&gt;It has open many opportunities for me and even one of the products I made &lt;a href="https://www.meridian.org/profile/alejandro-foronda/"&gt;Avísame!&lt;/a&gt; (no longer available) got me tv, radio, newspaper interviews, and a fellowship in a program sponsored by the US State Department.&lt;/p&gt;

&lt;p&gt;I'm not mentioning this to praise myself but to maybe inspire someone taking on this journey. Many, many things that you don't foresee can happen in your life, and learning such a key skill in an industry that's changing the world it's definitely worth it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EmVXOfTJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/qtw3e6its4mkjgszv26q.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EmVXOfTJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/qtw3e6its4mkjgszv26q.jpg" alt="Computer with code on the screen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  How to start learning?
&lt;/h1&gt;

&lt;p&gt;I'm sorry to tell you there's no definitive answer to this. However, I do have some tips that maybe can help you in this journey.&lt;/p&gt;

&lt;h2&gt;
  
  
  Big O, Data Structures and Recursion
&lt;/h2&gt;

&lt;p&gt;To be a good Software Engineer you need to know everything on this title, Queues, Stacks, Hash Maps, Hash Sets and if your algorithm is On or On^2.&lt;/p&gt;

&lt;p&gt;However, if you're just starting I wouldn't focus on these concepts just yet, focus on getting thigs to work, every try you should try something a little more difficult. Eventually, all will just "click".&lt;/p&gt;

&lt;p&gt;I'm sure many experienced developers might have a different opinion on this and consider that this is fundamental to start learning, however for me it wasn't, especially when you're just trying to grasp some other "simpler" concepts that when you're starting are really hard to understand. &lt;/p&gt;

&lt;h2&gt;
  
  
  By doing
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Frustration is going to be your greatest enemy&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You should watch tutorials, read books, take courses, there's a lot of great and free content out there. However, my advice here is don't stay on the loop of "I should learn this one more thing before starting, I don't know it yet".&lt;/p&gt;

&lt;p&gt;As soon as you think you've learned something new just go ahead and create something using that new learning and only then you'll consolidate knowledge and realize that you understand it or otherwise you should probably check a little more documentation on one specific thing.  &lt;/p&gt;

&lt;p&gt;Frustration is going to be your greatest enemy, however, it's necessary to really learn something. Don't be afraid to fail as many times as needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges
&lt;/h2&gt;

&lt;p&gt;For me, challenges are a great way to learn something. Sometimes you are not on the mood to create something but you want to practice a new concept or skill. &lt;/p&gt;

&lt;p&gt;This is an example of a simple challenge that even though it is really simple it helps you to learn some key concepts of html. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Olen Kusm noticed that his name is misspelled, He asked you to fix it for him!&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Please correct his name.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://codesandbox.io/embed/6353l?module=index.html"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Help
&lt;/h2&gt;

&lt;p&gt;Lastly, don't be afraid to ask for help, write in forums, Twitter, friends. Maybe most of the time you won't get any responses, double-check that your question is clear and specific and then try again. There are many of us out there that are really happy to help someone. &lt;/p&gt;

&lt;h1&gt;
  
  
  Plug
&lt;/h1&gt;

&lt;p&gt;I believe you should have good company when learning programming and for that reason, I've created &lt;a href="https://thatgoodcompany.com"&gt;that good company&lt;/a&gt; where I post challenges and starters so you can start creating as fast as you can.&lt;/p&gt;

&lt;p&gt;PS.&lt;br&gt;
Pika is my nickname since I was in elementary. &lt;/p&gt;

</description>
      <category>startup</category>
      <category>beginners</category>
      <category>javascript</category>
      <category>inspiration</category>
    </item>
    <item>
      <title>Code Challenge #4 | Stripe + NextJS | Change the price of the book</title>
      <dc:creator>Alejandro Foronda</dc:creator>
      <pubDate>Fri, 03 Jan 2020 22:30:18 +0000</pubDate>
      <link>https://forem.com/thatgoodcompany/code-challenge-4-stripe-nextjs-change-the-price-of-the-book-1oj0</link>
      <guid>https://forem.com/thatgoodcompany/code-challenge-4-stripe-nextjs-change-the-price-of-the-book-1oj0</guid>
      <description>&lt;h2&gt;
  
  
  Challenge
&lt;/h2&gt;

&lt;p&gt;Using the next starter project as a guide, can you change the price and image of the book?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/s/tgc-challenge-04-2vy3w"&gt;Solve the challenge on CodeSandbox&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remember&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To edit the sandbox you'll need to fork it, in order to work you must add &lt;a href="https://codesandbox.io/docs/secrets"&gt;CodeSandbox&lt;/a&gt; secrets with your Stripe's test keys. The name of the env variables is STRIPE_PUBLIC and STRIPE_SECRET.&lt;/p&gt;

&lt;h2&gt;
  
  
  Solution
&lt;/h2&gt;

&lt;p&gt;You can send your solutions and request any help by reaching us via twitter to &lt;a href="https://twitter.com/thatgoodcompany"&gt;@thatgoodcompany&lt;/a&gt; or via email to &lt;a href="//mailto:contact@thatgoodcompany.com"&gt;contact@thatgoodcompany.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>challenge</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Starter Template #2 | Next JS + Stripe Checkout </title>
      <dc:creator>Alejandro Foronda</dc:creator>
      <pubDate>Fri, 03 Jan 2020 22:19:22 +0000</pubDate>
      <link>https://forem.com/pika11/starter-template-2-next-js-stripe-checkout-39o2</link>
      <guid>https://forem.com/pika11/starter-template-2-next-js-stripe-checkout-39o2</guid>
      <description>&lt;p&gt;This template is a starter for those looking to use &lt;a href="https://nextjs.org/"&gt;Next JS&lt;/a&gt; whit &lt;a href="https://stripe.com/payments/checkout"&gt;Stripe Checkout&lt;/a&gt; in a project.&lt;/p&gt;

&lt;h2&gt;
  
  
  DEMO
&lt;/h2&gt;

&lt;p&gt;You can check a live sample in &lt;a href="https://codesandbox.io/s/template-nextjs-stripe-checkout-single-exf8x"&gt;CodeSandbox&lt;/a&gt;. To test the complete flow you need to open the browser in a new tab.&lt;/p&gt;

&lt;h2&gt;
  
  
  NOW
&lt;/h2&gt;

&lt;p&gt;You can deploy the project to &lt;a href="https://zeit.co/"&gt;Zeit's NOW&lt;/a&gt; directly from codesandbox or by cloning this &lt;a href="https://github.com/thatgoodcompany/template-nextjs-stripe-checkout-single"&gt;repo&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;h3&gt;
  
  
  localhost
&lt;/h3&gt;

&lt;p&gt;Create an .env file with STRIPE_SECRET and STRIPE_CLIENT as well as a .env.build file with STRIPE_CLIENT and any other variable that Next needs at build time.&lt;/p&gt;

&lt;h3&gt;
  
  
  CodeSandbox
&lt;/h3&gt;

&lt;p&gt;Add &lt;a href="https://codesandbox.io/docs/secrets"&gt;CodeSandbox secrets&lt;/a&gt; for STRIPE_SECRET and STRIPE_CLIENT.&lt;/p&gt;

&lt;h3&gt;
  
  
  NOW
&lt;/h3&gt;

&lt;p&gt;Keep the now.json file and add the &lt;a href="https://zeit.co/docs/v2/build-step/#adding-secrets"&gt;environment variables with the NOW CLI&lt;/a&gt; &lt;code&gt;now secrets add &amp;lt;secret-name&amp;gt; &amp;lt;secret-value&amp;gt;&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>Code Challenge #3 | Edit a blog post | Vuepress</title>
      <dc:creator>Alejandro Foronda</dc:creator>
      <pubDate>Fri, 03 Jan 2020 22:11:15 +0000</pubDate>
      <link>https://forem.com/pika11/code-challenge-3-edit-a-blog-post-vuepress-2icn</link>
      <guid>https://forem.com/pika11/code-challenge-3-edit-a-blog-post-vuepress-2icn</guid>
      <description>&lt;p&gt;&lt;strong&gt;Challenge&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Edit a blog post!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/s/tgc-challenge-01-l5n6l?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark"&gt;SOLVE CHALLENGE on Code Sandbox&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can send your solutions and request any help by reaching us via twitter to &lt;a href="https://twitter.com/thatgoodcompany"&gt;@thatgoodcompany&lt;/a&gt; or via email to &lt;a href="//mailto:contact@thatgoodcompany.com"&gt;contact@thatgoodcompany.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>challenge</category>
    </item>
    <item>
      <title>Code Challenge #2 | Implement a dark theme | Tailwind + NextJS</title>
      <dc:creator>Alejandro Foronda</dc:creator>
      <pubDate>Fri, 03 Jan 2020 22:08:11 +0000</pubDate>
      <link>https://forem.com/pika11/challenge-2-implement-a-dark-theme-tailwind-nextjs-1l04</link>
      <guid>https://forem.com/pika11/challenge-2-implement-a-dark-theme-tailwind-nextjs-1l04</guid>
      <description>&lt;h1&gt;
  
  
  Challenge
&lt;/h1&gt;

&lt;p&gt;Can you implement a dark theme to this &lt;a href="https://codesandbox.io/s/tgc-challenge-03-44f2s"&gt;landing page&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;You can send your solutions and request any help by reaching us via twitter to &lt;a href="https://twitter.com/thatgoodcompany"&gt;@thatgoodcompany&lt;/a&gt; or via email to &lt;a href="//mailto:contact@thatgoodcompany.com"&gt;contact@thatgoodcompany.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>challenge</category>
      <category>javascript</category>
      <category>css</category>
    </item>
    <item>
      <title>Starter Template #1 | NextJS + Tailwind CSS </title>
      <dc:creator>Alejandro Foronda</dc:creator>
      <pubDate>Wed, 01 Jan 2020 00:35:06 +0000</pubDate>
      <link>https://forem.com/pika11/nextjs-tailwind-css-starter-template-4pi2</link>
      <guid>https://forem.com/pika11/nextjs-tailwind-css-starter-template-4pi2</guid>
      <description>&lt;p&gt;This template is a starter for those looking to use &lt;a href="https://tailwindcss.com/"&gt;Tailwind CSS&lt;/a&gt; in a &lt;a href="https://nextjs.org/"&gt;NextJS&lt;/a&gt; project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/s/github/thatgoodcompany/template-nextjs-tailwind"&gt;CodeSandbox&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/thatgoodcompany/template-nextjs-tailwind"&gt;Github&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup Description
&lt;/h2&gt;

&lt;h3&gt;
  
  
  NextJS
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/zeit/next-plugins/tree/master/packages/next-css"&gt;Next CSS plugin&lt;/a&gt;
This is used in nextjs.config.js as "withCSS".&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Instructions
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;npm install --save @zeit/next-css&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Create a nextjs.config.js in your project if you don't have it already.&lt;/li&gt;
&lt;li&gt;Import the plugin to your project.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// next.config.js&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;withCSS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@zeit/next-css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;withCSS&lt;/span&gt;&lt;span class="p"&gt;({})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Tailwind
&lt;/h3&gt;

&lt;p&gt;Since NextJS already uses PostCSS we just need to create a postcss.config.js to load the required plugins for tailwind to work properly and efficiently. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To Work Properly&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/tailwindcss"&gt;tailwind&lt;/a&gt;
Tailwind npm package: this will load the necessary css.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/autoprefixer"&gt;autoprefixer&lt;/a&gt;
Autoprefixer npm package: this package will add vendor prefixes to CSS rules.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;To Load Efficiently&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/cssnano"&gt;cssnano&lt;/a&gt;
cssnano npm package: this package will minify the css output.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/purgecss"&gt;purgecss&lt;/a&gt;
purgecss npm package: this package will traverse your code and remove all unused css classes that tailwind generates. &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Instructions
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;npm install --save tailwindcss autoprefixer purgecss cssnano&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Create a postcss.config.js in your project if you don't have it already.&lt;/li&gt;
&lt;li&gt;Import the plugins to your project, the plugins for optimization should only be loaded in production.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// postcss.config.js&lt;/span&gt;

&lt;span class="c1"&gt;//load purgecss &lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;purgecss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@fullhuman/postcss-purgecss&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)({&lt;/span&gt;

    &lt;span class="c1"&gt;// Specify the paths to all of the template files in your project &lt;/span&gt;
    &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./pages/*.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./pages/*.tsx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./components/*.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./components/*.tsx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; 
    &lt;span class="p"&gt;],&lt;/span&gt;

    &lt;span class="c1"&gt;// Include any special characters you're using in this regular expression&lt;/span&gt;
    &lt;span class="c1"&gt;// Recommended algorithm by tailwind but you're free to change it to your needs&lt;/span&gt;
    &lt;span class="na"&gt;defaultExtractor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;match&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;[\w&lt;/span&gt;&lt;span class="sr"&gt;-&lt;/span&gt;&lt;span class="se"&gt;/&lt;/span&gt;&lt;span class="sr"&gt;:&lt;/span&gt;&lt;span class="se"&gt;]&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(?&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;!:&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;/g&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// load cssnano&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cssnano&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;cssnano&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)({&lt;/span&gt;
    &lt;span class="na"&gt;preset&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;default&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;



&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="c1"&gt;//load tailwindcss&lt;/span&gt;
        &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;tailwindcss&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="c1"&gt;//load autoprefixer&lt;/span&gt;
        &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;autoprefixer&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="c1"&gt;//only use purgecss and cssnano on production builds&lt;/span&gt;
        &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;NODE_ENV&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;production&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
            &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;purgecss&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;cssnano&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
      <category>nextjs</category>
      <category>react</category>
      <category>css</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Code Challenge #1 | Zonama, an e-commerce platform wants to know about you!</title>
      <dc:creator>Alejandro Foronda</dc:creator>
      <pubDate>Tue, 31 Dec 2019 04:02:27 +0000</pubDate>
      <link>https://forem.com/pika11/code-challenge-zonama-an-e-commerce-platform-wants-to-know-about-you-5eii</link>
      <guid>https://forem.com/pika11/code-challenge-zonama-an-e-commerce-platform-wants-to-know-about-you-5eii</guid>
      <description>&lt;p&gt;A new challenge has arrived!&lt;/p&gt;

&lt;p&gt;Zonama, a big eCommerce platform wants to know more about you and needs to see your information online. We found for you a nicely designed presentation card but you need to edit the information.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/s/nostalgic-sound-sd27t?fontsize=14&amp;amp;hidenavigation=1&amp;amp;module=%2Fcomponents%2Fcard.js&amp;amp;theme=dark"&gt;Create your card&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can send your solutions and request any help by reaching us via twitter to &lt;a href="https://twitter.com/thatgoodcompany"&gt;@thatgoodcompany&lt;/a&gt; or via email to &lt;a href="//mailto:contact@thatgoodcompany.com"&gt;contact@thatgoodcompany.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>challenge</category>
      <category>codesandbox</category>
      <category>react</category>
    </item>
    <item>
      <title>Problem based learning</title>
      <dc:creator>Alejandro Foronda</dc:creator>
      <pubDate>Sat, 28 Dec 2019 23:11:59 +0000</pubDate>
      <link>https://forem.com/pika11/problem-based-learning-538k</link>
      <guid>https://forem.com/pika11/problem-based-learning-538k</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Software development should be easier to learn&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Linked lists, Binary trees, Hash maps, Hash Sets, Big O…&lt;/p&gt;

&lt;p&gt;You do need to know all the things mentioned above to become a Software Engineer, but you likely don’t need to know everything to start creating on the web.&lt;/p&gt;

&lt;p&gt;What the team at &lt;a href="https://thatgoodcompany.com"&gt;that good company&lt;/a&gt; is trying to do is to lower the barrier of entry and make it easier for everyone to start learning and creating for the web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By solving challenges that have all the setup in place, with a clear small goal that will make you realize how certain aspects of the web work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will it work?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We hope so! problem-based learning has had some great results around the world. The fact that you’re actively learning instead of passively learning it’s a key factor. Passive learning is necessary but it needs to be complemented with action.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s next?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We’ll be publishing code challenges for you to solve with a variable difficulty level.&lt;/p&gt;

&lt;h2&gt;
  
  
  thank you
&lt;/h2&gt;

&lt;p&gt;We want to acknowledge some of the great products and open source projects that are empowering web creators in so many different ways that make it easy for you to create, have a great experience and publish your work: &lt;a href="https://nextjs.org"&gt;Next JS&lt;/a&gt;, &lt;a href="https://zeit.co"&gt;Zeit&lt;/a&gt;, &lt;a href="https://svelte.dev"&gt;Svelte&lt;/a&gt;, &lt;a href="https://codesandbox.io"&gt;CodeSandbox&lt;/a&gt; among others that we’ll keep mentioning and using for our challenges.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
