<?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: Jurn W</title>
    <description>The latest articles on Forem by Jurn W (@jurn_w).</description>
    <link>https://forem.com/jurn_w</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%2F109332%2F608f9b3e-9d4f-4f12-a966-0badf25e3c3f.jpg</url>
      <title>Forem: Jurn W</title>
      <link>https://forem.com/jurn_w</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jurn_w"/>
    <language>en</language>
    <item>
      <title>5 Things I Wish I Knew Before Learning How to Code</title>
      <dc:creator>Jurn W</dc:creator>
      <pubDate>Wed, 21 Nov 2018 18:48:00 +0000</pubDate>
      <link>https://forem.com/jurn_w/5-things-i-wish-i-knew-before-learning-how-to-code-23ib</link>
      <guid>https://forem.com/jurn_w/5-things-i-wish-i-knew-before-learning-how-to-code-23ib</guid>
      <description>&lt;p&gt;Learning to code is hard.&lt;/p&gt;

&lt;p&gt;You will feel overwhelmed. Confused. Frustrated.&lt;/p&gt;

&lt;p&gt;All three at the same time.&lt;/p&gt;

&lt;p&gt;You'll think about quitting. More than once.&lt;/p&gt;

&lt;p&gt;As a self-taught developer that knows how difficult it can be. I believe it could be a &lt;em&gt;little&lt;/em&gt; bit easier if I could give my younger self some tips.&lt;/p&gt;

&lt;p&gt;Here is what I would tell myself if I had to start all over.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Set a clear goal first
&lt;/h2&gt;

&lt;p&gt;Before you dive in and start consuming tutorials, courses and books. Take a moment to think about the end goal. Do you want to build games, develop websites or maybe build iOS apps? Do you want to become a founder, freelancer or employee? Where would you want to work?&lt;/p&gt;

&lt;p&gt;Get clear on your goals first, then reverse engineer them.&lt;/p&gt;

&lt;p&gt;Let's say you would like to get a job as a front-end developer at Microsoft. Check out their website and find any open listings they have (or had) for this role and look at the job requirements. Now you know how to qualify for that role and you can use these requirements as a checklist for things you need to learn.&lt;/p&gt;

&lt;p&gt;A big part of learning effectively is not wasting time learning things you won't use. Remember all the things you had to memorize in high school only to never use it again after the test? Now that you are not optimizing for high test scores but for practical knowledge, you can skip learning the redundant bits. They'll always be one web search away anyway.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Find what medium works best for you
&lt;/h2&gt;

&lt;p&gt;The internet has solved the scarcity of information problem but in the process it gave us the information overload problem. There are so many resources out there it's easy to get overwhelmed.&lt;/p&gt;

&lt;p&gt;To narrow this down, first find out what medium works the best for you personally. Do you like video tutorials or would you rather learn from books?&lt;/p&gt;

&lt;p&gt;For me personally, watching video tutorials was pointless. I would watch these videos, do exactly as the teacher said and than realize the next day that I retained none of what I learned.&lt;/p&gt;

&lt;p&gt;For me, &lt;a href="https://www.freecodecamp.org/" rel="noopener noreferrer"&gt;freeCodeCamp&lt;/a&gt; worked a lot better. I could read the explanation and instructions and read them again if they were not clear for&lt;br&gt;&lt;br&gt;
me. Having to figure out how to solve a problem and implement it in code without hand holding gave me a much better understanding and I retained more of what I learned.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Start working on a project of your own
&lt;/h2&gt;

&lt;p&gt;This one made all the difference in the world for me.&lt;/p&gt;

&lt;p&gt;You can keep watching or reading tutorials but you will learn much quicker when you are building something vs. when you are just following tutorials.&lt;/p&gt;

&lt;p&gt;You can read books on how to swim or how to ride a bicycle but it won't click until you actually do it yourself. The same goes for coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Ignore online discussions
&lt;/h2&gt;

&lt;p&gt;There is a ton of value in talking to other programmers, having a mentor or having a meetup with a group of people that are learning to code.&lt;/p&gt;

&lt;p&gt;But what you should ignore are the many online discussions that developers like to have on places like Hacker News or Twitter. Developers like to have heated debates about things that really don't matter that much.&lt;/p&gt;

&lt;p&gt;What the best programming language or framework is (they all have their pros and cons). What back-end language scales the best. Whether you should add comments or your code should be self-documenting. Why you should switch to a different iterator because it tested 81ms faster on &lt;a href="https://jsperf.com/" rel="noopener noreferrer"&gt;jsperf&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Just use what works best for you and focus on learning. Don't get caught up in the details.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Make peace with not knowing everything
&lt;/h2&gt;

&lt;p&gt;I used to be under the impression that one day everything would click and I would be a good developer capable of building everything I wanted. I've now realized that it's not that binary, like a switch that suddenly flips.&lt;/p&gt;

&lt;p&gt;Even though I built a React app that has had over 70.000 unique users (&lt;a href="https://www.screely.com/" rel="noopener noreferrer"&gt;Screely&lt;/a&gt;), I'm still learning new things about React every week.&lt;/p&gt;

&lt;p&gt;Think about driving a car. You probably know how to drive a car. Maybe you can do some basic maintenance like an oil change. Maybe you can do some repairs like changing a broken light bulb or a flat tire.&lt;/p&gt;

&lt;p&gt;But, could you rebuild the transmission? Probably not, but you are perfectly capable of driving a car without.&lt;/p&gt;

&lt;p&gt;Tools, languages and frameworks have been getting easier to use due to build-in abstractions so you don't have to worry about the low-level functionality.&lt;/p&gt;

&lt;p&gt;Enjoy not having to learn everything and make use of these abstractions. It won't make you a bad developer.&lt;/p&gt;

&lt;p&gt;Hopefully these tips can make it a &lt;em&gt;little&lt;/em&gt; bit easier to learn how to code.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>learning</category>
      <category>tips</category>
    </item>
    <item>
      <title>How I Built my Side-Project and Got 31,000 Users the First Week</title>
      <dc:creator>Jurn W</dc:creator>
      <pubDate>Mon, 22 Oct 2018 14:48:59 +0000</pubDate>
      <link>https://forem.com/jurn_w/how-i-built-my-side-project-and-got-31000-users-the-firstweek-5ea0</link>
      <guid>https://forem.com/jurn_w/how-i-built-my-side-project-and-got-31000-users-the-firstweek-5ea0</guid>
      <description>&lt;p&gt;I love building side-projects. Seeing your own ideas come to life is amazing.&lt;/p&gt;

&lt;p&gt;Side-projects provide a creative outlet and are a great way to learn and experiment with new things.&lt;/p&gt;

&lt;p&gt;If your side-project takes off, it might even turn into a startup. Many well-known companies started off as side-projects: Twitter, Slack, GitHub, and Instagram to name a few.&lt;/p&gt;

&lt;p&gt;Recently, I launched a new side-project and was able to get 31,000 users in the first 7 days after launching.&lt;/p&gt;

&lt;p&gt;The website I built is called &lt;a href="https://www.screely.com/"&gt;Screely&lt;/a&gt;. It allows you to instantly turn a screenshot into a beautiful design mockup, without the hassle of using Photoshop or Sketch templates.&lt;/p&gt;

&lt;p&gt;In this article, I'll tell you how I got the idea, how I built it, and how I managed to get 31,000 users in the first 7 days.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding an Idea
&lt;/h2&gt;

&lt;p&gt;The idea for Screely came from a group chat of designers and developers that share and discuss their projects. Often they share screenshots to ask for feedback or to show finished work.&lt;/p&gt;

&lt;p&gt;But there was one person whose screenshots stood out. He shared beautiful images instead of plain screenshots like everyone else.&lt;/p&gt;

&lt;p&gt;They looked more like the designs you see on Dribbble or Behance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RuR3T3pw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/6r1y8zvf2kbant1uwntj.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RuR3T3pw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/6r1y8zvf2kbant1uwntj.jpeg" alt="Inspiration image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It turned out he had made a custom template in Sketch to add these effects.&lt;/p&gt;

&lt;p&gt;I wanted to make my screenshots look similar. But I did not want to design my own templates and have to load every new screenshot into Sketch.&lt;/p&gt;

&lt;p&gt;I knew about &lt;a href="https://carbon.now.sh/?bg=rgba(171,%20184,%20195,%201)&amp;amp;t=seti&amp;amp;wt=none&amp;amp;l=auto&amp;amp;ds=true&amp;amp;dsyoff=20px&amp;amp;dsblur=68px&amp;amp;wc=true&amp;amp;wa=true&amp;amp;pv=48px&amp;amp;ph=32px&amp;amp;ln=false&amp;amp;fm=Hack&amp;amp;fs=14px&amp;amp;lh=133%25&amp;amp;si=false&amp;amp;es=2x&amp;amp;wm=false"&gt;Carbon&lt;/a&gt;, a tool that instantly generates a nice image of your &lt;strong&gt;code&lt;/strong&gt;, but I wanted something similar for my &lt;strong&gt;screenshots&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I couldn't find a website that did this, so I decided to build it myself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Define your Minimum Viable Product(MVP)
&lt;/h2&gt;

&lt;p&gt;The first thing I do when I start working on a new product is to define an MVP.&lt;/p&gt;

&lt;p&gt;There are a few different definitions of what an MVP is. Usually, it's described as a product with the smallest number of features that still solves the problem.&lt;/p&gt;

&lt;p&gt;Limiting yourself to building only an MVP is very important for two reasons.&lt;/p&gt;

&lt;p&gt;First, you prevent yourself from spending lots of time building a product without validating the idea and knowing if it's something others want to use.&lt;/p&gt;

&lt;p&gt;Second, you prevent yourself from endlessly adding more features and tweaking your product.&lt;/p&gt;

&lt;p&gt;These aren't bad things, of course. But this is a dangerous trap that can lead to working on your product for months or years before ever releasing it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"In product development, the minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future development" - Wikipedia&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The faster you ship your MVP, the faster you can validate your idea and improve your MVP with feedback from users.&lt;/p&gt;

&lt;p&gt;For Screely, I defined the MVP as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A user should be able to pick a local image file (jpg, png)&lt;/li&gt;
&lt;li&gt;The system should generate an image with a mockup window, box shadow, and a background color&lt;/li&gt;
&lt;li&gt;A user should be able to change the background color&lt;/li&gt;
&lt;li&gt;A user should be able to download the generated image&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Of course there were plenty of other features that I would've liked to add: drag-and-drop an image, gradient backgrounds, or being able to tweet the generated image.&lt;/p&gt;

&lt;p&gt;But none of these are part of the core functionality. And as I said before, it's important to limit yourself for the MVP, or you start getting into this endless feature sprawl.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparation
&lt;/h2&gt;

&lt;p&gt;Before firing up my text editor, I explored potential technical solutions and their pros and cons.&lt;/p&gt;

&lt;p&gt;After doing some research, I considered 3 different options:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use an HTML canvas element and JavaScript&lt;/li&gt;
&lt;li&gt;Use regular DOM elements and use pure HTML and CSS&lt;/li&gt;
&lt;li&gt;Generate the image server-side and return the end result&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each option had its pros and cons.&lt;/p&gt;

&lt;p&gt;For example, rendering the image server-side would avoid cross-browser compatibility issues. But as a user, I would not want my screenshots being sent to a server since I don't know if they are saved or used in any way.&lt;/p&gt;

&lt;p&gt;It would also require running a server, whereas I could host a pure front-end solution for free on &lt;a href="https://www.netlify.com/"&gt;Netlify&lt;/a&gt;. So option three was out.&lt;/p&gt;

&lt;p&gt;With the first two options left. I finally decided on using the HTML &lt;code&gt;&amp;lt;canvas&amp;gt;&lt;/code&gt; element and &lt;strong&gt;painting&lt;/strong&gt; on the canvas with plain JavaScript. Additionally, because I hadn't used the HTML canvas element before, and side-projects are a great way to learn new things, I was inclined to go down that path. 😉&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's Start Building
&lt;/h2&gt;

&lt;p&gt;The most exciting part of any project.&lt;/p&gt;

&lt;p&gt;I immediately started with the basic functionality. I did not spend any time on a name/domain, design, logo, or setting up social media. You can do these later.&lt;/p&gt;

&lt;p&gt;1 hour into the project I had the very basics working.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A placeholder name - sexy screenshots (it's what we called these images in the group chat)&lt;/li&gt;
&lt;li&gt;A file input&lt;/li&gt;
&lt;li&gt;A generated &lt;code&gt;&amp;lt;canvas&amp;gt;&lt;/code&gt; element with the image I select with a colored background and with the added fake window&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IgpPr1k---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/tp6pt3nyondwr1ynztbg.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IgpPr1k---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/tp6pt3nyondwr1ynztbg.gif" alt="screenshot-v2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hardcoded everything, and it only worked with one (specific) screenshot. You could not change the background color, or use a screenshot with different image dimensions.&lt;/p&gt;

&lt;p&gt;I improved the product from there, starting with the ability to handle different size screenshots.&lt;/p&gt;

&lt;p&gt;I also started adding the other features I had defined for the MVP, like adding a color picker to change the background color and a download button for the generated image.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2DClgmgJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/obwbbpgfsq06le3i9p2k.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2DClgmgJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/obwbbpgfsq06le3i9p2k.gif" alt="colorpicker"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that all the MVP requirements I set in the beginning were met, it was time to launch (yes, already)!&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparing for Launch
&lt;/h2&gt;

&lt;p&gt;At this point my MVP was nothing more than a placeholder title, an HTML button, and a small list of things I wanted to add after launching the MVP.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Rj82uPSL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/syd5a8apj28qcmb90k1e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rj82uPSL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/syd5a8apj28qcmb90k1e.png" alt="colorpicker-4--dragged-"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After picking a name (Screely), buying the .com domain, and making a landing page, this was the result:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--T-db0lB0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/z6lcn0f198gvridfwdhu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T-db0lB0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/z6lcn0f198gvridfwdhu.png" alt="PH-launch"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I also added an e-mail opt-in and a link to a Twitter account to make sure I could stay in touch with users after the launch.&lt;/p&gt;

&lt;p&gt;Another thing I added was a chat button on the right bottom so users could easily talk to me. I received valuable feedback on the product, bug reports, and feature suggestions there.&lt;/p&gt;

&lt;p&gt;There are many options you can use to embed a chat on your product. I used Drift but you can also use alternatives such as Intercom or Olark.&lt;/p&gt;

&lt;h3&gt;
  
  
  Build in the open
&lt;/h3&gt;

&lt;p&gt;A quick side-note about launching your project: &lt;strong&gt;launching should not be a one day event where you share your project and hope for the best.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your "launch" starts the day you start working on your idea. You should start promoting your project from day one.&lt;/p&gt;

&lt;p&gt;When I started working on Screely, I tweeted about my progress just one hour after starting. I also tweeted regular updates as I built the MVP.&lt;/p&gt;

&lt;blockquote class="twitter-tweet" data-lang="nl"&gt;
&lt;p&gt;Working on a little web app that turns your screenshots into those fancy Dribbble shots (with background, fake window, shadows, etc.) &lt;br&gt;&lt;br&gt;Quickly share a new design or feature you are working on Twitter/Slack/Telegram/Jira/Whatever and make it look good!🤩 &lt;a href="https://t.co/nE3xSHXjju"&gt;pic.twitter.com/nE3xSHXjju&lt;/a&gt;&lt;/p&gt;— Jurn @ 🇳🇱 (&lt;a class="comment-mentioned-user" href="https://dev.to/jurn_w"&gt;@jurn_w&lt;/a&gt;
) &lt;a href="https://twitter.com/jurn_w/status/980027925092360193?ref_src=twsrc%5Etfw"&gt;31 maart 2018&lt;/a&gt;
&lt;/blockquote&gt;

&lt;p&gt;This helps spread awareness about your new product, gets people curious, and helps you get feedback.&lt;/p&gt;

&lt;p&gt;Don't be embarrassed about showing an unfinished product. People love seeing others build cool things and understand that it takes time to build cool projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Launch
&lt;/h2&gt;

&lt;p&gt;I posted Screely to Product Hunt, Hacker News, Reddit, Designer News and a few other websites.&lt;/p&gt;

&lt;p&gt;I won't go very in-depth in where to post your product and best practices for each platform, as that's a blog post on it's own.&lt;/p&gt;

&lt;p&gt;The most important thing is that you reach your target audience. For Screely, that was mainly designers, developers, and technical writers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Product Hunt
&lt;/h3&gt;

&lt;p&gt;The Product Hunt launch went extremely well and exceeded all my expectations. Screely ended up becoming the &lt;a href="https://www.producthunt.com/posts/screely"&gt;#1 product of the day&lt;/a&gt; with 1032 upvotes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p1GacyHz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/5bl5d7kkgkyldt7r7cw0.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p1GacyHz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/5bl5d7kkgkyldt7r7cw0.jpeg" alt="producthunt"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Screely was #1 product of the day, #1 product of the week and #4 product of the month. This meant it would also appear in Product Hunt's daily and weekly newsletter.&lt;/p&gt;

&lt;p&gt;In total, Product Hunt brought in close to 11k visitors in the first week!&lt;/p&gt;

&lt;h3&gt;
  
  
  Hacker News
&lt;/h3&gt;

&lt;p&gt;Screely started quite slow but after a few hours it suddenly jumped to the front page of Hacker News. Even though Screely's highest position was 'only' #15, it still resulted in a lot of traffic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--X1m4ejUG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/1qrlstflu9grxk0ymluv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--X1m4ejUG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/1qrlstflu9grxk0ymluv.png" alt="hnrankings.info_17081586_"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I estimate that 5 -10k users came from Hacker News.&lt;/p&gt;

&lt;p&gt;It's unclear exactly how many users came from HN as it does not add a &lt;code&gt;?ref=&lt;/code&gt; parameter to the URL. I have included a more detailed look at traffic sources later in this article.&lt;/p&gt;

&lt;h3&gt;
  
  
  Designer News
&lt;/h3&gt;

&lt;p&gt;The third most successful platform (in terms of traffic numbers) was designernews.com.&lt;/p&gt;

&lt;p&gt;Screely got to #2 on the front page and this resulted in just under 3k new users.&lt;/p&gt;

&lt;h3&gt;
  
  
  Going Viral
&lt;/h3&gt;

&lt;p&gt;I had posted Screely on many other places, like Reddit and Indie Hackers, but the previous three were by far the most successful.&lt;/p&gt;

&lt;p&gt;A cool side-effect of doing well on places like Hacker News and Product Hunt is that your product shows up on many other places. Tweets, newsletters, smaller blogs, aggregators and more.&lt;/p&gt;

&lt;p&gt;For example, Screely was mentioned by CSS tricks to their 360k followers.&lt;/p&gt;

&lt;blockquote class="twitter-tweet" data-lang="nl"&gt;
&lt;p&gt;Sick of your screenshots just being screenshots, not put within fake browser windows with a drop shadow?&lt;a href="https://t.co/k6PwIzPX7x"&gt;https://t.co/k6PwIzPX7x&lt;/a&gt; &lt;a href="https://t.co/qDgJBC3Odq"&gt;pic.twitter.com/qDgJBC3Odq&lt;/a&gt;&lt;/p&gt;— CSS-Tricks (@Real_CSS_Tricks) &lt;a href="https://twitter.com/Real_CSS_Tricks/status/997250414826274816?ref_src=twsrc%5Etfw"&gt;17 mei 2018&lt;/a&gt;
&lt;/blockquote&gt;

&lt;p&gt;Screely was also included in &lt;a href="https://tympanus.net/codrops/collective/collective-416/"&gt;Codrops Collective #416&lt;/a&gt;, a popular newsletter among designers.&lt;/p&gt;

&lt;p&gt;In total, Screely had just under 31,000 users in the very first week.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GtkLdkw3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/z6jvxilneesrytmyypfs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GtkLdkw3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/z6jvxilneesrytmyypfs.png" alt="launch-analytics"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Improve with User Feedback
&lt;/h2&gt;

&lt;p&gt;Given the success of the launch, I can confidently say that the idea has been validated. Now I know it's worth it to dedicate more time to this project.&lt;/p&gt;

&lt;p&gt;Remember the chat feature I implemented to prepare for the launch of Screely? It was filled with feature requests and feedback by users of Screely.&lt;/p&gt;

&lt;p&gt;Now that you know exactly what your users want, it's easy to know what features to work on and what to prioritise.&lt;/p&gt;

&lt;p&gt;For example, many users wanted to be able to drag-and-drop their image into Screely so I added that feature first.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A6KrmWyt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/859kx2rovlc36o1dht08.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A6KrmWyt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/859kx2rovlc36o1dht08.gif" alt="drag-and-drop2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another often requested feature was to automatically match the background color with the image. So you immediately have a background that suits your screenshot.&lt;/p&gt;

&lt;p&gt;I added a script that analyzes the image, generates a color palette and picks the most dominant color for the background.&lt;/p&gt;

&lt;blockquote class="twitter-tweet" data-lang="nl"&gt;
&lt;p&gt;🚨 New feature&lt;br&gt;&lt;br&gt;Screely now finds the dominant color of your screenshot and sets that as background color. &lt;a href="https://t.co/JIfFBsJg2O"&gt;pic.twitter.com/JIfFBsJg2O&lt;/a&gt;&lt;/p&gt;— Screely (@getScreely) &lt;a href="https://twitter.com/getScreely/status/1012367983111491584?ref_src=twsrc%5Etfw"&gt;28 juni 2018&lt;/a&gt;
&lt;/blockquote&gt;

&lt;p&gt;Apart from adding new features and fixing bugs, I also spend time polishing up the design.&lt;/p&gt;

&lt;blockquote class="twitter-tweet" data-lang="nl"&gt;
&lt;p&gt;Working on some major improvements to the homepage, here's a little sneak peek of the before and after👀 &lt;a href="https://t.co/ObTcAvkJgh"&gt;pic.twitter.com/ObTcAvkJgh&lt;/a&gt;&lt;/p&gt;— Screely (@getScreely) &lt;a href="https://twitter.com/getScreely/status/1021366841644584962?ref_src=twsrc%5Etfw"&gt;23 juli 2018&lt;/a&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;If you want to get updates on Screely. Follow &lt;a href="https://twitter.com/@getscreely"&gt;@getScreely&lt;/a&gt; on Twitter, or sign up for the monthly product update by email on &lt;a href="https://www.screely.com/"&gt;screely.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Advice for Shipping Your Side-projects (faster)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keep it simple:&lt;/strong&gt; Keep your MVP as limited as possible. Use programming languages you are familiar with instead of whatever framework is trendy. The more complex your project becomes, the longer it takes to ship and get your first users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ship everyday:&lt;/strong&gt; Keeping the momentum going in your side-projects is super important. Try to work on your project every single day. Refactor a single function or fix a tiny CSS issue. It doesn't matter how small the task you complete is, keep shipping! If you skip a day (it happens), make it a top priority to get something, no matter how small, done the next day.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Take shortcuts:&lt;/strong&gt; Whenever possible, try to find shortcuts to ship your product faster. If you can find a good open-source solution for a problem, use that instead of writing your own from scratch. Use tools like Netlify to host and deploy instead of setting up your own server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Launch before you think you are ready:&lt;/strong&gt; Don't get caught up in perfecting your product. You can get away with a lot more than you think.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Programming is a tool to get your idea into the world:&lt;/strong&gt; Don't over-engineer your side-project. Your users don't care about your tech stack, what matters to them is the benefit they get from using your product. They don't care if you are using Docker or React, they focus on what problem your product can solve for them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You know enough:&lt;/strong&gt; Many people that are learning to code postpone working on their own projects. They often think they need to follow more tutorials, buy more courses, and read more books. Don't keep learning forever, start building! Even seasoned developers still look up 'simple' things like how to remove an element from an array.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Good luck and have fun!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post was first published on &lt;a href="https://medium.freecodecamp.org/how-i-built-my-side-project-and-got-31-000-users-the-first-week-d9053bae5302"&gt;freeCodeCamp's medium publication&lt;/a&gt; and edited by one of their volunteer editors.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>sideprojects</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
