HNHacker News
TopNewBestAskShowJobs

_n7kw

2 karma · joined April 28, 2022

submissionscomments
_n7kw··on Ask HN: Those making $500/month on side projects in 2021 – Show and tell
Write a lot of relevant, good quality content. It takes time and consistency before you can expect results.
_n7kw··on Ask HN: Those making $500/month on side projects in 2021 – Show and tell
I earn more than $500 a month with [redacted], a phone contract comparison website for the UK market.

[link redacted]

Today, 90% of my time is spent on content marketing, followed by improvements to the website.

Data is automatically pulled once a day. Parsing the data feeds can be frustrating, as there is no consistent format or documentation, therefore I need to code around many possible edge cases.

I do all the web design and development work myself.

Stack:

Front end: plain JavaScript

Back end: Node.js

Host: $10 DigitalOcean droplet

Web server: Nginx

SSL: Let's Encrypt with certbot

Proxy: Cloudflare

Database: Postgres

Caching: Redis

Indexing: MeiliSearch

Most of the traffic comes from organic search. It took me more than a year of SEO work to get any traffic at all from search engines. I was a bit naive about how much marketing I actually needed to do - I almost gave up several times.

_n7kw··on Ask HN: Companies of one, what is your tech stack?
Yep, I've definitely thought about it. There's only one other company in the UK that does this. They supply their feed/API as a service to nearly all the big comparison sites.
_n7kw··on Ask HN: Companies of one, what is your tech stack?
Thanks!

Some ad blockers are very aggressive at blocking affiliate links. uBlock Origin blocks all track.webgains.com links and even closes the tab if there's a redirect, which is probably what is happening with the first link. I'm adding a feature that will call an ajax request first, and if it's blocked then I will simply redirect to an untracked link. Unfortunately I will lose potential commission this way, but at least the website will still work for everyone. It should hopefully work if you disable your adblocker.

As for the Metrofone link, it's just a redirect on their part. I did a curl request to check this:

> GET /pclick.php?p=29805977293&a=119158&m=6506 HTTP/1.1

> Host: www.awin1.com

> GET /basket/add/contract/iphone-12-5g-128gb-black/three-100gb-new-24-month-14.00/free-delivery?source=awin&awc=6506_1629914525_c508aa142e90213248adbdee4b995550&utm_source=[redacted]&utm_medium=AWIN&utm_campaign=[redacted] HTTP/2

> Host: www.metrofone.co.uk

> GET /contract-phone-deals/iphone-12-5g-128gb-black?basketRedirect=true HTTP/2

> Host: www.metrofone.co.uk

_n7kw··on Ask HN: Companies of one, what is your tech stack?
Thanks, I couldn't reproduce it with the stable build but I did with 92.0b7. Seems to be related to avif images and a bug in libheif. Trying to fix now.

https://github.com/lynnandtonic/nestflix.fun/issues/65

https://github.com/strukturag/libheif/issues/477

_n7kw··on Ask HN: Companies of one, what is your tech stack?
Thank you. I do get an affiliate fee for each sale. Most retailers provide csv feeds when you join their affiliate program. Parsing and organising the data can be quite difficult as there is no uniform structure and most retailers provide bad/incomplete data. There are a lot of weird edge cases I need to work around.
_n7kw··on Ask HN: Companies of one, what is your tech stack?
Thank you, your comment made my day!

I come from a design background. I didn't like the UI/UX of similar comparison sites, so my aim was to improve upon what's already out there. Glad to see someone noticed!

_n7kw··on Ask HN: Companies of one, what is your tech stack?
I taught myself to program to build [redacted], a comparison website for phone contracts in the UK.

Front end: plain JavaScript

Back end: Node.js

Host: $10 DigitalOcean droplet

Web server: Nginx

SSL: Let's Encrypt with certbot

Proxy: Cloudflare

Database: Postgres

Caching: Redis

Indexing: MeiliSearch

I wanted to learn JavaScript and understand the fundamentals, so I used vanilla JavaScript for the front end without any framework (React, Vue, etc).

Initially, the comparison engine was slow, so I learnt about indexing and added MeiliSearch to the stack.

I try to keep it as simple as possible and only add what I need.

I plan on migrating to Next.js eventually - not because I need to, but because I think it will be a good learning experience. However, that's not my priority right now, and is probably an excuse for marketing/content procrastination!