Lifelog

Write 100 words a day, every day, towards your goals.

Day 835 - Side project weekend: Week 3 updates - https://golifelog.com/posts/side-project-weekend-week-3-updates-1681531659297

Updates on side project weekend: Pretty happy with the progress so far. So much so that I'm surprised why I didn't do it sooner.

I decided to start setting aside my time on [weekend mornings for side projects in end March](https://golifelog.com/posts/start-of-side-project-weekends-1680396240910). Felt great [starting it the following week](https://golifelog.com/posts/side-project-weekends-1679711565154), getting re-acquainted with VS Code and Nuxt.js all over again.

And since then, I've shipped 2 big text editing features for Lifelog. Getting those feature requests off the roadmap always feels great. The best part - not letting Lifeloggers down.

Personally, feeling progress on all these side projects after so long of ignoring them is a great relief. Easing some of that cognitive pressure of the projects nagging away at me felt cathartic.

Thinking back, it's silly why I didn't think of starting this sooner. I know the power of 1% compounding, and compounding a little bit even if every week not every day is still compounding. Shipping 1 feature a week means I would have shipped 52 features in 1 year! That's not unsubstantial.

What I didn't expect: Jumping out of bed on weekends, more so than weekdays! How weird. And surprising.

I guess I have a hobby now?

Side project weekend: Deployed new feature on Lifelog - 🖊 Markdown formatting snackbar. Now you can add Markdown syntax using the editor panel to format the text. Great if user is unfamiliar with Markdown.

Day 834 - Winning the indie game without an audience - https://golifelog.com/posts/winning-the-indie-game-without-an-audience-1681456410187

In a move to call BS on the oft-stated reason "You're only successful because you have a large following.", Danny Postma posted a great, [informative thread](https://twitter.com/dannypostmaa/status/1646368426246680579) about how he grew a product to $1.2k/m using SEO, without ever mentioning it on Twitter.

What struck me about his thread was how simple SEO could be. Yes it *can be* complicated and look like black magic, but it can also be simple. He did it the simple way. The other realisation was that I probably stumbled into this same approach with my Carrd plugins project! It was SEO right from the beginning, that's how it pulled itself forward even though I didn't market it much. So it is possible! And thing about audience, as he said, it helps with "faster link building", giving you an edge of a few months over competitors. I mentioned before that an audience is an accelerant, if the product isn't moving there's no speed or momentum upon which to accelerate. So it's true.

So here's how Danny did it, paraphrased and referenced with my Carrd plugins project:

1. **Find your main keyword** using [Ahrefs' Free Keyword Generator](https://ahrefs.com/keyword-generator). Mine is "carrd plugins". I chose "plugins" over "widgets", "components", "scripts", because Wordpress calls it "plugins" so i assumed that would be most familiar and commonplace.

2. **Research keywords** to find something with:
- **Keyword difficulty (KD) < 20** - requires less than 10 backlinks to rank on 1st page of Google. Interestingly, the KD was N/A for "carrd plugins". So very niche but require even less to rank?!
- **Volume > 500** - average monthly no. of searches for the keyword over last 12 months for 1 country. For worldwide search, triple the volume. Estimated 15 sales/month at 1% conversion of 1500 searches. My volume for "carrd plugins" was 30 for US, 90 for global. Not high. Average sales for my plugins were about 10-20 per month, so conversion is about 11-22%!? Which kinda makes sense because it's so niche, but also explains why the sales volume isn't high.
- **Many child keywords.** High ranking for main keyword means high ranking for long-tail keywords too. Volume for "carrd widgets" is 10. No available data for other child keywords.

3. **Spend a lot of time researching the ideal keyword,** as this is the baseline. Start off the wrong one, you will struggle later.

4. **Build product around the keyword.**
- **Give users what they want** from searching. Answer their search intent, be it information or assets. Provide free downloads with low barrier. I do that with my Carrd plugins. There's more free plugins than paid.
- **Optimize website copy for the main keyword.** Repeat it everywhere but not too much. Yes I did this for my plugins site too. My hero tagline is a SEO grab basically lol - "Plugins, widgets, scripts to power up your Carrd sites".
- **Build subpages to rank for specific long-tail keywords.** The subpages for me are not subdirectory pages because I use Carrd's subdomain – plugins.carrd.co. But I link all the plugins subpages on the main home page.
- **Offer both free and paid options.** Free users keep users on site, boosts Google's ranking, and also earns trust by providing value first before asking for payment. Totally what I'm doing with plugins. My approach is "Giving till it hurts".

5. **Backlinks.** All my plugin subpages have links back to home page. When I launch my plugins as separate tools on various channels, they bring traffic back to the mothership. Danny suggested launching on Product Hunt, because **Product Hunt gives you a link with a strong domain authority (DR) of 90/100** even if you do not win first place. The higher the DR the higher the SEO effect. Other websites reposting via PH will give you even more backlinks., enough to rank on the 1st page with KD < 20. I've so far not launched plugins on PH yet because it feels rigged. But must consider now since getting a place on the leaderboard doesn't really matter!

6. Next is to **wait**. An average of 3 months for traffic from Google, and another 6 months for larger boost. SEO is long game. Set and forget.

What a fun meta analysis of how my Carrd plugins worked itself out!

Now I know roughly why my plugins pages appear in [7 out of 10 on first page of Google for "carrd plugins"](https://twitter.com/jasonleowsg/status/1643554075466936320)!

Day 833 - 100% sleep score II - https://golifelog.com/posts/100percent-sleep-score-ii-1681348558719

Hit 100% sleep score again! My second time ever. But I kinda brute forced into it by sleep in for 9.5h due to a bad bout of seasonal flu. I definitely needed the rest.

But getting 100 again just re-demonstraed to me again that despite all the sophisticated sleep biohacking techniques and tools I use, the fundamentals of great sleep can be super simple: Just sleep enough hours. Well at least one of the fundamentals.

Do that, and many of the other sleep hacks are just secondary and complementary, like these recent ones I learned:

- A 10-20min nap or non-sleep deep rest (NSDR) have both been shown to replenish physical energy and increase cognitive function. NSDR, however, also increases striatal dopamine and improves one's self-directed relaxation ability, which in turn improves sleep. Source: [Andrew Huberman](https://m.facebook.com/story.php?story_fbid=540927514852493&id=100068057464113&mibextid=qC1gEa). I always naps were better than NSDR, but looks like this NSDR thing could be worth practising more in.

- How the cultural practice of couples sleeping in the same bed is way overrated. We should normalise having sleep arrangements that work for individuals sleep profiles/patterns while not moral guilt-tripping couples into thinking that's bad for romance/relationship. Source: [r/sleep](https://www.reddit.com/r/sleep/comments/11vffo3/sleeping_in_the_same_bed_as_my_bf_is_agonizing).

- How a sleep-optimised day looks like:
- Regular waking time
- Get morning sun
- get morning exercise
- Caffeine shut off point around 2pm
- View evening sun
- Dark mode, limit screentime
- Keep bedroom cool
- Regular bedtime
- 8h of sleep

- Cognitive impairment from sleep deprivation is like drinking alcohol. “One night of low-quality sleep impairs your brain function as if you had a few drinks –– and if you go a full night without sleep, your mental performance drops as if you had a blood alcohol content of 0.10, which is well over the legal limit for driving.” Source: [Dave Asprey](https://daveasprey.com/how-stress-ruins-your-sleep/).

- Interesting new sleep supplement stack, which I only tried magneisum so far:
- Theanine for focus and sleep
- Inositol for relaxation and deep sleep
- Magnesium for sleep latency, reduces sleep awakening and increases melatonin
- Glycine for lower body temperature, sleep latency and better quality sleep

- My own sleep stack recently had evolved:
- 💤 5 sleep cycles nightly
- 🍽 Light/no dinner
- 🚰 Less water in evenings
- 💊 Magnesium L-Threonate
- 🏋️ Getting the body tired enough - exercise
- ☢️ Quantum sleep
- 😪 Less stress
- ⚓️ Stable routines

- Sleeping after midnight is bad. “Every hour of sleep before midnight is worth two after midnight.” Source: [Time.com](https://time.com/3183183/best-time-to-sleep/)
John Koo

How do you measure the sleep score? Is there an app for this?

0 Likes
Jason Leow Author

Yes I use this iOS app called Sleep Cycle. Set phone to airplane, start the app, and put beside pillow during sleep. Apple Watch and other wearables have sleep tracking apps too.

0 Likes

Day 832 - Rubberducking with ChatGPT - https://golifelog.com/posts/rubberducking-with-chatgpt-1681283275502

Today I solved a number of Javascript issues I face using ChatGPT. I must say I'm impressed. Previously I asked code questions for Vue.js, but perhaps the training data is limited or the way I asked, it kept giving me answers that were clearly wrong. This time it somehow shined through.

My lessons on how best to collaborate with ChatGPT on coding questions:

- Provide context, show parts of datasets, define variables and constants if needed, share what errors you faced.
- The more code and datasets you show the more relevant the answer.
- Ask in stages, not all in one go. Break it down so that it can also build up context.
- Tell ChatGPT it was wrong, what were the errors that came from the code it provided.
- Iterate on your questions, rephrase in a different way.

Given enough context, ChatGPT can provide code that customised to your code. That's a clear step up from asking questions on Stack Overflow, because I often have to adapt and re-jig the answers I find there. With ChatGPT, I get the right code, and it can also explain it line by line what the code does.

I've seen folks use ChatGPT for writing template code and all. But I was never impressed with that (you can download or copy paste template code easily). But this is different. I can imagine, especially for beginners, ChatGPT or equivalent, paired with good old Google search, might be really useful as a coding assistant and coach.

One of the use cases for AI that I'm enthusiastic about.

Day 831 - What if you had to start from zero all over again? - https://golifelog.com/posts/what-if-you-had-to-start-from-zero-all-over-again-1681183399692

Seeing how some indie hackers' MRR went from profitable to [ZERO](https://twitter.com/maximehugodupre/status/1645096979649769476) were heart-breaking to watch. These were the folks who built Twitter tools on top of the Twitter API, especially Twitter analytics tools. Almost overnight, their developer accounts were suspended, or they closed it themselves due to the ridiculous price hike.

Platform risk is so effing real.

Seeing this play out got me thinking: *What if this same thing happened to me?*

Even though I don't build Twitter tools, there's a thousand scenarios an existential rug pull can happen:

- Your cloud hosting platform deletes your servers for no reason (happened to someone recently on Heroku).
- The critical infrastructure that your business depends on could suddenly raise prices to the point that it makes your business untenable (Bubble, Twitter API are recent examples).
- You somehow got an unknown wave of chargebacks, and banks and credit card networks decide to blacklist you, and you can no longer use Stripe or any payment platform.
- Your domain name provider accidentally expires your domain (yes GoDaddy seems to do that) or decide to ban it and you lose all the page rank and SEO juice you built up.
- You get into an accident or contract some illness/health condition, and become unable to work for in medium term (risk of being solopreneur).
- The platforms you build on (Apple App Store, Android Play Store), could ban you for reasons that are unclear. Same with your distribution channels (ad accounts getting banned for no reason are commonplace, and an existential crisis if you heavily depend on it, e.g. ecommerce).
- A VC-funded competitor enters the market and poaches all your customers away.
- Macro economic issues like recession or some major crisis (e.g. pandemic) changes customer behaviour drastically (e.g. F&B all struggled to survive in the age of lockdowns).

Just a quick thought experiment: What if this happened and I have to start from zero all over again? What can I do to reduce chances of rug pulls happening, and if it does, what can I can to lessen the impact?

- **Diversify.** Sure, concentration builds wealth, but diversification builds resilience. Focus on 1, but no harm building up 1 or 2 more side projects. You can re-start a new business yes if the current one fails, but the incubation period might be long. Easier to not lost momentum by shifting to something already running.

- **Backups.** Keep multiple backups for your data, have ready alternatives for your critical infrastructure (set up secondary databases on Render on top of being on Heroku, be on more than one payment platform, like Stripe and Lemon Squeezy).

- **Test new ideas constantly.** Going all in on 1 business makes a hidden assumption – that the situation your business is in is stable and unlikely to change. Then when things go from stable to chaos, you're caught blindsided and not sure where to even re-start from. Constantly tinkering with new ideas, keeping the entrepreneurial spirit alive, might help counter that blindside. You have ready ideas and motivation to hustle all over again, plus all the practice from starting from zero for new ideas.

- **Keep tabs on the pulse of your industry.** Prepare. Reading the experiences of those Twitter tools who survived the axe (like Hypefury), they started preparing way ahead, before things went sideways. They spoke to Twitter directly, got on whitelist for the new Enterprise plan, and paid immediately way before the deadline. I read that and I was impressed by their foresight. Only the paranoid survives.

- **Don't overthink it**, create undue anxiety. Being preapred is all good, but there's a million possible scenarios. Spending too much time and effort in remote possibilities is a huge time and emotional suck. It's a good reminder to myself that we need to prioritize because there's so much you can do to be prepared. Almost too much. Overthinking it is pointless too. This entrepreneurship game is something you can't be 100% prepared for.

*What else did I miss? What would you do if you had to start from zero again?*

Paid subscriber who never used my SaaS cancelled after 4 months

One of the more weird customer situations... Signs up in Nov, the $10 paid subscription activated in Dec, never wrote a post, doesn't reply when emailed to, then now 4 months later, abruptly cancels. 🤷‍♂️

I never added his 4 months payment to MRR from the beginning as suspected this will happen. Just didn't expect it will take this long... 😨

Day 830 - Wise quitting - https://golifelog.com/posts/wise-quitting-1681110696126

"Don't give up." has got to be my favourite overall life achievement hack when growing up. Not surprisingly, it's always served me well in school and sports. It's like 100% hit rate. So learning that it's not true when my indie entrepreneurship journey was difficult.

But recently I realised it's not a total collapse of that notion. But more about adding nuance to it. I can give up a battle, but still not lose the war.

I can give up a project, but not lose staying indie.

Perspective perspective.

Closing a project when the data shows, isn't giving up. It's reprioritizing.
Stopping the project when my motivation for it runs dry, isn't giving up. It's re-directing.
Putting a project on hold when platform risk is too high isn't giving up. It's re-calculating.

By giving up a failed project, I can then redirect my energy and focus on something else, with a potentially higher chance to win the bigger war. Because of what practical lessons and experience from the failed project. Because now I'm smarter for it. Because I know what didn't work, I can avoid those factors and by reduction, I get closer to what works.

Now, that's **wise quitting**.

Day 829 - Sunday mornings - https://golifelog.com/posts/sunday-mornings-1681004664747

It's been a while since I wrote about Sundays. It's still my favourite day for waking up early.

I wake. Wash up. Push buttons for my double espresso. And sit down and immerse into a sea of calmness. The quiet stillness is mind-stopping. I slow down. I see the first light coming through the horizon. The dark violets giving way to glacier blues and whisky orange. The flames of yellow breaks through clouds. So still, even the birds are still asleep.

I hit play on my [Soundcloud playlist](https://on.soundcloud.com/Gnedo). The ambient chillstep lends a deeper, immersive atmosphere. To savour and to soak in. It sharpens my mind, brings me to the present. Nothing like music that helps me come back to the moment.

I wish time would stop here. I could live in this moment forever. In fact, sometimes I think this is all I'm looking for in life. All I live for. Just fleeting moments when everything feels whole and complete. When I'm not needed nor expected to be anything. Where there's nowhere to go, nothing to achieve. When my entire universe is calm and collected.

A sacred hour.
A sacred space.

Sunday mornings.
Carl Poppa 🛸

poetry 🥹

0 Likes
Jason Leow Author

😌

0 Likes

Code from scratch the first version of side snackbar Markdown editor on local

🚧 Work-in-progress for side project weekend:

Coding from scratch a side Markdown editor for my daily writing app golifelog.com

INB4: "Why reinvent, why not just install a package?"

Because I love a challenge 🤣
Because it's a passion project I can do wtf I want 🙃

Day 828 - 1000 different & beautiful things in your 1 wild & precious life - https://golifelog.com/posts/1000-different-and-beautiful-things-in-your-1-wild-and-precious-life-1680960250621

"Twitter is saying 1 thing in 1000 ways."

Sorry, hard NO. That's boring af.

Instead, let's normalise saying the 1000 different and beautiful things happening in your 1 wild and precious life.

Do that, & I'd follow you in a heartbeat.

Because no one can compete with being you. And being you means embracing all the facets of who you are, what you do. You don't need to come up with original content. You = originality.

Because we're not one thing, even if the gurus all say it's good to be known for one thing. They say, people are lazy, they just want to pigeonhole you into one box. It's easier for them to recall you as the "____ guy". I call bullshit. If we just spend a few more seconds thinking deeper about anyone we know—friends or family—we will effortlessly realise they are so much more beyond the one thing we tend to label them by.

Because we contain multitudes. We are complex creatures. We're not uni-dimensional. Most of the time, we can be multi-dimensional if we get out of our own way and just let it reveal itself. There's 1000 different and beautiful things happening in our 1 wild and precious live. But we've tuned out of them, and got numb. So many creators say, I have nothing interesting to share! That's exactly it. We lost touch with our multitudes. We just need to look harder, and get accustomed to seeing them all over again, and it'll get easier. It's true, I was skeptical, but tried and now I can see interesting things happening where I used to not notice them.

Only machines try to say 1 thing in 1000 ways. In the age of AI, don't compete with machines by being a machine.

Compete by being utterly and imperfectly human. By being you.

Day 827 - Twitter algo tips - https://golifelog.com/posts/twitter-algo-tips-1680850572027

I've been reading threads about the Twitter algorithm which recently went open source. Just to gather up the tips and hacks:

*Caveat: The algo gets updated often, so this might only be a snapshot in time. And take the boosts and weights not as definite results but more as probabilities as the algo is multi-layered and complex. It behaves more like a symphony:*

- Follower:following ratio matters. Ideal is 0.6, where you follow less than 60% of the number of followers you have. But don't rush to unfollow a lot of people quickly, as that kind of behaviour resembles a bot and could get you shadowbanned.

- A tweet decays at a rate of 50% every 6 hours. (Side note: That's why I retweet it every 6h to bump it up and also to show it to folks in different timezones. It's inclusive as folks follow you to see your tweets, and timezones might make it less accessible to them. But might add noise if you RT too much, so do it with care.).

- The algorithm will show more of your tweets if you have a high TweepCred. If your TweepCred is less than 65, the algo will consider up to 3 of your tweets. If your TweepCred is more than 65, the 3-tweet limit is lifted. What TweepCred entails and how it's calculated is still not clear. This aligns with experience where tweeting anything more than 3 per day isn't as effective.

- Tweepcred is also based on the quality of users you interact with. Interact with low quality accounts with bad follower/following ratios and are marked as spam/nsfw/bots/toxic, you get penalized.

- Your account is clustered into a group with other similar profiles. This clustering helps extend your tweet reach beyond your followers to other similar people. Tweets won't do as well if you post “out of network” content, outside your cluster. That's why the advice Twitter is saying 1 thing 1000 ways. Repeating on your niche works (but boring).

- Using keywords in your tweets matter. Because Twitter uses the same algo as Google (PageRank).

- Multiplier boosts:
- Likes (30x)
- RTs (20x)
- Replies (1x) - getting likes + RTs boost more than getting replies
- Trusted circle (3x)
- Adding images/video (2x)
- Tweeting in English
- Follows
- Trending topics (1.1x) - trends, media, news
- Twitter Blue (2-4x)
- Ending tweets with a question mark

- Obvious but worth mentioning: Getting blocked, muted, abuse/spam reports, unfollows would lower your visibility score. Unfollows are only kept on server for past 90 days to prevent permanent shadowbanning.
- Negative feedback like "Show less often", block or mute (-74x)
- Report tweet clicked (-369x)

- The tweets someone sees in the For You feed is based on the probability that they will:
- like/RT the tweet
- click the tweet and reply
- stay for 2+ minutes
- check the account's profile

- Posting these in your tweets also lowers the reach of that tweet:
- only URLs
- no words
- misspelling, making up words, unknown language
- name only
- multiple hashtags
- tweet gets categorised as misinformation or blacklisted

- The myth is verified now: Links gets marked as spam if they are considered "non-news or non-media" links. But this doesn't mean your tweet won't go viral. If engagement on it is high because the link is relevant to the viral content, the tweet can still do well. It just starts off with a handicap.

- Blocking, muting others too much too often might also lower your algo ranking. Not too sure how true this is though. Still rumour level.

Sources:
1. https://twitter.com/IgorBrigadir/status/1641953684564201472
2. https://twitter.com/IgorBrigadir/status/1641945231636545536
3. https://twitter.com/sterlingcrispin/status/1641888492627083264
4. https://twitter.com/sterlingcrispin/status/1641922257470595072
5. https://twitter.com/NFT_GOD/status/1641914923826462721
6. https://twitter.com/steventey/status/1641892397440450560
7. https://twitter.com/NFT_GOD/status/1641925407468404739
8. https://twitter.com/petergyang/status/1642004729390858241
9. https://twitter.com/aakashg0/status/1641976943141699584
10. https://twitter.com/contentkuba/status/1642128038866321408
11. https://steventey.com/blog/twitter-algorithm

*What other Twitter algo tips did you see?*

Day 826 - Blue tick is here! - https://golifelog.com/posts/blue-tick-is-here-1680767721605

Got my blue tick on Twitter today. Applied on Apr 1st, got it on Apr 6th.

They say there's a 4x boost if in same network, 2x boost if not in same network. (Not sure what "in network" means though...)

Quite looking forward to seeing how it goes!

Some Twitter folks might not share my excitement. I've seen tweets where they claim they don't care, that it's about the people, these hacks are stupid, etc.

Just to be real here: I started on Twitter for the marketing, but stayed for the people. I'm on Twitter for the people and ideas. Chatting and learning from fellow indies had been the best part and most enjoyable. But I won't deny that getting some follower growth is also pretty motivating.

I mean like, come on, we all recognise having an audience is a great asset to any indie hacker, especially if you're trying to monetize. Let's not feign moral higher ground and say it doesn't matter. It does matter. Trying to say it doesn't frankly comes across as disingenous, being contrarian for its own sake. A rebel without a cause. Maybe "It doesn't matter" is sometimes a reflex against *how* people grow an audience, especially those using shady tactics. But if we can engage authentically and also use what we learned about the algo ethically and mindfully, why not both right?

It's not mutually exclusive.

Blue tick—or Twitter itself—is just a tool. It's *how* you use the tool that matters.

I'm all for responsible use and happy growth.

Day 825 - You only have freedom if you use it - https://golifelog.com/posts/you-only-have-freedom-if-you-use-it-1680658639922

For me, being an indie solopreneur was about the freedom to decide today is an off day and I'm going cycling at the beach with my wife and kiddo.

But I rarely ever exercise that freedom.

Glad I finally did yesterday.

![](https://pbs.twimg.com/media/Fs3KIVJaUAACsps?format=jpg&name=small)

The grind is sometimes so all-consuming. There's always something to do. Something to fire-fight. Something to improve on. The work is never truly done done. I mean... I love it. I enjoy the work. It feeds me, mind, body and spirit. But I always like to say, any virture brought to extremes turns into vice.

If I had a freedom but I never exercised it, never used it to my benefit nor enjoyed it, then do I truly have that freedom? If I'm always holding myself back from taking that freedom, for whatever good or bad reasons, is that freedom truly mine?

> If a tree falls in a forest and no one is around to hear it, does it make a sound?

I think no. It's just an impression of freedom. A mirage. But we're shackled by other chains that holds us back from drinking from it.

I only have real freedom of or from something if I actually exercise it.

When I live it out.

Like yesterday.

Day 823 - Twitter tool idea - https://golifelog.com/posts/twitter-tool-idea-1680494349323

So with the Twitter API pricing announcement, most small indie Twitter tools will be going out of business. $42,000 per month—almost half a million per year—for API access is just too much for mere mortals. The trade-off they had to make for networks effects over platform risk, and now platform risk had reared its ugly head.

The tool I've been using, Zlappo, is likely going down. 😢

So it's a sad day for indies. Imagine building your SaaS for years, hitting thousands or tens of thousands in MRR... only to get rug-pulled like that. My heart goes out to those fellow indies. It sucks balls.

That also means I'm out in the market *yet again* for a new Twitter tool. This time, it'll likely cost more due to the increase in costs for Twitter tools to run. So I'm not optimistic, even though a few of the survivors had not yet announced any price increases:

- Typefully
- Hypefury
- Tweet Hunter
- Black Magic
- Publer

It's probably a bad time to think about building anything on Twitter... but that got me thinking of an idea: Twitter API has a [free plan](https://twitter.com/TwitterDev/status/1641222783601631233) which is very bare bones – just 1500 tweets per month, media upload endpoints and login with Twitter. Very basic, but I'm not a super power user. I just need a tool to schedule a tweet, and auto-retweet it twice at a 8h time interval. No need for analytics, auto-DMs, AI writing tools, thread composer, none of those fancy bells and whistles.

I wonder if we can make a Twitter scheduler wrapper tool where we consumers sign up for a free dev account and bring our own API keys, very much like ChatGPT wrapper apps. Buy a one-time license for the app, download/install or open in browser, and run using your own API key.

I would buy that!

[Update:] From reading the docs, maybe the auto-RT features are not possible using the free plan. 🙃 Maybe someone can make a Twitter scheduler tool for intermediate users using the $100/month plan then? Just getting 10 customers on a $10/month plan would break even on the cost already. Surely the $100 plan can support 10 users?!

🧪Experiment: Tweeted out my first longform tweet, repurposed from today's Lifelog post - https://twitter.com/jasonleowsg/status/1642350092706545664

Deployed bug fixes and added new keyboard shortcut feature (hit Esc key to preview markdown)

More follow-up deploys today:

✅ Fixed the bug on mobile view where the back to home button overlapped with the preview button on the /write page.

✅ Added toggle off to markdown preview button on the /write page so that don't have to click on text to disable rich text preview mode. Thanks for feedback, @tao! 👍

🔑 Added NEW feature: hit the Esc key shortcut to preview in rich text.

Day 822 - Start of side project weekends - https://golifelog.com/posts/start-of-side-project-weekends-1680396240910

Last week I decided that [weekends shall be reserved for side projects](https://golifelog.com/posts/side-project-weekends-1679711565154). And it felt great actually starting it this weekend!

It was a productive weekend of coding, building and shipping. What I did:

> 👁 Updated Markdown preview. Previously you hover your cursor outside of the text area to preview in rich text. Based on feedback and dogfooding, found that the hover preview tend to trigger 'jumpy' spurious previews. So now it's a preview button on the top editing toolbar.
>
> 🔑 Added a keyboard shortcut: Hit the Esc key shortcut to preview in rich text.
>
> ✅ Fixed some bugs where the raw text was overflowing out of preview mode.
>
> ✅ Fixed the bug on mobile view where the back to home button overlapped with the preview button on the `/write` page.
>
> ✅ Added toggle off to markdown preview button on the `/write` page so that don't have to click on text to disable rich text preview mode. Thanks for feedback, @tao!

It always feels like coming home cracking open VSCode and diving into Vue.js/Nuxt.js again.
It always feels great to make some progress—no matter how tiny—on this special passion project.
It always feels nice to be able to update Lifeloggers on the new features and engaging them on feedback, and not feel like I'm letting them down.

I found myself looking forward to this side project weekend... more than I realised. Literally jumped out of bed earlier to get cracking, foregoing some quality sleep. I guess that's a good sign?

Weekends had not felt more fun in a while.

Day 821 - April goals - https://golifelog.com/posts/april-goals-1680338304959

I started my first day of April cleaning up my Twitter follows, unfollowing more than 1000 of my 2k follows. Now I follow about 700, a good ratio, thanks to the analyses from the Twitter alogorithm going open source.

Perhaps that's a sign that April is going to be a month of purging and spring cleaning.

My desk is cluttered af. I've not touched it for more than a year. My work space is slowly becoming a warehouse, with cardboard boxes and unused furniture crowding up behind and beside me. My cabinet and bookshelves have not seen a cleaning towel for *years*. I have old letters I kept from more than 5 years ago. Around the house, things are starting to break down. A flickering light bulb. Badly flaking paint. Many tiny repair jobs that needs the man of the house to work on.

Living in a tidy, clean and sane space is a form of self care.

And since the start of the pandemic, I mostly forgot about self care because I was either too sleep deprived, too tired, too busy, or too stretched to care. But things are fine now. I don't need to be in crisis mode anymore. I can self care beyond the immediate, to the nice-to-have stuff like clutter.

It's also timely, because I have about one month before the start of my next sprint of coaching and consulting in May. I do need some downtime. And there's no better time during this downtime to finally spring clean my space and by extension, my mindscape.

Not just physical space, but mental, for work, life and everything else.

Deployed new features - markdown preview button, bug fixes

👁 Updated Markdown preview is here. Previously you hover your cursor outside of the text area to preview in rich text. Based on feedback and dogfooding, found that the hover preview tend to trigger 'jumpy' spurious previews. So now it's a preview button on the top editing toolbar.

✅ Fixed some bugs where the raw text was overflowing out of preview mode.

Day 820 - March wrap-up - https://golifelog.com/posts/march-wrap-up-1680245008962

The nice momentum in February for building didn’t last through March. Fact is, I got busy with consulting and coaching. Public speaking always takes a lot out of me, so with that meant I had limited energy for indie hacking.

All good though. The consulting was necessary. Funds are running low again and that helped eased the anxiety.

Ultimately, there is no hurry. It’s a marathon. Even if I thought I was a charging elephant.


Mar revenue:
Current MRR (all from Lifelog): $109 (•$0)
One-off revenue: $896 (↑$141)
Total revenue: $1005 (↑$141)
Total costs = $323
Total profit: $682 (↑$203) (excl. consulting revenue)
Profit margin: 68%

Day 819 - Inspiration-driven development - https://golifelog.com/posts/inspiration-driven-development-1680144149420

Yesterday I fell into a rabbit hole of building. Here's what went down:

- Added [animated gradient buy buttons](https://plugins.carrd.co/#mobilenavbarpro) to my site just for fun. Wasn't serious nor thinking about conversion rates. Just wanted to try something random, learn some new CSS, for a few minutes.
- "Oh that was fun!" Then went on to add it to the "power up" part of my [hero tagline](https://plugins.carrd.co) – "Plugins, widgets, scripts to power up your Carrd sites". The animated gradient works well here as it made "power up" look like it's charging.
- Felt inspired! Then went on to create a all-new product - an [animated gradient buttons template](https://animatedgradientbuttons.carrd.co) on Carrd.

And that was most of my day gone by the time the dust settled. All because of surge of random inspiration.

The weird thing is... You know what people often say about inspiration: Don't wait for it. Inspiration is fickle. Go with consistency instead.

I used to be that guy. I was the "consistency guy". Defending consistency over inspiration was a hill I'd die on.

But lately, I'm having a more nuanced view.

It's not inspiration *versus* consistency.
It's inspiration AND consistency.

Like... *why not both?* Consistency matters, yes. Consistency saved my ass so many times where inspiration was dry and motivation low. But when inspiration does show up, don't just ignore it and do the usual consistency stuff. Leverage the hell out of that surge of energy and ideas! It's a great opportunity to kickstart something from nothing. It's a 10x productivity moment that would be so silly to waste on doing the 'boring' consistent stuff. Do the exciting shit happening right here right now.

> Inspiration is perishable - act on it immediately." – [@naval](https://twitter.com/naval/status/1204670141734109184)

The way I see it now: Consistency is for the boring days when inspiration's away. Consistency keeps you around and ready... till inspiration returns. When it does return, drop consistency and act on inspiration. Immediately. Without guilt and holding back.

Drink it all up.

Day 818 - Daydream - https://golifelog.com/posts/daydream-1680082017837

Taking time to stare into space and daydream is also part of indie hacking.

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

I've come to realise that this is not a nice-to-have, but a necessity. A biological need, like hunger and thirst. Anytime I get too busy and skip my weekly reviews (as I had been guilt of doing the last two months), I can feel the 'weight' of my mind bearing down on me. Everything feels more hazy and crazy. I'm carrying too many ideas and thoughts.

The staring into space and daydreaming, somehow... feels like purging. A nice kind of purging. Like spring cleaning, re-organising furniture around the house. The total amount of things inside are probably still the same, but tidier, neater, saner.

It's not like it feels like work, or like working on a task or something. Sometimes at the end, I don't feel like I've actually *done* anything. Other than just sitting there, staring blankly, listening to my music, daydreaming a bit maybe.

But perhaps this is how it really works. Just like sleep, but done when awake. You let it unfold on its own, then get up and move on like it's the most natural thing. Like waking up in the morning.

Taking time to stare into space and daydream is part of indie hacking, At weekly recap.

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?*