Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Yet Another URL Shortener
branch: master
Failed to load latest commit information.
img CryoPNG
inc Add support to configure meta tags.
locale Version bump 2.1
user Add support to configure meta tags.
.gitignore Fix #17: New demo site.
api.php Don't fail miserably when there is no configuration file yet
casimir.doap Fix #17: New demo site.
htaccess First commit
index.php Add CAPTCHA support using reCAPTCHA.
screen.css Fix error/success message overlapping logo.
stats.php Add localization support (i18n).
tools.php Add localization support (i18n).

Yet Another URL Shortener (or Shrinker) is inspired by — and tries to find its way between — both lilURL and 's sfShortUrlPlugin, the first lacking some essential features and the later needing a whole symfony environment, as the location implies. is both available online at and as a download for self hosting.

It only needs PHP and MySQL to run. Just install it, following the instructions in the readme file, and enjoy it!

The development is hosted on GitHub, so you can fork it and help me enhance it at will!

Disclaimer: I didn't try to follow any PHP golden development rules, it just had to work as I needed.

Follow on Twitter to be notified of new releases or ask for help.


See the included file.


Database creation

Create these tables in your MySQL database:

CREATE TABLE `casimir` (
  `short_url` varchar(50) NOT NULL DEFAULT '',
  `long_url` text NOT NULL,
  `creation_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `last_use_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `uses` int(11) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`short_url`)

CREATE TABLE `casimir_stats` (
  `short_url` varchar(50) NOT NULL default '',
  `use_date` timestamp NOT NULL default '0000-00-00 00:00:00'


Copy user/casimir-conf.php.example to user/casimir-conf.php and edit the configuration settings.

Rename htaccess to .htaccess according to your settings.


Optionnaly, you can add

  • a user/footer.php script that will be added after's footer
  • a user/screen.css stylesheet that will be loaded after's one
Something went wrong with that request. Please try again.