Lifelog

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

Day 198 - An ideal work day https://golifelog.com/posts/an-ideal-work-day-1626510986454

So what gives?

Hustle hard, give it all, get to your goal, then relax?

Or just live the life you want already, and get to the goal in due time?

I’m guessing the answer is: It depends.

But I guess it’s an answer I’m not sure I’m too interested to find now anyway.

I’m already living it.

Organic Twitter marketing

• Wrote #buildinpublic thread about Lifelog's content approach on personal acc
• Organic commenting and sharing using Lifelog acc

Organic Twitter marketing

• Scheduled more tweets and a thread re: goals and writing towards goals
• Posted on personal account too about #buildinpublic

Day 197 - The world is a mirror for your mind https://golifelog.com/posts/the-world-is-a-mirror-for-your-mind-1626402441750

"When mind is weak, situation is a problem.
When mind is balanced, situation is a challenge.
When mind is strong, situation becomes an opportunity."

Our perspective of a situation is a more accurate reflection of the mind giving it than the situation receiving it.

What were the situations in the past where I felt were problems? Are those indicators that my mind is weak in those areas?

Where am I strong, where I constantly saw opportunities where others in similar situations might see them as problems/challenges?

Day 196 - Rethinking content for Lifelog https://golifelog.com/posts/rethinking-content-for-lifelog-1626314432383

It’s marketing week for Lifelog. A few things I’m rethinking, myths I’m busting:

• Not for literary writers
• Goals needs more prominence
• For creators & creatives
• Parallel worlds - other tangential topics related to Lifelog
• Consistency is important too

It’s funny how I’m still figuring these very fundamental things out even after more than half a year. But better late than never. What’s even funnier is how I’d been part of this community for years now, yet it’s not intuitive to me who and how I should market and engage. I guess it’s different when you’re a participant versus a maker/entrepreneur/community builder.

Twitter marketing

• Scheduled tweets
• Unfollowed romance/sci-fi/literary folks cos writers in general are no longer my focus (but it keeps showing up on my feed!)
• Training the algorithm to show makers and creators

Day 195 - Making products based off Google Sheets https://golifelog.com/posts/making-products-based-off-google-sheets-1626230224352

I have a weakness for Google Sheets.

Like today, I was supposed to be doing some marketing for Lifelog, but a fun idea to use Google Sheets as an API for an announcements banner came to me, and I. Just. Had. To. Make. It. And within an hour, the new feature is up. No need to create a new data model or content-type. No backend development required. It’s just so fun and easy to use, as a maker.

Few tools get me this excited and fired up.

Now I’m wondering if I should make an indie product off Google Sheets. Just something that leverages it as a database or CMS. Perhaps I should revive Grublink, a link-in-bio microsite service for F&Bs still at proof-of-concept stage. Or perhaps, I can make a product out of what I just did: announcement banner as a service, via Google Sheets.

So many possibilities, so little time!
Jason Leow Author

@poppacalypse Grublink and beyond!

0 Likes
Carl Poppa 🛸

yes to all of the above! 😄

0 Likes

Day 194 - Are ads unethical? https://golifelog.com/posts/are-ads-unethical-1626140554337

At this (life) stage, I’m finding the advice and success stories of others to be more of an impediment than help. Now I’m open to trying something new, something that more me.

Do what works, don’t do what doesn’t. Try not to annoy people along the way. If it does, try something else.

Simple as that.

🧪 Experimenting with a 1-week paid ad campaign on Twitter

New experiment to try paid channels for customer acquisition. I suck at content marketing, so while I continue to work at it, I need some automated help. Social media ads sounds like an obvious thing to try, and with most of my conversion happening on Twitter, I thought I'll give it a go.

Some indie makers think ads are evil and abhor ads like the plague, avoiding it from a moral high horse perspective. I used to think that way, but at this stage, I'm open to try other channels. Many successful SaaS or online businesses use exclusively paid channels, so why not? Is it really *that* unethical to use ads?

Day 193 - Discipline is cheaper than regret https://golifelog.com/posts/discipline-is-cheaper-than-regret-1626053260874

Discipline is cheaper than regret. ~ @ShaneAParrish

Unfortunately, discipline requires a high upfront payment right now, whereas regret is a loan not due in the long term or till old age. Between the immediate discomfort now versus discomfort much much later, is it any wonder why people usually choose the latter?

But they don’t know about compound interest when it comes to regret.

Day 192 - Is it ok to dream again? https://golifelog.com/posts/is-it-ok-to-dream-again-1625971083677

Is it ok to dream again?

I don’t know, but just asking the question feels nice.

Day 191 - Straight moves https://golifelog.com/posts/straight-moves-1625895523211

Straight moves.
No announcements.
Move in silence.
Allow your energy to speak for itself.
Plot quietly and humbly.
Manifest fruitfully and abundantly.
~ @deandrepage

Day 190 - More on why advice is overrated https://golifelog.com/posts/more-on-why-advice-is-overrated-1625796335062

* Advice is often just someone disagreeing because you didn't do it *his* way.
* Feedback is a deeper reflection of the person giving it than the person receiving it.
* Advice has the person's own limitations built it. You might be taking on the limitations of others which you might never have had in the first place.
* Advice without skin in the game, when you don't have to face any downsides, is all too easy to give.
* It's easy to give advice where you can't use the advice yourself. A billionaire saying money isn't everything. A beautiful person saying that beauty is on the inside.
* Advice based on one's personal experiences is not representative of reality. It's just a 0.000000001% slice of reality. Certainly not *your* reality.
* Advice based on their success story that sounds too good to be true, usually is. People cherry-pick only the dots they want to connect, not the dots interplaying within the real-world situation they were in. You'll be a victim of their own narrative-fixing if you followed their story.

Day 189 - Advice is like yesterday's lottery ticket number https://golifelog.com/posts/advice-is-like-yesterdays-lottery-ticket-number-1625729393032

Advice is seriously over-rated. Especially following seemingly good advice from success stories.

It’s like trying to win the lottery by buying the same winning number from yesterday. It worked yesterday, but it would not work today and most likely wouldn’t work in the future too.

Almost all advice is contextual to the time, place and a network of factors interplaying to produce the result. Even luck.

So here’s a crazy idea:

What if I tried not taking anyone’s advice for a year?

Wouldn’t it be an interesting experiment to stop reading startup or indie hacker success porn, and just act based on my own situation, on real-world feedback and data?

If I were to start on a blank slate without leaning on anyone’s advice, how would I go about it?

Tweaked profile page to use .account id instead of author id

• Realised that it's not always the case that the account id will match the author id, so had to change the GET request for `accounts` to use the account id instead of author id

this.$axios.$get(`/acc.../${this.loggedInUser.account}`)

🚨 IMPORTANT to check through tomorrow that all the GET requests for `accounts` is using the accont id instead of author id!!!

Added timezone select element to registration page

• Wanted to create a component for this but didn't wanna figure out how to pass data and v-model between the child and parent. So just added the whole block of HTML options into the reg page
• upon registration, I had to in parallel create an `account`, then get the response data in order to then update the `account` id into the `user`'s data:

await this.$axios.post(`endpoint of accounts`).then((res) => {
this.$axios.put(`endpoint of user`, {account: res.id,})})

• upon successful registration, user gets redirected to home page but somehow the sidebar leaderboards were simply not loading. I think the auto-redirect after `this.$auth.loginWith('local',...)` either doesn't trigger $fetch() or mounted(), so the data isn't loading. Had to use a hard refresh `location.reload()` to get the data on the sidebar leaderboards rendering properly. Not elegant, but user likely have to go through this just once in their user lifetime only.
• tweaked TimezoneSelect component in /account page to use new `accounts` endpoint for fetching timezones

Day 188 - 92% sleep https://golifelog.com/posts/92percent-sleep-1625629739695

After a late night debacle the day before, I decided to sleep early last night at 8.13pm. Woke at my usual 4.30am, and my sleep cycle app showed that I achieved that rare above-90s sleep score of 92%!!

So it is possible!

Other benefits I felt:

• Waking up felt easier, didn’t struggle/snooze
• Alertness level upon waking was pretty high - I rated a 7/10 (which I never reached before. Usually it’s 4 or 5)
• Got more energy when working and coding
• Needed breakfast later (inferred that because I was more rested, I had more energy and thus could last longer before the body needed a top-up)

Enshrining this rare achievement in my sleep biohacking journey here.
https://twitter.com/jasonleowsg/status/1412611875385208836?s=21

GO GO GO.

Congratulations! What app do you use Jason? Sleepcycle.com ? I have been a fitbit user. I am considering getting an apple watch. But don't like the sleep analytics there. I thought it's very very basic there.

0 Likes
Jason Leow Author

@paras thanks! Yes i use Sleep Cycle. I think it's available on Apple Watch. But been meaning to get an Oura ring for even better sleep tracking (so I heard)

0 Likes

🎉 Added profile images to Top Streaks, Most Streaks, Featured Goals, Just Joined sidebars on home page

• Similar to what I did for `posts` and `accounts`, moved API fetch requests for streaks, goals to fetch() instead - major optimisation fix! No more duplicate data requests to the same API for the respective methods for each leaderboard
• Used the now standard approach of forEach() and push() for the Top Streaks, Most Streaks, Featured Goals, Just Joined leaderboards
• learned that the Strapi object `ctx.state.user.id` is not available in fetch() (and likely aynscData() too)
• Retired the old custom API endpoint, and replaced it with `accounts` endpoint instead
• Added the v-once directive to randomQ() for the writing prompt, so that it just loads twice instead of 4 times(why was it doing that in the first place?!). Ideally should just load once, but due to using v-if-"isAuthenticated" and v-if-"!isAuthenticated", it renders the !isAuth first before rendering the correct isAuth writing prompt.

Only things left now is to create an `account` when registering on the registration page, and updating the TimezoneSelect component to use the new API endpoint...!

Day 187 - Should I hire a VA? https://golifelog.com/posts/should-i-hire-a-va-1625563993148

What percentage of your day is spent on things that you’re uniquely capable of doing? ~ @stephsmithio

I’ve been thinking if I should get some freelance help for my projects. Something like a virtual assistant might be a good first step to try out, to catch the low-hanging work that anyone can easily get up and running quickly.

But of course, delegating isn’t and shouldn’t be the first line of attack. Eliminate, automate, then delegate, they say.

What can I eliminate, automate first, if not then delegate?

Added profile images to posts feed on home page

• Used fetch() to load initial data for `posts` and `accounts`, so that don't have to re-fetch `accounts` data again if loading more posts via
• But using fetch() caused an warning "The client-side rendered virtual DOM tree is not matching server-rendered content." due to v-html for the post excerpt, so had to wrap to v-html

Remaining tasks: to add profile images to Top Streaks, Most Streaks, Featured Goals, Just Joined sidebars!

Day 186 - Sitting is the new smoking https://golifelog.com/posts/sitting-is-the-new-smoking-1625457627105

Thinking of getting a adjustable standing/sitting desk, cooling seat cushions, gamer chair, wrist pads, etc to make my posture better while working.

Any recommendations?

Added profile images to posts feed in profile page (which I forgot to do previously)

Added profile images to /posts/_slug page

• Had to add the indiv user's `account` data Object into the `post` Object fetched via asyncData(). Can't use push() as that's for arrays and `post` is an Object.

//my object
var sendData = {field1:value1, field2:value2}
//add element
sendData['field3'] = value3

• because sorted comments is a computed() data, I had to create a mounted() method to first merge-match `accounts` array to `comments` array, using forEach() and push(). Can't do the merging and matching within computed property. Then use the merged array as input to sorted comments computed property.

Day 185 - Your comfort zone is not a good benchmark https://golifelog.com/posts/your-comfort-zone-is-not-a-good-benchmark-1625376771624

When you’re not used to being confident, confidence feels like arrogance. When you’re used to being passive, assertiveness feels like aggression. When you’re not used to getting your needs met, prioritizing yourself feels selfish.

Your comfort zone is not a good benchmark.
~ @JunoCounseling