An RSS-based, passive, load-balanceable distributed Twitter clone (server-side).
PHP CSS ApacheConf
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
avatars
.htaccess
README.md
action_404.inc.php
action_deletestatus.inc.php
action_finish_follow.inc.php
action_finish_install.inc.php
action_finish_profile.inc.php
action_finish_unfollow.inc.php
action_follow.inc.php
action_home.inc.php
action_importrss.inc.php
action_install.inc.php
action_microblog.inc.php
action_newstatus.inc.php
action_profile.inc.php
action_reply.inc.php
action_repost.inc.php
action_timeline.inc.php
action_unfollow.inc.php
begininstall.inc.php
chirp_install.php
chronjob.php
database.inc.php
format_html.inc.php
format_rss.inc.php
importrss.inc.php
index.php
settings.ini
styles.css
upgrade.inc.php
usermanagement.inc.php

README.md

Chirp

A reference-implementation of a web interface for an RSS-based, distributed Twitter clone.

Installation

Create a MySQL database and make note of its server domain name, username, password and database name. Upload the chirp_install.php file to your server, so it resides at the root of a domain or sub-domain. Run it, and it will download Chirp into a "chirp" subfolder and create a .htaccess file for you, then let you move on to setting up your database and a username & password for using Chirp. Run the chirp_install.php file again whenever you wish to update to the newest version of Chirp.

Usage

You MUST install this on one domain or sub-domain at root level (the domain name will be your user name). This is then equivalent to one "Twitter account" for one person, and will import statuses from other people whose RSS feeds you subscribe to ("follow").

To follow someone, use the Follow link on your server and type in their domain name (without the "http://"!) (It will then know to look for an RSS feed on that domain, at /.well-known/microblog.rss). After that, be sure to immediately click "Refresh Timeline" so you see new statuses from any accounts you follow.

To set up your own avatar icon, copy a square image into the "avatars" folder on your server, then you can select it in your profile. Currently there's no interface for uploading images.

What's this good for?

The idea is to lay down a simple, open exchange format for microblogs like App.net and Twitter, RSS, that can easily be load-balanced via Akamai or similar services. Everyone who can put an RSS file on a server can have a microblog. Everyone can follow them, whether they host it themselves or have one at Twitter.

For most users, their ISP or web hoster or one of the big services would host the feed, but it won't matter, because they're all interoperable. If Warner Bros. want to host Robert Downey Jr.'s statuses on their server, they can. If a user wants to use an iPhone client application to post, they can.

Since the user names are domain names, existing services can easily be integrated by using subdomains. E.g. @uliwitness could map to uliwitness.twitter.com.

To make this more likely, this code is under a very permissive license. Everyone can grab this code and just use it. Go ahead.

License

Copyright (c) 2012 by Uli Kusterer

This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.

Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:

	1. The origin of this software must not be misrepresented; you must not
	claim that you wrote the original software. If you use this software
	in a product, an acknowledgment in the product documentation would be
	appreciated but is not required.
	
	2. Altered source versions must be plainly marked as such, and must not be
	misrepresented as being the original software.
	
	3. This notice may not be removed or altered from any source
	distribution.