# Publishing your packages to AO Package Manager

By [BetterIDEa](https://paragraph.com/@betteridea) · 2024-06-12

---

Earlier we learnt about how to install packages, and today we will have a look at how you can publish your own package to APM, which will allow other developers to use your package 🤩

[https://mirror.xyz/0xCf673b87aFBed6091617331cC895376209d3b923/M4XoQFFCAKBH54bwIsCFT3Frxd575-plCg2o4H1Tujs](https://mirror.xyz/0xCf673b87aFBed6091617331cC895376209d3b923/M4XoQFFCAKBH54bwIsCFT3Frxd575-plCg2o4H1Tujs)

Requirements
============

To get started, there are some things it’s better to keep handy:

*   The lua source code for your package
    
*   A readme file for your package
    

You will also need $NEO tokens in your wallet or process to be able to publish packages on APM

How to get these NEO tokens you ask?
====================================

Currently, since APM is in beta, the only way to get $NEO is to reach out to us on our [discord](https://discord.gg/nm6VKUQBrA) with details of what package are you looking to publish and we will send you the required tokens.

We have not yet setup a faucet because we personally interested in learning what the publishers are publishing and support them, instead of blindly distributing tokens :)

When you get the tokens, you might want to check your balance, do so by adding this token to your ArConnect wallet

Once you do that, NEO should be visible in the Assets list along with the balance

![NEO token in ArConnect Assets](https://storage.googleapis.com/papyrus_images/c2303e625df8125621b30bc66598ce76a290b89d3a9849c41695873bdfd3fd2f.png)

NEO token in ArConnect Assets

Ready to publish!
=================

Head over to [apm.betteridea.dev](https://apm.betteridea.dev) and switch to publish tab. Here you can fill in all the details related to the package we will be publishing.

![Publish page](https://storage.googleapis.com/papyrus_images/d485000694d8c5eb2694d8766ef73da96bb1bf71bb104dff7b1d9f5ba6acdc23.png)

Publish page

*   Enter name of your package
    
*   Vendor name is optional so leave it blank
    
*   Default version is 1.0.0, will be auto filled so can leave this blank too
    
*   Enter a short description of what your package does
    
*   Paste in your repo url (bonus points if you are using [Protocol.Land](https://protocol.land/)!)
    
*   Here are 2 files that I have prepared, for readme and package source
    

![Left: readme; Right: package source](https://storage.googleapis.com/papyrus_images/8b3f5e92fe5c2de153caf32577ee3dec44df959b127009a41280f8c882b04875.png)

Left: readme; Right: package source

once I’m done filling in details and uploading the files, I can connect my wallet and hit the publish button. This will burn 10 $NEO tokens and publish the package.

![wooohooo](https://storage.googleapis.com/papyrus_images/ee4b7321d85f49823e2aa79e61376138872925f9484fca5668f0576f7166d1c0.png)

wooohooo

Once the package is published, a new tab will open with the package page :)

Checkout [sunglasses](https://apm.betteridea.dev/pkg?name=@apm/sunglasses)

![the package that we just published](https://storage.googleapis.com/papyrus_images/e20de4f0c67cdbcf6c6b1d1c1db79c6c634def8ec44ea2ecc20d4f458ac1e91a.png)

the package that we just published

Try installing the package ;)
=============================

    APM.install("sunglasses") -- replace this with your package name
    

    local sunglasses = require("sunglasses")
    sunglasses.setup("ankush")
    

![the package customises the aos prompt](https://storage.googleapis.com/papyrus_images/4ebb5323e554ea8f5732f24fd7feb209cc39d367e9ce3d84f1da17813db531c7.png)

the package customises the aos prompt

Congrats!
=========

You have successfully published your ao package 🚀

Need support?
=============

Feel free to join our discord and ask away anything you want to

[https://discord.gg/nm6VKUQBrA](https://discord.gg/nm6VKUQBrA)

---

*Originally published on [BetterIDEa](https://paragraph.com/@betteridea/publishing-your-packages-to-ao-package-manager)*
