Skip to content
A single player shop with a multiplayer free market (Pusher contest runner-up!)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Play it here!

Screenshot of the game

GIF of the game


Shopoji is a web game that runs in any browser. You sell your emoji stock to NPCs in the quest for more money.

As a unique twist, however, there is a free market.

The market, in this case, is the other current players. The game itself is single player, but the market is controlled by the entire playerbase.

How to Play

Once you enter the game, your initial inventory is all you'll have to work with. As more people enter the game after you, the difficulty ramps up as you'll need to make your emojis more enticing to your customers.

The Messages on the right of the screen show the latest market events. It's limited to the most recent 5.
The Global Market on the top of the screen gives you an idea for what emojis are scarce and which are in abundence (this may not line up with your shop's inventory -- that just means other people are playing!).
The rest of the screen is around your shop itself -- your inventory and your customers. Sell emojis to make money for your shop!

Each customer has a spot for you to name your price and a button to sell it to that person for that price. You can then use that money in your shop to increase your emoji inventory.

Objective: Have lots of money in your shop. There's no leaderboard -- just the endless quest for more money.

Why was this game made?

This application was developed for two reasons: 1. to win a contest and 2. because I've always wanted a single player game like this.

The contest in question was sponsored by and the details can be found here. The only requirement was to use the Pusher real-time api.

The game I wanted was Recettear but with a "real" economy. Pusher's API seemed like a great way to pull that off, because it could handle the global market while I dealt with the actual single player gameplay.

Tech Stack

  • Pusher API
  • JavaScript
    • Node.js
    • jQuery
    • MomentJS
    • vanillaJS
  • CSS
    • Bootstrap
  • HTML
  • AWS CodeStar
    • AWS CodePipeline
    • AWS CodeBuild
    • AWS CloudFormation
    • AWS Lambda
    • AWS S3
    • Probably more

Dev Tools

  • Github - Source Code
    • The only thing needed locally is to run npm i to get the 1 dependency of the project: pusher
    • Also, you'll need to set up your own Pusher project to get credentials -- you all aren't getting my app secret and whatnot
  • Webstorm IDE
  • GitKracken

Dev Blog


Possible future features

  • Have your game more affected by other players
  • Add more emojis to the marketplace with categories as well (food, tools, weapons, toys, etc)
  • Add NPCs preferences for buying things. A knight might pay more for a 🗡 but won't be apt to pay all that much extra for a 🎈
  • Add market preferences for buying things. A scarce item will sell for more than an abundant one.
You can’t perform that action at this time.