broke at 19
KES 00% of KES 3M0 people

I'm 19, I build software, and I'm asking 3 million people for 1 shilling each.

It started as a joke: if 3 million people gave you 1 shilling each, you'd have 3 million. So here's the page. If it works, I get an unfair head start in business and build more products than my age-mates. Who cares. I'll be 3 million richer, you'll be 1 shilling poorer, and we both survive.

Behind this joke is a real person in a hard season, still choosing to build. Your 1 shilling is not just a laugh. It is a hand on my back. Thank you.

Where we are
KES 0 of KES 3,000,000
▲ 0% of the goal · 0 people

Each dot is a person who gave 1 shilling. Yes, it's working.

County race

Pick your county when you give. Let's see who shows up, and who has to explain to their neighbours.

    All 47 counties are in. Top 10 shown. Counts are paid people only.

    The wall

    Every give, newest first. Gave twice? You are on the wall twice. Names and Instagram are optional.

      Okay, joke aside

      If you gave 1 shilling, thank you. I mean it. You don't know me, and you still believed in a silly idea. I won't forget it.

      Give 1 shilling or more and get your card

      1 shilling is the minimum, not the limit. You can give KES 5, 10, 50 or any amount you like, as long as it is KES 1 or more. You land on the wall with your county, and you get a premium card with your number to download and post. Give once, give ten times. Every give goes to the top of the wall.

      Pay with M-Pesa through IntaSend. No login. Your phone number is your ID, like a very small government.

      Minimum KES 1. You can give more: 5, 10, 50, any amount. Give as many times as you like.
      This number is tied to your number, so you can get your card back later.

      A joke on the outside. A real life on the inside. Thank you for helping it move.

      Already gave? Get your card back

      The corner counter

      A tiny live number I can drop into any of my apps. Same backend, a few lines of code.

      fetch('/api/count')
        .then(r => r.json())
        .then(d => badge.textContent = 'KES ' + d.total_kes + ' · ' + d.people + ' people');