# TippyTop in Activity Stream¶

TippyTop, a collection of icons from the Alexa top sites, provides high quality images for the Top Sites in Activity Stream. The TippyTop manifest is hosted on S3, and then moved to Remote Settings since Firefox 63. In this document, we’ll cover how we produce and manage TippyTop manifest for Activity Stream.

## TippyTop manifest production¶

TippyTop manifest is produced by tippy-top-sites.

# set up the environment, only needed for the first time
$pip install -r requirements.txt$ python make_manifest.py --count 2000 > icons.json  # Alexa top 2000 sites


Because the manifest is hosted remotely, we use another repo tippytop-service for the version control and deployment. Ask :nanj or :r1cky for permission to access this private repo.

## TippyTop manifest publishing¶

For each new manifest release, firstly you should tag it in the tippytop-service repo, then publish it as follows:

### For Firefox 62 and below¶

File a deploy bug with the tagged version at Bugzilla as Activity Streams: Application Servers, assign it to our system engineer :jbuck, he will take care of the rest.

### For Firefox 63 and beyond¶

Activity Stream started using Remote Settings to manage TippyTop manifest since Firefox 63. To be able to publish new manifest, you need to be in the author&reviewer group of Remote Settings. See more details in this mana page. You can also ask :nanj or :leplatram to get this set up for you. To publish the manifest to Remote Settings, go to the tippytop-service repo, and run the script as follows,

# set up the remote setting, only needed for the first time
$python3 -m venv .venv$ source .venv/bin/activate
$pip install -r requirements.txt # publish it to prod$ source .venv/bin/activate