Jason Leow

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

Tried all day to @import Bootstrap at block-level using LESS, i.e. a scoped @import, to use the @import statement inside a selector. I more I try the more I don't understand CSS πŸ™ƒ


LESS Example





LESS Example



This is an example of using LESS with inline styles and Bootstrap for the button.


Jason Leow Author

Yeah apparently! I jusy learned it too, but still figuring out how to do it properly.. @imports in CSS has to be on top of file yes, but apparently preprocessors allow for scoped @imports, eg https://sass-lang.com/documentation/at-rules/import

0 Likes

Ah. today I learned.

0 Likes

Day 847 - Going stackless for your tech stack - https://golifelog.com/posts/going-stackless-for-your-tech-stack-1682586064576

I saw this funny meme yesterday but saw the seed of wisdom in there.

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

I was all in on Vue.js and Nuxt.js back when I got serious on coding. With Nuxt I got to make this very app I'm writing on. I love being able to build SaaS on frontend frameworks. I thought I can write less code, use battle-tested code that others used, and not need to reinvent the wheel all the time. I assumed with the added abstraction, I can ship fast.

But 3 years in, I'm feeling the burden. What I thought initially were the savings on time/effort were simply offloaded elsewhere. Less code to write but more tooling to install, more dependencies and points of failure, packages to maintain, configs to set, less cross-platform, transferrable code etc... To be honest, I'm tired of the convoluted and bloated ways to build software. Same reasons why I no longer use Wordpress. A lot of the performance and optimization benefits seems more geared towards enterprise teams, not a solo dev like me.

The funny flipside is, I'm rather enjoying using just plain vanilla Javascript now. I've been building Carrd plugins in plain JS, and because they need to be standalone in 1 code block, I'm essentially making a lot of single `index.html` micro-apps. And with just the holy trinity of plain HTML, CSS and Javascipt (and the occasional CDN script or nocode tool), it's been so much fun. Zero build. No fuss whatsoever.

People say you should just use the tech you know best. I'm actually more familiar with Vue/Nuxt, but recently building more in plain vanilla Javascript and surprisingly enjoyed it more even though less familiar. So contemplating if possible to switch.

*Is it possible to build a modern SaaS these days on just plain vanilla JS?*

I asked this [question on Twitter](https://twitter.com/jasonleowsg/status/1651164219646025728), and got some good examples from the indie hackers I follow:

- [Zlappo](https://zlappo.com/)
- [Closet Tools](https://closet.tools/)
- [MentorCruise](https://mentorcruise.com/)

Most of them end up creating their own resuable components, some rudimentary form of a framework. And with [browser-native web components](https://gomakethings.com/how-to-create-a-web-component-with-vanilla-js/), you now can do that.

I also learned about ["the stackless way"](https://tutorials.yax.com/articles/build-websites-the-yax-way/quicktakes/what-is-the-yax-way.html). It sounds really interesting, and checks off all the boxes!

> Build websites without frameworks or build tools:
>
> - use custom elements (for modular HTML without frameworks)
> - use the in-browser package manager (for JavaScript packages without build tools)
> - match pages with files (to avoid routing and simplify architecture)
> - stick to standards (to avoid obsolescence and framework fatigue)

Maybe my next tech stack could be:

Frontend: Plain vanilla Javascript
Style: Plain CSS
Backend: Headless CMS like Strapi/Contentful or a nocode API generator for
Database: SQL/PostgresQL

*What do you think?* πŸ€”
Jason Leow Author

Ooh whats nested css?

0 Likes
Linky IO

https://developer.chrome.com/articles/css-nesting/

0 Likes

Read up on "The Stackless Way" Might be my new tech stack! - https://tutorials.yax.com/articles/build-websites-the-yax-way/quicktakes/what-is-the-yax-way.html

John Koo

very interesting article. thanks for sharing.

0 Likes
Jason Leow Author

@poppacalypse πŸ˜ŠπŸ‘ Going stackless too?

0 Likes

Added emojis to my scroll-to filter tags because that's the most indie classic thing to do

Tweaked scroll-to filter tags to look better (by being more irregularly sized) on mobile

Day 846 - Product idea: Buffer for ecommerce platforms - https://golifelog.com/posts/product-idea-buffer-for-ecommerce-platforms-1682491498354

The other day I was [complaining](https://twitter.com/jasonleowsg/status/1650462628614123523) about having to do 3 times the work because my products are on 3 different ecommerce platforms – Gumroad, Payhip and Lemon Squeezy.

It started being a hedge against platform risk, after what I experienced when Flurly shut down. Then it took me a week or more to migrate everything out of Flurly. Maybe I over-compensated a bit by going for 3 platforms. πŸ˜… Now I'm realising that it's real tedious everytime I wanted to add new products. Worse that every platform is ever slightly so different, so you can't really copy-paste directly and be done. The optimal image formats are slightly different. Some have fields that others don't.

A real PAIN. IN. THE. ASS.

I wished there's a Buffer equivalent for ecommerce platforms. Where I key in once, and it creates the products in the respective formats for each platform. Upload an image, and it auto-crops into the right format or size for the platform. The problem is not every platform has APIs for that. So far only Gumroad seems to have a more fleshed out API endpoints. Lemon Squeezy is read-only. Payhip has only webhooks and Zapier integration.

To save time, maybe what I can do is to build an asset generating app where I key in the fields and it auto-generates the required assets and text for me, with copy buttons for easy copy-paste. A bit like what [Headlime version 1](https://twitter.com/dannypostmaa/status/1277497120090537989?s=20) looks like. A side panel to key in my product information, and the right panel where it spits out the text and images for Payhip, Lemon Squeezy and Gumroad.

*What do you think? Worth building?*

πŸ’΅ Sold yet another single license video button Carrd plugin (US$30 + $6 UK VAT via Payhip-Paypal)... thanks Neil

πŸ’΅ Sold yet another single license mobile navbar Carrd plugin (US$12 via Payhip-Stripe due to 20% upgrade discount of $3)...thanks Jason! 🎟 2nd upgrade upsell ever!

πŸ’΅ Sold yet another single license testimonial slider Carrd plugin (US$15 via Payhip-Stripe)...thanks Jason!

πŸ’΅ Sold yet another single license testimonial slider Carrd plugin (US$15 via Payhip-Stripe)...thanks Fabian!

Day 845 - Context switching is a muscle - https://golifelog.com/posts/context-switching-is-a-muscle-1682400918882

Here's a hot take for ya:

Those who think focusing on one project is a better approach to indie hacking just needs to learn how to better organise their time/costs of context switching.

I might be biased because I'm already all in on the portfolio approach. But that doesn't mean that I don't face challenges managing multiple products. Context switching is the hardest. And it's not even the time. It's the cognitive costs of switching. And worse if you switch multiple times within a day! I think my brain would turn to mush doing that (and it did on some crazy days).

So even while we small bettors run multiple products, there's definitely a skill to doing it well versus doing it poorly. It's something like a muscle. If all along you're used to doing just one thing, then the muscle of context switching will be under-trained, and the first few weeks you'll struggle, and then call it quits because it's too hard or unproductive.

Truth is, there's many ways to better manage the costs of context switching. The most common seems to be building products *serially*. Build, launch, iterate till stable state, automate, then move on to the next bet. Influential makers like Pieter Levels and Tony Dinh comes to mind for this approach. If you create digital downloads, self-paced courses, info products, or any product where the after-purchase support is minimal, doing it serially is even easier.

Another way is to timebox. Jon Yongfook does the 1 week coding, 1 week marketing approach exactly to manage the cognitive costs of context switching. It could be 1 week Product A, then another week Product B. It doesn't have to be 1 week if that's too short for you. Think in sprints, 1 week to 1 month.

So here's my point: Running multiple bets is possible and can be done sanely. But it's an approach amongst many. Focusing on one is an approach too. Sometimes it's a personality preference. Ultimately it's a choice and comes with different trade-offs.

But saying it costs too much in context switching isn't one of those trade-offs you have to make.

It's intellectually dishonest and disingeuous to say so, because context switching can be managed. At best, you can say you don't *prefer* it. You can't say it doesn't work when you've never committed to learning and doing it well. It's like saying running doesn't benefit you because you get out of breath the moment you try.

Context switching is a muscle. Use it or lose it.

Added scroll-to tags at top of home page for better discovery and easier navigation

Day 844 - Approaches for new product ideas - https://golifelog.com/posts/approaches-for-new-product-ideas-1682338288042

I've been musing over some new approaches for new product ideas:

- The SEO product
- The simple and helpful product
- The single feature micro-SaaS
- The info product
- The premium/B2B product

### The SEO product
This follows [Danny's approach](https://twitter.com/dannypostmaa/status/1646368426246680579?s=20) of researching SEO keyword difficulty and keyword volume, and finding opportunities for products where the KD is low and volume is relatively high. I like this because the customer intent/demand is somewhat verified. But the downside is also aligning the SEO opportunities to a product that I enjoy making and have personal insight to. Perhaps I can consider the current spaces I'm already in, and search for keywords for that. Maybe this could be a way to pivot Sheet2Bio as well...?

### The simple and helpful product
This follow [Peter's approach](https://twitter.com/searchbound/status/1648811605935681536?s=20) of him finding an opportunity in an available domain and building a scrappy static site showing seating views for his alma mater's football stadium. It started off as a very simple HTML website, and now it's Wordpress. But helpful because people often wanted to preview the seating's viewpoint of the field before buying tickets. So it served a niche need. And he peppered it with Google ads to monetize. This approach made me realise I'm probably overthinking things when it comes to my new product ideas. What opportunities are there where I can buy a good descriptive domain, be helpful in addressing a niche need, and let SEO do the rest? My directory products like Keto List Singapore, Public Design Jobs, Inclusive Design SG could fall into this category.

### The single feature micro-SaaS
Recently discovered fixmyspeakers.com, which is a site that plays a sounds to expell water from your phone speakers. Knew the indie hacker from Makerlog and he mentioned he's making $5k/m from ads from it! Super impressed by that. A single feature micro-SaaS, just doing one thing - play an audio file. But addressing a super common pain - when your smartphone gets water damage. I love this because it's closer to what I enjoy - coding a product. That it's a micro-SaaS feels way less intimidating as well, because that's what I've been pretty much doing all along with my Carrd plugins. Micro, or even nano software apps that does one thing, provides one feature. Maybe I can build a micro-SaaS for other builders, for Twitter users, or in a problem space I'm familiar with right now. Writing, Carrd, Twitter. What else?

### The info product
This is the easiest path to launching something new. Launch a quick info product on Gumroad, sell it on Twitter. Templates, ebook, guides, mini-courses. About sleep, writing, Twitter engagement, building in public, keto. Maybe this won't be a high revenue-generating product, but it could be a gateway to something else, an attractor for new ideas that I can use the other approaches for.

### The premuim offering &/or B2B product
Recent Twitter discussions got me thinking – the belief that I have to work my way up incrementally in small steps is actually holding me back. "Small incremental steps" because that's what I expect for B2C. If I can charge a higher premium for a product, my steps will be bigger, and hitting my revenue goal will be faster. I could offer a premium offering for an existing project, or go B2B for my next new product. The funnel for my Carrd plugins is now free tools to $15-30 products. It's captures the top half of the funnel. But I could potentially offer a premium offering that's Carrd-related, like premium, same day support for Carrd. Or Carrd done-for-you design or premium templates that integrates my various plugins (e.g. a SaaS template). A B2B offering could be related to my consulting, since that's my only in-road to corporate world right now. All along, I keep thinking I will eventually transit away from consulting. But what if I built an indie product related to my design consulting work? How would that look like?

*Any other good approaches to product development that you use?*

Added dark mode pro Carrd plugin to my 3 stores. Now it's ready for sale!

All 3 buy links:

https://payhip.com/b/Bt6q3

https://pluginsforcarrd.lemonsqueezy.com/checkout/buy/b15519d4-0efe-4b05-a6a1-ca671144fd3d

https://jasonleow.gumroad.com/l/darkmodepro

Tried integrating Cloudflare Turnstile but couldn't figure it out and time ran out for side project weekend... till next week!

Side project weekend: Fixes to /write page styles

πŸ‘· Builds this week on Lifelog

No new features this week, just repairs and fine-tuning.

Fixed bug where the footer overlapped with preview text (see image).

Also all-round style fixes when the textarea didn't resize properly to text input.

Day 843 - Sun on Sundays - https://golifelog.com/posts/sun-on-sundays-1682248209951

Sundays are best spent under the sun.

We cycled at the beach today. Blue skies. Blazing hot sun. Breeze lightly brushing our hair.

Everyone's out. It's a long weekend after all. Hundreds of picnics. A bunch of beach volleyball players. Whole families on family cart bikes. We're usually here on weekdays to avoid the crowd, but it's interesting to see different people who come here on weekends.

We make a stop at a breakwater. Then a tiny jetty. And then head off to the cafe to hide from the sweltering heat, for some much-needed lunch. Like any normal family on a Sunday. Just hanging out and chilling.

*I don't do this enough. We don't do this enough.*

I remember I just said to my wife that at our life stage, our time with our kid and our elderly parents are limited. And decreasing fast everyday. The less time spent in front of a computer, the more time spent out in the sun with them, is how winning at life looks like.

Not accolades, money, or status.

A question I heard about recently that stuck with me, and almost brings me to tears each time i think about it:

"Imagine you're 80 and you're given the opportunity to travel back in time back to this moment, with your kid/parent. Only this moment. How would you choose to spend it?"

I'll definitely spend it with full presence with them. Soak it in. Enjoy it.

Everything else doesn't matter.

Tried spreadsimple.com, made a demo job board site on Carrd - love the simple interface, easy embed and generous free plan! Can imagine using this for Carrd and MVPs often - https://spreadsimple.carrd.co/

Day 842 - Don't play infinite games using finite game rules - https://golifelog.com/posts/dont-play-infinite-games-using-finite-game-rules-1682169318287

[Alex Hormonzi](https://www.instagram.com/reel/CrRUih8q5y9/) talked about infinite games vs finite games:

> "The infinite frame always conquers the finite. You don't win by getting in shape but staying in shape. You don't win at business but stay in business and keep doing business. The point of the game is to keep playing. If you put all those together success is an inifnite game."

This is so damned true.

If I were to sum up my failings and therefore learnings from the past 3-5 years, this is it. I was simply applying finite game rules on infinite games.

I thought winning was:

- Going viral for my tweets and posts
- Getting 100K followers, having a huge audience
- Posting hockey stick MRR growth screenshots
- Hitting $10k MRR
- Going for moonshots, like aiming for $1M revenue in 1 year
- Winning awards
- Getting acquired, making a grand multi-million exit

But winning was actually:

- Blank calendar, time freedom with my family
- Location freedom to work and live anywhere, even with kids
- Staying in business, not having to go back to 9-to-5
- Jumping out of bed to work on my products, enjoying it
- Happy times with my kiddo
- Being physically and mentally healthy

Notice how the things on the second list don't have an end date, a destination, a target. Winning is when you get to keep doing it, as much and as deeply as you want. They are infinite games. And my folly was using the finite rules and goals of the first list to measure if I'm achieving the second. It seldom does. In fact, it often contradicts! The more I get after finite goals, the harder to achieve the inifinite ones.

Infinite games > finite games

Attended lunchtime talk at National Design Council about design thinking for children

On request, made a separate version of the animated gradient buttons plugin template that’s compatible with a lower price plan Pro Standard (instead of Pro Plus)

Day 841 - The unholy trinity of indie products - https://golifelog.com/posts/the-unholy-trinity-of-indie-products-1682042648146

Someone made a [remark](https://twitter.com/Domthenic_H/status/1649065684511625217) about my products:

> Sounds like either there is no p/m fit, no distribution or no market for the products. Shouldn't be that slow.

It was kind of blunt, but sharp and on point 100%. What struck me like a tonne of bricks was how my 3 main products each suffers from one of the factors mentioned:

Sheet2Bio has no product-market fit.
Lifelog has no distribution.
Plugins serves a small, niche market.

Damn. πŸ˜…

The unholy trinity of bad product performance, and I got them all.

Sheet2Bio was dead on arrival. I launched it on Twitter, it got lots of attention, but no one paid. Bio links managed via Google Sheets just wasn't something that mattered to people. Worse: Recently Instagram introduced a new feature where you can have up to 5 bio links. The market's gone now. Sheet2Bio needs a pivot for sure.

I've struggled with distribution for Lifelog for the longest. Back in the early days I even did a #100daysofmarketing challenge to find a distribution channel for it. The conclusion from that challenge was Twitter was the channel. But I kid myself. When I was marketing it like crazy, there were some new customers, but not enough to really say Twitter was a *the* distribution channel. Most of the sign-ups didn't stick around either. And once I stopped sharing it, the sign-ups all but disappeared. Even leaving it on my Twitter bio didn't help, despite having 6k followers. So suffice to say, I've not found a distribution for Lifelog. Basically, it's hard to find my target customers – creators who want to build a daily writing habit and write long form for the long game. There's not one place where they seem to hang out. I probably need to reposition Lifelog's marketing angle so that I know where to find my customer, or continue to build it out and figure it out along the way.

Carrd plugins continue to sell, but not at a volume that can help me reach my goal of $5k/m soon. Ahrefs tell me that the search volume is just 30 (i.e. average monthly number of searches for "carrd plugins" on Google in the US alone). Google Trends can't even show me any data. So even while my SEO game is great, the search volumeβ€”and by inference, the market sizeβ€”is just too small perhaps. By "small", that's of course with reference to my $5k/m revenue goal. It might be big enough if you have a lower target. Right now, I'm trying to grow it by building more plugins, be in more distribution channels. But the nagging concern is that there's a natural cap to its growth. I can and want to keep growing it, but realistically speaking, I can't bank on working my way up to $5k in small increments... it'll take too long. I need to try new bets where the market size and/or revenue steps are bigger.

Damn...these realisations hit **hard**.

But it's good pain, good lesson.

At least now I know what went wrong, and what I should look out for and do the next time.

πŸ’΅ Sold yet another single license listings with filters & search Carrd plugin (US$30 via Payhip-Stripe)...thanks n5mnrkoc!