Awesome
Emojitracker :dizzy:
Emojitracker.com tracks realtime emoji usage on Twitter.
Emojitracker is a complex project with a service-oriented architecture, and thus has now been split up into multiple repositories. This repository mainly just serves as table of contents of sorts. Major components of the project are listed below.
Note Since 2021, Emojitracker was acquired by Emojipedia, and is now maintained by them. You can find all of the repositories in the Emojitracker GitHub organization.
Architecture
Bad and somewhat outdated diagram of how the main parts fit together in production:
Core Applications
The core applications of Emojitracker. Note that while these are open source for educational purposes, they are currently all rights reserved. Please contact me directly if you want to use them for something.
- emojitrack-web Web frontend and application server.
- emojitrack-feeder Consumes the Twitter Streaming API and feeds our data pipeline.
- emojitrack-gostreamer Handles streaming updates to clients via SSE.
- emojitrack-stream-spec Defines the Streaming API spec & tests servers in staging.
- emojitrack-rest-api Defines and powers the REST API.
- emojitrack-fakefeeder Aides Emojitracker local development by emulating Feeder locally.
The core applications are now mostly located in the Emojitracker GitHub Organization, including some old deprecated stuff not mentioned above.
Libraries and Tools
Most of the generalizable and useful pieces of Emojitracker have been carved out into maintained open-source libraries. These libraries are all freely licensed (see individual repositories for details).
Emoji Encoding
- emoji_data.rb Utility library for handling the Emoji vs Unicode nightmare (Ruby).
- emoji-data-js Utility library for handling the Emoji vs Unicode nightmare (NodeJS port).
- exmoji Utility library for handling the Emoji vs Unicode nightmare (Elixir/Erlang port).
Emoji Assets
- emojistatic Generates static Emoji assets for a public CDN.
- cssquirt Embeds images (or directories of images) directly into CSS via the Data URI scheme.
Streaming
- sseserver High-performance Server-Sent Events endpoint for Go.
- sse-bench Benchmarks and load tests Server-Sent Events endpoints.
The Emojitracker APIs
Emojitracker also provides a REST API and Streaming API.
Other Information
The narrative version of how version 1.0 of this project was built is in the Medium post "How I Built Emojitracker", and the followup "How I Kept Building Emojitracker". Note however, both are now quite out of date, and do not reflect a substantial amount of change over the past few years.