Skip to main content

Spicetify's GitHub Organization

ยท 2 min read
Afonso Jorge Ramos
Maintainer of Spicetify

Greetings Spicetifiers! ๐Ÿ”ฅ๐ŸŽถ

Our community has been growing a lot lately and some of the growing pains that we've had has been the information segmentation. This documentation website already tried to tackle that, as well as our Discord server. However, we've expanded through other projects other than the CLI, and, as such, we are happy to announce that we are now officially a Spicetify Organization on GitHub! ๐ŸŽ‰

Essentially, this will not affect any of the inner workings of the community or Spicetify, but it will make it easier for you to get in touch with the community and to help us grow. ๐Ÿ™Œ You can find all our projects under this new GitHub organization, and we will be adding more projects as we go along.

We hope that Spicetify will continue to be a great tool for everyone, and we are looking forward to enhancing it with new features and improvements. ๐Ÿ™Œ

Additionally, we've also created an Open Collective page for whoever has the means to and wants to financially help our community. For now, we do not know what will be the adhesion to this, therefore we don't have many plans on how to split these donations, however, helping to pay the domain already helps! What you can be sure of, is that everything will be decided by the community, and all decisions will be as transparent as possible.

Open Collective

Your First Extension

ยท 2 min read
Charlie S
Co-Developer of Marketplace & Contributor

So you want to make an extension....โ€‹

First step:โ€‹

Start out by setting up your environment: In terminal or powershell, run spicetify enable-devtools If at any point devtools stops working, simply run this command again. Ensure that you have a text editor or IDE ready.

Second step:โ€‹

Firstly, run spicetify config-dir, this should open up your default file manager. Secondly, open the Extensions folder and create a file titled extension.js, or whichever title you choose, for this tutorial we will be using extension.js for consistency purposes. Finally, open this file, and paste the following code:

// The async modifier allows for the user of await, which converts a promise into an object, when not using await, async is not necessary.
(async function extension() {
// The following code segment waits for platform to load before running the code, this is important to avoid errors. When using things such as Player or URI, it is necessary to add those as well.
const { Platform } = Spicetify;
if (!Platform) {
setTimeout(extension, 300);
console.log('Hello world!');

Next, run spicetify config extensions extension.js, and follow with spicetify apply. Open up the Spotify console, which can be done via right clicking anywhere on the page, however, there are some places that Spotify overrides this right click; if that is the case, right click somewhere else. Then, click Inspect Element, and open the console tab in the window that just popped up. You should see your new "Hello World" displayed!

Third Step:โ€‹

Let's finish up this blog post by creating a message that welcomes the user on load. For that, you can paste the following code segment in place of the console.log("Hello world!"); statement:

const user = await Spicetify.Platform.UserAPI.getUser();
Spicetify.showNotification(`Hello ` + user.displayName);

First Blog Post

ยท 2 min read
Afonso Jorge Ramos
Maintainer of Spicetify

Greetings Spicetifiers! ๐Ÿ”ฅ๐ŸŽถ

First and foremost, thank you all very much for your continued support of this project! The community that we have gathered on Discord over the past months has been amazing, and I would like to thank every single one of you that made this possible.

Let's get our hands dirty now. Over the last few months, we've had a few issues with Spotify and a few of their breaking changes. To add to the fire, during all of this turmoil, the Spicetify Developer Community was weak, we had very little support outside of the theming community, and there was an overwhelming amount of duplicated issues on GitHub because of this.

Let's be honest, our wiki was not the most up-to-date, but at the same time, we also did not have the right tools to enable the community to contribute to it, as it was hosted as a GitHub integrated wiki. As such, we have decided to create this little documentation website that, we hope, will facilitate its maintainability and give power to the community in how they want the project to present itself to the world.

Hope you can join us in this journey and thank you for coming on the ride! ๐Ÿš€

PS: Yes, this design is not final, please do contribute and help make it more appealing!