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 Dependency Status Inline docs

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 released free and open-source under the MIT 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.