<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta charset="utf-8">
        <title>Get help from companies | Apache Wicket</title>
        <meta name="viewport" content="width=device-width, initial-scale=1" />

        <link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon" />
        <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
        <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />

		<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>

    </head>

    <body class="">
        <div class="header default">
    <div class="l-container">
<nav class="mainmenu">
    <ul>
		<!-- /start/quickstart.html || /help/support -->
    	<li class=""><a href="/start/quickstart.html">Quick Start</a></li>
		<!-- /start/download.html || /help/support -->
    	<li class=""><a href="/start/download.html">Download</a></li>
		<!-- /learn || /help/support -->
    	<li class=""><a href="/learn">Documentation</a></li>
		<!-- /help || /help/support -->
    	<li class=""><a href="/help">Support</a></li>
		<!-- /contribute || /help/support -->
    	<li class=""><a href="/contribute">Contribute</a></li>
		<!-- /community || /help/support -->
    	<li class=""><a href="/community">Community</a></li>
		<!-- /apache || /help/support -->
    	<li class=""><a href="/apache">Apache</a></li>
    </ul>
</nav>
        <div class="logo">
    <a href="/"><img src="/img/logo-apachewicket.svg" alt="Apache Wicket"></a>
</div>
    </div>
</div>
<main>
    <div class="l-container">
        <header class="l-full preamble">
            <h1>Get help from companies</h1>
            <h2>When you can't get help quick enough or you need direct support</h2>
        </header>
        <section class="toc left">
            <div id="toc" class="toc"><div id="toc-title"><h2>Table of Contents</h2></div><ul><li class="toc--level-1 toc--section-1"><a href="#commercial"><span class="toc-number">1</span> <span class="toc-text">Commercial Wicket Support</span></a><ul><li class="toc--level-2 toc--section-2"><a href="#finding-a-wicket-service-provider"><span class="toc-number">1.1</span> <span class="toc-text">Finding a Wicket Service Provider</span></a></li><li class="toc--level-2 toc--section-3"><a href="#registering-as-a-wicket-service-provider"><span class="toc-number">1.2</span> <span class="toc-text">Registering as a Wicket Service Provider</span></a></li></ul></li></ul></div>
        </section>
        <section>
            <h2 id="commercial">Commercial Wicket Support</h2>
<p>The Wicket community is not only supported by volunteers but several
individuals and companies provide professional support for Wicket
application development in many countries around the world.</p>
<h3 id="finding-a-wicket-service-provider">Finding a Wicket Service Provider</h3>
<p>The linked page below lists all companies that provide commercial
services for Wicket which ranges from training courses, consultancy and
even project development.</p>
<div class="l-button-table">
    <div class="l-one-third">
        <div class="button-bar">
            <a class="button" href="https://cwiki.apache.org/confluence/display/WICKET/Companies+that+provide+services">
                <i class="fa fa-group"></i><br />
                Go to the wiki
            </a>
        </div>
    </div>
</div>
<p>Being mentioned here is not an indication of official “endorsement” by
the Apache Software Foundation, but is instead provided as a public
service. This list is in no way a complete listing of the many
organizations providing either free or for cost support for ASF
projects. If you would like to be added to this list, or removed, sign
up for the wiki and add yourself to the list.</p>
<h3 id="registering-as-a-wicket-service-provider">Registering as a Wicket Service Provider</h3>
<p>If you are a service provider specializing in Wicket
application development you are welcome to add yourself to this wiki
page (a registered account is required).</p>
<p>We reserve the right to remove your listing if it is deemed
inappropriate.</p>
        </section>
    </div>
</main>
        <footer>
            <div class="l-container">
    <div class="left">
        <img src="/img/asf_logo_url.svg" style="height:90px; float:left; margin-right:10px;">
        <div style="margin-top:12px;">Copyright © 2020 — The Apache Software Foundation. Apache Wicket, Wicket, Apache, the Apache feather logo, and the Apache Wicket project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div>
    </div>
</div>
        </footer>
    </body>

</html>
