Welcome to Kelp, a lean Perl web framework designed to make web development simple, efficient, and powerful. Whether you're building a small personal project or a complex application, Kelp delivers the tools required to turn your idea into a fully functional website. At the same time, its minimalist design and modular architecture results in faster performance and outstanding extensibility. With Kelp, you can focus on writing clean, maintainable code without the bloat of unnecessary features. Our intuitive routing system, flexible configuration options, and seamless integration with the Plack ecosystem make developing with Perl a pleasurable experience.

Much like Perl itself, Kelp tries to move forward without breaking backward compatibility. Recently released major version 2 of the framework brought an astonishing number of new features, bug fixes and performance improvements without causing any major disturbances to existing applications. It values your time as a developer and lets you sit back and enjoy a functional and stable website for years.

API example

What makes Kelp different from the other web frameworks? From all the fine web frameworks in the Perl ecosystem, the majority bring their own deployment code and aim to write their own processing mechanisms. Kelp, on the other hand, is heavily Plack-centric. It uses Plack as its foundation layer, and it builds the web framework on top of it. Kelp::Request is an extension of Plack::Request, Kelp::Response is an extension of Plack::Response and the application can be run natively through plackup.

This approach of extending current CPAN code puts well tested tools in the hands of the application developer, while keeping familiar syntax and work flow. It also creates less friction when running in a pure Plack environment, making Kelp one of the fastest Perl web frameworks.

Besides Plack itself, Kelp uses only a few popular, trusted CPAN modules for its internals. At the same time, its core does not deliver features you might not need. The framework does its best to keep a lean profile and a small footprint, and it's completely object manager agnostic.

The Kelp project is distributed through CPAN. To install it, you can use your local CPAN client - cpanm Kelp - or download and build a tarball from MetaCPAN. To get started, read our extensive manual. If you have any questions, we're happy to help - you can either create a GitHub issue, ask on GitHub discussions or ask on our Google group.

Solutions to many common problems already exist either as Plack application or middleware, or as a Kelp module. Below are listed some of the most impactful open source projects the Kelp ecosystem has to offer.

Whelk is an awesome API framework layer on top of Kelp. It strives to deliver the ability to create self-documenting, self-validating REST APIs. Even though it functions a standalone Plack application, it can be easily integrated into an existing Kelp application. It was designed with OpenAPI support in mind, so APIs written using Whelk can be beautifully visualized by Swagger UI with minimal effort.

By using Whelk, you get all the benefits of Kelp and the power to easily to add an API to your application. While Kelp can deliver an API by itself, it's not specifically crafted to ensure data correctness of structured formats. Whelk fills that role perfectly and does not force you to switch to another framework to acheve that.

Much like Kelp, Whelk is also distributed through CPAN. To install it, you can use your local CPAN client - cpanm Whelk - or download and build a tarball from MetaCPAN. To get started, read the detailed manual. Whelk is a young project which is considered stable, but may be rough around the edges. You can help with that, too - download it, test it and let us know what you think.