-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patharticle1.html
More file actions
451 lines (390 loc) · 23.2 KB
/
article1.html
File metadata and controls
451 lines (390 loc) · 23.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<meta name="theme-color" content="#0a0a08">
<title>Uganda's Digital Future: Why Learning to Code is the Most Important Skill of This Decade | CODEON Africa</title>
<meta name="description" content="With Africa's tech ecosystem growing 20% year-on-year, the window for young Ugandan developers has never been wider. Discover why coding is the most powerful skill a Ugandan student can learn today.">
<meta name="keywords" content="Uganda digital future, coding Uganda, tech ecosystem Africa, learn programming Uganda, African developers, digital economy Uganda, CODEON Africa">
<meta name="author" content="CODEON Africa">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://codeondigital.com/article1">
<link rel="icon" href="codeon logo.png" type="image/png">
<meta property="og:type" content="article">
<meta property="og:url" content="https://codeondigital.com/article1">
<meta property="og:title" content="Uganda's Digital Future: Why Learning to Code is the Most Important Skill of This Decade">
<meta property="og:description" content="Africa's tech ecosystem is growing 20% per year. Discover why coding is Uganda's most powerful career skill right now.">
<meta property="og:image" content="https://images.unsplash.com/photo-1611532736597-de2d4265fba3?w=1200">
<script type="application/ld+json">
{
"@context":"https://schema.org",
"@type":"Article",
"headline":"Uganda's Digital Future: Why Learning to Code is the Most Important Skill of This Decade",
"description":"Africa's tech ecosystem is growing 20% year-on-year. Discover why coding is Uganda's most powerful career skill.",
"image":"https://images.unsplash.com/photo-1611532736597-de2d4265fba3?w=1200",
"author":{"@type":"Organization","name":"CODEON Africa","url":"https://codeondigital.com"},
"publisher":{"@type":"Organization","name":"CODEON Africa","logo":{"@type":"ImageObject","url":"https://codeondigital.com/codeon logo.png"}},
"datePublished":"2025-03-01",
"dateModified":"2025-03-01",
"mainEntityOfPage":{"@type":"WebPage","@id":"https://codeondigital.com/article1"}
}
</script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,700;0,900;1,700&family=Source+Serif+4:ital,wght@0,400;0,600;1,400&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet">
<style>
:root{
--bg:#0a0a08; --s1:#111110; --s2:#181816;
--border:#242420; --accent:#e8b84b; --text:#e8e4dc;
--muted:#6b6760; --red:#c0392b;
--fd:'Playfair Display',serif;
--fb:'Source Serif 4',serif;
--fm:'Space Mono',monospace;
--r:4px; --tr:.3s ease;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:var(--fb);overflow-x:hidden;line-height:1.7;}
a{text-decoration:none;color:inherit;}
img{display:block;max-width:100%;height:auto;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;}}
/* HEADER */
header{
position:sticky;top:0;z-index:100;
background:rgba(10,10,8,.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
border-bottom:1px solid var(--border);
padding:0 clamp(16px,5%,60px);height:56px;
display:flex;align-items:center;justify-content:space-between;
}
.hd-brand{display:flex;align-items:center;gap:10px;}
.hd-logo{height:28px;}
.hd-name{font-family:var(--fm);font-size:.72rem;letter-spacing:3px;color:var(--accent);font-weight:700;}
.hd-nav{display:flex;gap:20px;}
.hd-nav a{font-family:var(--fm);font-size:.6rem;letter-spacing:2px;color:var(--muted);transition:color var(--tr);}
.hd-nav a:hover{color:var(--text);}
@media(max-width:600px){.hd-nav{display:none;}}
/* HERO */
.article-hero{
position:relative;height:min(90vh,700px);overflow:hidden;
display:flex;flex-direction:column;justify-content:flex-end;
}
.hero-img{
position:absolute;inset:0;
background:url('https://images.unsplash.com/photo-1611532736597-de2d4265fba3?w=1400&auto=format&fit=crop&q=80') center/cover no-repeat;
}
.hero-img::after{
content:'';position:absolute;inset:0;
background:linear-gradient(to bottom, rgba(10,10,8,0) 20%, rgba(10,10,8,.7) 60%, rgba(10,10,8,.97) 100%);
}
.hero-content{
position:relative;z-index:1;
padding:clamp(24px,5%,60px) clamp(16px,8%,120px) clamp(32px,6%,72px);
max-width:860px;
}
.hero-cat{
display:inline-flex;align-items:center;gap:6px;
font-family:var(--fm);font-size:.58rem;letter-spacing:4px;
color:var(--accent);background:rgba(232,184,75,.1);border:1px solid rgba(232,184,75,.25);
padding:5px 14px;border-radius:2px;margin-bottom:20px;
}
.hero-cat::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent);}
.article-hero h1{
font-family:var(--fd);font-size:clamp(2rem,6vw,4rem);font-weight:900;
line-height:1.08;letter-spacing:-.5px;margin-bottom:20px;
text-shadow:0 2px 20px rgba(0,0,0,.5);
}
.hero-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.hero-meta span{font-family:var(--fm);font-size:.6rem;letter-spacing:2px;color:var(--muted);}
.hero-meta .sep{color:var(--border);}
.read-time{
font-family:var(--fm);font-size:.6rem;letter-spacing:2px;
color:var(--accent);background:rgba(232,184,75,.08);
border:1px solid rgba(232,184,75,.2);padding:4px 10px;border-radius:2px;
}
/* LAYOUT */
.article-body{
max-width:720px;margin:0 auto;
padding:clamp(40px,8vw,80px) clamp(16px,5%,40px);
}
/* LEAD */
.lead{
font-size:clamp(1.05rem,2.5vw,1.25rem);color:var(--text);
line-height:1.75;margin-bottom:clamp(28px,5vw,44px);
padding-bottom:clamp(28px,5vw,44px);border-bottom:1px solid var(--border);
font-style:italic;
}
/* BODY TEXT */
.article-body p{
font-size:clamp(.92rem,2vw,1.05rem);line-height:1.85;
color:#c8c4bc;margin-bottom:clamp(18px,3vw,26px);
}
.article-body h2{
font-family:var(--fd);font-size:clamp(1.4rem,3.5vw,2rem);
font-weight:700;color:var(--text);letter-spacing:-.3px;
margin:clamp(32px,6vw,56px) 0 clamp(14px,2vw,20px);
position:relative;
}
.article-body h2::before{
content:'';display:block;width:32px;height:3px;
background:var(--accent);border-radius:2px;margin-bottom:14px;
}
.article-body h3{
font-family:var(--fd);font-size:clamp(1.1rem,2.5vw,1.35rem);
font-weight:700;color:var(--accent);margin:clamp(24px,4vw,36px) 0 10px;
}
/* PULL QUOTE */
.pull-quote{
border-left:3px solid var(--accent);
padding:clamp(16px,3vw,24px) clamp(18px,4vw,32px);
margin:clamp(28px,5vw,48px) 0;
background:rgba(232,184,75,.04);
}
.pull-quote p{
font-family:var(--fd);font-size:clamp(1.1rem,3vw,1.4rem);
font-style:italic;color:var(--text);line-height:1.5;margin-bottom:10px!important;
}
.pull-quote cite{
font-family:var(--fm);font-size:.62rem;letter-spacing:2px;
color:var(--muted);font-style:normal;
}
/* INLINE IMAGE */
.article-img{
margin:clamp(28px,5vw,48px) 0;border-radius:4px;overflow:hidden;
position:relative;
}
.article-img img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;}
.article-img figcaption{
font-family:var(--fm);font-size:.58rem;letter-spacing:1px;
color:var(--muted);padding:10px 14px;background:var(--s1);
border:1px solid var(--border);border-top:none;
}
/* STAT CARDS */
.stats-row{
display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
gap:12px;margin:clamp(28px,5vw,44px) 0;
}
.stat-card{
background:var(--s1);border:1px solid var(--border);
padding:clamp(16px,3vw,22px);text-align:center;
border-radius:var(--r);transition:border-color var(--tr);
}
.stat-card:hover{border-color:rgba(232,184,75,.35);}
.stat-n{font-family:var(--fm);font-size:clamp(1.4rem,4vw,2rem);font-weight:700;color:var(--accent);}
.stat-l{font-family:var(--fm);font-size:.58rem;letter-spacing:2px;color:var(--muted);margin-top:4px;}
/* HIGHLIGHT BOX */
.highlight-box{
background:var(--s1);border:1px solid var(--border);border-left:3px solid var(--accent);
padding:clamp(16px,3vw,24px);margin:clamp(24px,4vw,36px) 0;border-radius:0 var(--r) var(--r) 0;
}
.highlight-box h4{
font-family:var(--fm);font-size:.6rem;letter-spacing:3px;color:var(--accent);margin-bottom:10px;
}
.highlight-box ul{padding-left:18px;}
.highlight-box ul li{
font-size:clamp(.86rem,2vw,.96rem);color:#c8c4bc;
line-height:1.7;margin-bottom:6px;
}
/* TAG ROW */
.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin:clamp(28px,5vw,48px) 0 0;}
.tag{
font-family:var(--fm);font-size:.58rem;letter-spacing:2px;
padding:5px 12px;border-radius:2px;
background:var(--s2);border:1px solid var(--border);color:var(--muted);
transition:all var(--tr);
}
.tag:hover{border-color:var(--accent);color:var(--accent);}
/* NEXT ARTICLE */
.next-article{
background:var(--s1);border:1px solid var(--border);border-radius:var(--r);
padding:clamp(20px,4vw,32px);margin-top:clamp(40px,8vw,64px);
display:flex;gap:20px;align-items:center;flex-wrap:wrap;
transition:border-color var(--tr);
}
.next-article:hover{border-color:rgba(232,184,75,.3);}
.next-label{font-family:var(--fm);font-size:.6rem;letter-spacing:3px;color:var(--muted);margin-bottom:8px;}
.next-title{font-family:var(--fd);font-size:clamp(1rem,2.5vw,1.2rem);font-weight:700;color:var(--text);}
.next-arrow{font-size:1.5rem;color:var(--accent);flex-shrink:0;margin-left:auto;}
/* CTA */
.article-cta{
background:linear-gradient(135deg,var(--s1),var(--s2));
border:1px solid var(--border);border-radius:var(--r);
padding:clamp(24px,5vw,40px);text-align:center;
margin-top:clamp(32px,6vw,56px);
}
.article-cta h3{font-family:var(--fd);font-size:clamp(1.2rem,3vw,1.6rem);font-weight:700;margin-bottom:10px;}
.article-cta p{color:var(--muted);font-size:.9rem;margin-bottom:20px;}
.btn-cta{
display:inline-flex;align-items:center;gap:8px;
padding:12px 28px;background:var(--accent);color:#0a0a08;
border-radius:var(--r);font-family:var(--fm);font-size:.72rem;letter-spacing:1px;font-weight:700;
transition:box-shadow var(--tr),transform var(--tr);
}
.btn-cta:hover{transform:translateY(-2px);box-shadow:0 0 32px rgba(232,184,75,.4);}
/* FOOTER */
footer{
border-top:1px solid var(--border);
padding:clamp(20px,4vw,36px) clamp(16px,5%,60px);
display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;
}
.footer-copy{font-family:var(--fm);font-size:.6rem;letter-spacing:1px;color:var(--muted);}
.footer-links{display:flex;gap:16px;}
.footer-links a{font-family:var(--fm);font-size:.6rem;letter-spacing:1px;color:var(--muted);transition:color var(--tr);}
.footer-links a:hover{color:var(--accent);}
/* READING PROGRESS */
#readProgress{position:fixed;top:0;left:0;height:2px;background:var(--accent);z-index:9999;width:0%;transition:width .1s linear;}
/* REVEAL */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease;}
.reveal.up{opacity:1;transform:translateY(0);}
</style>
</head>
<body>
<div id="readProgress" aria-hidden="true"></div>
<header>
<div class="hd-brand">
<img src="codeon logo.png" alt="CODEON" class="hd-logo" loading="eager">
<span class="hd-name">CODEON</span>
</div>
<nav class="hd-nav" aria-label="Site navigation">
<a href="index.html">Home</a>
<a href="article2.html">Article 2</a>
<a href="article3.html">Article 3</a>
<a href="enroll.html">Enroll</a>
</nav>
</header>
<!-- HERO -->
<div class="article-hero" role="banner">
<div class="hero-img" role="img" aria-label="Young African students working on laptops in a modern setting"></div>
<div class="hero-content">
<div class="hero-cat">TECH & SOCIETY</div>
<h1>Uganda's Digital Future:<br>Why Learning to Code is<br>the Most Important Skill<br>of This Decade</h1>
<div class="hero-meta">
<span>BY CODEON AFRICA</span>
<span class="sep">·</span>
<span>MARCH 2025</span>
<span class="sep">·</span>
<span class="read-time">8 MIN READ</span>
</div>
</div>
</div>
<!-- ARTICLE BODY -->
<article class="article-body" aria-label="Article content">
<p class="lead reveal">Africa's technology sector is no longer a future promise — it is a present reality. With the continent's tech ecosystem growing at 20% per year, and Uganda at the centre of East Africa's digital revolution, the question for every young Ugandan today is no longer <em>whether</em> to learn to code. It is how quickly they can start.</p>
<figure class="article-img reveal">
<img src="https://images.unsplash.com/photo-1522202176988-66273c2fd55f?w=1200&auto=format&fit=crop&q=80" alt="Students collaborating on laptops in Uganda" loading="lazy">
<figcaption>Students at a CODEON workshop in Kampala — learning HTML and GitHub workflows in a single afternoon. Photo: Unsplash</figcaption>
</figure>
<h2 class="reveal">The Numbers Don't Lie</h2>
<p class="reveal">Uganda's internet penetration rate crossed 50% for the first time in 2024. Mobile money transactions processed through Uganda's digital infrastructure now exceed UGX 80 trillion annually. The country has over 6,000 registered technology startups, with Kampala ranking among the top five African cities for tech startup density per capita.</p>
<p class="reveal">Yet the talent pipeline does not match the demand. A 2024 survey by the Uganda ICT Association found that over 70% of Ugandan tech companies struggle to hire locally — not because young Ugandans lack intelligence, but because the education system has not yet produced enough developers with practical, job-ready skills.</p>
<div class="stats-row reveal">
<div class="stat-card">
<div class="stat-n">20%</div>
<div class="stat-l">ANNUAL GROWTH AFRICA TECH</div>
</div>
<div class="stat-card">
<div class="stat-n">6,000+</div>
<div class="stat-l">TECH STARTUPS IN UGANDA</div>
</div>
<div class="stat-card">
<div class="stat-n">70%</div>
<div class="stat-l">FIRMS STRUGGLE TO HIRE</div>
</div>
<div class="stat-card">
<div class="stat-n">$5B</div>
<div class="stat-l">AFRICA TECH FUNDING 2024</div>
</div>
</div>
<h2 class="reveal">The Opportunity Is Real — But the Window Is Now</h2>
<p class="reveal">What makes this moment unique is the convergence of three forces that have never aligned in Africa before: widespread affordable internet access, global demand for remote developers, and a generation of young Africans who grew up digitally fluent. MTN Uganda's 4G coverage now reaches 85% of the country. Airtel has launched affordable data bundles specifically designed for students. Remote work platforms like Andela, Toptal, and Upwork have brought global clients directly to African freelancers.</p>
<div class="pull-quote reveal">
<p>"A Ugandan developer with strong HTML, CSS, and JavaScript skills can today earn more working remotely than many university graduates earn in Kampala's formal sector. The barrier is skill — not geography."</p>
<cite>— CODEON AFRICA REPORT, 2025</cite>
</div>
<p class="reveal">The economics are compelling. A junior web developer in Kampala earns between UGX 800,000 and 2,000,000 per month. A mid-level developer with GitHub proficiency and a portfolio earns 3,000,000–6,000,000 monthly. Freelancers working for international clients through platforms like Upwork can earn the equivalent of UGX 4,000,000–12,000,000 per month — often more than what formal sector professionals with university degrees take home.</p>
<figure class="article-img reveal">
<img src="https://images.unsplash.com/photo-1531482615713-2afd69097998?w=1200&auto=format&fit=crop&q=80" alt="African developer working on code on a laptop" loading="lazy">
<figcaption>The African developer economy is growing faster than any other sector on the continent. Photo: Unsplash</figcaption>
</figure>
<h2 class="reveal">What Ugandan Students Actually Need to Learn</h2>
<p class="reveal">The conversation around coding education in Uganda is often derailed by complexity. Parents hear "programming" and imagine impenetrable computer science theory. Students hear "coding bootcamp" and picture expensive equipment they cannot afford. The reality of what actually makes a Ugandan developer employable today is far simpler — and far more accessible.</p>
<div class="highlight-box reveal">
<h4>THE FOUR SKILLS UGANDAN EMPLOYERS ACTUALLY LOOK FOR</h4>
<ul>
<li><strong>HTML & CSS mastery:</strong> The ability to build clean, responsive websites that work on both desktop and mobile. 80% of client work starts here.</li>
<li><strong>JavaScript fundamentals:</strong> Understanding how to make websites interactive — forms, buttons, dynamic content. This is where most beginners stop, and where opportunity begins.</li>
<li><strong>GitHub proficiency:</strong> Version control, branching, pull requests. This one skill separates developers who work alone from developers who can work in teams — and gets salaries doubled.</li>
<li><strong>A deployed portfolio:</strong> Three live projects with a GitHub profile is more persuasive to a Ugandan or international employer than any certificate or degree. Projects prove ability. Certificates prove attendance.</li>
</ul>
</div>
<h2 class="reveal">The Mobile Revolution Changes Everything</h2>
<p class="reveal">One of the most powerful — and most underreported — shifts in African tech education is the rise of mobile-first learning. In 2019, only 23% of Ugandan internet users accessed the web primarily on smartphones. By 2024, that number had risen to 79%. This has profound implications for how coding should be taught.</p>
<p class="reveal">Platforms designed for laptops exclude the majority of Uganda's learners. CODEON was specifically architected for mobile — because we recognised early that if coding education is only accessible on a laptop, it is only accessible to the privileged. The phone in a student's pocket is the computer of African education. Every platform that ignores this ignores the continent.</p>
<h3 class="reveal">The Schools Gap</h3>
<p class="reveal">Uganda has 15,000+ registered secondary schools. Fewer than 3,000 have functional computer labs. Of those that do, most have outdated equipment and teachers who learned ICT from textbooks written before smartphones existed. The national curriculum includes a "Computer Studies" subject that still devotes significant time to typing practice and Microsoft Word formatting — skills that were relevant in 1995.</p>
<p class="reveal">This is not a failure of teachers or students. It is a structural gap that can only be bridged by platforms that meet learners where they are — on their phones, in their own time, with curriculum that reflects the real world of 2025, not 1995.</p>
<figure class="article-img reveal">
<img src="https://images.unsplash.com/photo-1434030216411-0b793f4b6069?w=1200&auto=format&fit=crop&q=80" alt="A student studying on a phone in Africa" loading="lazy">
<figcaption>Over 79% of Ugandan internet users now access the web primarily via smartphone. Mobile-first education is not optional — it is essential. Photo: Unsplash</figcaption>
</figure>
<h2 class="reveal">The Global Freelance Opportunity</h2>
<p class="reveal">Perhaps the most transformative aspect of the current moment is the access it provides to global markets. In 2020, an Ugandan developer needed a local employer to monetise their skills. Today, with a laptop or even just a good smartphone, stable internet, and a Payoneer or Flutterwave account, a developer in Jinja or Mbarara can work for clients in London, Toronto, or Singapore.</p>
<p class="reveal">Andela, founded to connect African developers with global tech companies, has placed over 15,000 African engineers in remote roles at companies including Google, Goldman Sachs, and GitHub itself. The average Andela developer earns $2,000–$5,000 USD per month — from Africa, in Africa, spending in the African economy.</p>
<div class="pull-quote reveal">
<p>"The next generation of Uganda's middle class will not be built in offices. It will be built in browser tabs."</p>
<cite>— CODEON AFRICA</cite>
</div>
<h2 class="reveal">What CODEON Is Doing About It</h2>
<p class="reveal">CODEON was built specifically to close this gap. Our curriculum is not adapted from Western bootcamps. It was written from scratch for African students — with project examples rooted in Ugandan business realities, assessment design that works on low-bandwidth connections, and a community built specifically around the shared experience of learning to code in East Africa.</p>
<p class="reveal">We teach HTML, CSS, JavaScript, and Python through daily challenges, weekly competitions, and real GitHub workflows — because we believe practical skills, built daily, are the only education that sticks. Our certificates are verifiable online, because a credential that cannot be verified is worthless to an employer. And our platform works on a smartphone, because that is the computer of the majority of our students.</p>
<h2 class="reveal">The Verdict</h2>
<p class="reveal">Uganda is at an inflection point. The infrastructure for a digital economy exists. The global demand for African developers is real and growing. The income opportunity for skilled developers is documented and substantial. The only missing piece is the generation of Ugandan coders with the right skills to seize it.</p>
<p class="reveal">That generation is being built now. The question is whether you will be part of it.</p>
<div class="tag-row reveal">
<span class="tag">UGANDA TECH</span>
<span class="tag">DIGITAL ECONOMY</span>
<span class="tag">CODING EDUCATION</span>
<span class="tag">AFRICA</span>
<span class="tag">CAREERS</span>
<span class="tag">FREELANCING</span>
</div>
<!-- CTA -->
<div class="article-cta reveal">
<h3>Ready to Start Your Coding Journey?</h3>
<p>Join 500+ Ugandan students already learning HTML, CSS, JavaScript and Python on CODEON. Free to start — always.</p>
<a href="enroll.html" class="btn-cta">Enroll Free Today →</a>
</div>
<!-- NEXT ARTICLE -->
<a href="article2.html" class="next-article reveal">
<div>
<div class="next-label">READ NEXT</div>
<div class="next-title">From Boda Boda to Blockchain: How African Entrepreneurs Are Using Tech to Solve Local Problems</div>
</div>
<span class="next-arrow">→</span>
</a>
</article>
<footer>
<div class="footer-copy">© 2025 CODEON Africa · Built in Uganda 🇺🇬</div>
<div class="footer-links">
<a href="index.html">Home</a>
<a href="article2.html">Article 2</a>
<a href="article3.html">Article 3</a>
<a href="enroll.html">Enroll</a>
</div>
</footer>
<script>
// Reading progress
window.addEventListener('scroll',()=>{
const el=document.documentElement;
const pct=el.scrollTop/(el.scrollHeight-el.clientHeight)*100;
document.getElementById('readProgress').style.width=pct+'%';
},{passive:true});
// Scroll reveal
const obs=new IntersectionObserver(entries=>{
entries.forEach(e=>{if(e.isIntersecting){e.target.classList.add('up');obs.unobserve(e.target);}});
},{threshold:.08,rootMargin:'0px 0px -40px 0px'});
document.querySelectorAll('.reveal').forEach(el=>obs.observe(el));
</script>
</body>
</html>