How We Built Zeya: A Tech Dive into Stack Choices and Why

K

kimrop

October 24, 2025 8 min read 483 views
The problem wasn't building a Web3 platform; it was bridging the gap to Kenya’s 96% M-Pesa user base. Crypto is seen as a scam, and P2P is a headache. We realized we had to flow funds M-Pesa-to-crypto instantly. That was the idea for Zeya. It was a niche idea, built specifically for Kenya using Go-lang for speed and reliability. Funnily enough, the small side project became our main business.
How We Built Zeya: A Tech Dive into Stack Choices and Why

Before we dive in, I guess it'll only make sense if I explain what Zeya is. Zeya is a crypto platform, but it’s not like Binance, OKX, or Bybit. We don't offer the same services they do, and we aren't planning to, at least not anytime soon.

First, let me introduce M-Pesa for those of you not in Kenya or East Africa. M-Pesa is a mobile money platform (pesa is Swahili for money, pretty straightforward naming, right?). I won't bore you with all the details, but just know it handles everything from card payments to sending cash to friends. Statistics show that at least 96% of Kenyan households use it.

For us at Velinex, that was a great number. If people use mobile money, they’re likely to keep using it and introduce their families to it. We knew mobile money wasn't going anywhere.

The other factor is cryptocurrency. This just isn't a Kenyan thing, literally and figuratively. Most Kenyans don't really know what crypto is, other than that it’s something people trade. In fact, most can't tell the difference between Forex and crypto; it’s all the same thing to them.

Now you see our struggle. M-Pesa is common, but crypto is something people associate with scams, easy money, and schemes normal folks want to avoid. So why did we get into a market with such a tiny share? Why did we only target M-Pesa and skip things like Airtel Money or T-cash? Why aim for such a niche market? Why only Kenya? And why do this when over 50% of the small crypto user base here are students or recent grads who don't have much money?


My Role and the Tech Behind It

By the way, I’m Kimrop, that’s what my friends call me, and I’m the CEO of Velinex Labs. Since you now know the market we targeted, I’m going to get straight into the technical details. I won’t answer all those previous questions in this post, but I will talk about my role and the technology. Maybe I'll write a Part 2 later.


Zeya Was an Accident

We never planned to create Zeya. Let me explain. I’ve been developing for almost 8 years, with four of those in crypto. I've built everything from dApps to NFTs, smart contracts, wallets, and Telegram bots. I can confidently say I know my way around the space.

For a year, I’d been wanting to build a prediction platform like Polymarket, but I didn't have the funding for a team. I was determined not to let another project end up as a half-finished mess rotting on GitHub, so I waited.

In early 2025, I was finally ready to build the prediction market on Solana. I could afford to hire two people new to crypto and have them slowly learn and build something.

We were targeting the Kenyan market. As I said, most Kenyans don't take crypto seriously. For people to trade on the platform, they'd first have to go to an exchange like Binance, use P2P to buy crypto, and then transfer it to the platform. That whole process was a huge hurdle that we knew would drastically limit our user base.

The Lightbulb Moment

So, we decided to build Zeya. It would be an embedded iframe allowing users to easily transfer funds straight from M-Pesa into the market to buy an option. This way, users would see their money go directly from M-Pesa into the market, and back to M-Pesa when they withdrew. It simplified everything.

There was nothing like it. This immediately became a viable business idea. I talked with my close friends, we had our "holistic" planning sessions every Friday, and I was fired up. Within a few days, I had an MVP of the basic interface.

It wasn't as polished as it is now, but it showed the core idea: choose the crypto (initially just Solana), enter a phone number for the M-Pesa payment, and Zeya shows you the estimated tokens. At this stage, it was just the front-end, no backend.

We approached a guy who ran a manual P2P service. We offered to automate and enhance his platform because we needed to move fast and focus on the prediction market. He seemed disinterested, so the partnership failed. I took two weeks, worked on the basic M-Pesa-to-crypto backend myself, and got something working. It was a proper business idea now, and we ran with it.

I had no investors, but I had a small saving of about $4000. I decided to use this to run the platform and for my living expenses, as I had quit my job to focus on this and freelancing. Meanwhile, the team was working on the marketplace.

I won't get into the business side, but you now know how Zeya was born. About a month and a half later, the core M-Pesa to crypto platform for Solana and Ethereum was ready, and we went live.


Why We Chose Our Tech Stack

Building this wasn't too hard since I had built so many crypto platforms and worked with various APIs. I also had experience integrating M-Pesa before.

Our Core Stack:

Component Technology Rationale
Backend Go-lang It's fast, compiled, and strongly typed. I find JS backend boring and slow. I prefer VPS hosting, and Go performs great there.
Frontend React-js + Tailwind Mature ecosystem and easy to write. I don’t worry about rendering speeds in the millisecond range. Reliability matters more than a 1-second delay.
Database/Cache PostgreSQL + Redis PostgreSQL for the main data store. I use it all the time; anything SQL would work, but Postgres is my default. Redis for quick caching.
Swapping Relay.link This is what powers the core swap from USDC to whatever token the user wants across the chains we support.
Payments M-Pesa The obvious and still the only choice for us right now.

I went with Go-lang because it's fast, compiled, and typed. I write JavaScript, but it's boring and slow on the backend, and I prefer running things on a VPS rather than serverless. Managing our own servers and security isn't an issue for me anymore; I can literally set up a whole server in my sleep. We also chose Go for the prediction market platform, so it made sense.

React.js was a solid choice because it’s mature and easy to code in. I know it’s not the fastest, but honestly, I don't care much about rendering speed if it’s only a difference of milliseconds. Users generally don’t mind a 1-second delay if the system is reliable and the user experience is good afterward. Speed only becomes critical for things like a blog, where you want people to click and read instantly.

For the database, we're a startup, and any SQL database would have worked, but I just use Postgres out of habit. The only time I even consider MySQL or SQLite is when I'm stuck on a cPanel host or developing locally.

We use AWS On-Demand and S3 for our VPS and static storage. SES handles our mailing. It’s been great, except for the US-EAST issue three days ago that took down a lot of servers. Luckily, the only thing that failed for us was the mailing service. We had zero downtime, according to our reports. We’re still tiny, and all that matters is offering a quality experience for our 10 users and making sure they come back.


So, Is Zeya Only for the Prediction Market?

Funnily enough, Zeya hasn't powered a single transaction on the prediction market yet, even though that’s why we built it. (And yes, I’m skipping the 10 users joke this time.) The prediction market isn't live yet.

What we’ve found is that most users use Zeya instead of P2P. We know we won't replace P2P entirely, but we offer a very flexible minimum transaction amount starting as low as 100 KES. I’m pretty sure that low barrier is why we see high usage, as it caters to what most of the Kenyan crypto market can actually afford to transact (remember that age demographic we mentioned).

I hope this gives you a clear insight into why Zeya exists and why we picked the tech stack we did. I realize I didn't get into the nitty-gritty of how all these parts link up, but I had to lay out the basics of what Zeya does and why we built it first.