<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Kitze on Medium]]></title>
        <description><![CDATA[Stories by Kitze on Medium]]></description>
        <link>https://medium.com/@kitze?source=rss-b4509d2dc793------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*jBJMEePZsvqhdJjeQFLxaA.jpeg</url>
            <title>Stories by Kitze on Medium</title>
            <link>https://medium.com/@kitze?source=rss-b4509d2dc793------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 16 Jun 2026 05:38:47 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@kitze/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[The saddest “Just Ship It” story ever]]></title>
            <link>https://medium.com/@kitze/the-saddest-just-ship-it-story-ever-b82707e37735?source=rss-b4509d2dc793------2</link>
            <guid isPermaLink="false">https://medium.com/p/b82707e37735</guid>
            <category><![CDATA[startup-lessons]]></category>
            <category><![CDATA[motivation]]></category>
            <category><![CDATA[development]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[Kitze]]></dc:creator>
            <pubDate>Tue, 30 Jun 2020 19:38:12 GMT</pubDate>
            <atom:updated>2020-07-08T12:29:04.590Z</atom:updated>
            <content:encoded><![CDATA[<blockquote>Note: I wanted to let you know that this is my last article on Medium, and from now on I’ll be posting only on my <a href="https://kitze.io">personal blog</a>.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qzyjK9Kp7JHlD27d5U6gKA.jpeg" /><figcaption>Photo by @noaa on Unsplash</figcaption></figure><p>I know, I know, by this point you want “Just Ship It” to be an actual person so you could punch it in the face. As an Indie Maker, that sentence can be super frustrating because it’s tired, it’s cliche, and your response is always “HEY! You don’t understand… it’s not that easy”.</p><p>I agree, it’s not easy, but it’s always the right thing to do.</p><p>Here’s why.</p><p>I started building an app on 01.01.2018. It was New Year’s Eve and we just had the crappiest night ever. Yes, imagine a night <em>so bad</em> that at midnight you decide “you know what, fuck it, I’m gonna work on WEB DEVELOPMENT”.<br>That bad.</p><p>The MVP was ready in a few days. I’m not that good of a coder, it’s just a simple app. The 0.0.1 alpha version was more than ready. I could’ve released it, share it with a couple of people, and call it a day. I could’ve done that with every single version that I made, at any point from 2018 until now. I just wanted to add one more thing. One more feature. Just this one more thing and people will like it. One more screen and everything is gonna make sense. I swear, just this one last thing and it’s ready.</p><p>BAM, last moment decision from the world’s biggest dumbass: “People wouldn’t use this if it doesn’t have a proper native mobile app for it. Time to learn React Native and spend a few months on ️️that” 🤦️</p><p>God, if time machines were real, past-Kitze would be shoved in a toilet so hard right now.</p><p>After 2 years of development, juggling between the fucking horror that’s the web platform, React Native, Expo, GraphQL, bitching about how there’s no ideal tech stack, the good old jQuery and Filezilla days, switching to other projects, releasing <a href="https://sizzy.co/">other apps</a>, losing passion, finding passion, coming back to the app, etc. etc. etc…</p><p>I just dropped it.</p><p>I was still using it but I stopped developing it and just dropped the idea of releasing the app, ever.</p><p>After a while, I was using it, but I realized that I’m missing a lot of features, so I’d either have to go back to developing it, or I’d have to find an alternative.</p><p>And boy did I find one.</p><p>I was scrolling their landing page and I was happy and furious at the same time. Someone solved the problem that I was solving. It was like someone literally read my mind and started coding. WHAT.</p><p>I have previously sent a video of my app to a couple of people (closest I came to shipping it) so I started getting suspicious if someone actually shared the video of my app with these people because they were solving literally the same problem, and they most of the features that I had.</p><p>I started getting this overwhelming happy, sad, and panicky feeling. I literally cannot explain how I felt while scrolling their page.</p><p>One moment I am scrolling their list of features giggling like a little kid with a 48$ bill in a candy store (yea I know 48$ bills don’t make sense, but JavaScript doesn’t make sense and you’re still using it), one moment I want to find these people and THROW THEM IN A PIT OF LIONS.</p><p>FUCK.</p><p>It’s not their fault. I was just slow. I didn’t ship on time. I’m gonna go ahead and tattoo “JUST SHIP IT” on my forehead. Nah I wouldn’t be able to see it there. On my arm maybe. Nvm, let me go back to scrolling their landing page.</p><p>Fuck. They have solved everything that I wanted to solve, and WAY more. Hey, maybe I should be happy? I don’t have to code anymore. Yay!? No more web platform? BLISS. Oh crap… the world is never gonna see my app though. But at least I don’t have to see React Native anymore. NICE! Wait… BUT I WASTED SO MUCH TIME ON IT. FUCK. A bunch of mixed feelings.</p><p>Here comes the saddest part, so grab a pack of tissues.</p><p>After a little bit of hesitation, I made an account. I watched the videos in their help center. Every time I caught myself smiling about a clever way they implemented something I slapped myself. NO. Bad Kitze. You shouldn’t like this. THEY’RE COMPETITORS. <em>sigh</em> Sure buddy, whatever you tell yourself. Competitors to a shitty codebase sitting on your hard drive.</p><p>For 2 frickin’ years, I thought it’s too early to release my app because it’s clunky, buggy, it’s missing features, blah, blah, blah. No one would ever use it, right? I was so wrong.</p><p>I started using their app.</p><p>Even though they were working on it for the past few years it’s still slow, buggy, and super unpolished, it doesn’t matter, because they shipped.</p><p>Their mobile app is terrible and it needs 10 seconds to sync. It doesn’t matter, they shipped. And I’m looking forward to every single update they release.</p><p>Their backlog of things to do is huge, but it doesn’t matter, they ship every single week, and the app is growing along with the community.</p><p>“But Kitze, even though tHeY sHiPpEd no one would pay for something unpolished and broken, right?”</p><p>Oh, Indie Hackers. So clever, yet so naive.</p><p>Today my 30-day trial has expired. A tear rolled down my cheek for every single digit of my credit card that I entered in their app. I am officially not only a subscriber, but also a fan. Every time I’ll get a payment notification it’s gonna feel like stepping on a lego … glued to a knife. My bank might as well change the notification from “You have paid 5$ to ThatCompany” to “You never shipped, loser”.</p><p>My app is officially dead.</p><p>99% of you are in the same boat right now, but hopefully just a few weeks into your project. Don’t be a dumbass like me. Take a breath, roll your eyes at the cliche saying, but please…</p><p>Just Ship It.</p><p>P.S I would totally release and show you my app but … it’s not ready yet.</p><p>—</p><p>Thanks for reading, I appreciate it. You can also find <a href="https://kitze.io/posts/saddest-just-ship-it-story-ever">this article</a>, as well as all of my future articles on my personal blog. I’d appreciate if you subscribe to my newsletter there 💜</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b82707e37735" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Killing my social media addiction]]></title>
            <link>https://medium.com/@kitze/killing-my-social-media-addiction-df91122c2322?source=rss-b4509d2dc793------2</link>
            <guid isPermaLink="false">https://medium.com/p/df91122c2322</guid>
            <category><![CDATA[life-lessons]]></category>
            <category><![CDATA[productivity]]></category>
            <category><![CDATA[social-media]]></category>
            <category><![CDATA[addiction]]></category>
            <dc:creator><![CDATA[Kitze]]></dc:creator>
            <pubDate>Mon, 02 Dec 2019 18:05:31 GMT</pubDate>
            <atom:updated>2019-12-02T18:05:31.673Z</atom:updated>
            <content:encoded><![CDATA[<p>Hey friends 👋</p><p>Our social media habits are getting out of control, and we need to talk about it, so let’s cut to the chase.</p><p>tl;dr Block Twitter, have a dedicated work computer, download <a href="https://twizzle.app/">Twizzle</a>.</p><p>But please read on, because it’s not that simple.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*J_gAwAZR3B9fL45TQYdifQ.jpeg" /><figcaption>“A man staring sadly at the achievements of his friends” (Unsplash)</figcaption></figure><h3>Quitting social media</h3><p>A few years ago I deleted my Facebook, Instagram, Snapchat, and LinkedIn accounts, in an attempt to do a digital declutter. It’s going well so far. Yes, you can tell yourself stories about how you still have Facebook because you want to “connect” with people, but you know damn well that you have chat groups for your close family members and friends, so what’s the fucking point of still connecting with Becky from high school when you hated her anyway? I reached my 5000 friends limit when I had Facebook, and in reality, I had around 3 friends in total. At that point, I was just using it as a habit, and any habit that’s wasting my time without adding any value needed to die.</p><p>Oh, and by the way, just a minor thing, social media can cause anxiety, depression, and induce massive FOMO. No big deal, right?</p><p>You don’t need to be a scientist to figure this out. I didn’t have a problem with it, but a lot of people do. After all, we’re all human, and when you’re in a bad mood or you’re going through a rough patch, the last thing you need is to refresh a feed and see Becky “enjoying life” while remote working near a pool and sipping on a margarita. Even if you had the power to see through people’s bullshit on social media, seeing a couple of happy posts is enough to take you in a downward spiral.</p><p>I didn’t particularly struggle with this, because after years of listening to Gary Vee I’m finally fine with the fact that I’m not in a race with anyone, and I’m running my own marathon. Things that would make other people happy won’t make me happy. A lot of people fail to realize this, and they think that if they just acquire that one last thing that a social media influencer has, they’ll finally be happy. Bull — shit.</p><p>All of this applies to Facebook, Snapchat, and Instagram. But what about LinkedIn? “I’m there FOR WORK”. <em>Really</em>? Are you? Clicking accept on every connection request, endorsing your friend’s CSS skills (when you know god damn well they suck at it) and reading motivational posts from fakepreneurs is <strong>NOT WORK</strong>. I finally got tired of all the recruiter requests and moved on.</p><h3>You don’t need email notifications</h3><p>Wait, before I talk about this, I’m not even gonna go deep about regular app notifications. If you don’t have 99% of your notifications disabled you’re out of your mind. You’re training your brain Pavlov-style and it’s just gonna get worse. Just having them on makes you more anxious and unfocused, even if they’re not arriving. You don’t need pings and dings every time someone from your friend circle farts, so get rid of most notifications immediately.</p><p>But yeah, let’s talk about email.</p><p>Most emails that we receive are absolute bullshit. Seriously. You can add a filter called Thanos that will erase 50% of your emails every day and you still won’t miss anything. I unsubscribed from every newsletter because just like you, I was archiving all of them and was telling myself that I’m gonna eventually read them and they’re useful. I didn’t read shit. Around one year ago I disabled all of my email notifications. Yes, literally all of them. On mobile and on desktop. I’m currently running two businesses that depend on email, and I never had a problem. The key is to schedule a time in the day to do email, and then forget about it until the next day. The best thing about this is by the next day people find a solution for the thing that they’re bugging you, so usually they’ll reply with “nvm I fixed it by myself”. <em>NICE</em>! If you really, really, really handle a <strong>LOT </strong>of emails you can schedule a few <strong>fixed</strong> times in the day to handle them. But in most cases, you cannot do anything about the email that you received. It’s just gonna make you more anxious about the task that you’re working on. And trust me, if something is <strong>really</strong> urgent people will find a way to reach out.</p><p>You don’t want to interrupt your date just because some fucking asshole had to tell you about the latest features in their app.</p><h3>The elephant in the room</h3><p>As you can notice, so far I didn’t mention one other social network, the most important one.</p><p><strong>Twitter</strong>. Fucking Twitter.</p><p>That’s what the article is about. I didn’t have a problem with deleting any of the other apps, but this one is not going anywhere. It sucks you in and it tricks you that you’re actually learning and staying “on top of things”.</p><p>Actually, if you have Twitter, and you made it this far in the article, you’re a frickin’ miracle. Reading long forms of text means that you still have some concentration and willpower, and that’s a frickin’ superpower in 2019.</p><h4>So, why are we so in love with Twitter?</h4><p>Because it’s easy. It’s light. It’s fun. Unlike books, articles, and longer forms of text, it takes a few seconds to read a tweet and move on to the next one. It’s hard to start a fucking book. It takes a few seconds to write a shitpost which will instantly get 10 likes. It’s hard to write a fucking book.</p><p>And guess what, our dumb brain (the one who’s ironically writing this post) likes easy shit. It likes the dopamine rush from strangers liking your hot take on the latest programming framework. It likes sharing every single shitty achievement even tho it doesn’t matter in the long run.</p><p>When we get the thought of doing something harder this is the conversation with our brain:</p><p><strong>Me</strong>: hey, I’m gonna write an article or start a big project</p><p><strong>Brain</strong>: hey there buddy why would you do that it’s a lot of work, let’s take a breath and chill for a second, huh?</p><p><strong>Me</strong>: yeah I know but after all of that work it’s all gonna be wort-</p><p><strong>Brain</strong>: NONONONOnono that’s gonna take hours, weeks, MONTHS!!! It’s waaay too much time and effort for me to wait for my dopamine rush. Fuck that, and write a tweet. I need some dopamine rush now.</p><p><strong>Me</strong>: but I don’t have anything valuable to say, and</p><p><strong>Brain</strong>: SAY. SOMETHING. DOPAMINE. NOW.</p><p><strong>Me</strong>: geez, fine…</p><p>*opens twitter*</p><p><em>lmao thanksgiving turkey is so overrated, am i rite guise??</em></p><p><strong>Brain</strong>: Perfect. Now let’s refresh the notifications tab for 20 minutes and enjoy every Like. Every. Single. One of them. Isn’t this fun?</p><p><strong>Me</strong>: Yeah… I guess… Oh also there are some new memes, let’s read them</p><p><strong>Brain</strong>: BOOM. TOLD YA. TWITTER BABY. FUCK WORK.</p><p>Does this sound familiar? Yes, it does. Let’s find a way to stop it.</p><h3>Twitter Addiction</h3><p>My absolutely favorite thing in the world is people who say they don’t have a Twitter addiction and are spending more than 5 hours on Twitter. It’s like smoking 7 packs of cigarettes a day and saying DON’T WORRY, I’M FINE, I CAN QUIT ANYTIME. But, take away someone’s phone for a few hours and you’ll see a crazy addict begging you to refresh the timeline one last time.</p><p>Let’s see the definition of addiction:</p><p><em>The fact or condition of being addicted to a particular substance or activity.</em></p><p>Yup, that describes it perfectly. And just like any other addiction, there are steps that you can take:</p><h4>Your phone should be a phone</h4><p>I got rid of Twitter on my phone for a few months now. The first few weeks were <strong>HELL. </strong>There was a lot of installing, uninstalling, using apps for time limiting, etc.</p><blockquote>“BUT WHAT AM I GONNA DO DURING MY MORNING POOP, I NEED IT!!!11”</blockquote><blockquote>— yours truly</blockquote><p>You’re trying to tell yourself stories that you need it for marketing, that it’s for work, that you’re learning the latest things about JavaScript, that people depend on you, that you thought of the funniest Baby Yoda meme, blah blah blah. And you know what, that might be true. I’m learning <em>a lot </em>on Twitter. It brings me a lot of value. I have a big audience that I can talk to about anything. That’s why I still have it. But, it doesn’t have to be with me all the time in order to get the value of it. Something, something, Pareto principle.</p><p>Twitter doesn’t have a place on your phone, because your phone is always with you, and Twitter is always going to win over anything else you need to do. Even if you install Duolingo, Pocket, Kindle, Sudoku, and 349 other smart apps, your brain just wants the easiest and laziest thing that it can do at any given moment. Twitter.</p><p>*Unlocks phone to see the time* — Oh let’s check witter*</p><p>Every. Fucking. Time.</p><p>I forgot what it’s like to be bored. To have to wait for something for a few minutes without doing anything. I was eating lunch with my girlfriend and reading tweets. I was reading tweets before sleep. I was reading tweets in the morning. We were watching a movie and I would pick my phone during boring scenes. I was walking my dog and reading tweets. What the fuck past-Kitze you goddamn idiot.</p><p>If you’re like this, don’t blame yourself because the problem is simple.</p><h4>It’s not you, it’s your phone</h4><p>Your phone is always around you because Twitter makes it fun, and you want your phone around you because it has Twitter on it. It’s a shitty cycle that you must break out of. Now, when I don’t have Twitter I’m using my phone as a utility device. Call an Uber, open Google Maps, get Calendar notifications and reminders, text my family from time to time, make a call, order Pizza. That’s it. I’m not gonna be one of those fucking hipsters who abandons modern smartphones for a Nokia 3310, because there are a lot of useful apps that can help and improve your everyday life. I also started relying more and more on my Apple Watch, so for most activities (music, gym, running, errands, etc.) I don’t even carry a phone. For the bigger part of my day, I don’t even know where my phone is. My battery lasts 2 to 3 days. It’s fucking amazing.</p><p>After getting used to it, this is the most liberating feeling ever. You’re <strong>FREE</strong>. You’re a human being. You have your own thoughts. People don’t need to know fucking everything about you, and you don’t need to know everything about them. You can be bored from time to time, and that’s <strong>FINE</strong>.</p><h4>A work-computer</h4><p>Think of every person in the past who created anything meaningful. Just imagine their work environment. When I think of Beethoven, Tesla, Einstein I just imagine a peaceful office with tons of papers, and them being hunched over a desk working without interruption <em>for hours</em>.</p><p>Bam. Electricity bitches.</p><p>But just go to any library or coworking space and you’ll see that most people cannot hold their concentration for more than 10 minutes. It’s crazy. We shouldn&#39;t blame them, because all the inventors and creators in the past didn’t have the internet to interrupt their work with pings and dings. If Beethoven had a Twitter account he wouldn’t do shit. Maybe he would’ve switched to trap music because it was trending and his compositions didn’t get enough views or something. I bet that when Alexander Graham Bell invented the phone, just 3 days later he said “OH FUCK OH NO WHAT HAVE I DONE” when his wife interrupted him 7 times to call him and ask shit about lunch.</p><p>So yes, not only that you need a quiet space, office, corner, whatever. The computer that you’re using needs to be a <strong>work computer.</strong></p><p>Recently, I blocked Twitter (along with Amazon, Reddit, News, YouTube, lyrics, shopping websites, etc.) on my work computer because I wanted it to be a <strong>work </strong>computer.</p><p>Even without notifications on, my work was constantly getting interrupted by silly things.</p><ul><li>*sigh* I’m making slow progress on my app so let’s see the price on that rice cooker</li><li>This bug is driving me crazy, let’s open a new tab and read the reviews on that book <em>now</em>.</li><li>I <em>need</em> to finish this by tonight. Oh wait, there’s a new trailer for Frozen 2.</li></ul><p>Constant. Interruptions.</p><p>Any time I would stumble upon a tiny problem, I wanted to escape and do something else for a while.</p><p>Even checking the lyrics of a song can take you down a rabbit hole of “oh let’s google what’s up with Kanye, why did he say that line” and 5 hours later you’re an expert on the life of the Kardashians and your presentation is not done.</p><blockquote>I’ll write a less-geeky tutorial later, but the tl;dr is you need to block every distracting website in your /etc/hosts file, make it append-only using the “chflags” command. Then alias the “chflags” to “sleep 60; chflags” so if you want to revert a change in your /etc/hosts you would need to wait 60 seconds. Then you need to make your .bashrc or .zshrc unmodifyable by running “chflags” on it. You’ll have 60 seconds to change your alias comand to 18000 seconds instead of 60 seconds. Now every time you want to revert a change in /etc/hosts you need to wait 5 hours. You’ll forget about it eventually.</blockquote><p>At this point, you’re like “Jesus Christ you <em>really </em>had a problem, didn’t you”. Well, guess what buddy?! You have one too. You’re not using your work computer as a <strong>work</strong> computer and you cannot get shit done.<strong> </strong>What I’m <strong>not</strong> saying is to quit every possible way of entertainment and just do work 24/7.</p><p>What I’m saying is you shouldn’t do work and entertainment on the same device. And no, blocking entertainment on the same computer for certain hours of the day isn’t enough for our dumb brain. It needs to understand that</p><p>&gt; this. is. a. work. machine. No. you. cannot. open. Reddit. on. it. EVER.</p><p>Then work gets easier.</p><p><strong>Your entertainment device</strong></p><p>Please don’t tell me that you don’t have money for it because even the shittiest tablet/phone/laptop will do the job. The purpose of this device is to install anything that you want on it, and anytime you pick it up, you know that it’s for entertainment only. Not for work. You have a work computer for work. Watch YouTube, scroll Twitter, study lyrics, spend 4 hours on Joker memes on Reddit, I don’t care. When you pick up this device, you pick it up with the purpose of entertaining yourself. You can schedule a time block for entertainment and do whatever you want during that time. But you’re not mixing work and fun. When you mix work and fun you’re not gonna finish your work, and then at the end of the day you’re gonna say “I don’t have time for movies/games/shows”.</p><h4>You cannot trust yourself</h4><p>I’m using a tablet as my entertainment device, but I still have time limits to most of the apps because I want to use them, but I don’t want them to take my entire day. But, because I absolutely went over the time limit every single day, I just allowed myself 15 more minutes, then 15 more, then an hour, and then I would unblock the app because my douchebag brain wants the easy win.</p><p>So what I did is I told my girlfriend to set a password for me, so after passing the time limit I cannot do anything about it. At first, I fussed and cursed and bitched and complained and I <em>needed </em>that goddamn password, but after a while, I got used to it and I accepted the fact that the limit is for my own good.</p><h3>Finding the sweet spot</h3><p>I meant to write a short article to introduce <a href="https://twizzle.app">Twizzle</a>, and yet, 13048138 words later — here we are. I had to properly explain why I made this app.</p><p>I still rely on Twitter for work. All of my promotions are happening there. My audience, friends, and contacts are invaluable. From time to time I need to send a tweet or a message. Usually, these messages are related to work.</p><p>I wanted to do all of this without getting distracted by everything else on twitter.com, so I made <a href="https://twizzle.app">Twizzle</a>. It allows me to send and receive direct messages, and send a tweet from the menu bar. So after having a dumb thought I can just click the compose icon in the menu bar, send the tweet, and move on with my work instead of checking the replies and notifications.</p><p>I’ll admit, I selfishly wrote this app for me. To help my problem. So I made it macOS only, and after a while, I made it paid.</p><p>Now I realized that people are <em>really </em>struggling with this problem, and I want to help <strong>everyone</strong>. So I made the app completely free and available on all platforms: Linux, Windows, macOS. It doesn’t have any ads, tracking, or similar bullshit. It’s basically a modified version of the mobile twitter website. Actually, I also open-sourced it so you can <a href="https://github.com/kitze/twizzle">check out the source and contribute her</a>e.</p><p>I’m sorry if this article was too long, but I had these thoughts for a really long time. And a lot of people were <a href="https://twitter.com/thekitze">asking me on Twitter</a> about this, and they wanted to use my methods. I’m not saying that I’m perfect, I’m still struggling with all of this, but I’m making conscious progress every day to improve my situation. I really hope that what I was talking about in the article resonated with you and you will take a step for yourself. I’d love to discuss this with you (on your entertainment device, within your scheduled time heh) on Twitter, so feel free to <a href="https://twitter.com/thekitze">ask me anything</a>.</p><p>Once you win your willpower, focus, and concentration back — your creativity will be limitless.</p><p>Good luck!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=df91122c2322" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[GitHub stars won’t pay your rent]]></title>
            <link>https://medium.com/@kitze/github-stars-wont-pay-your-rent-8b348e12baed?source=rss-b4509d2dc793------2</link>
            <guid isPermaLink="false">https://medium.com/p/8b348e12baed</guid>
            <category><![CDATA[self-improvement]]></category>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[github]]></category>
            <category><![CDATA[money]]></category>
            <dc:creator><![CDATA[Kitze]]></dc:creator>
            <pubDate>Sat, 10 Aug 2019 18:38:09 GMT</pubDate>
            <atom:updated>2019-08-11T05:28:00.750Z</atom:updated>
            <content:encoded><![CDATA[<p>Hey friends 👋</p><p>It’s been a long time since I have written something here, but I don’t want to write articles for the sake of “keeping the blog alive”, screw that.</p><p>Well, I finally have a story to tell. I finally launched the new version of <a href="https://sizzy.co">Sizzy</a> last month. It went from a simple web app to a full-fledged browser for designers and developers. I would say that it’s been a very exciting month, but actually, it’s been a bumpy ride for 2.5 years. I made a lot of mistakes and I learned a lot of lessons, so I wanted to share the entire story with you.</p><h4>Solve your own problem, everything else will follow</h4><h3>Kitze on Twitter</h3><p>I started working on this because I got tired of switching between different devices in chrome. Anyone wants to help? 😉 https://t.co/8dMNXRt2as</p><p>As everything that I have ever worked on, I was trying to solve my own problem. I was working as a freelancer at the time and previewing a website on multiple devices was a <strong>major</strong> pain in the ass for me. The client wanted the app to work perfectly on every device, in every orientation. So after every change in my app, I had to switch 20 device variations in Chrome and it was driving me crazy. I’m obsessed with automating things. I’d spend hours to automate a task that takes 3 seconds just so I don’t have to repeat the steps ever again. Meanwhile, my sister was swapping the batteries between two remotes 10 times per day for almost a year without buying a second pair of batteries and she was absolutely fine. I guess everyone is different.</p><p>You can actually <a href="https://medium.com/@kitze/introducing-sizzy-a-tool-for-developing-responsive-websites-crazy-fast-39a8c0061992">read the original article</a> that I published when I launched the app.</p><p>Back to the story. After only a day of work, I already saved myself a lot of time while working for clients in the future. I published the app and I open-sourced it on GitHub so everyone can use it and contribute. People <strong>loved</strong> it. The project received <strong>5k</strong> stars. The analytics were going crazy. I couldn’t believe what was going on.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4VX9xRv1-9tCc2ETdZOVhQ.jpeg" /></figure><h4>Hopefully, people will donate, right?</h4><p>I started an Open Collective for it but it made 93$ in 2.5 years. After I tweeted about this, a couple of people said: “well maybe people aren’t using it”. I knew that they were just trying to bring me down, but the analytics were saying something else. 7 to 10 thousand people were using the app every month. The donation link was visible everywhere, so it wasn’t possible to miss it.</p><p>Here’s the catch: when you give away something completely for free, people aren’t that motivated to pay for it. It’s just how humans think, there’s nothing new here. When was the last time you chose a value above 1$ on a “pay what you want” slider for an app? Exactly. (ok, one person who’s reading the article, you’re special and you’re a saint for choosing 2.5$ that one time when you were drunk)</p><h4>I made a huge mistake</h4><p>It didn’t take long for me to realize that launching Sizzy as a web app was a big mistake. There were tons of limitations that prevented me from realizing the app’s full potential. I had too many ideas but it wasn’t possible to realize all of them in a web app. I wanted to make a <strong>real</strong> browser. So I dived into Electron. Shortly after getting the first 0.0.0.0.0.1 (not really semver) Electron version working, I published <a href="https://medium.com/@kitze/️-from-react-to-an-electron-app-ready-for-production-a0468ecb1da3">an article</a> so other people don’t have to go through what I went to make React and Electron work together. I was making progress.</p><p>I obviously wanted to make a paid version of the app because the donations weren’t exactly working out for me. But I had no idea what approach to take.</p><ul><li>Closing an open-source project just to make it paid seemed like a dick move.</li><li>Having an open-source version and a paid version seemed very complicated to pull off.</li></ul><p>I had a call with <a href="https://twitter.com/gregoryschier">Greg</a> to ask him about his journey with <a href="http://insomnia.rest">Insomnia</a> and he was very helpful, but when a goal seems too far away and we can’t envision a clear path to reach it, we always reach for the same old drawer:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1SGZoVh-5VoC8qFbK2H7vQ.jpeg" /><figcaption>Our favorite drawer in the world</figcaption></figure><p>I was born in Macedonia, and I was living in the Netherlands at the time, and both of those countries didn’t have access to Stripe. I contacted Stripe and they told me that the Netherlands will have access soon (and it actually launched a few months later), but I was already clinging so hard to the excuse that I don’t have a way to charge for this app.</p><p>I mean, every cool developer is using Stripe, right? They have a cool flashy website and a dashboard that everyone loves. I WANT TO SEE MY $$$ IN A PRETTY AND COLORFUL DASHBOARD WITH ROUNDED CORNERS AND NEAT SHADOWS GODDAMMIT. Screw the fact that there are literally 108351 other payment providers that I can use. No. Payments are hard. This is impossible. Also, I have to figure out a way to auto-update this app? How do I even do that? Where am I going to store all the installers? What if it costs a lot of money? How am I going to handle all of that mess? What about licenses, registrations, emails, newsletters, etc. etc. etc… You know what, I better forget about this “problem” and completely ignore it for 2 years.</p><h4>Shifting focus</h4><p>Shortly after the initial launch I stopped freelancing, I launched <a href="https://reactacademy.io">React Academy</a> and I was too busy doing workshops, so I didn’t have the need to use Sizzy at all. I completely neglected the app and stopped caring about issues etc. The usage wall still high though, and the usage was even going up. The app was useful to people, even in its most basic form. I got a couple of offers from companies which wanted to buy it from me, but I didn’t want to sell it. I knew that one day I’ll be in the right mindset and go back to it.</p><h4>If it doesn’t work for me, I don’t want to sell it</h4><p>Last summer I tried using the app again and my first reaction was “omfg why do people even use this thing, it can be so much better”. But people didn’t see it that way. When you tune your brain to this problem-solving mindset you start seeing problems in everything. When I was using the app, I didn’t like it because I had this other potential version of the app in my head. So I decided that I want to work on it again. I decided to launch it when it’s gonna look like something that I would use every day. That was the goal.</p><h4>A second chance</h4><p>I was so busy doing workshops and conferences that I barely had the time to concentrate and work on any other project. I was traveling every week and from the excuses drawer I grabbed this one:</p><blockquote>“Unless I’m in one place for a very long time I just can’t push myself to focus and do proper work” — Kitze</blockquote><p>But I didn’t want to let that stop me, so I hired <a href="https://twitter.com/praneet_ro">Praneet</a> to work on the app a couple of hours per day. He helped me bring Sizzy back in shape from a technical standpoint. We updated a lot of old dependencies, cleaned up some code, switched a couple of libraries, etc.</p><p>The problem was, I had no idea how to move the project forward. There were so many things left to do that I didn’t know where to start. The payment integration wasn’t even started and there was no landing page. I started working on the landing page while he was working on fixing bugs and adding new features. Most of the new features didn’t end in the current version because I wasn’t thinking everything through. We were going one step forward and two steps back. I wouldn’t say that it was completely lost time, but I wish I was better at prioritizing and estimating things. Unfortunately, I wasn’t. I didn’t set any time limits and weekly goals. We were just coding.</p><p>The other problem is I cannot focus on a goal for too long. I started working on the landing page, but ended up working on a React library for making landing pages 🤦 (maybe I’ll release it one sunny day)</p><p>I wanted to solve that problem too, but I ended up with two half-ass solutions. There were so many things left to do, the launch seemed too far away, and I just burned out and lost interest again. Praneet decided that he doesn’t want to join me full time and we parted ways.</p><h4>The final chance</h4><p>I went back to my trips, conferences, and workshops. I started filming <a href="https://youtube.com/kitze">vlogs</a>. I had a lot of fun, and I was using travel as an excuse that I don’t have time to work on my apps.</p><p>Somewhere at the beginning of 2019, we started discussing with Praneet for his full-time employment again. After a lot of back and forth, we agreed on a contract for 1 year, and we went back to working on the app. Paying someone every month out of my own pocket before being profitable was a big motivational boost for me to get my shit together. I honestly think that if I tried to finish everything alone, the app wouldn’t see the light of day.</p><p>The conference and workshops season was almost done for me, so I finally had a lot of time at home and I finally went back to my zone. Honestly, travel and all the hippie nomad shit might look fun to you, but trust me there’s nothing better than working from the same old place and being focused for a long time. When you see people post pictures of working by the pool just think that they cannot see shit from all the glare, and there is a group of kids playing Marco Polo that’s driving them bananas. It’s all part of that fake Instagram life.</p><p>Anyway, I decided to finally sit down and ship this thing.</p><p>The landing page could’ve been done in a day if I used any of the drag and drop tools for building landing pages, but noooo, that wasn’t good enough for the perfectionist in me. I had to do <em>everything</em> from scratch. Everything had to be optimized, animated, and thought out down to the last detail. I’m a believer in #YOLO #JUSTSHIPIT development but the right landing page can basically sell the app for you. I proved that with <a href="http://twizzy.app">Twizzy</a> and I wrote about <a href="https://www.indiehackers.com/forum/just-ship-it-is-not-always-the-right-mindset-b71eda7696">“Just ship it is not always the right mindset”</a> on IndieHackers. With zero marketing people were sharing and buying the app just because of the unique landing page filled with easter eggs.</p><p>The landing page for Sizzy was done, and it was time to move on.</p><h4>Oh boy, the payment part</h4><p>Even though Stripe was available in Poland, where I’m currently based, I still chose Paddle as a payment provider only because it automatically handles VAT for EU customers. I could’ve totally used Paddle back in the Netherlands but my hand was kinda stuck in the excuses drawer.</p><p>Because the app was in Electron, I couldn’t use Paddle’s SDK for licensing an app. “Add few lines of code” turned to “few weeks of figuring everything out manually”. I had to write literally everything around the payment logic from scratch. From the backend to a separate app for managing licenses and subscriptions, and all the Electron code for activating, deactivating, and validating licenses. When you look only at the functionality of an app, you<strong> </strong>might think “hah I can write this myself in a few weeks”, but actually packing it in something that can be distributed to users involves a <em>lot</em> of work. Don’t get me started on the updates and release server.</p><p>I learned a lot during the process but I don’t want anyone else to do this manually. I already have some plans about releasing the entire infrastructure as a service, so people can easily sell their Electron apps with Paddle. It will take me only 3 years to release it.</p><h4>Deleting the GitHub repository</h4><p>Honestly, it felt kind of shitty to delete the repository and unpin the project from my profile. I hated the feeling but I had to shrug it off. I had to convince myself that I’m not doing anything wrong. The app was serving a lot of people for 2.5 years, and I rarely got any contributions. It was time to get real and think about what matters.</p><p>Oh, here we go… I’m gonna mention the <strong>M</strong> word and lose a ton of readers at this point.</p><p><strong>Money</strong>.</p><p><strong>Money matters</strong>.</p><p>Most developers, hell, most people are in the mindset that money is something evil and that it doesn’t matter. It’s a taboo subject. Go ahead and complain to your friends that you’re not making enough or cannot pay your bills this month. They will <em>love </em>the conversation and everyone will tell their own story. Now go ahead and tell your friends that you made a lot of money this month. You could cut the tension in the air with a knife. People don’t want to hear that shit. Money doesn’t matter. Go away with that conversation. I’m making enough. I can barely save anything, but I don’t want to think about that right now. At least I’m learning. One day things will magically change, I know that. That guy is making money because his grandpa is rich. That girl is making money because she’s lucky. Let’s not discuss that and go back to complaining, please.</p><p>There are so many amazing developers creating amazing tools and they’re not thinking about making them profitable, even for a second. A friend once called me “greedy” because I left a company for a better salary. What the actual fuck. That’s a very high school mindset to have, and I’m doing my best to spread this message to every developer out there…</p><p>Open source, writing blog posts, and playing with tweaking lint settings and editor themes all day are completely fine until your landlord knocks on your door or you’re at the checkout at the grocery store. You’re doing a crazy 2-hour commute every day telling yourself “well at least I’m learning a lot about SVG”. Fuck that. We don’t know how long things will stay this way. No one can guarantee that we’ll have our jobs and we’ll be in the most profitable and spoiled industry in the next 10 years.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*GfLq_6uV7t09oQx6998s1w.jpeg" /><figcaption>A factory lector — a person who was reading the newspaper to factory workers</figcaption></figure><p>The factory lector thought his job was secure until one day the factory owner walked in and replaced him with a radio. But the factory lector didn’t have Medium and Hacker News to tell him every single day that the radio is coming to take his job. However, developers are constantly reading that AI and ML are taking a huge momentum and everything is becoming more and more automated. We completely ignore that fact and want to believe that we’ll keep our highly paid job of moving rectangles with CSS forever. (People who know how to fix printers are an exception, you’ll keep your job forever)</p><p>I learned a long time ago not to obsess with stars and likes. I still love open source and <a href="http://github.com/kitze">I’m still open-sourcing a lot of things</a>, but not everything has to be open source. Please don’t get defensive and don’t get me wrong. If it wasn’t for open source we wouldn’t be able to ship anything, ever. There are a lot of amazing people in the community, there are people who do open source for living, there are highly funded open source projects like Babel, Webpack, etc.<br> <br>However<strong>, most</strong> developers make <strong>zero </strong>money off open source. <strong>Zero</strong>.</p><p>I have a lot of friends (and by friends I mean people who replied to my tweet twice) who built an amazing app or a service, they didn’t make it paid for a bunch of reasons, and now they’re buried in a sea of issues, basically solving other people’s problems for free. No matter how cruel this sounds, it’s the sad reality. I really hope that with GitHub Sponsors things will change, but it won’t be anywhere near launching a paid SaaS product, because donations are <strong>optional</strong>.</p><p>My philosophy is that if I’m investing a lot of time and money in making a tool that’s gonna save users and companies across the world <em>tons</em> of time, I might as well charge for it.</p><p>I’m expanding on this point more details in <a href="https://www.youtube.com/watch?v=QZ6aC6G0ufg">this talk</a>, so if you’re interested you can watch it.</p><p>Jesus, what was this article even about… Oh yeah, Sizzy.</p><p>It was time to launch. I did all the calculations and I was hoping that at least a small percentage of my existing users will convert to paid ones.</p><p>It was time.</p><p>The 0.0.1 version of the app was ready for download.</p><p>Everything was tested properly.</p><p>I made a professional video demonstrating all the features of the app.</p><p>The Twitter post was ready.</p><p>The Product Hunt post was ready.</p><p>It was time to press the button, but it was so hard.</p><p>I was so afraid that all of my existing users are gonna grab pitchforks and wait in front of my home because the tool is not free anymore.</p><p>But oh boy… I was totally not prepared for what happened next.</p><h4>The big launch</h4><h3>Kitze on Twitter</h3><p>I&#39;m *extremely* excited to announce https://t.co/DQiFfTdVj5 - The Responsive Design Browser 🎉 🎊 🔥 🥁 🎺 🥳 YES! An actual browser for designers and developers 🤩 Tons of amazing features and even more coming soon! 😎 3 random people who RT will get a lifetime license 👌 🎫 https://t.co/PZZI1VPxia</p><p><strong>Holy fucking monkey balls flying through space! I totally didn’t expect that response!</strong></p><p>Sizzy got <strong>2352</strong> upvotes on Product Hunt. It was the product of the day, the product of the week, and third product of the month. It got more votes than Libra by Facebook and Raspberry Pi 4, isn’t that bananas?! (or raspberries, whatever)</p><p>I decided to use a giveaway on Twitter to motivate people to retweet, and it worked! After the giveaway was done I couldn’t find a proper tool for picking winners so I made <a href="https://luckyretweet.co">Lucky Retweet</a>. Try doing a giveaway for one of your products and you might be surprised by how well it works. Instead of only 3, I gave away 30-lifetime licenses. Although your few buddies will groan and won’t RT, and all the winners will be super happy and grateful. It’s overall a very positive experience.</p><p>The initial feedback was amazing. When I started getting my first subscribers I just couldn’t believe it. It’s been 1.5 months since the launch and I still get the same feeling when I get a new subscriber.</p><h4>Haters are always louder</h4><p>I believe that paying a few dollars per month for something that’s going to save you and your team hundreds of hours per month is a no-brainer. In retrospect, I should’ve priced it way higher. It was selling like crazy. If you look at the list of companies on the landing page you will find Samsung, Bentley, Comcast, Toyota, Sketch, Hallmark, Basecamp, Algolia, etc.</p><p>What in the world is going on?</p><p>People who can recognize that a tool will actually save them, and even make them money, just buy it immediately and move on with their life.</p><p>However, people who are obviously experts at pricing SaaS products are way, way louder. If you only look at the comments from the outside, without knowing the actual stats, you might get a totally wrong impression that the product isn’t doing well.</p><p>The most common complaints were:</p><ul><li>I want to pay only once!!!111!11!</li><li>This shouldn’t be a subscription</li><li>HEY, THIS SHOULD BE FREE!!111!1</li><li>I’m gonna make my own version and distribute it for free because screw these greedy companies that are charging users for something like this (actual comment, W T F )</li><li>Well, isn’t this the same as Google Chrome?</li><li>Well, isn’t this the same as that one Chrome extension that came out in 2007? I can just use that.</li></ul><p>Cool, who’s stopping you from not using it, or using something else?</p><p>Just imagine if you enter a clothing store and be like “OMFG THIS SHIRT IS 20$? ARE YOU CRAZY? I CAN GO TO THE STORE NEXT DOOR AND GET ONE FOR 7$. I CAN GET A SKIRT, CUT IT, AND WEAR IT AS A T-SHIRT. OR EVEN BETTER, I’M GONNA SEW MY OWN SHIRT!!!111!”</p><p>Or imagine entering a supermarket and starting to yell at the cashier “WHAT?! THIS MILK IS 3$? DO YOU KNOW THAT ON THE OTHER END OF TOWN I CAN GET THIS FOR 2.5$? I CAN EVEN BUY MY OWN COW, RAISE IT, MILK IT EVERY DAY, AND DRINK MILK FOR FREE!11!”.</p><p>In both scenarios, you would probably be seen as a crazy person and escorted out by security. But sadly, on the internet, people forget that they’re talking to real people. It’s simple, if you don’t agree about the pricing of a product, don’t buy it and move on. Then go and spend the same amount of money on a large latte, and spend 25 hours per week manually doing something that a dedicated tool could’ve done for you. That will show ‘em!</p><h4>Focus on the customers</h4><p>Thankfully, I learned to ignore negative comments and I didn’t waste too much time on pointless internet discussions.</p><p>Instead of wasting my energy on convincing people to buy the app, I decided to focus on customers who actually bought it, and make sure that they will get the best value out of it. Ever since launching the app we’ve been working non-stop on improving it and we have released 5 new versions with <a href="https://headwayapp.co/sizzy-changelog">a lot of new features</a>. I opened a public <a href="https://trello.com/b/JPE0cds5/sizzy">Trello Board</a> where people can see the roadmap and vote on features they would like to see in the app.</p><p>The emails were piling up and there were way too many of them for me to handle alone. I tried a couple of tools but nothing was working out. I realized that I cannot do everything by myself. My girlfriend, who was already doing QA for the project, offered to work extra hours and help with the email and all the other administrative tasks. After a week I decided to hire her part-time and properly compensate for her time. This might sound super weird to some, and honestly, it’s a bit hard to separate the work from our personal life, but somehow we make it work. She is super hyped about the project and went all-in on making all sorts of merch.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dh2uev75_ymFqOlh4kmepA.jpeg" /><figcaption>Here’s how you would look like if Sizzy threw up on you</figcaption></figure><p>I wanted to make sure that every customer issue and a complaint is addressed as soon as possible, and she was crucial in the process. After fixing an issue that a customer reported, we personally send them an email to let them know that in the new update their issue is fixed. Everyone loves this level of customer support. We’re aware that it’s not gonna work at a bigger scale, but we’ll do our best to keep it that way.</p><h4>Next steps</h4><p>Currently, Sizzy has around 1600 users, which is crazy because the only marketing I’ve done so far is sponsoring <em>one </em>newsletter, and that was last week. Most of the marketing is just a word of mouth from people who enjoy the product. I want to improve the stability of the app even more before I start properly investing in marketing. It’s still far away from my final goal. I have so many ideas about shaping Sizzy to be a tool that every developer and designer will rely on during their daily work. I want to reach a million users. It may sound crazy, but I know I’ll get there. The only thing standing between me and that goal is just … me. But I won’t let myself lose track again. Sizzy is my primary focus now, and everything else comes secondary. It’s really hard to sleep properly when you know you have a lot of customers who depend on you. It’s a weird feeling, but I love it!</p><p>I have no idea what’s gonna happen next. I got reached out directly by 5 big investment companies. I’m still <a href="https://twitter.com/thekitze/status/1157005540289069056">not sure</a> whether I should take the VC route because I have a feeling that I’ll have a boss again, and I was always struggling to work when someone else was in control. I’ll try to push as much as I can without getting an investment because owning 100% of a startup and growing it without depending on anyone is just an amazing feeling.</p><p><strong>Startup</strong>?! Did I say <strong>startup</strong>? I hate the word, seriously. It completely lost meaning because people create a hello world project and immediately change their Twitter bio to “CEO &amp; Founder of X”. The title in my bio doesn’t mean shit. I’m making an <strong>app</strong>, who cares, it doesn’t matter what you call it. Things are not going to magically change if you change your bio. You’re just lying to yourself. Be happy and stop giving a fuck about proving your 3 friends from high school who you are.</p><p>Ugh, I should probably stop here before this article turns into motivational mumbo-jumbo.</p><p><strong>Conclusion</strong></p><ol><li>Solve your own problem</li><li>Show your solution to other people <strong>as soon as possible</strong></li><li>Package it and distribute it <strong>as soon as possible </strong>(note to self)</li><li>Don’t be scared, ashamed, or discouraged to make it <strong>paid</strong></li><li>Don’t let anyone tell you how much you should charge for <strong>your</strong> work</li></ol><p>I am so worried that other makers are focusing only on the negative comments about paid products, and get discouraged from making their next product paid, instead of free.</p><p><strong>Please</strong> don’t fall for this!</p><p><strong>Please</strong> value your work and believe that despite the fact that haters are loud, you’re still gonna get a lot of customers who would gladly pay for what you made.</p><p>As a famous legend once said:</p><blockquote>&#39;Cause the players gonna play, play, play, play, play<br>And the haters gonna hate, hate, hate, hate, hate<br>Baby, I&#39;m just gonna shake, shake, shake, shake, shake<br>I shake it off, I shake it off</blockquote><p>🤦️</p><p>If you want to talk more about this, my DMs <a href="https://twitter.com/thekitze">are open</a>.</p><p>Until the next one, adios 👋️</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8b348e12baed" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[You’re either a Zero or a One]]></title>
            <link>https://medium.com/@kitze/youre-either-a-zero-or-a-one-601e01128a3?source=rss-b4509d2dc793------2</link>
            <guid isPermaLink="false">https://medium.com/p/601e01128a3</guid>
            <category><![CDATA[fitness]]></category>
            <category><![CDATA[motivation]]></category>
            <category><![CDATA[productivity]]></category>
            <category><![CDATA[discipline]]></category>
            <dc:creator><![CDATA[Kitze]]></dc:creator>
            <pubDate>Sun, 04 Feb 2018 22:38:43 GMT</pubDate>
            <atom:updated>2018-03-24T11:19:09.390Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*fwWE38b0fH5ib18SjET2bQ.png" /></figure><p>This has been on my mind for so long.</p><ul><li>Likes</li><li>RTs</li><li>Shares</li><li>Metrics</li><li>Followers</li><li>Friends</li><li>Stats</li><li>Sleep tracking</li><li>Quantified self</li><li>Calorie counting</li><li>Kilometers ran</li><li>GitHub contributions</li><li>Number of read books</li><li>etc.</li><li>etc.</li></ul><p><strong>Bullshit.</strong></p><p>None of this matters. You have either reached your goal, or you haven’t. Progress is just a small steps towards it, but it’s not the goal. Lately I’ve been <a href="https://twitter.com/thekitze">tweeting</a> about the number of books that I have read, or the kilometers I have ran. It’s just a small way to lie to myself that I have accomplished my final goals. But I’m so far away from them, it hurts. Still, if I’m honest, the feedback that I get on the tweets makes me feel better about what I’ve done. Thankfully, I learned to recognize that feeling and I’m starting to hate it, again. It’s one of the reasons I have deleted my Facebook, Instagram, and LinkedIn accounts.</p><p>Social media is an amazing tool, It’s just sad that after a while we start abusing it to portray our life in a very fake way. Eventually you’re starting to lie to yourself and live for the others. I really don’t want to delete my Twitter account, I just want to stop lying to myself, again. I want to stop being a Zero and accomplish the One for once in my life, without prematurely celebrating the decimals in between.</p><p><strong>Remember: Every minor step that you take is just a decimal between a Zero and One.</strong></p><p><strong>“I just ran 5k this morning so I deserve these doughnuts”</strong>. You’re forgetting about the goal, the One. The One in this case is for you to lose weight and look fit. Look at yourself in the mirror, do you see any six-pack? Maybe, if there is a picture of Zac Efron slapped on it. Ignore the decimals, grab an apple, and hit the gym for the next 365 days.</p><p><strong>“I worked for 6 hours this morning so I deserve to watch Netflix all night”</strong>. The One in this case is for you to run a successful and profitable startup, yet you’re still stuck at “Hello World”. I guess Netflix can wait.</p><p><strong>“I read 6 books this month, I’m way ahead of my Goodreads challenge”</strong>. Wow genius, you really nailed it. Who gives a fuck? It’s better to read 1 book per year and gain massive value out of it, than to read 6 books per month just to win a stupid challenge. The One in this case is to get smarter and obtain more knowledge, the decimals don’t matter.</p><p><strong>“The Verge, TechCrunch, and many other popular blogs wrote about </strong><a href="http://ok-google.io"><strong>ok-google.io</strong></a><strong>, wow I guess my product rocks!”</strong>. Was that the One? It totally wasn’t. I just got lost in all the other non-important metrics that I forgot why I started the project at all.</p><p>I’m not saying that all metrics are terrible, but 99% of the time, we get attached to the decimals and we get lost.</p><p>I want to change this as soon as possible, so I’m done with celebrating my small successes until I can say <strong>“I have accomplished the One”</strong>.</p><p>*here is where I would plug in a bunch of links so you can click on them and boost my ego*</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=601e01128a3" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How I tricked my brain into working out 24 times in 30 days]]></title>
            <link>https://medium.com/@kitze/how-i-tricked-my-brain-into-working-out-24-times-in-30-days-64010244dd14?source=rss-b4509d2dc793------2</link>
            <guid isPermaLink="false">https://medium.com/p/64010244dd14</guid>
            <category><![CDATA[weight-loss]]></category>
            <category><![CDATA[fitness]]></category>
            <category><![CDATA[discipline]]></category>
            <category><![CDATA[running]]></category>
            <category><![CDATA[motivation]]></category>
            <dc:creator><![CDATA[Kitze]]></dc:creator>
            <pubDate>Sun, 25 Jun 2017 14:09:25 GMT</pubDate>
            <atom:updated>2017-06-25T14:09:25.563Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xMdtIhZOGWciltlaS_rKLw.jpeg" /><figcaption>Image from <a href="http://www.brainleadersandlearners.com/ellen-weber/100-reasons-to-run-from-lectures/">http://www.brainleadersandlearners.com/ellen-weber/100-reasons-to-run-from-lectures/</a></figcaption></figure><p>Warning: This story is dramatically different from all of my previous Medium stories, so this is not a metaphor for working out programming problems, it’s about actual workouts, something that us, the developers, usually have a problem with.</p><p>I mean, who in their right mind would like to workout when there are fun programming problems to solve, feeds to scroll, and interesting people to exchange ideas with? It’s nice and cozy. It’s the ultimate comfort zone. When you wake up in the morning instead of jumping into your running shoes, you can’t wait to jump on Twitter/Slack/GitHub and see what’s new. Well, I tried to change that behavior for 30 days, and it worked.</p><h4>My fitness history</h4><p>Here’s a bit of history about my on/off relationship with fitness. I didn’t care about sports and working out until I was 20. Then I started running, kept it up for a few days/weeks, then stopped. I have repeated this process every now and then. It was very random and I’ve never had a successful and consistent running routine. After a while I became interested in going to the gym, and I literally went nuts about it. I was following a strict diet and I was lifting weights and doing cardio 5–6 times per week. I repeated that and ate the same food every frickin’ day for almost 2 years. People couldn’t believe what was going on with me. I started to look better, feel better, and all that crap. It was all fun and games until at one point when my shoulder started hurting really really bad (probably from bad lifting form) I had to completely stop going. I couldn’t deal with this reality, so I started visiting doctors, therapists, chiropractors, etc. but unfortunately, nothing worked. At that point I just quit the idea that I’ll ever go to the gym again. I gained a bunch of weight, and then I lost it with the Insanity workout program. I went down to around 70–75kg, but I started to look really skinny and unhealthy. Then I gained it back. Same old story.</p><p>The last 5 years were a bumpy ride consisted of losing/gaining weight, working out and being a lazy slob, eating right and eating like crap, running for a while and then being sedentary for months. So I tried to pinpoint the problem and this is what I have figured out.</p><h4>How to work out 24 times in 30 days</h4><p>First of all, there’s a huge difference between going to the gym and working out on your own. The mere fact that you’re paying for the gym will sometimes kick your ass into gear. Another situation is if you’re working out with a friend, you would feel accountable because you wouldn’t wanna let them down, so sometimes you’ll go to the gym with them even if you feel extremely tired.</p><p>Running, or working out on your own, is a completely different story. It’s really hard to be consistent, and here’s the main reason:</p><blockquote><strong>You’re letting your brain ask too many questions</strong></blockquote><ul><li>Is the weather nice?</li><li>Maybe it’s going to rain later?</li><li>Am I actually in the mood for a run?</li><li>Do I feel like working out?</li><li>Did I eat enough food today?</li><li>What about carbs, I think I need more carbs</li><li>Ahh, I slept 1 hour less than what I’ve planned… Will I have the strength to finish the workout?</li><li>I just woke up and I feel like crap, should I leave it for tomorrow?</li><li>What about the afternoon? Maybe it’ll be better then. Hmm…</li><li>I had one beer last night, will that affect my workout? Yeah, I’ve read somewhere that it’s a bad idea. Should I just skip today and do it on Thursday? Then I can do the next one on Saturday instead of Mond…</li></ul><p>Aaaaand it’s gone. Say goodbye to your workout.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*XCnGuyiGGmv0w7JOiuFTZg.jpeg" /><figcaption>👆 So true it hurts</figcaption></figure><p>The one and only answer that your brain will *instantly* give you to each one of these questions is: YUP, YOU’RE RIGHT, DON’T DO IT. The longer you think, and the more questions you ask, the more your brain is going to verify the “NO” answer until you eventually give up.</p><p>Our brains are smart and stupid as hell at the same time. It’s funny that we can be self aware enough to observe that, but really, sometimes you got to trick that fucker into working for your benefits. If you let your brain construct your workout schedule on the fly for every day/week, you will never do things right. So here’s what I did.</p><p>I decided that I’m going to run a 5k every Monday, Wednesday, and Friday, and I’m going to do Ab Ripper X (a home workout program for abs) every Tuesday, Thursday, and Saturday, until the end of summer.</p><p>Those were the conditions. So the only question that I ask myself in the morning is:</p><blockquote><strong>What day is it today?</strong></blockquote><p>If it’s Monday — I’m going out for a run, it’s that simple.</p><p>If it’s Tuesday, I’m playing the Ab Ripper X video and I’m sweating my ass off for 20 minutes.</p><p>No additional questions asked. I’m running before eating any food - fuck what all the research says, there are always divided opinions about everything. I’m running if rain is pouring all over my face — which in the Netherlands is every second day. I’m running if I’m tired. I’m running if I feel like shit and don’t want to get out of bed. I’m running if I only had 5 hours of sleep the night before. It’s funny that I actually ran my fastest 5k when I had 3 beers and 5 hours of sleep the night before.</p><h3>Kitze on Twitter</h3><p>3 beers last night + 5 hours of sleep = Record in 5k 😂😂😂</p><p>I have a pollen allergy, so in the spring I’m usually waking up in a terrible, terrible mood. I cannot even breathe properly for the first 15 minutes of the day. In those moments I literally hate myself and I don’t want to do anything or talk to anyone. So, If I would let my brain ask some questions like: “Am I in the MOOD for a run” or “Do I FEEL like going out for a run now?”, the answer is <strong>FUCK NO</strong>. But If I ask myself “Is it Monday today?” the answer is <strong>FUCK YES</strong>. That’s a constant, if it’s Monday — it’s fucking Monday, and it will be Monday the next Monday, and the next Monday, and so on.</p><p>You can set a different goal for yourself: Run a 3k every Monday and Friday, Run a 2k every Wednesday, do weightlifting every Tuesday and Thursday, whatever you want. The key is to schedule the exact times and not to be flexible at all about them. If you say “I’ll go out running 2 times this week” or “I’m gonna go to the gym 10 times this month” you’re already screwed. Just set a stricter goal and stick to it.</p><p><strong>Wrapping up</strong></p><p>Surprisingly, this technique works really well for me, and I managed to complete the 24 days of running/ab workouts. I lost around 5 kg (11 lbs) and I have improved my running pace by a minute and a half. In the meantime I’m doing medical treatments for my shoulder 2 times per week, with the hope that I’ll finally be able to go back to the gym again. If you’re curious to see if I’ll commit to my workout goals for the whole summer you can <a href="https://twitter.com/thekitze">follow me on Twitter</a>, where I usually post my updates.</p><p>Thanks for reading this! Now it’s time to close Medium, decide on your goal and ask yourself:</p><blockquote>What day is it today?</blockquote><p>Good luck.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=64010244dd14" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[⚡️ From React to an Electron app ready for production]]></title>
            <link>https://medium.com/@kitze/%EF%B8%8F-from-react-to-an-electron-app-ready-for-production-a0468ecb1da3?source=rss-b4509d2dc793------2</link>
            <guid isPermaLink="false">https://medium.com/p/a0468ecb1da3</guid>
            <category><![CDATA[react]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[create-react-app]]></category>
            <category><![CDATA[electron]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[Kitze]]></dc:creator>
            <pubDate>Tue, 13 Jun 2017 11:09:13 GMT</pubDate>
            <atom:updated>2019-08-09T17:08:39.063Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/700/1*GQAukqU2MVtFMTGMOAahtA.png" /><figcaption>Just … don’t ask</figcaption></figure><p>Hello world!</p><p>I recently started playing with Electron in order to ship the native version of <a href="https://sizzy.co">Sizzy</a>. I used create-react-app (CRA) to bootstrap the app so I was assuming that wrapping it in an Electron shell would be easy-peasy. Turns out it’s a bit more complicated, so I tried to simplify the process for whoever is going to stumble upon this problem. Let’s go!</p><h3>The development version</h3><pre>create-react-app app</pre><pre>yarn add electron electron-builder wait-on concurrently --dev</pre><pre>yarn add electron-is-dev</pre><p>Add this electron.js file to the “public” folder.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/e62bac09e2b6ae513176381dc8a7884f/href">https://medium.com/media/e62bac09e2b6ae513176381dc8a7884f/href</a></iframe><p>We’re adding it in the “public” folder instead of “src” so it can get copied to the “build” folder as it is. This is needed for the production version, and it’s explained later.</p><p>Add the “main” property to package.json and point it to the electron file:</p><pre>&quot;main&quot;: &quot;public/electron.js&quot;</pre><p>Add this npm script to run the dev version:</p><pre>&quot;electron-dev&quot;: &quot;concurrently \&quot;BROWSER=none yarn start\&quot; \&quot;wait-on http://localhost:3000 &amp;&amp; electron .\&quot;&quot;</pre><p>Your face right now -&gt; 😱</p><p>If you’re wondering what in the living world does 👆that script do: it will just wait until CRA runs the React app on localhost:3000 before starting Electron.</p><p>Run the script and you should see this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JdELIzYAa6hGZKXy4ZLeWw.png" /><figcaption>Fun stuff!</figcaption></figure><p>In the dev version localhost:3000 is loaded as the main url so you can play around and live edit the app.</p><blockquote>Meh, this was too easy. You said it was hard. LIAR!!!!111</blockquote><p>Hold on, cowboy! We’re just getting started.</p><h3>The big question is: How the hell do I package and ship this app now?!</h3><p>I explored several options but settled on electron-builder because it has everything you need for packaging and releasing an Electron app. I’ll spare you the trouble of reading the documentation and chatting for few hours with <a href="https://github.com/develar">develar</a> (who btw was really helpful and awesome 🙌) so here’s the short version:</p><p>The production version cannot use localhost:3000 (duh), so we need to point it to a folder with the built version of our app. Unfortunately, by using the default settings, electron-builder will have a small conflict with CRA. electron-builder is storing assets like icons etc. in the “build” folder, and CRA is outputting the built files in the “build” folder. So let’s change the default configuration of electron-builder.</p><ul><li>Add the “build” property to package.json and point electron-builder to the correct folders.</li></ul><pre>&quot;build&quot;: {<br>  &quot;appId&quot;: &quot;com.example.electron-cra&quot;,<br>  &quot;files&quot;: [<br>    &quot;build/**/*&quot;,<br>    &quot;node_modules/**/*&quot;<br>  ],<br>  &quot;directories&quot;:{<br>    &quot;buildResources&quot;: &quot;assets&quot;<br>  }<br>}</pre><p>Now it will use “build” for the files and “assets” for the icons and other stuff. No more conflict! 🙈</p><p>Next up, add the “electron-pack” npm script:</p><pre>&quot;electron-pack&quot;: &quot;build --em.main=build/electron.js&quot;</pre><p>Notice that we’re pointing electron-builder to use “build/electron.js” as the main electron file because in our package.json the “main” property is pointing to “public/electron.js”, but that’s only for the dev version.</p><p>A final script we can add is:</p><pre>&quot;preelectron-pack&quot;: &quot;yarn build&quot;</pre><p>This is a simple “pre command” that will build the React app before packaging the Electron app.</p><p>If you’re using a version of electron-builder that’s below <a href="https://github.com/electron-userland/electron-builder/releases/tag/v18.7.0">18.7.0</a>, don’t forget to add the “author” property to the package.json file because otherwise, electron-builder will complain.</p><pre>&quot;author&quot;: &quot;Captain Electron&quot;</pre><p>One last thing:</p><p>Set “homepage” in the package.json, otherwise, the packaged app won’t find the .js and .css files.</p><pre><br>&quot;homepage&quot;: &quot;./&quot;</pre><p>After running the “electron-pack” command (and waiting for few minutes) you will get your packaged version in the “dist” folder.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KRFqp9xMgOv_qreCIK6szw.png" /><figcaption>It.. It’s beautiful 😢</figcaption></figure><h3>Final notes</h3><p>FYI: these are only the basics of building the app. There are bunch of other issues you’re going to stumble upon: <a href="https://github.com/electron-userland/electron-builder/wiki/Multi-Platform-Build">Multi-platform builds</a>, Accessing Electron stuff in React, etc. etc. etc.</p><p>But hey, nothing is unsolvable! (if you turn off your phone, brutally block all social media on your laptop via hosts, stare at documentation and Stack Overflow issues all day, constantly bug OSS developers on Slack and Twitter, all while sipping 73 cups of coffee per hour) That’s the dev life and we can only deal with it 😎</p><p>I’ll make sure to write a second article about releasing and auto-updating the app after I release the native 0.1 version of <a href="https://sizzy.co">Sizzy</a> (hopefully, this week).</p><p>If you’re lazy to do all of the above steps, just <a href="https://github.com/kitze/react-electron-example">browse the example repo</a> where you have everything ready.</p><p>Thanks for reading, and good luck on your React + Electron journey.</p><p>You can <a href="https://twitter.com/thekitze">follow me on Twitter</a> for more React and Javascript related stuff.</p><p>Check out <a href="https://sizzy.co">Sizzy</a> — the browser for designers and developers</p><p>If you are interested in a professional React workshop, check out <a href="https://reactacademy.io">React Academy</a>.</p><p>Adios 👋</p><p>Big thanks goes out to:</p><ul><li><a href="http://github.com/develar">develar</a></li><li><a href="https://medium.com/u/6cb3a06fce7e">Christian Sepulveda</a></li><li><a href="https://medium.com/u/cf372b5824cc">Bertrand Boustany</a></li><li><a href="https://github.com/juliankrispel">Julian Krispel</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a0468ecb1da3" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Introducing Sizzy —A tool for developing responsive websites crazy-fast]]></title>
            <link>https://medium.com/@kitze/introducing-sizzy-a-tool-for-developing-responsive-websites-crazy-fast-39a8c0061992?source=rss-b4509d2dc793------2</link>
            <guid isPermaLink="false">https://medium.com/p/39a8c0061992</guid>
            <category><![CDATA[react]]></category>
            <category><![CDATA[css]]></category>
            <category><![CDATA[responsive-design]]></category>
            <category><![CDATA[ux]]></category>
            <category><![CDATA[design]]></category>
            <dc:creator><![CDATA[Kitze]]></dc:creator>
            <pubDate>Fri, 28 Apr 2017 12:49:04 GMT</pubDate>
            <atom:updated>2017-12-13T14:41:32.853Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-AJyUnmh6mz2cdF8eO4y1w.gif" /></figure><p>So, here’s how <a href="http://sizzy.co">Sizzy</a> happened.</p><p>You know the drill. You’re developing an app for a client and you need to make every page and every component work in every variation, on every device.</p><p>I was already using react-storybook to switch between all the variations of a component, but I still had to switch between 12 devices just to see the changes in all of them. And that’s how it all started.</p><p>How about making a tool where you can preview multiple screens at once as you work? That would be neat, huh!</p><h3>How it all began</h3><h3>Kitze on Twitter</h3><p>I started working on this because I got tired of switching between different devices in chrome. Anyone wants to help? 😉 https://t.co/8dMNXRt2as</p><p>The initial tweet about the idea got 200+ likes and 60+ retweets so people were definitely interested in this kind of tool.</p><p>Initially, I made it work only with react-storybook. I had some problems with css-in-js libraries when developing locally, but I found a quick workaround.</p><h3>Kitze on Twitter</h3><p>Works with react-storybook + any css-in-js library now, but not a plugin yet. Added toolbar with buttons, working on the zoom control now.</p><p>After the integration storybook, the initial prototype was finished. The next thing I needed to tackle was zooming in and out on all the screens.</p><p>Users would probably want to preview their changes of bigger screens like iPads or small laptops, and you cannot fit those in without zooming out.</p><p>After a little bit of tinkering with the width and height of the parent iframe and transform:scale(zoom*0.01) on the content, I finally got it right.</p><h3>Kitze on Twitter</h3><p>Alrighty, zoom is done! But, why stop at debugging React apps in storybook? 🤔 Here&#39;s the @vuejs website in all shapes and sizes 😝 🙈 https://t.co/sVa7ZpfVqs</p><p>At that point I started thinking that the tool can actually be published as a standalone web app, and the storybook plugin can just be an addition. So I shifted my goal and starting working towards that.</p><h3>Kitze on Twitter</h3><p>Alrighty guys, this has a name and a placeholder repo now 😄 https://t.co/UQ5slc9fYW Added some styling and themes (including @preactjs 🖌) https://t.co/3rAXTolDto</p><p>I added few themes, polished up the UI a bit, struggled for 30 mins to come up with a name and ……. *drumroll* Sizzy it is. I setup a temporary GitHub repo for people who were interested to watch so they can know when the code is released.</p><p>I’m proud that I made Addy Osmani and Jason Miller star an empty repo 😈</p><h3>Addy Osmani on Twitter</h3><p>@_developit @thekitze @preactjs I also just starred an empty repo. I feel bad.</p><h3>Jason Miller 🦊⚛ on Twitter</h3><p>@thekitze @preactjs you just made me star an empty repo</p><p>I had a lot of features that I wanted to include, but I just had to finish the important ones and ship the first version by the end of the night. I added filtering by OS and device type and moved on.</p><h3>Kitze on Twitter</h3><p>👋 Sizzy update: - Filter by OS (Apple, Android) - Filter by device type (Phone, Tablet) 📻 Stay tuned for more cool stuff! https://t.co/YA7bZITqEE</p><p>I added an url bar on the top so users can play around and preview any url.</p><h3>Kitze on Twitter</h3><p>📣 After ~10 hours of coding Sizzy is almost ready for a release! 🔥 (It&#39;s amazing how @preactjs docs load compared to @reactjs 😅) https://t.co/HMxssROT1q</p><p>After I open <a href="https://github.com/kitze/sizzy">sourced the code</a>, polished up the UI, and finished bunch of other smaller things, <a href="http://sizzy.co">sizzy.co</a> was live and this was the end result:</p><h3>Kitze on Twitter</h3><p>It&#39;s 4 AM, so finally wrapping up work on Sizzy today: 🌐 open sourced https://t.co/KvStC4ByUe 🔒 added Flow types 🖌 improved UI https://t.co/ZcZ8opg0L2</p><p>I actually wrapped up work at 5:30 AM because I just couldn’t go to sleep without finishing *that* *one* *thing* 😅</p><h3><strong>Wrapping up</strong></h3><p>I haven’t worked on my own product <a href="http://ok-google.io">for around a year</a>, and I can tell you that it feels so, *so* good! No time trackers, no estimates, no management, organization chaos, and other stuff that kills your productivity. You just sit down, you know what you need to do, and do the work that needs to be done. That’s it!</p><p>You’re solving your own problem with the hope that you’re also gonna solve other people’s problems. The most important thing about is that in the end, you get a lot of amazing and positive feedback, which is basically the only thing that drives you to do better and more awesome work! 🎉</p><p>I want to thank everyone for your feedback and support. You can <a href="https://twitter.com/sizzyapp">follow Sizzy on Twitter</a> if you’re interested in future updates.</p><p>You can <a href="https://twitter.com/thekitze">follow me on Twitter</a> for more React and Javascript related stuff.</p><p><strong>If you, or someone you know is interested in a professional React workshop, check out </strong><a href="https://reactacademy.io"><strong>React Academy</strong></a><strong>.</strong></p><p>📝 EDIT 1: Sizzy <a href="https://opencollective.com/sizzy">has been approved on OpenCollective</a>, so if you’re planning to use it you can consider supporting it through a small donation. Your name and image will automatically appear in the supporters section on the GitHub readme. Thanks! 👊</p><p>📝 EDIT 2: If you’re developer and you’re interested in how Sizzy is built with React, styled-components and MobX, checkout <a href="https://www.youtube.com/watch?v=KTo71Tqlwy8&amp;list=PLeRG3Z4BGWXR1yE8176LxtAj0Xyb_VI7L">the new YouTube channel</a> where I’m posting videos of building features for Sizzy and shipping them live.</p><p>📝 EDIT 3: The <a href="https://chrome.google.com/webstore/detail/sizzy/nfhlbmjiiogoelaflfclodlkncbdiefo/related">Sizzy Chrome Extension</a> is live 🎉. Previewing any website in Sizzy is now one click away! ☝</p><p>Adios! 👋</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=39a8c0061992" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How it actually feels to write JavaScript in 2016]]></title>
            <link>https://medium.com/@kitze/how-it-actually-feels-to-write-javascript-in-2016-46b5dda17bb5?source=rss-b4509d2dc793------2</link>
            <guid isPermaLink="false">https://medium.com/p/46b5dda17bb5</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Kitze]]></dc:creator>
            <pubDate>Tue, 04 Oct 2016 21:38:17 GMT</pubDate>
            <atom:updated>2017-12-13T14:40:24.478Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/626/1*JwNfwaXUdYEooQ6p9bqYqg.jpeg" /><figcaption>Yeah, it’s a piece of cake.</figcaption></figure><blockquote>Hey, I need to create a page that displays the latest activity from the users, so I just need to get the data from the REST endpoint and display it in some sort of filterable table, and update it if anything changes in the server. I was thinking maybe using jQuery to fetch and display the data?</blockquote><p>-Sure, you could still use jQuery. But if you’re ever planning to do something more complicated on the frontend you should probably try React. It will be a big benefit for you in the future.</p><p>-Sounds great. How can i start with React?</p><p>-The easiest way is to run <strong><em>npm install create-react-app -g </em></strong>in your<strong><em> </em></strong>terminal and you can start with a project right away.</p><p>-Cool, so you’re telling me that I don’t need any additional setup?</p><p>-Nope.</p><p>-Do I need to install any special IDE like Visual Studio, Android Studio, or Xcode?</p><p>-Nope, just create your app with <strong><em>create-react-app my-cool-app </em></strong>and you’re good to go.</p><p>-But what about extra dependencies? Do I maybe need to install Java on my machine? Maybe I also need Maven, Gradle, CocoaPods, or maybe I need to download some extra 20gb SDK?</p><p>-Nope, just <strong><em>cd</em></strong> into your app and start it with <strong><em>npm start. </em></strong>That’s it.</p><p>-But do I have to build my app and wait for a long rebuild every time i change something?</p><p>-Nope. If you do a change the page will automatically refresh for you. If you change some CSS it will be live-reloaded for you, without doing a full page refresh.</p><p>-Sounds very useful! I think it can speed up my development process a bit. But wait, what do i do if i ever want to deploy a production version of my website? Because no one is *actually* deploying an unminified version of index.html, app.css, and main.js in production anymore, right?</p><p>-Yup, you’re right. If you ever want to deploy a production version of your site just run <strong><em>npm run build </em></strong>and everything that you need will be in your <em>/build</em> folder. Minified, optimised, and ready for deployment.</p><p>-Thanks dude, that was very helpful.</p><p><em>*curtain falls down, applause and cheers from the audience, our 2 developers take a bow, shake hands, and ride off on dragons into the sunset*</em></p><p>Let’s have fun and spread a bit more positivity and happiness in the JS community. If you want to know how to add a simple configuration to create-react-app without ejecting it <a href="https://medium.com/@kitze/configure-create-react-app-without-ejecting-d8450e96196a">read my latest post</a>.</p><p>You can <a href="https://twitter.com/thekitze">follow me on Twitter</a> for more React and Javascript related stuff.</p><p>If you, or someone you know is interested in a professional React workshop, check out <a href="https://reactacademy.io">React Academy</a>.</p><p>EDIT: Just because it’s unclear to some folks, this article 👆 is a response to <a href="https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f#.x7fo5e6xn">this article</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=46b5dda17bb5" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Configure create-react-app without ejecting ⏏]]></title>
            <link>https://medium.com/@kitze/configure-create-react-app-without-ejecting-d8450e96196a?source=rss-b4509d2dc793------2</link>
            <guid isPermaLink="false">https://medium.com/p/d8450e96196a</guid>
            <category><![CDATA[react]]></category>
            <category><![CDATA[config]]></category>
            <category><![CDATA[create-react-app]]></category>
            <category><![CDATA[javascript]]></category>
            <dc:creator><![CDATA[Kitze]]></dc:creator>
            <pubDate>Mon, 26 Sep 2016 17:25:44 GMT</pubDate>
            <atom:updated>2017-12-13T14:41:03.741Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*kUPO0VV-qmnvubgfWkuP_g.jpeg" /><figcaption>A confused developer trying to configure create-react-app</figcaption></figure><p>If you’re working with React, you’re probably familiar with the <a href="https://github.com/facebookincubator/create-react-app">create-react-app</a> tool by now. If you’re not: it’s an official command line interface for building React applications with no build configuration.</p><p>With no build configuration.</p><p>With no build configuration…</p><p><strong>With no build configuration!? But we need that! Kind of …</strong></p><p>Now wait! Don’t jump on me with the “but it’s just supposed to be a simple tool, it doesn’t need any additional configuration!” argument!</p><h3>Kitze on Twitter</h3><p>Finally! Running create-react-app with decorators and some ES7 stuff! Here&#39;s an example with MobX. I&#39;ll publish it later today 😜 https://t.co/y7ydWkdcny</p><p>👆 I posted a sneak peek of create-react-app + decorators <a href="https://twitter.com/thekitze">on Twitter</a>, and it looks like people are interested in it. But “decorators” is only one of the additional features we might need so we can switch to create-react-app for generating and building apps.</p><p>Many developers (including me) want to use create-react-app as their main dev setup for React apps but they can’t because they’re missing one or two features.</p><ul><li>Someone needs <strong>just </strong>SASS.</li><li>Someone <strong>swears </strong>that if create-react-app had CSS modules, he would ditch his current setup instantly.</li><li>Someone <strong>(me) </strong>just wanted decorator support because I’m using MobX in my projects. I know that MobX can be used without decorators, and i know they’re an experimental feature, but the code just looks cleaner and more readable with them.</li></ul><p>The create-react-app team clearly stated that it doesn’t plan to add support for any experimental Babel features, or for custom webpack/babel configs. It totally makes sense, and after a few days of exploring the codebase, i completely understand them and support them even more in their decision.</p><p>*whispers silently* <strong><em>but devs still want some config options…</em></strong></p><p>So what they do right now to customize their setup is:</p><ul><li>They either eject their app and modify webpack/babel manually (opting to lose future create-react-app and react-scripts support in the feature)</li><li>Fork react-scripts and add support for just the <strong>X </strong>feature they need</li><li>Use another tool and complain that create-react-app is nice but doesn’t suit their needs</li></ul><p>What i wanted to do is to write something that’s a little more flexible, allow different, but <strong>simple</strong> configurations, be always up to date with the original react-scripts, and (hopefully) satisfy everybody.</p><h3><strong>So i created </strong><a href="https://www.npmjs.com/package/custom-react-scripts"><strong>custom-react-scripts</strong></a><strong>.</strong></h3><p>Now with few lines of config you can add that <strong>X </strong>feature you need without ejecting your create-react-app.</p><p>Right now <a href="https://www.npmjs.com/package/custom-react-scripts#features">it supports</a>:</p><ul><li>Decorators</li><li>babel-preset-stage-0</li><li>LESS</li><li>SASS</li><li>CSS modules</li></ul><p>You can turn any of these features on/off, you don’t have to use all of them.</p><p><strong>How to use it?</strong></p><pre>create-react-app my-app — scripts-version custom-react-scripts</pre><p>After your app is scaffolded just modify the .env file in the root of your project to add/remove <a href="https://www.npmjs.com/package/custom-react-scripts#-configuration-options">certain features that you need.</a></p><p>So for example, if you need only support for CSS modules, add <em>“REACT_APP_CSS_MODULES=true”</em> to the .env file, and you’re good to go. You don’t need to <strong>eject</strong> the whole project to do that! 🎉</p><p>Wait, what? You didn’t know that this is possible, right? 😜 Probably, <a href="https://github.com/facebookincubator/create-react-app/issues/682#issue-177762206">because it’s not documented yet!</a></p><p>Important notice: you don’t need to change or modify the main create-react-app CLI tool, it can remain as it is. Just point to custom-react-scripts when you’re generating your app.</p><p>The benefits of not ejecting are that you’ll get updates to create-react-app and custom-react-scripts in the future by just updating those two dependencies, and your project can remain the same.</p><p>Hopefully <a href="https://www.npmjs.com/package/custom-react-scripts#-configuration-options">custom-react-scripts</a> will be useful to you, and it will help you to finally start using create-react-app as a build tool. Help me with the <a href="https://github.com/kitze/create-react-app/issues">remaining issues</a>, and <a href="https://twitter.com/thekitze">follow me on Twitter</a> to hear about future updates. Visit <a href="http://kitze.io">kitze.io</a> to learn more about me.</p><p><strong>If you, or someone you know is interested in a professional React workshop, check out </strong><a href="https://reactacademy.io"><strong>React Academy</strong></a><strong>.</strong></p><blockquote>Disclaimer: custom-react-scripts is <strong>not</strong> a complete fork of create-react-app. It’s just a fork of react-scripts with simple babel/webpack modifications that can toggle extra features. It’s not touching the original create-react-app code. actually, it’s doing very few and small modifications to it. Right now there <a href="https://github.com/facebookincubator/create-react-app/issues/682#issuecomment-249364974">isn’t any other way</a> to just fork react-scripts, so the whole repo must be forked. <a href="https://github.com/facebookincubator/create-react-app/issues/682">Forking react-scripts as an alternative for ejecting has been supported by the CRA team</a>.</blockquote><blockquote>Another important notice: The CRA doesn’t advise using of experimental Babel features because they might not be backwards compatible if the feature doesn’t make the ES spec in the future.</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d8450e96196a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[JS Coding Challenge #1 — Test your skills ]]></title>
            <link>https://medium.com/@kitze/js-coding-challenge-1-test-your-skills-63c2af5446d0?source=rss-b4509d2dc793------2</link>
            <guid isPermaLink="false">https://medium.com/p/63c2af5446d0</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[javascript]]></category>
            <dc:creator><![CDATA[Kitze]]></dc:creator>
            <pubDate>Sat, 28 May 2016 07:50:43 GMT</pubDate>
            <atom:updated>2016-07-02T12:15:16.355Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*3Jfqp1MsC8i1fFiUwt9sEA.jpeg" /></figure><p>Hey hey! Here’s the deal. I was trying to recreate the <a href="http://ok-google.io">“OK Google”</a> microphone animation with CSS3 animations + <a href="https://github.com/Khan/aphrodite">aphrodite</a>, and in React i was managing the animation state like this.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/f6567f927821e0372092fb2ee0379432/href">https://medium.com/media/f6567f927821e0372092fb2ee0379432/href</a></iframe><p>As you can see, this isn’t the prettiest sight for the eyes, it doesn’t look clean at all, and the syntax is a bit difficult to follow.</p><p>So i decided to write a function that should accept an array of functions and integers. The functions should execute, and on the integers the flow should pause for x milliseconds, and then execute the next function. It should be called like this.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/fbc545e53ee728807f857cac2aaa0cbc/href">https://medium.com/media/fbc545e53ee728807f857cac2aaa0cbc/href</a></iframe><p>How would you write the <strong>sequence</strong> function?</p><p>📜 <strong>Rules</strong></p><ul><li>You can use ES6 or lodash</li><li>Write it as a GitHub gist, or post it on jsfiddle, codepen, jsbin, etc. and paste the link in the comments, or <a href="https://twitter.com/thekitze">send it to me on twitter</a>.</li><li><em>(hint): the this.setState function returns “undefined” so try to use that somehow </em>😉</li></ul><p>🙊 <strong>Spoiler alert!</strong></p><p><a href="https://gist.github.com/kitze/6291dab229c909aefabb5b3141000f37">I have already solved it with a 1 liner,</a> but try to write your own solution before you take a sneak peek!</p><p>🤓 Have fun and follow me <a href="https://twitter.com/thekitze">@thekitze </a>where i ramble about JS, React, Redux, MobX etc.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=63c2af5446d0" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>