Ruby HTML JavaScript
Clone or download
Failed to load latest commit information.
commands Improve rake tasks as pakyow commands Mar 13, 2018
docs Tweak wording and voice Dec 4, 2016
img Initial rework of Documentation Style Guide. Moved parts of the docum… Sep 3, 2016
lib fallback_env -> default_env Jul 19, 2018
pakyow-assets Simplify asset config options Jul 19, 2018
pakyow-core Set connection error before triggering event Jun 29, 2018
pakyow-data Add unsubscribe method to proxy Jul 12, 2018
pakyow-js Get Pakyow.js published properly to npm Jul 18, 2018
pakyow-mailer Bump dependency versions Jul 5, 2018
pakyow-presenter Expose the request logger to presenters Jul 12, 2018
pakyow-realtime Bump dependency versions Jul 5, 2018
pakyow-support Add CLI Runner Jul 18, 2018
pakyow-test Link to the correct license May 31, 2018
pakyow-ui Create a ui request logger Jul 12, 2018
spec fallback_env -> default_env Jul 19, 2018
tasks Add pakyow/js to stats May 18, 2018
.gitignore Initial assets spike, on webpack Jan 18, 2018
.rspec Improve tests Feb 24, 2018
.rubocop.yml Update rubocop May 7, 2018
.travis.yml Revert "Autoload pakyow.js pack into apps via the js framework" Jul 13, 2018
.yardopts Remove libs from maen pakyow docs Jan 27, 2018 Update changelogs Apr 20, 2016
Gemfile Revert "Autoload pakyow.js pack into apps via the js framework" Jul 13, 2018
Guardfile Configure rubocop, fix most violations Nov 21, 2017
LICENSE Link to the correct license May 31, 2018 Link to the correct license May 31, 2018
Rakefile Assets specs Feb 25, 2018
pakyow.gemspec Add CLI Runner Jul 18, 2018

Pakyow Web Framework Gitter chat

Build modern web applications that don't break the web.

Pakyow is a Ruby web framework that lets you create fantastic experiences for your users without writing any client-side code. Build modern server-driven applications that don't compromise on speed or usability.

Realtime UIs

Pakyow automatically keeps your presentation layer in sync with state of the server. Works out of the box.

Quick & Easy Prototypes

Create a working prototype of your project with plain HTML. Later, build right on top of the prototype without throwing it out.

Build a Friendlier Web

We think that a simpler web leads to a democratic web. Pakyow optimizes for simplicity, making it easier to start and leading to long-term productivity.

Gem Version Build Status

Getting Started

  1. Install Pakyow:

    gem install pakyow

  2. Create a new Pakyow project from the command line:

    pakyow new webapp

  3. Move to the new directory and start the server:

    cd webapp; bundle exec pakyow server

  4. You'll find your project running at http://localhost:3000!

Next Steps

We'd love to have you involved. Here are a few places to start:


Pakyow is free and open-source under the LGPLv3 license.


Read the docs if you want the full skinny.

Pakyow is designed to be modular, with each library handling one aspect of the framework. Here's a list of the libraries that Pakyow ships with by default:

  • Core: Introduces the app object. Routes requests to endpoints within an app.
  • Presenter: Handles logicless view presentation, including data binding.
  • Mailer: Delivers logicless views over email, rather than http.
  • Realtime: Adds WebSocket support and realtime channels.
  • UI: Automatically keeps rendered views in sync with server-side state.
  • Test: Provides helpers that make it easy to test various aspects of an app.
  • Support: Provides helpers used throughout the framework.
  • Rake: Adds several tasks that are useful alongside an app.

There are many secondary libraries that add additional functionality, including:

  • Markdown: Adds support for writing view templates in Markdown.
  • Slim: Adds support for writing view templates in Slim.
  • Haml: Adds support for writing view templates in Haml.
  • Bindr: Introduces the concept of recursive data binding.

It's standard that every Pakyow-related library is prefixed with pakyow-*.

The primary library (named simply pakyow) handles concerns shared across the Pakyow ecosystem. It glues everything together. Read below for a summary.


Makes it possible to run multiple Rack-compatible endpoints (including Pakyow apps) with the consistency of a single environment.

Browse the source »

Request Logger

Adds request-level logging, with a human-friendly formatter for development and a logfmt formatter for production environments.

Browse the source »

Default Middleware

Introduces a default middleware stack for all apps within the environment, including request path normalization and json body parsing.

Browse the source »

App Template

Ships with the default template for generated Pakyow apps.

Browse the source »

Command Line Interface (CLI)

Adds a CLI for creating Pakyow apps and running the environment.

Browse the source »

Official Documentation

The official documentation can be found here. We bundle the docs with the code so that they evolve together.

Canonical Example

The canonical example for Pakyow can be found here. We try and keep it current to reflect the entire feature-set across the framework.