Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


Design-First Web Framework

Subscribe to updates I use pakyow

Statistics on pakyow

Number of watchers on Github 782
Number of open issues 28
Average time to close an issue about 2 months
Main language Ruby
Average time to merge a PR 6 days
Open pull requests 24+
Closed pull requests 13+
Last commit over 1 year ago
Repo Created about 9 years ago
Repo Last Updated over 1 year ago
Size 3.35 MB
Organization / Authorpakyow
Latest Releasev0.11.3
Page Updated
Do you use pakyow? Leave a review!
View open issues (28)
View pakyow activity
View on github
Fresh, new opensource launches ๐Ÿš€๐Ÿš€๐Ÿš€
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating pakyow for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

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.

pakyow open issues Ask a question     (View All Issues)
  • almost 3 years Template problem in body of view
  • over 3 years Including non-route modules into route sets
  • over 3 years Ensure that class attribute values are arrays
  • over 3 years Documentation of pakyow-css
  • over 3 years Handle more than one html processor
  • over 3 years Raise exception when mutator can't be found
  • over 3 years Cleanup orphaned channels
  • over 3 years Hooks aren't reset
  • over 3 years Rename Templates to Layouts
  • over 3 years Make it easier to render a list of checkboxes
  • over 3 years Improve support for page metadata
  • over 3 years Make presenter faster in development
  • over 3 years Dependency Exclusion
  • over 3 years Create a new `SSLEnforcer` middleware
  • over 3 years Warn when using Pakyow UI without sessions enabled
  • over 3 years Restructure CLI app generator to use Thor as a generator
  • over 3 years Improve test coverage for CLI
  • almost 4 years Add static config options
  • almost 4 years Report test coverage to Code Climate
  • almost 4 years Make it possible to disable presenter
  • almost 4 years Scope Versions
  • about 4 years Write test helpers for bindings
  • about 4 years Write test helpers for mailers
  • about 4 years Mailer should work without Presenter.
  • about 4 years Make it possible to setup delete buttons.
  • over 4 years View formatters.
  • over 4 years Simplified bindings definition.
pakyow open pull requests (View All Pulls)
  • Remove trailing in request path
  • Replace Nokogiri with Oga
  • modify presenter hook registration
  • Add src_dir to load path
  • Load global config first
  • Use ViewContext in mailer
  • Fix test help params
  • Add ensure_or_deny method to attrs
  • Docker Development
  • [WIP] Create www enforce middleware
  • Update
  • Logging Refactor
  • [WIP] Create non www enforce middleware
  • Got it working but broke a test and not sure what the test is testing?
  • the_basics was added to the getting started tab
  • Initial rework of Documentation Style Guide. Moved parts of the docuโ€ฆ
  • [WIP] Ensure that class attribute values are arrays
  • [WIP] Routing refactor
  • [WIP] Environment
  • [WIP] Refactor presenter to work within environment
  • Restart server when a file changes
  • update format of settings in environment.rb
  • add deep_freeze refinement to support
  • WIP Fix travis
pakyow questions on Stackoverflow (View All Questions)
  • How do you give content pretty permalinks in Pakyow?
  • Why can't Pakyow find 'soft_copy' method in new route?
  • How do you reference bindings multiple times within a Pakyow view?
  • Pakyow Demo Messaging App Presenter Error in Default Route
  • Puma gem does not build with Pakyow new blog
  • Setting Pakyow for local development with Postgres
  • What does (Pakyow::Presenter::MissingTemplate) mean?
  • How do you use Pakyow around hooks?
  • How do you access assets in a Pakyow app on heroku?
  • Pakyow 0.9 undefined method
  • Pakyow app with PostgreSQL database
pakyow list of languages used
pakyow latest release notes
v0.11.3 v0.11.3 release
  • Adds the ability to send StringIO objects
  • Prevent nils from being returned in mutable data
  • Fixes a bug serializing Rack::Session as a hash
v0.11.2 v0.11.2 release
  • Fixes bug causing resource bindings to be incorrect in some cases
  • Fixes bug creating unscoped view collection from composer
v0.11.1 v0.11.1 release
  • Includes Pakyow::Helpers into Pakyow::App
Other projects in Ruby