Close Menu
    Facebook X (Twitter) Instagram
    • Home
    • Contact Us
    • About Us
    • Privacy Policy
    • Terms Of Service
    • Advertisement
    Wednesday, July 15
    Facebook X (Twitter) Instagram Pinterest Vimeo
    ABS Africa TV
    • Breaking News
    • Trending
    • Africa News
    • World News
    • Features
    • Technology
    • More
      • Sports
      • Politics
      • Culture
      • Lifestyle
      • Travel
      • Business
      • Environment
      • Legal
      • Health
      • Cameroon
      • Ambazonia
      • AfroSingles
      • Environ/Climate
      • Editorial
      • The Leak Magazine
    • Donate
    Subscription
    ABS Africa TV
    Home»Travel»Rwanda’s tourism brand Visit Rwanda secures Aston Villa front-of-shirt deal
    Travel

    Rwanda’s tourism brand Visit Rwanda secures Aston Villa front-of-shirt deal

    Martin AkumaBy Martin AkumaJuly 15, 2026No Comments9 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Rwanda’s tourism brand Visit Rwanda secures Aston Villa front-of-shirt deal
    Share
    Facebook Twitter LinkedIn Pinterest Email
    Post Views: 22

    Rwanda’s tourism brand Visit Rwanda secures Aston Villa front-of-shirt deal

    Aston Villa’s Francesco Calvo (left) and Rwanda Convention Bureau CEO Janet Karemera display the club’s new Visit Rwanda-sponsored jersey. (Photo: Aston Villa FC)

    Listen to article

    3 min listen
    Audio reading is not supported on this browser.
    Ready

    Thanks for listening. Continue with a related story, or tap the speaker icon on the next page to listen.

    Spain outclass France to reach World Cup final as La Roja extend historic unbeaten run

    Erick Kariuki

     · 

    8 minutes agoRead nextOpens a fresh page.

    The tourism promotion brand will appear on Aston Villa’s men’s, women’s and academy team shirts from the 2026/27 season under what the club says is the biggest sponsorship deal in its history.

    Visit Rwanda, Kigali’s global tourism and investment promotion brand, has expanded its international football footprint after signing a landmark front-of-shirt sponsorship deal with English Premier League club Aston Villa.
    Aston Villa announced the partnership on its official website on Tuesday, confirming that Visit Rwanda will feature on the front of all club shirts from the 2026/27 season. It replaces current front-of-shirt sponsor Betano as Premier League clubs prepare to remove betting companies from the front of shirts under new league regulations taking effect from the 2026/27 campaign.
    According to The Athletic, the agreement is expected to become the most valuable shirt sponsorship deal in Aston Villa’s history. Sources familiar with the partnership say it could generate up to £20 million (Sh3.5 billion) per season if agreed performance targets are met.

    The land of a thousand hills meets the city of a thousand trades.

    🤝 @VisitRwanda_Nowpic.twitter.com/KG1ratbnbG
    — Aston Villa (@AVFCOfficial) July 14, 2026

    Latest Stories

    • Spain outclass France to reach World Cup final as La Roja extend historic unbeaten run
    • Why South Africa is Kenya’s top overseas destination for commercial property investment
    • Sudan faces worsening hunger as conflict and funding cuts threaten aid response
    • Lakes that ‘breathe’ ancient carbon: A surprising find in the Congo Basin

    “The Rwandan Development Board’s branding will appear on the front of all men’s, women’s and academy teams’ shirts, as well as in a number of other prominent spaces, in an agreement that will be the most important sponsorship deal in the history of the football club,” Aston Villa said, without disclosing the value of the deal.
    For Rwanda, the partnership marks another milestone in its long-term strategy of using global football to promote the country’s tourism, investment and business opportunities.
    “Building on eight successful years of raising awareness and engagement in the United Kingdom, one of Rwanda’s key tourism source markets, we look forward to working with Aston Villa to expand our reach to new audiences in the UK, across Europe and beyond,” said Janet Karemera, Chief Executive Officer of the Rwanda Convention Bureau (RCB).
    “Through this partnership, we aim to deepen the connection with those already considering travel to Rwanda, whether for tourism, investment or business events, all while contributing to the long-term growth and development of the football ecosystem in Rwanda.”
    Visit Rwanda has previously partnered with several of Europe’s top football clubs, including Paris Saint-Germain and Atlético Madrid. Its £10 million (Sh1.8 billion)-a-year sleeve sponsorship deal with Arsenal ended after eight years at the close of last season.

    Other Topics To Read

    Top Stories Today

    • Why South Africa is Kenya’s top overseas destination for commercial property investment
    • Spain outclass France to reach World Cup final as La Roja extend historic unbeaten run
    • WFP warns Sudan faces deeper hunger crisis as fighting continues
    • Fuel prices remain unchanged as EPRA retains pump rates for another month
    • Study finds Congo Basin lakes ‘breathing’ ancient carbon into atmosphere
    • Ebola reaches major transport hub of Kisangani as DRC outbreak expands across five provinces

    `;
    }

    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

    Rwanda’s tourism brand Visit Rwanda secures Aston Villa front-of-shirt dealFootball
    |Bashir Mbuthia
    |13 hours ago
    Garissa Airstrip upgrade attracts new airline as expanded facilities increase flight optionsNorthern Kenya
    |Abdirahman Khalif
    |14 hours ago
    High Court gives IG Kanja, DCI Amin final chance to explain disappearance of three KenyansNews
    |Carolyne Kubwa
    |15 hours ago

    Goonism: How unemployment is driving youths into politically backed gangs

    Goonism: How unemployment is driving youths into politically backed gangsNews
    |Barack Oduor
    |15 hours ago
    Sudan faces worsening hunger as conflict and funding cuts threaten aid responseSudan
    |Mwangi Maina
    |24 minutes ago

    Fuel prices remain unchanged as EPRA retains pump rates for another month

    Fuel prices remain unchanged as EPRA retains pump rates for another monthNews
    |Bashir Mbuthia
    |9 hours ago
    Ebola reaches major transport hub of Kisangani as DR Congo outbreak expands across five provincesHealth
    |Mwangi Maina
    |8 hours ago
    IEBC fines Nakuru East MP David Gikaria Sh2.5 million for electoral code breachNews
    |Bashir Mbuthia
    |10 hours ago
    Dangote’s planned Lamu oil refinery faces growing opposition over environmental concernsNews
    |Barack Oduor
    |12 hours ago
    DRC Ebola outbreak becomes third-largest ever as unknown transmission chains fuel spreadHealth
    |Bashir Mbuthia
    |13 hours ago

    Brand rwanda Rwandas Tourism visit
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Martin Akuma
    • Website

    Related Posts

    China Surpasses South Africa, Germany, France and More in Leading Namibia’s International Tourism Revival as Growing Chinese Visitor Arrivals Fuel Safari Demand, Nature Travel, Luxury Experiences and a Powerful New Era of Africa–Asia Tourism Connections

    July 15, 2026

    Globus and Cosmos 2027 Tours Expand Guided Vacations in Asia and Africa, Offering Global Travelers Curated Cultural and Wildlife Experiences: New Travel Alert

    July 15, 2026

    New York Spearheads Washington, Atlanta, Miami, Los Angeles and All Other Top US Cities in Welcoming the Highest Number of Visitors From Africa Despite the Travel Ban for Six Consecutive Months in 2026

    July 15, 2026
    Leave A Reply Cancel Reply

    Search
    Latest Post

    China Surpasses South Africa, Germany, France and More in Leading Namibia’s International Tourism Revival as Growing Chinese Visitor Arrivals Fuel Safari Demand, Nature Travel, Luxury Experiences and a Powerful New Era of Africa–Asia Tourism Connections

    July 15, 2026

    A mother’s heartbreaking goodbye to Aisha: The ostrich that became family

    July 15, 2026

    Bookshelf: the new China is still China

    July 15, 2026

    WHO says second US Ebola patient transferred to Germany, not Kenya

    July 15, 2026

    Byju Raveendran’s Legal Battle Continues in Singapore: Appeal Still Underway

    July 15, 2026

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    • YouTube
    • TikTok
    ABS TV and ABS Network News is a leading Pan-African 24/7 broadcasting network delivering nonstop news, talk shows, lifestyle programs, and digital media content worldwide through Satellite, Streaming Platforms, and Roku TV.
     
    Based in the United States, we connect Africa to the world while empowering creators, journalists, and brands through innovative media and broadcasting services.
    Facebook X (Twitter) Pinterest WhatsApp Instagram

    Our Picks

    Travel

    China Surpasses South Africa, Germany, France and More in Leading Namibia’s International Tourism Revival as Growing Chinese Visitor Arrivals Fuel Safari Demand, Nature Travel, Luxury Experiences and a Powerful New Era of Africa–Asia Tourism Connections

    Environment

    A mother’s heartbreaking goodbye to Aisha: The ostrich that became family

    Business

    Bookshelf: the new China is still China

    Most Popular

    Health

    WHO says second US Ebola patient transferred to Germany, not Kenya

    Legal

    Byju Raveendran’s Legal Battle Continues in Singapore: Appeal Still Underway

    Lifestyle

    Nigerian musician Tekno explains why “marriage no longer works”

    © 2026 Copyright. All Rights Reserved by ABSAFRICATV
    • Privacy Policy
    • Terms of Services

    Type above and press Enter to search. Press Esc to cancel.

    We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.