mirror of
https://github.com/zulip/zulip.git
synced 2025-11-15 19:31:58 +00:00
landing: Add /plans/ describing ways to use Zulip.
Note from tabbott: This isn't yet linked to and will need to go through significantly more iteration, but it's a start.
This commit is contained in:
committed by
Tim Abbott
parent
f552c2fc2b
commit
2140a4aa01
Binary file not shown.
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 23 KiB |
BIN
static/images/landing-page/sea-pattern.png
Normal file
BIN
static/images/landing-page/sea-pattern.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 68 KiB |
@@ -912,7 +912,7 @@ nav ul li.active::after {
|
||||
}
|
||||
|
||||
.compare tbody tr {
|
||||
border-bottom: 1px solid hsl(163, 22%, 28%);
|
||||
border-bottom: 1px solid hsla(360, 0%, 100%, 0.03);
|
||||
}
|
||||
|
||||
.compare tbody tr td {
|
||||
@@ -942,8 +942,10 @@ nav ul li.active::after {
|
||||
top: 3px;
|
||||
|
||||
font-size: 2.5rem;
|
||||
font-weight: 300;
|
||||
font-weight: 500;
|
||||
line-height: 0.9;
|
||||
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
.compare tbody tr td a {
|
||||
@@ -966,6 +968,82 @@ nav ul li.active::after {
|
||||
color: hsla(0, 0%, 100%, 0.8);
|
||||
}
|
||||
|
||||
/* -- faq css -- */
|
||||
.faqs {
|
||||
position: relative;
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
.faqs .padded-content {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.faqs header {
|
||||
width: 800px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.faqs header h1 span {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.faqs .faq {
|
||||
margin: 50px auto;
|
||||
width: 800px;
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
/* the last faq in the box shouldn't have an extra 50px of margin. */
|
||||
.faqs .faq-box div:last-of-type {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.faqs .faq .question {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.faqs .faq .question::before {
|
||||
content: "?";
|
||||
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
|
||||
top: -1px;
|
||||
padding: 0px 10px;
|
||||
margin-right: 10px;
|
||||
|
||||
text-shadow:
|
||||
0px 0px 3px rgba(255,255,255,0.5),
|
||||
-0.5px 0.5px 0px rgba(48, 166, 146, 0.02),
|
||||
-1px 1px 0px rgba(48, 166, 146, 0.02),
|
||||
-1.5px 1.5px 0px rgba(48, 166, 146, 0.02),
|
||||
-2px 2px 0px rgba(48, 166, 146, 0.02),
|
||||
-2.5px 2.5px 0px rgba(48, 166, 146, 0.02),
|
||||
-3px 3px 0px rgba(48, 166, 146, 0.02),
|
||||
-3.5px 3.5px 0px rgba(48, 166, 146, 0.02),
|
||||
-4px 4px 0px rgba(48, 166, 146, 0.02),
|
||||
-4.5px 4.5px 0px rgba(48, 166, 146, 0.02),
|
||||
-5px 5px 0px rgba(48, 166, 146, 0.02),
|
||||
-5.5px 5.5px 0px rgba(48, 166, 146, 0.02),
|
||||
-6px 6px 0px rgba(48, 166, 146, 0.02),
|
||||
-6.5px 6.5px 0px rgba(48, 166, 146, 0.02),
|
||||
-7px 7px 0px rgba(48, 166, 146, 0.02),
|
||||
-7.5px 7.5px 0px rgba(48, 166, 146, 0.02),
|
||||
-8px 8px 0px rgba(48, 166, 146, 0.02);
|
||||
|
||||
color: #4fc0ad;
|
||||
|
||||
border-radius: 50%;
|
||||
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.faqs .faq .answer {
|
||||
margin: 20px 0px 0px 45px;
|
||||
}
|
||||
|
||||
.screen .line {
|
||||
width: 100%;
|
||||
height: 6px;
|
||||
@@ -2175,6 +2253,319 @@ nav ul li.active::after {
|
||||
background: linear-gradient(0deg, #fff 0%, transparent 40%);
|
||||
}
|
||||
|
||||
/* -- pricing css -- */
|
||||
.portico-landing.plans .main {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.portico-landing.plans .main .padded-content > h1 {
|
||||
text-align: center;
|
||||
font-size: 2.5em;
|
||||
margin: 0px;
|
||||
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.portico-landing.plans .main .padded-content > h2 {
|
||||
color: #444;
|
||||
text-align: center;
|
||||
|
||||
font-size: 1.5em;
|
||||
|
||||
margin-bottom: 50px;
|
||||
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container .block {
|
||||
display: inline-block;
|
||||
margin: 0px 20px;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container .block .plan-title {
|
||||
padding: 10px;
|
||||
margin-bottom: 3px;
|
||||
|
||||
color: #fff;
|
||||
|
||||
font-size: 2em;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container .price-box {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: bottom;
|
||||
margin: 0px;
|
||||
width: 300px;
|
||||
height: 500px;
|
||||
|
||||
box-shadow: 0px 0px 10px rgba(0,0,0,0.1);
|
||||
|
||||
|
||||
text-align: left;
|
||||
background-color: #fff;
|
||||
|
||||
transition-property: all;
|
||||
transition-duration: 0.3s;
|
||||
transition-timing-function: ease;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container .block > div:not(.plan-title):hover {
|
||||
box-shadow: 0px 0px 50px rgba(0,0,0,0.2);
|
||||
|
||||
z-index: 2;
|
||||
transform: scale(1.03);
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container .text-content {
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.pricing-model .padded-content .text-header .text-content h1 {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container .text-content h2 {
|
||||
font-size: 1.5em;
|
||||
font-weight: 400;
|
||||
margin-bottom: 0px;
|
||||
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container hr {
|
||||
border: none;
|
||||
border-bottom: 2px solid #4fc0ad;
|
||||
margin: 15px 0px 15px 0px;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container .text-content .description {
|
||||
font-size: 0.9em;
|
||||
font-weight: 400;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container ul.feature-list {
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container ul.feature-list li {
|
||||
position: relative;
|
||||
padding: 10px 0px 10px 25px;
|
||||
|
||||
font-size: 0.9em;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container ul.feature-list li::before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 0;
|
||||
width: 20px;
|
||||
height: 18px;
|
||||
|
||||
background-image: url(/static/images/checkbox-green.png);
|
||||
background-size: 100% auto;
|
||||
|
||||
-webkit-filter: invert(0.3);
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container .bottom {
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
width: 100%;
|
||||
height: 150px;
|
||||
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container .text-content .price::before {
|
||||
content: "$";
|
||||
position: relative;
|
||||
vertical-align: top;
|
||||
top: 3px;
|
||||
left: -3px;
|
||||
|
||||
font-size: 2rem;
|
||||
font-weight: 300;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container .text-content .price {
|
||||
display: inline-block;
|
||||
margin-right: 15px;
|
||||
|
||||
font-size: 3.5em;
|
||||
font-weight: 600;
|
||||
line-height: 0.8;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container .text-content .price .cents {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
height: 18px;
|
||||
|
||||
font-size: 1.3rem;
|
||||
font-weight: 300;
|
||||
border-bottom: 1px solid #666;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container .bottom .details {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-left: 15px;
|
||||
margin-top: 4px;
|
||||
|
||||
font-size: 0.9em;
|
||||
font-weight: 400;
|
||||
color: #888;
|
||||
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container .bottom button {
|
||||
margin-top: 20px;
|
||||
width: 100%;
|
||||
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
|
||||
.pricing-model .pricing-container .price-box:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.pricing-model .pricing-container .price-box:focus button {
|
||||
box-shadow: 0px 0px 25px #6acab9;
|
||||
animation: box-shadow-pulse 2s infinite;
|
||||
}
|
||||
|
||||
/* while the overlay is showing, the transform properties should stay fixed
|
||||
for the container that sits inline in the page. */
|
||||
|
||||
.pricing-overlay.pricing-model {
|
||||
position: fixed;
|
||||
top: -140px;
|
||||
left: 0px;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
|
||||
z-index: 10;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.portico-landing.plans .pricing-overlay.pricing-model {
|
||||
top: -220px;
|
||||
}
|
||||
|
||||
|
||||
.pricing-overlay.pricing-model .pricing-container {
|
||||
padding: 50px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.pricing-overlay.pricing-model.active {
|
||||
opacity: 1;
|
||||
pointer-events: all;
|
||||
background-color: rgba(0,0,0,0.6);
|
||||
}
|
||||
|
||||
.pricing-overlay.pricing-model .price-box {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.pricing-overlay.pricing-model .info-box {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-left: 50px;
|
||||
margin-top: -2px;
|
||||
width: calc(100% - 300px - 50px);
|
||||
|
||||
background: #fff;
|
||||
opacity: 0;
|
||||
transform: translateY(300px);
|
||||
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.pricing-overlay.pricing-model .info-box.show {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.pricing-overlay.pricing-model .info-box .text-content {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
height: calc(100% - 40px);
|
||||
width: calc(100% - 300px - 40px);
|
||||
}
|
||||
|
||||
.pricing-overlay.pricing-model .info-box .text-content h1 {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
.pricing-overlay.pricing-model .info-box .text-content p {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.pricing-overlay.pricing-model .info-box .text-content .feature-detail-box {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
bottom: 0px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.pricing-overlay.pricing-model .info-box .text-content .feature-detail-box .feature {
|
||||
display: inline-block;
|
||||
width: calc(33% - 21px);
|
||||
height: 200px;
|
||||
background-color: #eee;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.text-content .pricing-details {
|
||||
padding: 15px 0px 15px 0px;
|
||||
height: 17px;
|
||||
|
||||
font-weight: 400;
|
||||
color: #888;
|
||||
font-style: italic;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.pricing-overlay.pricing-model .info-box .image {
|
||||
width: 300px;
|
||||
height: 100%;
|
||||
|
||||
float: right;
|
||||
|
||||
background-color: #3ca08d;
|
||||
}
|
||||
|
||||
@keyframes box-shadow-pulse {
|
||||
0% {
|
||||
box-shadow: 0px 0px 0px rgba(106, 201, 185, 0);
|
||||
}
|
||||
50% {
|
||||
box-shadow: 0px 0px 25px rgba(106, 201, 185, 0.8);
|
||||
}
|
||||
100% {
|
||||
box-shadow: 0px 0px 0px rgba(106, 201, 185, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* -- media queries -- */
|
||||
@media (max-width: 1426px) {
|
||||
.portico-landing.hello .integrations .integration-icons .hide-1 {
|
||||
@@ -2190,7 +2581,12 @@ nav ul li.active::after {
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1368px) {
|
||||
@media (max-width: 1376px) {
|
||||
.portico-landing.plans .price-box {
|
||||
height: 500px !important;
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.portico-landing.apps .main .details-container {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="padded-content">
|
||||
<div class="text-header">
|
||||
<div class="text-content">
|
||||
<h1>Compare</h1>
|
||||
<h1><span>Compare</span></h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -32,17 +32,17 @@
|
||||
<td class="yes"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Convenient SaaS offering</td>
|
||||
<td>Hosting available</td>
|
||||
<td class="yes"></td>
|
||||
<td class="yes"></td>
|
||||
<td class="no"></td>
|
||||
<td class="yes"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Gmail-style threading</td>
|
||||
<td>Emoji reactions</td>
|
||||
<td class="yes"></td>
|
||||
<td class="yes"></td>
|
||||
<td class="yes"></td>
|
||||
<td class="no"></td>
|
||||
<td class="no"></td>
|
||||
<td class="no"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -53,18 +53,18 @@
|
||||
<td class="no"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Lightning-fast search</td>
|
||||
<td>Topic-based threading</td>
|
||||
<td class="yes"></td>
|
||||
<td class="no"></td>
|
||||
<td class="no"></td>
|
||||
<td class="no"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Emoji reactions</td>
|
||||
<td class="yes"></td>
|
||||
<td class="yes"></td>
|
||||
<td>Lightning-fast search</td>
|
||||
<td class="yes"></td>
|
||||
<td class="no"></td>
|
||||
<td class="no"></td>
|
||||
<td class="no"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Free and open source</td>
|
||||
@@ -73,26 +73,21 @@
|
||||
<td>See below*</td>
|
||||
<td class="no"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Actually increases productivity :)</td>
|
||||
<td class="yes"></td>
|
||||
<td class="no"></td>
|
||||
<td class="no"></td>
|
||||
<td class="no"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="terms">
|
||||
<span class="term">
|
||||
* On Mattermost's licensing: The components of Mattermost
|
||||
are, technically, released under open source licenses.
|
||||
However, Mattermost was founded by an ex-Microsoft team,
|
||||
is developed primarily by paid employees, and their
|
||||
licensing and trademark policies do not allow third
|
||||
parties to distribute patched Mattermost servers without
|
||||
renaming the project in their fork. In contrast, Zulip is
|
||||
a true open source project with a wide development
|
||||
community and a clean Apache 2.0 license.
|
||||
* On Mattermost's licensing: The components of
|
||||
Mattermost are, technically, released under various
|
||||
open source licenses.
|
||||
However, <a href="https://www.mattermost.org/licensing/">Mattermost's
|
||||
licensing and trademark policy</a> forbids
|
||||
redistributing patched versions of Mattermost without
|
||||
renaming the project, which does not comply with the
|
||||
<a href="https://www.debian.org/social_contract.html#guidelines">Debian
|
||||
Free Software Guidelines</a>. This means, for
|
||||
example, that Debian will never be able to include a
|
||||
Mattermost server package.
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
77
templates/zerver/faq.html
Normal file
77
templates/zerver/faq.html
Normal file
@@ -0,0 +1,77 @@
|
||||
<div class="faqs">
|
||||
<div class="padded-content">
|
||||
<header>
|
||||
<h1>Frequently asked questions</h1>
|
||||
</header>
|
||||
<div class="faq-box">
|
||||
<div class="faq">
|
||||
<div class="question">
|
||||
Does Zulip scale to a large number of users?
|
||||
</div>
|
||||
<div class="answer">
|
||||
Yes! Zulip's unique threading is amazing for
|
||||
large, busy communities. Some of our biggest fans
|
||||
are organizations use Zulip with hundreds or
|
||||
thousands of users, including Fortune 500
|
||||
companies like Akamai and open source communities
|
||||
like <a href="https://www.recurse.com/blog/112-how-rc-uses-zulip">The
|
||||
Recurse Center</a>. If you'd like to see what
|
||||
Zulip looks like in action in a larger community,
|
||||
our
|
||||
own <a href="https://zulip.readthedocs.io/en/latest/chat-zulip-org.html">Zulip
|
||||
development community</a> is open to the public
|
||||
and has several thousand user accounts and
|
||||
hundreds of weekly active users.
|
||||
</div>
|
||||
</div>
|
||||
<div class="faq">
|
||||
<div class="question">
|
||||
If I start out on the Zulip hosted cloud service,
|
||||
and a few years down the line want to move to
|
||||
running my own server, can I later export my data?
|
||||
</div>
|
||||
<div class="answer">
|
||||
Yes! Zulip supports exporting your organization's
|
||||
data and then importing it into another Zulip
|
||||
server.
|
||||
</div>
|
||||
</div>
|
||||
<div class="faq">
|
||||
<div class="question">
|
||||
Can I use your free hosting service just to hang
|
||||
out with a few dozen of my friends?
|
||||
</div>
|
||||
<div class="answer">
|
||||
Yes! Our "non-commercial use with less than 100
|
||||
users" offering is for you in addition to
|
||||
non-profits and other worthy causes!
|
||||
</div>
|
||||
</div>
|
||||
<div class="faq">
|
||||
<div class="question">
|
||||
My organization isn't obviously eligible for your
|
||||
free hosting plan, but we have a lot of
|
||||
non-employee users and can't afford to pay for all
|
||||
of them. Do you offer discounts for this sort of
|
||||
situation?
|
||||
</div>
|
||||
<div class="answer">
|
||||
Yes! Our pricing is designed to be affordable for
|
||||
companies that are paying their users a salary.
|
||||
If your organization is an educational institution
|
||||
or otherwise has a lot of participants who you
|
||||
aren't paying a salary, we can likely offer your
|
||||
organization free or highly discounted
|
||||
hosting. <a href="mailto:support@zulipchat.com"
|
||||
target="_blank">Contact us</a> with your
|
||||
organization's story and we'd be happy to discuss.
|
||||
You may also be interested in our resources on
|
||||
<a href="/for/open-source">Zulip for open source
|
||||
projects</a>
|
||||
and <a href="/for/working-groups-and-communities">Zulip
|
||||
for part-time communities</a>.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
162
templates/zerver/plans.html
Normal file
162
templates/zerver/plans.html
Normal file
@@ -0,0 +1,162 @@
|
||||
{% extends "zerver/portico.html" %}
|
||||
|
||||
{% block customhead %}
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
{% stylesheet 'portico' %}
|
||||
{% stylesheet 'landing-page' %}
|
||||
{{ render_bundle('landing-page') }}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block portico_content %}
|
||||
|
||||
{% include 'zerver/gradients.html' %}
|
||||
{% include 'zerver/landing_nav.html' %}
|
||||
|
||||
<div class="portico-landing plans">
|
||||
<div class="main">
|
||||
<div class="pricing-model">
|
||||
<div class="padded-content">
|
||||
<h1>Get started using Zulip today!</h1>
|
||||
|
||||
<div class="pricing-container">
|
||||
<div class="block">
|
||||
<div class="plan-title">
|
||||
Run your own server
|
||||
</div>
|
||||
|
||||
<div class="price-box" tabindex="-1">
|
||||
<div class="text-content">
|
||||
<h2>Community support</h2>
|
||||
<div class="description">
|
||||
Install your own Zulip server
|
||||
</div>
|
||||
<hr />
|
||||
<ul class="feature-list">
|
||||
<li>Easy self-service installation</li>
|
||||
<li>Free and open source forever under Apache 2.0 license</li>
|
||||
<li><a href="/features">All Zulip features</a> included</li>
|
||||
<li>LDAP/Active directory integration</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="text-content">
|
||||
<div class="pricing-details">
|
||||
Free and open source forever!
|
||||
</div>
|
||||
<a href="https://zulip.readthedocs.io/en/latest/prod.html" class="no-style">
|
||||
<button class="green" type="button">
|
||||
Install a Zulip server!
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="price-box" tabindex="-1">
|
||||
<div class="text-content">
|
||||
<h2>Commercial support</h2>
|
||||
<div class="description">
|
||||
For mission-critical installations
|
||||
</div>
|
||||
<hr />
|
||||
<ul class="feature-list">
|
||||
<li>Easy self-service installation</li>
|
||||
<li>Support response SLAs</li>
|
||||
<li>Input into the Zulip roadmap</li>
|
||||
<li>High availability assistance</li>
|
||||
<li>Anything else you need</li>
|
||||
<li>Funds the Zulip open source project</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="text-content">
|
||||
<div class="pricing-details">
|
||||
Pricing varies with support
|
||||
required.
|
||||
</div>
|
||||
<a href="mailto:sales@zulipchat.com" target="_blank" class="no-style">
|
||||
<button class="green" type="button" name="button">Contact sales!</button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="block">
|
||||
<div class="plan-title">
|
||||
Use our servers
|
||||
</div>
|
||||
|
||||
<div class="price-box" tabindex="-1">
|
||||
<div class="text-content">
|
||||
<h2>Free hosting</h2>
|
||||
<div class="description">
|
||||
For organizations without a big budget
|
||||
</div>
|
||||
<hr />
|
||||
<p>Our hosted service is free for:</p>
|
||||
<ul class="feature-list">
|
||||
<li><a href="/for/open-source">Open source communities</a></li>
|
||||
<li>Unlimited evaluation for
|
||||
commercial or non-commercial use</li>
|
||||
<li>Non-commercial use for up to
|
||||
100 users</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="text-content">
|
||||
<div class="pricing-details">
|
||||
Free!
|
||||
</div>
|
||||
<a href="/create_realm/" class="no-style">
|
||||
<button class="green" type="button">
|
||||
Sign up now!
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="price-box" tabindex="-1">
|
||||
<div class="text-content">
|
||||
<h2>Commercial hosting</h2>
|
||||
<div class="description">
|
||||
For corporate users
|
||||
</div>
|
||||
<hr />
|
||||
<ul class="feature-list">
|
||||
<li>Convenient web service</li>
|
||||
<li>No sysadmin work required</li>
|
||||
<li>Priority commerical support</li>
|
||||
<li>Funds the Zulip open source project</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="text-content">
|
||||
<div class="">
|
||||
<div class="price">7<span class="cents">00</span></div>
|
||||
<div class="details">
|
||||
per user per month
|
||||
<br />
|
||||
$8.00 billed monthly
|
||||
</div>
|
||||
</div>
|
||||
<a href="/create_realm/" class="no-style">
|
||||
<button class="green" type="button">
|
||||
Sign up now!
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include "zerver/faq.html" %}
|
||||
{% include "zerver/compare.html" %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -61,6 +61,7 @@ class DocPageTest(ZulipTestCase):
|
||||
self._test('/for/open-source/', 'for open source projects')
|
||||
self._test('/for/companies/', 'in a company')
|
||||
self._test('/for/working-groups-and-communities/', 'standards bodies')
|
||||
self._test('/plans/', 'Commercial support')
|
||||
self._test('/integrations/',
|
||||
'Over 60 native integrations.',
|
||||
extra_strings=[
|
||||
|
||||
@@ -146,6 +146,7 @@ i18n_urls = [
|
||||
url(r'^integrations/(.*)', IntegrationView.as_view()),
|
||||
url(r'^about/$', zerver.views.users.about_view),
|
||||
url(r'^apps/(.*)', zerver.views.home.apps_view, name='zerver.views.home.apps_view'),
|
||||
url(r'^plans/$', TemplateView.as_view(template_name='zerver/plans.html'), name='landing-page'),
|
||||
|
||||
url(r'^robots\.txt$', RedirectView.as_view(url='/static/robots.txt', permanent=True)),
|
||||
|
||||
|
||||
Reference in New Issue
Block a user