publify is a free, open source blogging & personal sites project written in Less and released under MIT. It has 1,853 GitHub stars, 3,627 forks and 86 open issues, and was last pushed 19 hours ago. On this registry it ranks #17 of 25 tracked projects in Blogging & Personal Sites, with 5 head-to-head comparisons available.

What is publify?

What it is

Publify is a self-hosted web publishing platform built on Ruby on Rails. It is the project formerly known as Typo, and it provides a blogging engine plus a small message system connected to Twitter.

The problem it addresses is publishing on your own site. It follows the IndieWeb pattern of self-hosting your web site, publishing on your own site, and syndicating content elsewhere, so an operator can run the primary blog on infrastructure they control.

Key capabilities

  • Publify provides a classic multi-user blogging engine for publishing and managing blog content on a self-hosted Rails application.
  • It includes a small message system connected to Twitter, extending the platform beyond long-form posts into short messages.
  • It supports text filters such as Markdown, SmartyPants, @mention to link, and #hashtag to link.
  • It offers a widgets system, a plugin API, and custom themes for extending and styling the site.
  • It advertises advanced SEO capabilities for blogs and personal sites that need search visibility.
  • It is multilingual, with translations listed for English, French, German, Japanese, Simplified Chinese, Italian, Dutch, Polish, and Romanian.

Who uses it and how

  • Individuals and small teams install a stable release and run Publify with MySQL, PostgreSQL, or SQLite3 to host their own blog.
  • Developers use the plugin API, widgets system, and custom themes to adapt the publishing experience to a specific site.
  • Operators deploy to servers with tools such as Capistrano, or to Heroku after configuring Amazon S3 storage, a Procfile, and environment variables.

Getting started

Installation typically uses a stable release or a clone, then bundle install, database setup and migration tasks, asset precompilation, and rails server locally; a hosted demo at publify-demo.fly.dev resets hourly. Server deployment can use Capistrano, and Heroku deployment requires Amazon S3 configuration, Gemfile changes, a Procfile, and SECRET_KEY_BASE.

When to use it — and when not to

Publify is suitable when an operator wants a self-hosted Rails publishing platform with a blog engine, Twitter-connected short messages, themes, plugins, and multilingual support. It is less suitable when an operator wants a managed service or current Rails versions, because it requires CRuby 2.5, 2.6, or 2.7 and Rails 5.2.x, and the master branch is not recommended for production. A self-hoster must still operate the database, the JavaScript runtime for assets, ImageMagick, secret keys, and, on Heroku, Amazon S3 storage and database configuration.

project readme (upstream, from github) — read inline

Publify

The Ruby on Rails publishing software formerly known as Typo

Build status Code Climate Reviewed by Hound

What's Publify?

Publify is a simple but full featured web publishing software. It's built around a blogging engine and a small message system connected to Twitter.

Publify follows the principles of the IndieWeb, which are self hosting your Web site, and Publish On your Own Site, Syndicate Everywhere.

Publify has been around since 2004 and is the oldest Ruby on Rails open source project alive.

Features

  • A classic multi user blogging engine
  • Short messages with a Twitter connection
  • Text filters (Markdown, SmartyPants, @mention to link, #hashtag to link)
  • A widgets system and a plugin API
  • Custom themes
  • Advanced SEO capabilities
  • Multilingual : Publify is (more or less) translated in English, French, German, Danish, Norwegian, Japanese, Hebrew, Simplified Chinese, Mexican Spanish, Italian, Lithuanian, Dutch, Polish, Romanian…

Demo site

You can give Publify a try at the demo site.

The demo is reset every hour.

Install

Download

You can download the latest Publify stable release.

If you want to run the master branch, you can clone the Publify repository. However, random things may be broken there at any time, so tread carefully!

Running the master branch in production is not recommended!

Install Publify locally

To install Publify you need the following:

  • CRuby (MRI) 2.5, 2.6 or 2.7
  • Ruby on Rails 5.2.x
  • A database engine, MySQL, PgSQL or SQLite3
  • A compatible JavaScript installation for asset compilation. See the execjs readme for details.
  • ImageMagick (used by mini_magick).
  1. Unzip Publify archive
  2. Rename database.yml.yourEngine as database.yml
  3. Edit database.yml to add your database name, login and password.
$ bundle install
$ rake db:setup
$ rake db:migrate
$ rake db:seed
$ rake assets:precompile
$ rails server

You can now launch you browser and access 127.0.0.1:3000.

Install Publify on a server

You can use your preferred installation method (e.g., Capistrano) to install Publify on a server. You will also need to set up the environment so it contains at least SECRET_KEY_BASE. Your web server may allow you to set this, or you can consider using a tool like dotenv.

Install Publify on Heroku

In order to install Publify on Heroku, you’ll need to do some minor tweaks.

First of all, you need to set up Amazon S3 storage to be able to upload files on your blog. Set Heroku config vars.

heroku config:set PROVIDER=AWS
heroku config:set AWS_ACCESS_KEY_ID=<your_aws_access_key_id>
heroku config:set AWS_SECRET_ACCESS_KEY=<your_aws_secret_access_key>
heroku config:set AWS_BUCKET=<your_aws_bucket_name>

Next, you need to update Gemfile. You should remove the mysql2 and sqlite3 gems, set the Ruby version, and add rails_12factor. The top of your Gemfile should look something like this:

source 'https://rubygems.org'

ruby '2.7.4' # Or whichever version you're running
gem 'pg'
gem 'rails_12factor'

gem 'rails', '~> 5.2.6'

Next, to regenerate the Gemfile.lock, run:

bundle install

Commit your updated Gemfile and Gemfile.lock:

git commit -am 'Update bundle for Heroku'

Create a file Procfile containing the following:

web: bundle exec puma -C config/puma.rb

Commit your new Procfile:

git add Procfile
git ci -m 'Tell Heroku how to run Rails'

You also need to set Rails' secret key base. Generate one using rake secret, then set the Heroku config var:

heroku config:set SECRET_KEY_BASE=<your_generated_secret>

Push the repository to Heroku.

When deploying for the first time, Heroku will automatically add a Database plugin to your instance and links it to the application. After the first deployment, don't forget to run the database migration and seed.

heroku run rake db:migrate db:seed

If application error has occurred after migration, you need to restart Heroku server.

heroku restart

Resources

Maintainers

Current Maintainers

Frédéric de Villamil blog: http://t37.net

Matijs van Zuijlen blog: http://www.matijs.net/blog/

Thomas Lecavelier blog: http://blog.ookook.fr/

Yannick François blog: http://elsif.fr

Previous Maintainers & Notable Contributors

Cyril Mougel blog: http://blog.shingara.fr

Davide D'Agostino blog: http://www.lipsiasoft.com

Piers Cawley blog: http://www.bofh.org.uk/

Scott Laird

Kevin Ballard blog: kevin.sb.org

Patrick Lenz

Seth Hall

And many more cool people who’ve one way or another contributed to Publify.

Original Author: Tobias Luetke blog: http://blog.leetsoft.com/

Enjoy, The Publify team

Frequently asked questions

Is publify free to use?

publify is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does publify do?

A self hosted Web publishing platform on Rails.

What is publify written in?

publify is primarily written in Less. Its source is publicly available at https://github.com/publify/publify, and it has 1,853 GitHub stars.