Jason Leow

Indie hacker, solopreneur | Creating a diverse portfolio of products + services.

Day 817 - Start as side projects - https://golifelog.com/posts/start-as-side-projects-1679999241793

If you didn't have side-side projects and side-side-side projects, are you even an indie hacker? πŸ˜†

Seriously though, side projects areβ€”in my opinionβ€”one of the best ways to start a main project that you didn't know was a main project. The side project grew into one.

The upsides of starting as a side project:

- **Lower expectations.** Personally, I found the associated expectations and ambitions of starting a main project to hinder more than help. The expectations kinda blind you to what's real, what's signalled by the market and your customers. By starting as a side project, you don't take it too seriously, and can see the forest for the trees. Small bets.

- Side projects often start off as **something fun**. Play is the ultimate creator, if you ask me. You have fun, people can feel it in your product, and in your marketing too. The fun end up being infectious and helps grow the side project.

- **Engineering-as-marketing.** Sometimes we build a side project for a main project as a way for viral marketing. You had fun, learned something new, and in the process, also help bring more attention to your main project.

- **Building tools for your project** means validating a customer of one (yourself). Those tools could benefit other makers too, since it benefited you. It can go from a tool to a project in itself. Spin offs from a main project can grow into its own business.

*What other benefits are there with side projects?*

Emailed, arranged for Director meetings with respective departments of client organisation to kickstart new projects

Day 816 - Blank calendar - https://golifelog.com/posts/blank-calendar-1679885714127

I had no idea how much I enjoy a blank calendar till recently.

I've been so busy with consulting. I mean, it's feeding the fam. I appreciate that. But ever since working from home, I've come to enjoy that routine and stability. I don't mind an occasional meeting, a networking coffee once every month or so, but I'm a happy camper if I get my routine 90% of the time.

I might have previously committed to saying that consulting will be part of my portfolio, to diversify risks and be more resilient. But man does it feel great to be able to work on my indie products day in, day out. It's like getting into the flow, only that it's over weeks and months of immersion. I remember how it felt like during the COVID years when consulting went dry and I was just working that way on my products for months. Probably most of the year. It felt like hypnosis, a nice kind. A dedication and focus that's nice to get lost in.

It's pragmatic to keep consulting in my portfolio. But I don't feel for it as much as my indie products. It's not pragmatic to just live off my indie products. But man do I feel so much more excited working on my current projects and thinking about new projects.

Pragmatic vs aspirational.

What moves money vs what moves me.

Hard choices.

Made new scroll-to-top floating button template using native Carrd elements and some custom CSS

Demo: https://scrolltotopnative.carrd.co/

Side project weekend! Added 100% width & height to textarea preview to fix overflow text bug. Removed hover preview, replaced with preview button.

Day 815 - Twitter Blue - https://golifelog.com/posts/twitter-blue-1679786856621

Twitter Blue just arrived for Singapore! Should I should I? πŸ€”

But the feature I want (going to top of replies) is not launched yet. I asked in a [tweet](https://twitter.com/jasonleowsg/status/1639567810375585793) if anyone feels like their reach got better after Blue.

Some good points:

- The replies are mixed. Some said it worked. Reach increased by ~30%, follower gain picked up pace. Some cancelled after a few months because it didn't get more reach. So seems like it really depends on context like how you tweet, quality of tweets, your following size, or even algo changes etc.
- But also watch out for self-fulfiling bias due to being more invested. Pay, feel more invested, starts tweeting/engaging more, then get more views. Could be why some say it worked?
- The blue tick does have some benefits for signalling authenticity and social status. An account with the blue tick is less likely to be percieved as a spam account or bot. That's exactly what Blue is meant to do, to verify accounts. There's also some legacy associative memory where people see accounts with the blue tick as a big deal.
- Some nifty features I didn't know came with Blue – ability to change the app icon, and a thread reader view.
- And of course, you can finally edit tweets, and post longer tweets. I'll likely stick to the 280 character limit as I like the brievity, but awesome (less annoying) to know that I don't have to edit the tweet if I'm just off by a few characters!

I mean, in the end, this is a monthly subscription, and at the price of two lattes per month, it's not much to ask. I can always cancel it if it doesn't work. Besides, it's a marketing expense, an investment back into the business. No need to over-think it!

I'm going to experiment for a few months to see if there's a delta in impressions and engagement. Since March is coming to a close, I'll buy Blue on April 1st (not a joke! πŸ˜‚) to start the tracking properly.

Day 814 - Side project weekends - https://golifelog.com/posts/side-project-weekends-1679711565154

A happy problem is when you got consulting projects that keep the family fed and revenue-generating indie projects that's growing steadily, but no time for side projects.

There's always work to do for the former two. I'm busy 24/7 with something revenue-generating. It's like a fulltime job in itself! But that means side projects get sidelined. Or even ignored. I don't want that. I want to bet on those bets too. Having side projects sustains me as a maker, keeps me going in the long term. I just love the variety – that's why I have a portfolio of product to start with! The things I learn from side projects help me level up, and eventually level up my revenue-generating projects too.

So I'm going to do what those with fulltime jobs do: Work on side projects on the weekend. That way I can chip at it consistently.

A few things I really want to get a move on:

- Improving editing features for Lifelog
- Building and launching career conversation cards project
- Pivoting Sheet2Bio
- Building and launching my social good project Inclusive Design SG
- Improving on Keto List Singapore, 5am creators
- Building whatever's fun or rejuvenating

I'm a fulltime indie solopreneur, but part-time side hustler.
Carl Poppa πŸ›Έ

i call those side-side projects. i also have side-side-side projects! 🫠

0 Likes
Jason Leow Author

haha same here! My side projects have side projects πŸ˜‚

0 Likes

πŸ’΅ Sold yet another single license mobile navbar Carrd plugin (US$15 via Payhip-Stripe)...thanks hfrettingham!

πŸ’΅ Sold yet another single license mega navbar Carrd plugin (US$30 via Payhip-Stripe)...thanks Finley!

πŸ’΅ Sold yet another single license mega navbar Carrd plugin (US$30 via Payhip-Stripe)...thanks Drebin!

Day 813 - A letter to my past and future haters - https://golifelog.com/posts/a-letter-to-my-past-and-future-haters-1679645629258

Straight from [James Clear's newsletter](https://jamesclear.com/3-2-1/march-23-2023) today:

> "A phrase I heard recently and found useful: I agree with the idea, but I disagree with the tone. Many ideas get dismissed because they are delivered in a cocky or hostile or dismissive toneβ€”or because of who delivers them. Separate substance from style."

Brilliant way to convey the state of most public discourse online. I wrote about [the price of going viral on LinkedIn](https://golifelog.com/posts/the-price-of-going-viral-on-linkedin-1678780500067), how I didn't enjoy the overly-harsh and caustic comments, even if the points were educational.

The words by James Clear would have been a perfect reply. Writing this out now for my past haters, and for future haters:

> "Hi there. Good points. I agree with them, but disagree with the tone you delivered them with. I prefer to engage in online discussion in a civil and polite manner. Your words felt harsh, judgemental, and caustic. Even condescending. Of course, you can speak any way you want to strangers online. It's your right, and I can't expect you to bend to my preferences. Likewise, I have my right on how I like to receive comments. I'm happy to continue this conversation if you don't mind changing the tone of your delivery. If you do mind, then we'll have to cut this conversation off here. Thanks."

*What do you think of this letter?*

Prep work for set up for success design session with client tomorrow morning

πŸ’΅ Sold yet another single license mega navbar Carrd plugin (US$30 via Payhip-Paypal)...thanks Andrew!

Day 812 - Boring > original - https://golifelog.com/posts/boring-greater-original-1679528877683

When it comes to product ideas, call me old school but I'll choose boring-but-useful over original-but-nice-to-have any day.

Boring but useful is better because:

- What's boring are often the things that are perceived as dated, legacy, but actually lasting and evergreen. Instead of chasing fads and trends, Jeff Bezos asked "What's not going to change in the next 10 years?" Lindy effect is also at play here. The older something is, the more likelihood it will continue to be around in the future. It will age in reverse, like how Nassim Taleb puts it in his book *Antifragile*:

> "If a book has been in print for forty years, I can expect it to be in print for another forty years. But, and that is the main difference, if it survives another decade, then it will be expected to be in print another fifty years. This, simply, as a rule, tells you why things that have been around for a long time are not "aging" like persons, but "aging" in reverse. Every year that passes without extinction doubles the additional life expectancy. This is an indicator of some robustness. The robustness of an item is proportional to its life!"

- Less competition, because nobody likes to work on boring products. Few have the lasting power for sustained effort on boring products. Everyone chases shiny new tech, the latest hot thing. You might get some competition on boring products, but hang around a few yearsβ€”a decadeβ€”and many will drop off.

- Being around longer means more resources and help are available. I remember when I was learning to code, I went with Rails because it's stable, been around longer, and has loads of support, resources and communities. There's pages of results on Stack Overflow when you have a question. It would have been suicide trying to learn coding on some new Javascript library where few people had tried.

- Between useful and nice-to-have, useful is more durable. After the hype dies (it always does), your cool app will fade. If you're helping someone solve a real problem, address a real need, it's more likely to stay around.

*Caveat: One might object and say, why not both original AND useful? Suuuure. Who wouldn't want that? But it's rare. 0.00001% of the time you're lucky enough to land on something that's both original and useful. But let's be real here: Most of our ideas belong in either camp. So let's work with what most mere mortals have.*

So if I have to bet on an idea, I'm betting on the boring than the original.

Boring > original.

Day 811 - One-time payments as a viable business model - https://golifelog.com/posts/one-time-payments-as-a-viable-business-model-1679482339177

The one-time payment business model is something I've been leaning more and more towards too.

Don't know if it's people having subscription fatigue, or that it just makes more sense for my type of products, but I've been enjoying this approach. Mostly through my Carrd plugins project.

Some reasons why:

- The effort is more upfront, but the recurring effort seems less. Definitely feel like it has less commitment.
- It's more transactional in nature. Pay, deliver and mutual obligations are done, most of the time. Sometimes, some customers need some support and help. But so farβ€”at least for my pluginsβ€”it's in the minority than majority. (Side-note: Getting lots of support requests is also a sign that you might need to improve your product or onboarding or documentation)
- You capture the lifetime value (LTV) of a customer upfront. Some say, monthly recurring revenue (MRR) is simply LTV in instalments. In some ways, it's not wrong! With MRR, someone churns midway and you capture less of the LTV.
- With some types of products like ebooks and digital downloads, you can really leverage the build once, sell thrice approach. You might not even need to constantly update or add new features to the product (unlike for say, SaaS).
- Instead of building new features, you might have to build more products and have provide tiered offerings. Which is something that suits me great because I enjoy variety!
- We don't always need to acquire completely new customers (higher costs of acquisition) every month if you have a spectrum of offerings. Returning customers buying upgrades or cross-sells are a viable strategy too.
- It feels refreshing to get one-time payment because everyone's going to subscriptions model, even for a car! Perhaps this is betting against subscription fatugue or a novelty factor.
- One-time payments makes it easier for impulse buys. It's a weird bias where we hesitate over a $9/month subscription but don't think twice over a $100 one time payment. I wonder if it's tied to how we struggle more with being able to predict our preferences over a longer time span versus something bought and paid for right here right now.

*What other reasons do you think makes one-time payments a good business model to try?*

Conducted final of 4 introductory training workshops for client... time for payment!

Wrote tutorial for user for free textpopup.carrd.co plugin.. yes! Demand-driven tutorials!

https://textpopup.carrd.co/#tutorial

Day 810 - Codesplaining - https://golifelog.com/posts/codesplaining-1679383433303

I'm generally wary of the AI hype now, but to be fair, it's great for some tasks. Yesterday I used ChatGPT today to explain a piece a code I wrote, as a commit note to myself for future reference. It was for a plugin.

That saved me many minutes trying to find the right words!

I could do with more codesplaining!
Where was this when I started learning coding?!

![ChatGPT](https://pbs.twimg.com/media/FrqH3zxaUAED1kq?format=png&name=900x900)

I mean, people had been using GPT-3 for boilerplate code for some time now, and it's great, agree. Explaining code felt like a use case that's really standout and unique though, and tapped on ChatGPT's strengths as a language model. We could always get template code even before AI came along, but a service explaining code to a coding noob? Not sure I came across it before until recently.

And codesplaining is also great for debugging too! As it explained my code line by line, it reminded me that I have a variable that I left in there that isn't used (I forgot to delete). Just brilliant!

I've not tried any dedicated codesplaining apps/extensions, and I wonder if there's a market for them? πŸ€”

A quick Google search for "code explainers" and there's already a whole bunch of them:

https://explain.dev/
https://denigma.app/
https://www.explaincode.app/
https://www.figstack.com/app/explain
https://docs.replit.com/power-ups/ghostwriter/explain-code

*Ok so lots of options already... market validated?*
*OMG some are really good, like explain.dev*
*But what can I bring to the table that's unique?*

*So am I gonna do it or what?*

Thanks to the timely nudge by [@randomshenans](https://twitter.com/randomshenans/status/1637791762990112769), I am now the proud owner of codesplainingai.com:

![Screenshot](https://i.ibb.co/59XDkYX/Screen-Shot-2023-03-21-at-6-12-02-AM.png)

Now comes the hard part. πŸ˜…

πŸ’΅ Sold yet another single license mobile navbar Carrd plugin (US$15 + $3 EU VAT via Payhip-Stripe)...thanks Jules

Day 809 - Nike invented jogging - https://golifelog.com/posts/nike-invented-jogging-1679295520018

I was today years old when I learned that Nike invented jogging. The founders of Nike partnered with a doctor to write a book called Jogging that outlined the benefits of regular jogging. Before this, only athletes did jogging. Then after a while, it got popular and went mainstream. And Nike sold more shoes.

> Following the endorsement of health professionals, the release of Jogging, and the cachet of athletes and celebrities who jogged, the new sport broke through to the mainstream. – via [Vox](https://www.vox.com/2015/8/9/9115981/running-jogging-history)

I'll be damned.

I've jogged all my life, some periods competitively, some for health. I've loved it, competed in it, did it with friends, and I never knew it was invented to sell more shoes.

Not for health or fitness or sportsmanship.

Sometimes I feel adulthood is like learning that everything you thought you knew was a lie. Jogging as Nike's product is one such moment.

But yet at the same time as an entrepreneur, I can't help but feel impressed.

Nike didn't just make sneakers. They also created something that tapped into the underlying human needs that would drive sneaker sales.

The need to be healthy and fit.
The desire to follow those with high social status.

All through this activity called jogging.

Wild.

And here we are, indie solopreneurs, making little toy widgets on the internet and calling it entrepreneurship. These guys in the 60s were inventing a whole lifestyle, conjuring up wants where there were none.

Jogging.

What's the jogging equivalent for indie hackers?

🐞 Solved the jump scroll bug! Now everything works. Paid plugin is ready for sale - https://mobilenavbarpro.carrd.co/

- Add a blank mobile-only Container element as a spacer
- Set up an event listener that will execute the scroll function whenever the user scrolls the window.
- Get the distance between the top of the header element and the top of the document, and assigns it to a variable called sticky. This value will be used later to determine whether the header should become "sticky" or not.
- Check whether the current vertical position of the window (window.pageYOffset) is greater than the distance between the top of the header element and the top of the document (sticky). If it is, that means the user has scrolled past the header element, so the sticky class is added to the header element to make it "stick" to the top of the screen.
- Then, the code gets the spacer element and sets its paddingTop CSS property to be the same height as the mobilenavbar element. This is to make sure that when the header becomes sticky, the content doesn't jump up the screen
- If the user scrolls back up so that the header element is no longer "stuck" to the top of the screen, the sticky class is removed from the header element and the paddingTop of the spacer element is set back to 0.

[Code explanation written by ChatGPT]