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.
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 install pakyow
Create a new Pakyow project from the command line:
pakyow new webapp
Move to the new directory and start the server:
cd webapp; bundle exec pakyow server
You'll find your project running at http://localhost:3000!
- Read the overview to better understand the goals and architecture of Pakyow.
- Follow the warmup to build and deploy your first project.
- Browse the docs to learn more about presentation, routing, realtime channels, and more.
- Check out the code on Github.
We'd love to have you involved. Here are a few places to start:
- Give us a star
- Participate in chat
- Join the forums
- Work on a starter issue
- Report problems
- Tell your friends
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
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.
Adds request-level logging, with a human-friendly formatter for development and a logfmt formatter for production environments.
Introduces a default middleware stack for all apps within the environment, including request path normalization and json body parsing.
Ships with the default template for generated Pakyow apps.
Command Line Interface (CLI)
Adds a CLI for creating Pakyow apps and running the environment.
The official documentation can be found here. We bundle the docs with the code so that they evolve together.
The canonical example for Pakyow can be found here. We try and keep it current to reflect the entire feature-set across the framework.