Startup funding: Kenya leads with Sh127bn, West Africa’s dominance ends
Startup funding: Kenya leads with Sh127bn, West Africa’s dominance ends
Read this story aloud
Listen to the clean text version of this article
Ready
2 min listen
Audio reading is not supported on this browser.
Kenya took the top position on the continent but the $800 million – 28 per cent of the total raised by the continent – was a 25 per cent drop from what was raised in 2022
Kenyan startups raised the most funding last year compared to their counterparts in Africa, which President William Ruto attributes to targeted reforms that he says have improved the business environment.
A report by ‘Africa: The Big Deal’, which tracks and comments on start-up funding in Africa, says Kenya raised $800 million (Sh127 billion) in 2023 and was followed by Egypt with $640 million (Sh101 billion), South Africa with $600 million (Sh95 billion), and Nigeria with $410 million (Sh65 billion).
“In 2023, the ‘Big Four’ attracted 87 per cent of all the start-up funding in Africa, their largest share since 2019. They were home to 71 per cent (357 out of 500) of the start-ups who raised $100k or more on the continent last year,” the report said.
More To Read
- DP Kindiki hails cooperatives as key to Kenya’s economic transformation
- Civil society groups warn Kenya’s Sh13 trillion debt hurting essential services
- Court grants DCI three more days to hold woman over alleged posts tracking President Ruto’s flights
- Construction of Naivasha–Kisumu–Malaba SGR begins in Narok
- How the new Ngong Road flyover is fueling growth at Dagoretti Corner
- Ruto told to fix Cabinet gender imbalance after court ruling, not reshuffle
In his reaction, President William Ruto tweeted that he was proud and that the country’s targeted reforms had made Kenya a top choice for investors.
“Our strategic reforms have enhanced the business environment, positioning Kenya as the preferred choice for investors. This achievement reflects our commitment to fostering innovation and economic growth. The substantial funding is driving groundbreaking ideas, fueling technological advancements, and propelling job creation. Thanks to our innovative startup founders, Kenya is now a global innovation hub,” he wrote.
Latest Stories
- Machakos Mitumba Market traders suffer heavy losses after midnight fire
- Kenyans urged to join Saba Saba march to honour victims of alleged abductions, killings
- Quiet revolution behind foldable smartphones and why they’re making a comeback
- Invisible peacebuilders: How ‘diplomacy works’ to prevent conflict
Kenya took the top position on the continent, but the $800 million—28 per cent of the total raised by the continent—was a 25 per cent drop from what was raised in 2022, which was $1.1 billion. Still, the report noted, Kenya’s share of Eastern Africa’s funding grew five points to 91 per cent.
The African nations with the least money raised by startups were Liberia, Togo, Namibia and Chad at less than $2 million, and Mali, Somaliland, Zimbabwe and Botswana at less than $1 million. Ethiopia’s startups accounted for $3 million, Uganda’s $5 million, Tanzania’s $25 million and Rwanda’s $44 million.
In terms of regions, the report said Eastern Africa was in the lead, raising a total of $880 million last year, representing 31 per cent of all the startup funding on the continent.
Western Africa’s dominance ended, with the result being “four balanced regions,” according to the report. The region was in the lead in both 2021 and 2022 when its startups raised $2 billion and $1.6 billion, respectively. It came in fourth in 2023, with a 62 per cent YoY decline in the funding raised, to $600 million.
Northern Africa took second place at $670 million, although this was a 39 per cent decline in funding raised YoY, while Southern Africa came in third with $620 million, becoming the only region with a “moderate-yet-positive growth” YoY, at 6 per cent.
M-Kopa and Sun King raised about half a billion dollars of Eastern Africa’s funding, with debt financing accounting for 56 per cent of the share. Noteworthy was that many startups on the continent resolved to finance their growth using debt.
Their total debt rose 47 per cent YoY to $1.1 billion, while equity funding fell 57 per cent. In Northern Africa, MNT-Halan raised more than half a billion, while in Southern Africa, the biggest fundraisers were Planet42, TymeBank and E4
Regarding investment trends, the report said there was a drop in the number of investors in 2023, compared to the previous year, but that ” a core group of resolute investors confirmed their commitment, while the continent continued to attract newcomers.”
“It would be tempting to think that in a tough investment climate, only those who had invested in the continent beforehand decided to do so in 2023. But this isn’t exactly the case, as 47 per cent of investors who invested in a $100k+ deal in 2023 had not invested in one in either 2021 or 2022,” the report said.
Other Topics To Read
Top Stories Today
- Three arrested after Linda Mwananchi convoy attacked in Kisii as police hunt for more suspects
- Machakos Mitumba Market traders suffer heavy losses after midnight fire
- Kenyans urged to join Saba Saba march to honour victims of alleged abductions, killings
- Quiet revolution behind foldable smartphones and why they’re making a comeback
- Invisible peacebuilders: How ‘diplomacy works’ to prevent conflict
- State extends security operation in Marsabit, declares multiple areas dangerous for 30 more days
`;
}
return “;
}
function commentActionsMarkup(comment, canComment) {
const likeLabel = comment.liked_by_me ? ‘Liked’ : ‘Like’;
const likeCount = Number(comment.like_count || 0) > 0
? “
: ”;
const likeButton = canComment && comment.status === ‘approved’
? “
: “;
const replyButton = canComment && comment.status === ‘approved’
? “
: ”;
return `
`;
}
function commentMarkup(comment, canComment, isReply = false) {
const pendingBadge = comment.status && comment.status !== ‘approved’
? “
: ”;
const edited = comment.is_edited
? “
: ”;
const repliesHtml = Array.isArray(comment.replies) && comment.replies.length
? `
`
: “;
return `
`;
}
function replyFormMarkup(commentId) {
return `
`;
}
function setNotice(widget, message, type = ‘info’) {
const notice = widget.querySelector(‘[data-role=”notice”]’);
if (!notice) return;
if (!message) {
notice.hidden = true;
notice.textContent = ”;
notice.classList.remove(‘is-error’);
return;
}
notice.hidden = false;
notice.textContent = message;
notice.classList.toggle(‘is-error’, type === ‘error’);
}
function setCount(widget, total) {
const count = widget.querySelector(‘[data-role=”count”]’);
if (!count) return;
const num = Number(total || 0);
count.textContent = num === 1 ? ‘1 comment’ : `${num} comments`;
}
function openReplyBox(widget, commentId) {
widget.querySelectorAll(‘[data-role=”reply-box”]’).forEach(box => {
box.hidden = true;
box.innerHTML = ”;
});
const targetItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (!targetItem) return;
const replyBox = targetItem.querySelector(‘[data-role=”reply-box”]’);
if (!replyBox) return;
replyBox.hidden = false;
replyBox.innerHTML = replyFormMarkup(commentId);
const textarea = replyBox.querySelector(‘textarea’);
if (textarea) textarea.focus();
}
function closeReplyBox(container) {
if (!container) return;
container.hidden = true;
container.innerHTML = ”;
}
async function initCommentsWidget(widget) {
const state = {
articleId: Number(widget.dataset.articleId),
loadUrl: widget.dataset.loadUrl,
storeUrl: widget.dataset.storeUrl,
commentsBaseUrl: widget.dataset.commentsBaseUrl,
canComment: widget.dataset.canComment === ‘1’,
page: 1,
perPage: 10,
sort: ‘newest’,
total: 0,
hasMore: false,
busy: false
};
const list = widget.querySelector(‘[data-role=”list”]’);
const loading = widget.querySelector(‘[data-role=”loading”]’);
const empty = widget.querySelector(‘[data-role=”empty”]’);
const loadMoreBtn = widget.querySelector(‘[data-role=”load-more”]’);
const sortSelect = widget.querySelector(‘[data-role=”sort”]’);
const composerForm = widget.querySelector(‘[data-role=”composer-form”]’);
async function loadComments(reset = true) {
if (state.busy) return;
state.busy = true;
setNotice(widget, ”);
loading.hidden = false;
if (reset) {
state.page = 1;
list.innerHTML = ”;
empty.hidden = true;
}
try {
const url = new URL(state.loadUrl, window.location.origin);
url.searchParams.set(‘page’, state.page);
url.searchParams.set(‘per_page’, state.perPage);
url.searchParams.set(‘sort’, state.sort);
const response = await requestJson(url.toString(), {
method: ‘GET’,
headers: {
‘Accept’: ‘application/json’,
‘X-Requested-With’: ‘XMLHttpRequest’
}
});
const items = Array.isArray(response.data) ? response.data : [];
const meta = response.meta || {};
state.total = Number(meta.total || 0);
state.hasMore = !!meta.has_more;
setCount(widget, state.total);
if (reset) {
list.innerHTML = ”;
}
if (!items.length && reset) {
empty.hidden = false;
} else {
empty.hidden = true;
list.insertAdjacentHTML(
‘beforeend’,
items.map(item => commentMarkup(item, state.canComment, false)).join(”)
);
}
loadMoreBtn.hidden = !state.hasMore;
} catch (error) {
if (!list.children.length) {
empty.hidden = false;
empty.textContent = ‘Unable to load comments right now.’;
}
setNotice(widget, error.message || ‘Unable to load comments.’, ‘error’);
} finally {
loading.hidden = true;
state.busy = false;
}
}
async function submitTopLevelComment(form) {
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘[data-role=”submit-comment”]’);
if (!textarea) return;
const content = textarea.value.trim();
if (!content) return;
const originalText = button ? button.textContent : ”;
try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}
const response = await requestJson(state.storeUrl, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});
textarea.value = ”;
if (response?.data) {
list.insertAdjacentHTML(
‘afterbegin’,
commentMarkup(response.data, state.canComment, false)
);
empty.hidden = true;
if ((response.data.status || ”) === ‘approved’) {
state.total += 1;
setCount(widget, state.total);
}
}
setNotice(widget, response.message || ‘Comment posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post comment.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post comment’;
}
}
}
async function submitReply(form) {
const commentId = Number(form.dataset.commentId || 0);
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘.ev-comments__reply-submit’);
if (!commentId || !textarea) return;
const content = textarea.value.trim();
if (!content) return;
const originalText = button ? button.textContent : ”;
try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}
const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/reply`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});
if (response?.data) {
const parentItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (parentItem) {
const repliesWrap = parentItem.querySelector(‘.ev-comments__replies’);
if (repliesWrap) {
repliesWrap.insertAdjacentHTML(
‘beforeend’,
commentMarkup(response.data, state.canComment, true)
);
}
}
}
closeReplyBox(form.closest(‘[data-role=”reply-box”]’));
setNotice(widget, response.message || ‘Reply posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post reply.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post reply’;
}
}
}
async function toggleLike(button) {
const commentId = Number(button.dataset.commentId || 0);
if (!commentId) return;
const originalHtml = button.innerHTML;
try {
button.disabled = true;
button.innerHTML = ‘Working…’;
const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/like`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({})
});
const liked = !!response?.data?.liked;
const likeCount = Number(response?.data?.like_count || 0);
button.classList.toggle(‘is-liked’, liked);
button.innerHTML = `${liked ? ‘Liked’ : ‘Like’} ${likeCount > 0 ? “ : ”}`;
} catch (error) {
button.innerHTML = originalHtml;
setNotice(widget, error.message || ‘Unable to update like.’, ‘error’);
} finally {
button.disabled = false;
}
}
if (composerForm) {
composerForm.addEventListener(‘submit’, function (e) {
e.preventDefault();
submitTopLevelComment(composerForm);
});
}
if (sortSelect) {
sortSelect.addEventListener(‘change’, function () {
state.sort = this.value || ‘newest’;
loadComments(true);
});
}
if (loadMoreBtn) {
loadMoreBtn.addEventListener(‘click’, function () {
if (state.busy || !state.hasMore) return;
state.page += 1;
loadComments(false);
});
}
widget.addEventListener(‘click’, function (e) {
const likeBtn = e.target.closest(‘[data-action=”toggle-like”]’);
if (likeBtn) {
e.preventDefault();
toggleLike(likeBtn);
return;
}
const replyBtn = e.target.closest(‘[data-action=”toggle-reply”]’);
if (replyBtn) {
e.preventDefault();
openReplyBox(widget, Number(replyBtn.dataset.commentId || 0));
return;
}
const cancelReplyBtn = e.target.closest(‘[data-action=”cancel-reply”]’);
if (cancelReplyBtn) {
e.preventDefault();
closeReplyBox(cancelReplyBtn.closest(‘[data-role=”reply-box”]’));
}
});
widget.addEventListener(‘submit’, function (e) {
const replyForm = e.target.closest(‘.ev-comments__reply-form’);
if (replyForm) {
e.preventDefault();
submitReply(replyForm);
}
});
loadComments(true);
}
document.addEventListener(‘DOMContentLoaded’, function () {
document.querySelectorAll(‘.ev-comments’).forEach(initCommentsWidget);
});
})();
Trending
Messi is old, short and slow: How is he still dominating at the World Cup?Sports
|The Conversation
|23 hours ago
Government extends security operation in Marsabit, declares multiple areas dangerous for 30 more daysNorthern Kenya
|Lucy Mumbi
|2 hours ago
Iran begins six-day funeral for late Supreme Leader Ali KhameneiWorld
|DW News
|1 day ago
Serena Williams withdraws from Wimbledon doubles after knee injury, ending Venus reunion plansSports
|Bashir Mbuthia
|11 hours ago
Pope Leo XIV shines spotlight on Mediterranean migration crisisWorld
|Mary Wambui
|15 hours ago
Egypt end 92-year wait to reach World Cup last 16News
|Erick Kariuki
|1 day ago
Three arrested after Linda Mwananchi convoy attacked in Kisii as police hunt for more suspectsNews
|Lucy Mumbi
|2 hours ago
Mbappé fires France past Paraguay into World Cup quarter-finalsSports
|Erick Kariuki
|3 hours ago
Kenya reaffirms ties with Rwanda as it marks Liberation Day celebrationsRegional
|Bashir Mbuthia
|11 hours ago
What the World Cup hydration breaks reveal about who governs men’s footballSports
|The Conversation
|18 hours ago