Close Menu
    Facebook X (Twitter) Instagram
    • Home
    • Contact Us
    • About Us
    • Privacy Policy
    • Terms Of Service
    • Advertisement
    Wednesday, July 29
    Facebook X (Twitter) Instagram Pinterest Vimeo
    ABS Africa TV
    • Breaking News
    • Trending
    • Africa News
    • World News
    • Features
    • Technology
    • Sports
    • Politics
    • More
      • Culture
      • Lifestyle
      • Travel
      • Business
      • Environment
      • Legal
      • Health
      • Cameroon
      • Ambazonia
      • AfroSingles
      • Environ/Climate
      • Editorial
      • The Leak Magazine
    • Donate
    Subscription
    ABS Africa TV
    Home»Travel»Mombasa County unveils maritime and hospitality training to boost youth employment
    Travel

    Mombasa County unveils maritime and hospitality training to boost youth employment

    Martin AkumaBy Martin AkumaJuly 28, 2026No Comments9 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Mombasa County unveils maritime and hospitality training to boost youth employment
    Share
    Facebook Twitter LinkedIn Pinterest Email
    Post Views: 19
    Mombasa Governor Abdulswamad Shariff Massir during the launch of Mtongwe Vocational Training Centre in Likoni. (Photo: Handout)

    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.

    Kilifi Governor Mung’aro overhauls Finance, Water and Blue Economy leadership in fresh reshuffle

    Farhiya Hussein

     · 

    2 days agoRead nextOpens a fresh page.

    Mombasa County has introduced specialised maritime, hospitality and technical courses under the KBEST programme to equip young people with industry-relevant skills and expand employment opportunities in the blue economy.

    Mombasa County has introduced specialised vocational training courses in maritime, hospitality and technical fields to equip young people with skills aligned with employment opportunities in the blue economy.
    The new programmes were launched at Mtongwe Vocational Training Centre in Likoni and will also be offered at Kisauni Vocational Training Centre, expanding access to technical and vocational education across the county.
    The courses include outboard engine repair under boat building and repair, marine refrigeration and air conditioning, baking technology, accommodation operations, and basic safety and firefighting. They are designed to prepare learners for careers in maritime transport, tourism, hospitality and marine services.

    More To Read

    • Kilifi Governor Mung’aro overhauls Finance, Water and Blue Economy leadership in fresh reshuffle
    • Pwani Innovation Week targets 2 million youth as Coast region hunts for jobs and investment
    • Mombasa Woman Rep Zamzam Mohammed urges county to reopen road to GBV centre
    • Kwale residents want ecotourism jobs after restoring 288 hectares of mangrove forest
    • MPs urge TVETs to intensify student recruitment amid enrolment decline
    • Sifuna wants employers barred from using CRB records in job recruitment

    To support young mothers pursuing vocational education, the county also commissioned a daycare facility under the Second Chance Programme. The centre will provide childcare services, enabling students with children to continue their training.
    The county is also constructing an automotive workshop to strengthen practical skills training, alongside two early childhood development and education (ECDE) classrooms to expand learning space.
    Mombasa County has launched specialised vocational training programmes to equip young people with skills for jobs in the blue economy, tourism and technical sectors. (Photo: Handout)

    Latest Stories

    • Edwin Sifuna hints at 2027 presidential run as Linda Mwananchi weighs next move
    • Push to make mrangi a scheduled crop gains momentum as Senate invites public input
    • AFC Leopards sign Eric Namaan Balecho from Bandari on two-year deal
    • Somalia’s Finance Minister urges shift from aid dependence as donor funding drops 25 per cent

    Speaking during the launch, Governor Abdulswamad Shariff Nassir said vocational training should equip young people with skills that translate into employment and income-generating opportunities.
    He said the courses had been introduced under the Kenya Blue Economy Skills Training (KBEST) Programme, which is being implemented in partnership with Colleges and Institutes Canada (CICan).
    “The blue economy presents opportunities in sectors such as maritime transport, tourism and ship repair. Our responsibility is to ensure young people acquire the skills needed to take part in these sectors through employment, enterprise and self-employment,” the governor said.
    Abdulswamad said the county would continue expanding vocational training programmes while strengthening collaboration between training institutions and industry to ensure the courses meet labour market demands.
    He added that partnerships with training institutions, development organisations and private sector players would play a key role in creating employment opportunities for graduates both within Kenya and abroad.
    The governor also highlighted the county’s Tourism Innovation Hub as one of the initiatives aimed at linking graduates to employment, innovation and entrepreneurship opportunities in tourism and maritime-related sectors.
    The programme is part of broader efforts to strengthen technical and vocational education and training (TVET) and tackle youth unemployment by developing skills tailored to emerging industries along Kenya’s coast.

    Other Topics To Read

    Top Stories Today

    • Edwin Sifuna signals openness to 2027 presidential contest
    • Senate seeks public views on bid to recognise mrangi as official cash crop
    • Somalia’s Finance Minister urges shift from aid dependence as donor funding drops 25 per cent
    • Kenya joins AU’s top paying nations in major financial milestone
    • High Court dismisses bid to halt 2027 poll preparations pending constitutional review
    • Somalia, US deepen security and trade ties in Mogadishu talks

    `;
    }

    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

    AFC Leopards sign Eric Namaan Balecho from Bandari on two-year dealSports
    |Bashir Mbuthia
    |4 hours ago
    Finland-Canada scholarship scam: Victims storm Uasin Gishu offices demanding refundsNews
    |Lucy Mumbi
    |12 hours ago
    Glasgow 2026 Commonwealth Games Medal StandingsInfographics
    |Charity Pancras
    |9 hours ago
    Edwin Sifuna hints at 2027 presidential run as Linda Mwananchi weighs next movePolitics
    |Bashir Mbuthia
    |3 hours ago
    Kenya hits VAT ceiling, leaving little to no room for further tax hikes, KIPPRA study showsBusiness
    |Alfred Onyango
    |6 hours ago

    High Court dismisses bid to halt 2027 General Election preparations pending constitutional review

    High Court dismisses bid to halt 2027 General Election preparations pending constitutional reviewNews
    |Carolyne Kubwa
    |5 hours ago
    FAA orders inspections of hundreds of Boeing 737 MAX jets over seat safety concernsNews
    |Mary Wambui
    |14 hours ago

    High Court declares shisha ban unconstitutional, stops enforcement of 2017 rules

    High Court declares shisha ban unconstitutional, stops enforcement of 2017 rulesNews
    |Carolyne Kubwa
    |13 hours ago
    Somalia opposition calls for transitional council, urges international backing amid political crisisSomalia
    |Abdirahman Khalif
    |1 day ago
    Inside agreement that eased ars ago

    County Hospitality Maritime Mombasa unveils
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Martin Akuma
    • Website

    Related Posts

    Osun State Pivots to Cultural Tourism to Drive Internal Revenue

    July 29, 2026

    How Mallorca’s Treetop Adventure Parks Are Rewriting Spain’s Overtourism Narrative

    July 29, 2026

    ‘It’s a really weird story’: F1 star Alex Albon on living next door to President Ramaphosa

    July 29, 2026
    Leave A Reply Cancel Reply

    Search
    Latest Post

    Springboks Gear Up for Argentina Test: A Prelude to New Zealand Series | Sports

    July 29, 2026

    WAFCON 2026: Debutants Malawi Shock Defending Champions Super Falcons in Five

    July 29, 2026

    ‘Don’t close the door’: Jensen Huang warns US against open-weight AI curbs after China’s Kimi K3 breakthrough

    July 29, 2026

    Osun State Pivots to Cultural Tourism to Drive Internal Revenue

    July 29, 2026

    AfDB Secures New Funding to Expand Green Transport in Africa

    July 29, 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

    Trending

    Springboks Gear Up for Argentina Test: A Prelude to New Zealand Series | Sports

    Breaking News

    WAFCON 2026: Debutants Malawi Shock Defending Champions Super Falcons in Five

    Technology

    ‘Don’t close the door’: Jensen Huang warns US against open-weight AI curbs after China’s Kimi K3 breakthrough

    Most Popular

    Travel

    Osun State Pivots to Cultural Tourism to Drive Internal Revenue

    Environment

    AfDB Secures New Funding to Expand Green Transport in Africa

    Business

    Yellow Card CEO joins global stablecoin elite as Africa pushes for bigger role in digital finance

    © 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.