Alpaca provides the easiest and fastest way to generate interactive forms for the web and mobile devices. It runs simply as HTML5 or more elaborately using Bootstrap, jQuery Mobile or jQuery UI. Alpaca uses Handlebars to process JSON schema and provide developers with an extensible framework for implementing controls, wizards, layouts, I18N support and an custom data persistence.
The goal of Alpaca is to provide the open source community with a fantastic forms engine that rivals or beats what most proprietary vendors offer. Using Alpaca, you can host really nice forms for your back end services, whether they are proprietary, enterprise or SaaS offerings.
The philosophy behind Alpaca is that you should design your forms once and have them work on lots of different devices and UI engines without having to do the same work twice.
Here is a sample registration form written once and rendered using four different approaches:
Alpaca is an open-source project licensed under Apache 2.0. It was started in 2010 and has been growing steadily since thanks to a really awesome community of customers, consultants and technology champions world-wide.
For information, demos and documentation regarding Alpaca, please visit the the Alpaca Forms web site.
Cloud CMS is actively developed and maintained by Cloud CMS.
Cloud CMS is an API-First, JSON-friendly Content Management Platform for mobile and web applications. It provides the ideal backend for Alpaca forms design, capture and reporting. Stop by our web site to learn more about Cloud CMS.
The project also has a large number of customers who use Alpaca, contribute code and receive support, some of whom are listed on our web site.
We offer paid support for your technical development and production environments. Paid support includes a service level agreement for priority response and bug fixes.
If you are interested in sponsoring or are interested in consulting services, please Contact Us.
We have an awesome community. Everything is straight up out in the open and anyone can build or contribute. We keep everything under an Apache 2.0 license so that you're free to do whatever you please with Alpaca.
There are several ways to interact with the Alpaca community.
Alpaca is designed to be very extensible, allowing you to plug in new field implementations, DOM layouts, callbacks, CSS classes, I18N bundles and much more. It also integrates naturally to HTTP service backends using a connector layer.
Yes, absolutely. That's the whole idea. Fork it, use it in your projects, make money from it, live a better life, spend more time with your kids. We hope that Alpaca is useful to you.
If you come up with something good (like a bug fix or a new feature), consider submitting a Pull Request back to the project so that others may benefit. And so that they too might, in turn, get more sleep, enjoy your work, be happier and get more out of this adventure called life.
The latest release of Alpaca is compatible with jQuery 1.9.1 and up. For a full breakdown of dependencies, check the
/lib directory for third-party vendor libraries and versions that are used.
In general, we aspire to support the latest versions of our third-party dependencies. Some folks may want Alpaca to be backward-compatible with earlier versions of dependencies and in general, it is our desire to have it be so. But in cases where that is not possible, we will opt for the latest. In those cases, we recommend folks fall back to an earlier version of Alpaca.
The first thing you should do is grab the source. We won't cover how to do that here but instead we recommend that you learn about Git and GitHub. You can pull the source down to your local machine to build things locally.
The command line for doing this is basically:
git clone https://github.com/gitana/alpaca.git
To build Alpaca, you will need to have Node.js, Gulp and Bower installed. If you're new to Node.js or Gulp, you could check out this writeup - http://travismaynard.com/writing/getting-started-with-gulp.
Once you have Node.js installed, you essentially need to do this:
npm install -g gulp npm install -g bower
Alpaca requires python 2.7.x to build some of it's node_module dependencies. Make sure you have this installed. If you're currently using Python 3.x, you will need to tell the build to use 2.7.x:
npm install --python=python2.7 (or) npm config set python python2.7
Building Alpaca is pretty easy. Just run:
This will do the following for you:
To then build, you can do this:
If you want to use Gulp directly, you can alternatively run this:
gulp clean default
npm start or
gulp clean default will build everything.
The build distribution assets will be in
Alpaca includes a web site along with documentation, samples and much more. To build the web site, you will first need to install Jekyll (not covered here).
Simply do this:
And you can run a local web server like this:
The build produces four sets of assets and they are placed in:
build/alpaca/web(for basic web forms and layout)
build/alpaca/bootstrap(for bootstrap enabled forms and layout)
build/alpaca/jqueryui(for jQuery UI enabled forms and layout)
build/alpaca/jquerymobile(for jQuery Mobile enabled forms and layout)
Each directory contains a JS file and a CSS file for its respective build.
Each JS file is UMD ready and will work within both an AMD and CommonJS container.
If you run into any Bower related issues during the build, you might want to clear out your Bower cache using this command:
bower cache clean
And then try again.
npm install will pretty much do everything for you, there are also some manual commands you can run if you
need to perform individual steps:
bower cache clean
gulp default server
gulp default server
Here is a long list of our project's brothers and sisters in arms.
These folks have made numerous contributions to Alpaca over the years: