-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
265 lines (222 loc) · 8.33 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
<!DOCTYPE html>
<html>
<head>
<title>Perl Kelp</title>
<style>
* { box-sizing: border-box; }
.color, a {
color: #0298c3;
font-weight: bold;
}
body {
width: 100%;
margin: 0 auto;
min-height: 100%;
font-family: Helvetica, sans-serif;
font-size: 1.2rem ;
}
b {
color: #86df51;
}
code {
font-family: Courier New, monospace;
font-size: 1.1rem;
color: #999;
}
#links {
display: flex;
flex-direction: row;
justify-content: center;
margin-bottom: 40px;
}
#links a {
display: block;
width: 25%;
}
#links img {
width: 100%;
}
aside {
position: relative;
height: 100vh;
width: 100%;
background-attachment: fixed;
background-repeat: no-repeat;
background-position: center;
background-size: 60%;
}
.showcase {
width: 100%;
}
article {
position: relative;
color: white;
background: #082c26;
background: linear-gradient(90deg, #082c26 0%, #156457 100%);
padding: 0 20%;
line-height: 1.4;
padding-top: 50px;
}
p {
text-align: justify;
padding: 50px;
padding-top: 0;
margin: 0;
}
@media only screen and (max-width: 768px) {
aside {
background-size: 80%;
}
aside img {
width: 80%
}
article {
padding: 0 5%;
padding-top: 20px;
}
p {
padding: 20px;
padding-top: 0;
}
#links a {
margin-bottom: 15px;
}
}
@media only screen and (max-width: 1200px) {
article {
padding: 0 10%;
padding-top: 25px;
}
p {
padding: 25px;
padding-top: 0;
}
#links a {
margin-bottom: 20px;
}
}
</style>
<link rel="icon" type="image/x-icon" href="https://raw.githubusercontent.com/Kelp-framework/Art/master/logo/logo.png">
</head>
<body>
<aside id="kelp" style='background-image: url("https://raw.githubusercontent.com/Kelp-framework/Art/master/logo/logo_wide.png")'>
</aside>
<article>
<div id="links">
<a href="https://github.com/Kelp-framework/Kelp">
<img src="images/github.png" alt="Code on GitHub">
</a>
<a href="https://metacpan.org/dist/Kelp">
<img src="images/metacpan.png" alt="Install from MetaCPAN">
</a>
</div>
<p>
Welcome to <a href="https://metacpan.org/dist/Kelp">Kelp</a>, 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 <b>delivers the tools</b> required to turn your idea into
a fully functional website. At the same time, its minimalist design and
modular architecture results in <b>faster performance</b> and
<b>outstanding extensibility</b>. 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 <b>make developing with Perl a
pleasurable experience</b>.
</p>
<p>
Much like Perl itself, Kelp tries to move forward <b>without breaking
backward compatibility</b>. Recently released major version 2 of the
framework brought an astonishing number of <a
href="https://metacpan.org/dist/Kelp/changes">new features, bug fixes and
performance improvements</a> 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 <b>years</b>.
</p>
<p>
<a href="example.psgi" title="Get the code for this example">
<img class="showcase" alt="API example" src="images/carbon.png">
</a>
</p>
<p>
What makes Kelp different from the other web frameworks? From all the fine
<a href="https://metacpan.org/search?size=20&q=web+framework">web
frameworks in the Perl ecosystem</a>, the majority bring <b>their own
deployment code</b> and aim to write <b>their own processing
mechanisms</b>. Kelp, on the other hand, is <b>heavily Plack-centric</b>.
It uses Plack as its foundation layer, and it <b>builds the web framework
on top of it</b>. <code>Kelp::Request</code> is an extension of
<code>Plack::Request</code>, <code>Kelp::Response</code> is an extension of
<code>Plack::Response</code> and the application can be run natively
through <code>plackup</code>.
</p>
<p>
This approach of extending current CPAN code puts <b>well tested tools</b> 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 <b>one of the fastest Perl web frameworks</b>.
</p>
<p>
Besides Plack itself, Kelp uses <a
href="https://cpandeps.grinnz.com/?dist=Kelp&phase=runtime&style=topdown">only
a few</a> 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 <b>object manager agnostic</b>.
</p>
<p>
The Kelp project is distributed <b>through CPAN</b>. To install it, you can
use your local CPAN client - <code>cpanm Kelp</code> - or download and
build a tarball from MetaCPAN. To get started, read <a
href="https://metacpan.org/pod/Kelp::Manual" title="Kelp::Manual on
metacpan">our extensive manual</a>. If you have any questions, we're
<b>happy to help</b> - you can either <a
href="https://github.com/Kelp-framework/Kelp">create a GitHub issue</a>, <a
href="https://github.com/Kelp-framework/Kelp/discussions">ask on GitHub
discussions</a> or <a href="https://groups.google.com/g/perl-kelp">ask on
our Google group</a>.
</p>
<p>
Solutions to many common problems <b>already exist</b> 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.
</p>
</article>
<aside id="whelk" style='background-image: url("https://raw.githubusercontent.com/Kelp-framework/Art/master/whelk/logo_wide.png")'></aside>
<article>
<div id="links">
<a href="https://github.com/Kelp-framework/Whelk">
<img src="images/github.png" alt="Code on GitHub">
</a>
<a href="https://metacpan.org/dist/Whelk">
<img src="images/metacpan.png" alt="Install from MetaCPAN">
</a>
</div>
<p>
Whelk is an awesome API framework layer on top of Kelp. It strives to
deliver the ability to create <b>self-documenting, self-validating REST
APIs</b>. Even though it functions a standalone Plack application, it can
be <b>easily integrated into an existing Kelp application</b>. It was
designed with <b>OpenAPI support</b> in mind, so APIs written using Whelk
can be <b>beautifully visualized</b> by Swagger UI with minimal effort.
</p>
<p>
By using Whelk, you get <b>all the benefits of Kelp</b> 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 <b>ensure data correctness</b> of
structured formats. Whelk fills that role perfectly and does not force you
to switch to another framework to acheve that.
</p>
<p>
Much like Kelp, Whelk is also distributed <b>through CPAN</b>. To install
it, you can use your local CPAN client - <code>cpanm Whelk</code> - or
download and build a tarball from MetaCPAN. To get started, read <a
href="https://metacpan.org/pod/Whelk::Manual" title="Whelk::Manual on
metacpan">the detailed manual</a>. Whelk is a young project which is
<b>considered stable</b>, but may be rough around the edges. You can help
with that, too - download it, test it and <b>let us know what you
think</b>.
</p>
</article>
<aside style='background-image: url("images/fin.png")'></aside>
</body>
</html>