Docs

Review Process

Overview

Every Pokki app uploaded undergoes a review process before it can be distributed to users. You should only upload complete and functioning apps that are ready for distribution. This applies to both new apps and updates to existing apps. The review process is carried out by the Pokki Policy Team to ensure that all Pokki apps meet the requirements set forth in this document.

The review process generally takes a few days and you will be notified via email of the outcome. If your app does not meet the requirements, the Policy Team will provide you with information on what issues must be addressed to meet the requirements.

The Review Process exists to ensure an excellent user experience across all Pokki apps while protecting users’ rights. While this document contains many of the areas evaluated and attempts to convey the spirit of the Review Process, it should not be considered a complete and comprehensive list. Additional policies and restrictions may apply, including without limitation the Pokki Content Policies set forth at http://www.pokki.com/r/?content-policy As the Review Process matures we will continue to update this document.

Requirements

Design and Implementation

  • Window size. Your app must support a minimum size of 1300 pixels wide and 680 pixels high. This size supports the majority of desktop and laptop displays.
  • Scrollbars. Native scrollbars must be styled using CSS to ensure your app feels more like an application. We recommend styling scrollbars similar to mobile applications, leaving only the tracking piece as visible.
  • Icons. Your app’s icons must be square and completely opaque. The required sizes are 19x19, 29x29, 42x42, and 256x256.
  • Badges. Badges may only be used to inform users that something relevant has occurred. Users should have a clear understanding of what is triggering the badge and how they may clear it. Arbitrarily changing the badge or engaging in any type of spammy behavior with the badge is not allowed. Badges should be controlled by the background page so they continue to update even when your app’s window is not loaded.
  • External links. External links should open the user’s default browser using pokki.openURLInDefaultBrowser(). It should be clear to a user, either implied or explicitly, that this link will open their browser. Links should not attempt to change the location of the app’s window page.
  • Hover states. Buttons and links should have hover states and the mouse cursor should become a pointer to properly inform the user that clicking this element will result in an action.
  • Loading indicators. Users should be visually informed when an app is loading or processing data and there’s a perceivable delay to the user. For instance using a loading gif or ‘Loading…’ text while your app’s data is loading.
  • Limiting user select. Users should not be able to drag and select UI elements in your window. Only text that users would want to be able to select should be selectable. You may use JavaScript or CSS (user-select:none) to disable selection of certain elements.
  • Limited usage of iframes. Your app may only use iframes when special circumstances require it. Apps that simply load a website using an iframe will not be approved.
  • WebSheets for secure login. Your app must use WebSheets for secure login whenever possible, such as any web service that supports oAuth. WebSheets should not be used to load websites for browsing.
  • Direct login. Only in the event a web service cannot use WebSheets for secure login may a direct HTTP method be used. It must be made clear to the user what service they are logging into. The user’s login data may not be stored or sent to any other web service.
  • Securely storing user data. Any data associated with a user or their session that is stored in local storage must be scrambled.
  • Sign out context-menu item. If your app allows a user to login you must create a context-menu item that allows the user to sign out. The language of this button should be “Sign out” or “Log out”, e.g. “Log out from Twitter”. Selecting this context item should log the user out.
  • Network connection issues. If your app cannot connect to the internet or is experiencing any kind of network issue this information must be communicated to the user. Your app should gracefully recover from these issues when network connectivity returns.
  • Extraneous files. When packaging your app be sure to remove unused and unnecessary files such as PSDs, source control files, deprecated files, etc.

User Experience

  • Obvious function. Your app must be readily understandable to an average user. It should be clear to a user what your app does and how they can interact with it.
  • Defect free. Your app must be free of any major defects that a user may run into. If your app has a major defect or many small defects it may not be approved.
  • Speed. Your app should appear snappy and quick from the perspective of a user. Your app’s window should display to the user immediately after they click on your icon, even if it must load data and you have to display a loading screen for a moment.
  • System performance. The user’s system performance and stability cannot be substantially affected by your app.
  • Maintain state. Your app should intelligently save state such that a user is not confused after your app is unloaded and they go back to interact with it. Ideally it should be nearly imperceptible to the user when your app has been loaded or unloaded.
  • Muting and restoring audio. Your app must mute any audio it's playing when the window closes. You may restore the audio when the window opens. This does not apply when the audio is designed to play while the app is hidden, eg. music and radio players.
  • Pausing computationally intensive tasks. Your app must not conduct computationally intensive tasks when the window is minimized. If your app is primarily using a 2D canvas or WebGL, eg. a game, you must pause the rendering while the window is minimized.
  • Detecting compatible WebGL support. If your app uses WebGL, it must detect if the user has the appropriate hardware support. If the user does not have adequate support, your app should gracefully fail.

Advertising

  • Transparency. Ads in your app must be clearly labeled as such, whether a sponsored listing or a leaderboard. The ads must be honestly representative of the service or product they are promoting and clicking on the ad should take the user only to a single page for this product or service.
  • Balance. Ads within your app should not greatly hinder or interfere with the utility of your app. Your app must continue to be more than simply an advertising vehicle.
  • Ads only in the window. Ads may only appear within in your app’s window. You cannot open the user’s browser to display ads. You can however open the user’s browser when the user clicks on an ad.
  • No malicious ads. Any ad that attempts to deceive a user or violates any of the content requirements below is not allowed.

Content

  • Intellectual property. Don’t infringe on the intellectual property rights of others including trademarks, patents, copyrights and other proprietary rights.
  • Personal information. We do not allow the unauthorized publishing of people’s private or confidential information.
  • Deceptive behavior. Don’t pretend to be someone else or something else. Do not mimic functionality or warnings from a user’s browser or operating system. Do not attempt to mimic the Pokki brand or functionality.
  • Sexually explicit material. We do not allow material that contains nudity or graphic sex acts. We also do not allow content that drives traffic to sexually explicit material.
  • Violence and bullying. We do not allow depictions of gratuitous violence or material that harasses other users.
  • Hate speech. We do not allow material that promotes hatred toward any group of people.
  • Gambling. We do not allow gambling content or services including but not limited to casinos, sports betting or lotteries.
  • Malicious. We do not allow the transmission of viruses, worms, spyware, phishing scams, spam or any other items of a destructive nature.