3 months ago
I failed to launch the product in under 72 hours. Disappointing, isn't it? It felt bad to make a claim & never complete it. I tried but I didn't gave my best shot. It was only 50% of me. Rest of the time I lost motivation because of some errors & my perfectionist nature. Even though the final result isn't perfect but its good enough in my terms.
That & once you lose some days then you keep on losing more & more. Once you let your guard down, it becomes a habit. First its just lets take a day off & then another comes & goes & then another & its too late until you realise a week has passed.
I announced the beginning of this project on 30th July 2018.
🔥 WIP Desktop - An Electron App for https://t.co/6Yjc6V8WRz #72hoursproduct— Akshay Kadam(A2K) 👻 (@deadcoder0904) July 30, 2018
Just started working on my 1st product
Boilerplate Setup done using Electron Webpack
Currently at v0.1👇 pic.twitter.com/MX2gOvD4mf
But I was busy squashing a bug on my another project due to the publisher stopped sending newsletter from that week & people got irritated with false notifications.
So on the 1st day all I did was spin up a boilerplate & that's it. Next day onwards I started coding, i.e, from 31st July 2018. I had a fever then because I went go for a run even if it rains 💦
2 days gone. 1st day I worked pretty less bcz I had a high fever which I still do but no excuses for shipping in 72 hours. 2nd day I did work for 7+ hrs that made me complete the MVP without design. Today I'll complete it with design. There's still time left. pic.twitter.com/8frn2Vntdo— Akshay Kadam(A2K) 👻 (@deadcoder0904) August 1, 2018
Then I made the first screen which kinda sucked a lot & probably looks 💩 shitty
I was facing some errors later on so I went into the source code of my favorite text editor VSCode & also on that day I open sourced my code.
Reading Source Code of VSCode for few pointers on Electron ⚛️— Akshay Kadam(A2K) 👻 (@deadcoder0904) August 2, 2018
Bdw Open Sourced WIP Desktop today https://t.co/shYDviCLfe
Note, some files are not committed yet but soon will be pic.twitter.com/GgTaufTu6m
Later on, I made the sidebar which didn't look quite good.
Also, added some emojis 🌶🔥️💀👻 to make it look attractive as its really hard to make the design look good when there is literally no text.
My Designs are horrible 😂 but I will do it on my own bcz learning Design is an important skill to make products successful. A good product with bad UI is worse than a lesser good product with Awesome UI. I am not taking any help bcz this is just my 1st project, there are many 🙈 pic.twitter.com/cTvQOqFuMo— Akshay Kadam(A2K) 👻 (@deadcoder0904) August 2, 2018
This was the minimalistic approach. I also want to learn Design so went all on my own. As good design always makes the product look 1000x better.
Today I added bunch of code & removed a bunch of code & worked on WIP Desktop for approx. 5 hrs. Rest of the time was wasted on fiddling around with @reach/router issues. My graphs really sucks 1 day up, 1 day down. I aim for 12 hrs but only do 8 hrs - 5 hrs code & 3 hrs Google. pic.twitter.com/qH9wEqqmzq— Akshay Kadam(A2K) 👻 (@deadcoder0904) August 2, 2018
One mistake I made was using a new library @reach/router because I like to try new things & often get bored by doing the same things again & again. And I have already used react-router like a million times. Also, the API looked quite 🔥 so I went with that. Everything was alright but I was facing a weird issue of "Cannot GET /" with
@reach/router & I googled but nothing came up.
I went in depth into related issues & opened up lots of tabs trying to figure out what was wrong but I couldn't.
Then I landed on a great Tyler Mcginnis's article Fixing the "cannot GET /URL" error on refresh with React Router (or how client side routers work) & this was by far the best explanation I've ever read & figured out a solution.
I went again with React Router & just because this is a small app it was easier to fix with just the 10 lines. Then I used Hash History to fix up that issue.
Then I started making the design look better 🎨
Starting to make the UI look good first then will make it look native. Its empty so wouldn't make sense yet so now I'll be filling in the middle content which I already have fetched. Making that Search Bar alone only took my 15 mins lol 😢 pic.twitter.com/wA0IsUpjrr— Akshay Kadam(A2K) 👻 (@deadcoder0904) August 3, 2018
God I hate my design 😢😭— Akshay Kadam(A2K) 👻 (@deadcoder0904) August 3, 2018
I waste hours at CSS & still don't like it pic.twitter.com/nUPjvahZI2
Thanks to Pascal Pixel's advice I made it look good enough.
Then the worst part happened when the bug was in the upstream repo. I was using Apollo & it has an error on
refetchQueries. Most people don't use
refetchQueries as its not needed & is unnecessary. And goes against the idea of GraphQL.
But as I was using Apollo for the first time, I used
refetchQueries because I didn't know how to go the other way. This is where I wasted the most of my time. I posted questions on StackOverflow, Reddit, Spectrum, Slack, Twitter & every place I could but all I got was upvotes. No answers 😭
Wasted some days due to the error. So I went ahead & made a Dark Theme. This was on 7th August 2018.
Made Dark Theme & made it easier to make your own theme. Overkill for this one, but helpful for next apps which might need custom theme. pic.twitter.com/fa3RQFLeRD— Akshay Kadam(A2K) 👻 (@deadcoder0904) August 7, 2018
On the next day, I set up Travis CI for the first time. This was to make automatic releases when I add some new features 🚀 or squash some bugs 🐛
Learning how to setup Travis for automatic releases & launching the website. Its been 8 days now. App not completely working. Still has issues but I'll setup auto-updater in Electron so it auto-updates itself when bugs are fixed. Here's a total graph of past 7 days by Wakatime. pic.twitter.com/qFgvSRjXy3— Akshay Kadam(A2K) 👻 (@deadcoder0904) August 8, 2018
Then after a lot of math & trial & error I made the Launcher Background work.
Finally made the launcher work. This one requires some math & trial & error & some waiting for like 1 minute for each run as it takes time to build a DMG & then launch the DMG. But the results look good. Next apps I will copy the same configs LOL 😂 pic.twitter.com/pbW8TKaKs8— Akshay Kadam(A2K) 👻 (@deadcoder0904) August 8, 2018
Again I faced weird Apollo errors. I am using React & found the solution on the Vue Wrapper 😂. There are lots of things not documented in Apollo & only Google helps. Sometimes even it can't help.
Wtf just happened. I went to find an Apollo error with React & found the solution in Vue Wrapper lol 🤣 Turns out if you're using Apollo Optimistic Response, then if your readQuery has variables in it; writeQuery should also have the same variables. There is absolutely no error.— Akshay Kadam(A2K) 👻 (@deadcoder0904) August 10, 2018
As you can see in the WakaTime screenshot below I spent a lot of time on such a simple application.
WakaTime free only remembers last 7 days time so I 36 hours + 9 hours + 4 hours (today hasn't finished yet) = ~50 hours I spent on a simple application. Too much time went in bcz many technologies were unfamiliar in a real world project. I only built simple apps with it. pic.twitter.com/xVfcmHC4yg— Akshay Kadam(A2K) 👻 (@deadcoder0904) August 10, 2018
Then I got bored doing the same thing again & again. I had to write tons of media queries. I have written a lot of code that I generally don't & that too in a really less time.
This is the Wakatime screenshot on 12th of August 2018 👇
After a while, even Flexbox starts to irritate you in a way that you don't like it & I was doing this thing again & again. Everytime I used to edit files, rename files, copy files. Setting up the structure of the project took me a lot of time but made it easier to find bugs & squash them. Everything is organized in a way that its easier to contribute & find files for myself.
And yesterday I launched the project finally 🚀🚀🚀
🔥 WIP Desktop - Desktop App for @wipchat— Akshay Kadam(A2K) 👻 (@deadcoder0904) August 16, 2018
⏱️ Time required for coding the app 👉 ~50 hours
🌶️ Total days 👉 16 days
⏲️ Total time 👉 ~77 hours (plus 1 extra website)
🔴 Status - Working, bug free & complete applicationhttps://t.co/t5KZUlYZ4x#72hoursproduct
🔥 I can launch in under 72 hours
🔥 It is possible to make a complete product from scratch if I put in a decent amount of work daily
🔥 Making a product is only 30% of the work. Rest effort goes into marketing, content, blogs, etc..
🔥 I am going to get bored after doing the same thing again & again
🔥 Tweeting a lot is boring so I'll pivot to tweeting less. Also, few words have a bigger impact.
🔥 Sleeping for 8 hours makes me more productive than sleeping for 4 or 5 or 6 hours
🔥 Shipping for 10 hours / day (currently my highest is 9 hours & lowest is 3 hours)
🔥 Do not try to make a perfect product. It can be done after v1.
🔥 Design skills
🔥 Speed, Efficiency & Consistency
🔥 Stop frequenting Social Networks
🔥 Stop Procrastinating
🔥 Stop Lying & Start Launching