---
layout: default
title: Developer Information
---

<div class="w-full flex flex-row justify-center">
  <div class="w-full lg:w-1/2">

    <div class="w-full p-8 flex flex-col">
      <div class="w-full pt-4">
	<p>
	  Moxxy is fully open source. You can find the source code <a class="text-sky-400" href="{{ site.sourceUrl }}">on Codeberg</a>. Additionally, the code is
	  mirrored <a class="text-sky-400" href="{{ site.githubMirrorUrl }}">on GitHub</a>.
	</p>

	<p class="pt-1 pb-4">
	  Feel free to join the <a class="text-sky-400" href="{{ site.generalMuc }}">general chat</a> or the <a class="text-sky-400" href="{{ site.developmentMuc }}">developer chat</a> with your favourite XMPP client.
	</p>
      </div>
      <h1 class="text-3xl font-bold">Libraries</h1>

      <p class="pb-4">
	Moxxy is built from various smaller libraries that are custom-made for this purpose. Some of them are for general usage, some are specific to the use case of building Moxxy.
      </p>

      <table class="table-fixed">
	<thead class="bg-gray-100">
	  <tr>
	    <th class="text-left px-1">Library</th>
	    <th class="text-left px-1">Description</th>
	    <th class="text-left px-1">Moxxy specific</th>
	  </tr>
	</thead>
	<tbody class="divide-y divide-blue-200">
	  {% for library in site.developers.libraries %}
	  <tr>
	    <td class="pr-4">
	      <a class="text-sky-400" href="{{ library.url}}">{{ library.name }}</a>
	    </td>
	    <td class="pr-4">{{ library.desc }}</td>
	    <td class="pr-4">{% if library.specific %}Yes{% else %}No{% endif %}</td>
	  </tr>
	  {% endfor %}
	</tbody>
      </table>
    </div>

    <div class="w-full p-8 flex flex-col">
      <h1 class="text-3xl font-bold">Custom XEPs</h1>

      <p class="pb-4">
	Moxxy currently implements some custom XMPP protocols to provide additional functionality. These are experimental and are intended to be upstreamed at some point.
      </p>

      <table class="table-fixed">
	<thead class="bg-gray-100">
	  <tr>
	    <th class="text-left px-1">Name</th>
	    <th class="text-left px-1">Description</th>
	  </tr>
	</thead>
	<tbody class="divide-y divide-blue-200">
	  {% for xep in site.developers.customXeps %}
	  <tr>
	    <td class="pr-4">
	      <a class="text-sky-400" href="{{ xep.url }}">{{ xep.name }}</a>
	    </td>
	    <td class="pr-4">{{ xep.desc }}</td>
	  </tr>
	  {% endfor %}
	</tbody>
      </table>
    </div>
  </div>
</div>