An open source to-do application for bookmarks.
We offer this source code for Unmark completely free. We do so in hopes that Unmark will live on for many years even if we stop maintaining it. To support its further development please consider subscribing to the hosted version at unmark.it (which is free with an option to pay). Or, you can simply donate via Paypal. Or you can contribute to the code.
Here are some useful links:
- Download the latest release - Grab the latest and greatest version of Unmark.
- Unmark.it - Sign up for free to the hosted version.
- Unmark Help - Get a little help with Unmark.
We want you to have a good experience using Unmark so we do offer some support via Slack, and Twitter. Follow @unmarkit on Twitter and send us a tweet. Or, send us a tweet to get access to our Slack channels.
The local-version of Unmark is recommended for at least intermediate users so the instructions are rather light on detail. However, if you need assistance beyond what is provided please ping us on Twitter. Alternatively, if you have issues setting up Unmark after following the instructions, we recommend looking through the issues on GitHub to see how others have solved their problems. Or, to create your own issue.
- PHP 5.4 or greater with gettext extension. Need help? Try this. (we have every intention of removing the need for gettext extension soon)
- mySQL 5.5 or greater
- Download the latest release or clone the repo.
- Unpack the archive
database-sample.phpwhere it is if you cloned the repo)
- Create a database for Unmark to use in mySQL (may we recommend "unmark" as a database name?)
- Fill in proper database credentials in
- Optionally: Update your HOSTS file and create a virtual host for Unmark. We use "unmark.local" most of the time.
- Point your browser to
- From there Unmark will set up the proper database tables and then ask you to register your username with the app
- Optional: Change base_url in config.php to your local URL. This will help build proper URLs in some cases.
Note: Using Nginx rather than Apache? Follow these Nginx configuration instructions.
Upgrading to the latest release
- Download the latest release.
- Replace all files (keeping your local
- Optional: If you changed base_url in config.php to your local URL make this update
- Navigate to
- Unmark will then make any needed database updates
- That's it!
Unmark currently supports importing from Unmark's hosted version, any self-hosted version of Unmark, Readability, Pinboard, Delicious, and many other services. However, to ensure this works properly be sure that your PHP.ini file's "max_upload_size" setting is larger than the file you're trying to import.
How to contribute to Unmark
One major way you can contribute is to report any issues you find with Unmark on Github and being as verbose as you can be for us to replicate the issue. This goes a long way in making Unmark better for everyone on every type of set up.
Another way is to contribute your own code via Pull Requests. Here are some notes on how to do that.
- Fork the repository on GitHub into your own account
- Create your own branch
git checkout -b your-branch-name
- Update your code and push those code changes back to your fork's branch
git push origin your-branch-name
- Submit a Pull Request using that branch
This makes it easy for us to test your code locally and also allows the community to have a discussion around it.
Creating a release
- Be sure that index.php's default environment variable is "production"
- Be sure version variable in config.php is accurate
- Compile, check-in, and commit compiled assets by running Grunt
- Merge into master
- Push master to Github
- Tag release via Github
Unmark was originally created by Colin Devroe. It was a side-project called Nilai (the Indonesian word for "mark") and rebuilt from the ground up by Plain which included Jeff Johns, Kyle Ruane, Tim Whitacre, Chris Fehnel, Jakub Jakubiec and Colin Devroe.
Now it is being maintained by Colin and Kyle and the community. Please consider donating, subscribing to the hosted version, or contributing code in order to keep Unmark alive and well.