Alan, I just had to go through this again as my GitHub Desktop client s the bed and took down all my branches with it...anywho, the process is not that difficult once you know what you're doing...like most things. Here's my short hand tips to get you going. If you've not done so already, download GitHub Desktop and install it on your machine. Also, create a GitHub account if you've not done so already. Browse to the Roll20 GitHub repository here and click the green, jolly, candy-like Fork button. This should forward the request to your GitHub Desktop client and start to download of 1+GB of character sheets you will never use. I know it seems superfluous but it's the way GitHub was designed to work. Consider it the cost of doing business. ;) After the fork finishes downloading, you may create your first branch. A branch contains your current work, and if it is your first branch then you need to include the 4 required files: html, css, sheet.json. preview.jpg. The html and css files should have the same name of your sheet, like mysheet.html and mysheet.css. The sheet.json and preview.jpg filenames should be those exactly (more on those later). Create your first branch! This will be your main branch (more on this later). In your forked Roll20 repository, create a new folder named after your character sheet. Copy the 4 required files into the folder. You should see the GitHub Desktop client detect the changes. Commit the changes, publish your branch, then create a pull request (PR). GitHub Desktop will walk you through this one step at a time. Just be patient! Your browser should popup and navigate to GitHub where you'll complete the PR. Name the PR after your character sheet and append the title with the type of PR it is: new sheet, bug fix, new feature. Fill out the PR form, it is broken up into 3 sections. You'll want to middle section for new sheet, you can delete the rest. Place an x between the [ ] for each item you've completed (make sure there are no spaces, such as [x]. Then submit it! Note: your new sheet will fail the automatic checks...don't fret, they all do. Other Things sheet.json documentation here ; also peruse through your forked Roll20 repository to see what others have done. You can make this very simple, but at some point you should spend some time to deep dive into understanding how this works as it can be used by GMs to set default settings for new sheets. This is also how people can find you if they encounter bugs and need your help publishing a fix. preview.jpg should just be a screen capture of your character sheet. Consider that you will work with 3 types of branches: 1) your main/development branch, the one you will initially submit to get your character sheet on Roll20 (call this something like mysheet_main or mysheet_dev); 2) when you need to fix bugs, create a new branch based on your main branch, call it something like mysheet_rollButtonFix; 3) when you're working on a new feature for your sheet, again create a branch based on your main branch and call it something like mysheet_newStatsUI. When you are finished fixing a bug or complete a feature, merge the bug/feature branch back into your main branch and publish/PR your main branch (not the bug/feature branch!). If you're working on a feature in your feature branch but find a bug you need to fix, create a new bug fix branch and when complete merge the bug fix branch into your main and feature branches to make sure your code is consistent. Hope that makes sense. Use a sandbox to do your dev work in, not a game. This will save you so much time and headache, but before you submit your PR and after it is merged, you should test your changes in a game for sanity. Strang things happen that aren't always apparent in a sandbox.