Last year, I wrote about a side project of mine that I was working on at the time called “Facebook Desktop“. In short, it is a real-time notification engine built for Facebook! I built it because I felt it filled a need that Facebook didn’t fill…
It kept me connected to Facebook (and my friends) without having to
keep a browser window opened to Facebook.com the entire time.
It ended up becoming quite a popular project, amassing over 500,000 downloads, over 2 million API calls PER DAY, written about by numerous blogs and publications around the world, used in over 30 countries, and localized into 20 different languages, all in the short 14 months since it was released! Low-and-behold, Facebook had issue with my app (I think because I called it “Facebook Desktop”) and so they “asked” me to shut it down. Rather than argue with the well-known
startup company, I decided to comply. It was a wild ride, and I learned a LOT (perhaps I’ll write another blog post about this), but as the saying goes, “All good things must come to an end”.
However, there is always a silver lining! To build Facebook Desktop, I had to write a lot of custom code (obviously). I’ve already open-sourced a lot of the individual components that I wrote, including…
- ActionScript OAuth 2.0 Library*
- ActionScript Notification Engine
- ActionScript Relative Date Library*
- ActionScript Diff Library*
But, now that I’m moving on to other things, I’ve decided to go ahead and open-source the entire project! Just as I’ve done with all of my other open-source projects, I’ve made Facebook Desktop available on GitHub. You can download it and run it out-of-the-box!
Facebook Desktop is a notification engine that provides real-time updates of your Facebook friends straight to your desktop, without requiring a browser! Here is a short list of some of the features that I’ve built in…
- Real-time notification of Facebook activity
- Language support for 20 different languages!
- User-presence logic that detects when to display notifications
- Operating-system detection that adapts interface to match native applications
- Smart notification engine, including adaptive repositioning, individual notification settings, variable display length, and support for custom styling
- Persistent user-settings, including preferred language, display length, appearance, and icon-click action
- Ability to fully filter notifications by source and action
- Support for updating status
I’ve released the code under the Apache License, Version 2.0 and made it all available on GitHub! Please, fork and extend!
This marks the end of a fun-filled side-project for me, but perhaps the start for someone else :D As always, I love hearing from you so let me know what you think! Until next time, happy coding =)