cd /news/artificial-intelligence/i-m-18-self-taught-and-i-built-an-ai… · home topics artificial-intelligence article
[ARTICLE · art-38531] src=dev.to ↗ pub= topic=artificial-intelligence verified=true sentiment=↑ positive

I'm 18, Self-Taught, and I Built an AI Study App for Nigerian Students — Here's How

George Erubami, an 18-year-old self-taught developer in Ibadan, Nigeria, built Aveliq, an AI-powered study companion app for Nigerian students. The app uses a five-provider AI fallback chain called GEOCODE Intelligence to ensure reliability and speed, with Cerebras as the primary provider. Erubami developed the entire app on an Android device using Termux and Acode, avoiding build tools and deploying directly to Vercel.

read6 min views1 publishedJun 24, 2026

My name is George Erubami. I go by GeoCode. I'm 18 years old, self-taught, based in Ibadan, Nigeria. I built Aveliq end to end — frontend, backend, AI integration, design, deployment, legal pages, PWA setup, everything. This is the story of how I did it and what I learned.

What Aveliq Does

Aveliq is an AI-powered study companion. Here is what it does right now:

Everything is powered by what I call GEOCODE Intelligence — a five-provider AI chain that I built to ensure the app is always fast and always available, even on the free tier.

The Tech Stack

Frontend: HTML, CSS, Vanilla JavaScript. No framework. No build tool. I build on Android using Termux and Acode, so keeping the toolchain simple was a deliberate choice

Backend: Node.js with Express, deployed on Render.

Database and Auth: Firebase Firestore and Firebase Authentication.

Deployment: Vercel for the frontend, Render for the backend.

AI: Five providers chained together — more on this below.

The Most Interesting Technical Decision: The AI Fallback Chain

The heart of Aveliq's backend is what I call the GEOCODE Intelligence chain. Every AI request goes through this waterfall:

Cerebras → Groq → OpenRouter → Mistral → Gemini

Here is why I built it this way.

The problem with relying on one provider

Every free-tier AI API has rate limits. Cerebras allows a certain number of requests per minute. Groq has its own limits. If you build your app on a single provider and that provider hits its limit or goes down, your entire app breaks. For a study app used by students the night before an exam, that is unacceptable.

How the chain works

javascript

async function callAI(prompt) {

const result =

await callCerebras(prompt) ||

await callGroq(prompt) ||

await callOpenRouter(prompt) ||

await callMistral(prompt) ||

await callGemini(prompt);

if (!result) throw new Error('All AI providers failed.');

return result;

}

Each provider function returns null

on failure or rate limit, and the next one in the chain is tried automatically. The student never sees an error — they just get a response, slightly slower at worst.

Why Cerebras first

Cerebras is the fastest inference provider I have found. Their Llama 3.3 70B model responds in under two seconds for most requests. That is what makes Aveliq feel instant — most requests never even reach Groq.

The Rate Limiter

Because I am on free tiers across multiple providers, I also needed to protect my own backend from abuse. I built a simple sliding window rate limiter:

const rl = new Map();

function rateLimiter(req, res, next) {
  const ip  = req.headers['x-forwarded-for']?.split(',')[0] || req.ip;
  const now = Date.now();
  const win = 60 * 60 * 1000; // 1 hour
  const lim = 60;              // 60 requests per hour

  if (!rl.has(ip)) rl.set(ip, []);
  const calls = rl.get(ip).filter(t => now - t < win);
  calls.push(now);
  rl.set(ip, calls);

  if (calls.length > lim)
    return res.status(429).json({ error: 'Rate limit reached.' });
  next();
}

It is IP-based, in-memory, and cleans itself up every hour. Simple and effective for the current scale.

Building on Android

I want to talk about this because it is something most tutorials assume you do not have to deal with.

I built Aveliq entirely on Android. My tools are Termux for the terminal, Acode as my code editor, and GitHub for version control. No MacBook. No desktop. No VS Code with extensions. Just a phone.

This forced me to make certain decisions:

No build tools. No Webpack, no Vite, no bundlers. The frontend is raw HTML, CSS and JavaScript. This means every file is exactly what gets served — no compilation step, no source maps, no build errors. It is also why the app loads fast.

No local server testing. I deploy early and often. Push to GitHub, Vercel auto-deploys, test on the live URL. This made me very deliberate about what I commit because every push is a real deployment.

Termux for Node. Running node server.js

locally on Termux is how I tested backend logic before pushing to Render. It works, but it taught me to write clean, readable server code because debugging on a phone screen is not fun.

The PWA Setup

Aveliq is a Progressive Web App. Here is what that means in practice:

manifest.json

with proper 192px and 512px PNG icons (not SVG — iOS home screen requires PNG)beforeinstallprompt

eventapple-touch-icon.png

at 180x180 for iOS home screenThe offline fallback is something I care about specifically for Nigerian users. Data is expensive and connections drop. If a student has already loaded Aveliq and their connection drops mid-session, they should not see a blank screen — they should see their cached content and a clear message about what happened.

What Is Coming Next

Session 3 — Past Questions Engine

This is the feature I am most excited about. The architecture is community-powered:

The database builds itself as users grow. The first person to upload a paper does the work once, everyone benefits forever. We also add a verification layer — if three different users upload the same paper and the questions match, it auto-verifies. No fake questions get into the pool.

Session 8 — Paystack Integration

Free tier with daily limits. Premium at ₦1,500/month for unlimited access. Exam Prep at ₦3,500 for three months. Payment gated via Paystack with a Firebase webhook to update subscription status.

What I Have Learned

Ship fast, fix in public. The old Aveliq had problems. Instead of fixing it quietly, I rebuilt it completely and documented the process. Building in public keeps you accountable and attracts people who want to see you succeed.

The AI is not the hard part. Calling an API is five lines of code. The hard part is the user experience around it — the s, the error states, the fallbacks, the identity layer, the rate limiting. The AI is just the engine. The product is everything else.

Build for your user's reality. My users study on 2G connections in rented rooms with shared data. Every design decision — the PWA, the offline fallback, the fast AI chain, the WhatsApp share button — came from thinking about that specific person, not an imaginary ideal user.

You do not need the right tools. You need to start. I built this on a phone. The tools are not the barrier.

Try It

Aveliq is live at studypal.com.ng

The app is at studypal.com.ng/app

I post updates on my portfolio at george-erubami.vercel.app

If you are a Nigerian student — try it. If you are a developer — tell me what you think. If you want to follow the build — I document every session.

Built by George Erubami (GeoCode) — 18-year-old self-taught developer from Ibadan, Nigeria.

GitHub: Geocode-hub · X: @CoolRexy150983 · Instagram: @geocodedev · WhatsApp: +234 907 269 0451

── more in #artificial-intelligence 4 stories · sorted by recency
── more on @george erubami 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/i-m-18-self-taught-a…] indexed:0 read:6min 2026-06-24 ·