portico: Add /for/education, /for/events, /for/research pages.

These modern landing pages cover use cases previously not detailed on
our website. Technically, we had a /for/research page before, but it
wasn't finished or linked everywhere.

Removed "function-url-quotes" stylelint rule
since I need to use quotes in url to use an
svg as list bullet point. There are spacing issues
using it as an image. Also, using quotes in url
is actually the recommended way to do it otherwise
there could be issue with escaping.
This commit is contained in:
Aman Agrawal 2021-07-20 18:33:48 +00:00 committed by Tim Abbott
parent d5b9f87ada
commit 3c024b2fba
18 changed files with 1275 additions and 41 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

View File

@ -230,4 +230,19 @@ $(() => {
if (window.location.pathname === "/team/") {
render_tabs();
}
// Source: https://stackoverflow.com/questions/819416/adjust-width-and-height-of-iframe-to-fit-with-content-in-it
// Resize tweet to avoid overlapping with image. Since tweet uses an iframe which doesn't adjust with
// screen resize, we need to manually adjust its width.
function resizeIFrameToFitContent(iFrame) {
$(iFrame).width("38vw");
}
window.addEventListener("resize", () => {
const iframes = document.querySelectorAll(".twitter-tweet iframe");
for (const iframe of iframes) {
resizeIFrameToFitContent(iframe);
}
});
});

View File

@ -335,7 +335,7 @@ nav {
}
ul.solutions-options {
width: 400px;
width: 450px;
div.dropdown-column {
float: left;
@ -2263,6 +2263,7 @@ nav {
}
.portico-landing.why-page .hero h1 {
position: relative;
margin: 0 0 20px 0;
font-size: 3.5em;
@ -2334,6 +2335,14 @@ nav {
margin-top: 20px;
}
.portico-landing.why-page .bg-education {
position: relative;
background-image: url(../../images/landing-page/education/for-education-cover.jpg);
background-size: cover;
background-position: center;
}
.portico-landing.why-page .bg-pycon {
position: relative;
@ -2358,7 +2367,7 @@ nav {
background-image: url(../../images/landing-page/why-zulip-threads.jpg);
}
.portico-landing.why-page .bg-pycon .bg-dimmer {
.portico-landing.why-page .bg-dimmer {
position: absolute;
width: 100%;
height: 100%;
@ -3957,3 +3966,325 @@ nav {
font-size: 13px;
padding-left: 10px;
}
.feature-container {
display: flex;
flex-wrap: wrap;
justify-content: center;
padding: 50px 4vw 10px;
.feature-half {
display: flex;
flex-direction: column;
justify-content: center;
}
.md-hide {
display: none;
}
.md-display {
display: block;
}
@media (width <= 768px) {
.feature-text {
margin-bottom: 10px;
}
.twitter-tweet {
margin: 30px auto !important;
}
}
@media (width >= 768px) {
display: grid;
grid-column-gap: 5%;
grid-template-columns: 43% auto;
max-width: 1300px;
align-items: center;
justify-items: center;
margin: auto;
.alternate-grid& {
grid-template-columns: auto 43%;
}
.feature-half {
display: block;
}
.md-display {
display: none !important;
}
}
.feature-text {
h1 {
font-size: 30px;
font-weight: 600;
}
ul {
list-style: none;
margin-left: 0;
}
ul li {
margin-bottom: 15px;
&::before {
float: left;
background-repeat: no-repeat;
content: "";
width: 18px;
height: 18px;
margin-right: 5px;
margin-top: 2px;
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-1.25 17.292l-4.5-4.364 1.857-1.858 2.643 2.506 5.643-5.784 1.857 1.857-7.5 7.643z"/></svg>');
}
.list-content {
margin-left: 22px;
}
}
}
.feature-image {
img,
div.quote {
width: 400px;
}
}
.feature-buttons {
margin: 0 auto;
}
}
.twitter-tweet {
margin: auto;
}
.discounts-section {
text-align: center;
header {
b {
font-weight: 600;
color: hsl(169, 45%, 43%);
}
}
}
.register-buttons {
display: flex;
flex-flow: row wrap;
justify-content: center;
margin: 20px;
}
/* Common button styles */
.register-now {
font-size: 15px;
margin: 10px 20px;
float: left;
width: 200px;
display: block;
border: 2px solid;
border-radius: 4px;
background: none;
color: inherit;
vertical-align: middle;
position: relative;
z-index: 1;
backface-visibility: hidden;
-moz-osx-font-smoothing: grayscale;
letter-spacing: 2px;
text-transform: uppercase;
overflow: hidden;
transition: border-color 0.3s, background-color 0.3s;
transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
font-weight: 800;
padding: 15px 5px;
&:focus {
outline: none;
}
p {
font-weight: 600;
margin-bottom: 0;
}
&:hover {
border-color: hsl(169, 45%, 43%);
background-color: hsl(170, 47%, 53%);
color: hsl(0, 0%, 100%);
}
}
.quote {
background: hsl(218, 46%, 43%);
padding: 1em;
border-radius: 1em;
font-weight: 400;
margin: 40px 5px;
a {
color: hsl(0, 0%, 100%);
&.case-study-link {
margin-left: 20px;
text-decoration: underline;
}
&:hover {
text-decoration: underline;
}
}
.author,
blockquote {
color: hsl(0, 0%, 100%);
margin: 5px 20px 20px;
}
blockquote {
font-size: 18px;
}
blockquote::before {
font-size: 20px;
font-weight: 800;
}
}
.solutions-page {
.hero-text {
position: relative;
width: 80%;
max-width: 700px;
margin: 40px auto;
font-size: 20px;
text-align: center;
font-weight: bolder;
opacity: 0.9;
a {
color: hsl(170, 76%, 64%);
}
}
.hero-buttons {
display: flex;
flex-flow: row wrap;
justify-content: center;
a {
color: hsl(170, 47%, 33%);
font-weight: 600;
font-size: 15px;
margin: 10px;
&:hover {
color: hsl(0, 0%, 100%);
background-color: hsl(170, 47%, 33%);
border-color: hsl(170, 47%, 33%);
}
}
}
.feature-end {
@media (width >= 768px) {
margin: 10px;
}
h1 {
margin-top: 20px;
text-align: center;
font-weight: 600;
margin-bottom: 10px;
padding-bottom: 0;
}
ul {
margin: auto;
max-width: 800px;
padding: 30px;
}
p {
margin: auto;
max-width: 800px;
padding: 30px;
}
.feature-pricing {
margin: auto;
max-width: 635px;
}
table {
border-collapse: separate;
border-spacing: 0;
}
table tr th,
table tr td {
border-right: 1px solid hsl(0, 0%, 73.3%);
border-bottom: 1px solid hsl(0, 0%, 73.3%);
padding: 20px;
font-weight: 500;
}
table tr th:first-child,
table tr td:first-child {
border-left: 1px solid hsl(0, 0%, 73.3%);
}
td:nth-child(2),
th:nth-child(2) {
font-weight: 600;
}
table tr th {
background: hsl(0, 0%, 93.3%);
border-top: 1px solid hsl(0, 0%, 73.3%);
text-align: left;
}
/* top-left border-radius */
table tr:first-child th:first-child {
border-top-left-radius: 6px;
}
/* top-right border-radius */
table tr:first-child th:last-child {
border-top-right-radius: 6px;
}
/* bottom-left border-radius */
table tr:last-child td:first-child {
border-bottom-left-radius: 6px;
}
/* bottom-right border-radius */
table tr:last-child td:last-child {
border-bottom-right-radius: 6px;
}
}
}
.bottom-register-buttons {
max-width: 800px;
margin: auto;
h1 {
text-align: center;
font-weight: 600;
margin-bottom: 0;
padding-bottom: 0;
}
.hero-buttons {
margin: 20px;
}
}

View File

@ -19,7 +19,6 @@ module.exports = {
// Additional stylistic rules
"font-family-name-quotes": "always-where-recommended",
"function-url-quotes": "never",
// Limit language features
"color-no-hex": true,
@ -38,7 +37,9 @@ module.exports = {
// Zulip CSS should have no dependencies on external resources
"function-url-no-scheme-relative": true,
"function-url-scheme-allowed-list": [],
"function-url-scheme-allowed-list": [
"data", // Allow data URIs
],
// We use autoprefixer to generate vendor prefixes
"at-rule-no-vendor-prefix": true,

View File

@ -0,0 +1,266 @@
{% extends "zerver/portico.html" %}
{% set entrypoint = "landing-page" %}
{% set OPEN_GRAPH_TITLE = 'Teach a course with Zulip.' %}
{% set OPEN_GRAPH_DESCRIPTION = 'Online, in-person, and anything in between' %}
{% block title %}
<title>Teach a course with Zulip for Education: Online, in-person, and anything in between</title>
{% endblock %}
{% block customhead %}
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
{% endblock %}
{% block portico_content %}
{% include 'zerver/landing_nav.html' %}
<div class="portico-landing why-page no-slide solutions-page">
<div class="hero bg-education">
<div class="bg-dimmer"></div>
<div class="content">
<h1 class="center">Teach a course with Zulip.</h1>
<p>Online, in-person, and anything in between</p>
</div>
<div class="hero-text">
Learn how <a href="/case-studies/tum/">Technical University of Munich</a> and
<br /><a href="/case-studies/ucsd/">University of California San Diego</a> are using Zulip!
</div>
<div class="hero-buttons center">
<a href="/new/" class="button">
{{ _('Create organization') }}
</a>
<a href="#feature-pricing" class="button">
{{ _('Education pricing') }}
</a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button">
{{ _('Self-host Zulip') }}
</a>
</div>
</div>
<div class="feature-container">
<div class="feature-half">
<div class="feature-text">
<h1>
Use topics to organize the discussion
</h1>
<ul>
<li>
<div class="list-content">
<a href="/help/about-streams-and-topics">Zulip topics</a> create a separate space for each discussion.
</div>
</li>
<li><div class="list-content"> Questions and answers are easy to find, so each question is only asked once.</div></li>
<li><div class="list-content">Refer to relevant points by <a href="/help/link-to-a-message-or-conversation">linking to a message or a topic.</a></div></li>
<li><div class="list-content">Keep discussions orderly by <a href="/help/rename-a-topic">moving</a> or <a href="/help/move-content-to-another-topic">splitting</a> topics when conversations take a turn.</div></li>
<li><div><a href="/help/resolve-a-topic">Mark the topic ✓ resolved</a> when done!</div></li>
</ul>
<div class="quote">
<blockquote>
Zulip has the best user experience of all the chat apps Ive tried. With the discussion organized by topic within each stream, Zulip is the only app that makes hundreds of conversations manageable.
</blockquote>
<div class="author">
&mdash; <a href="https://ciip.in.tum.de/people/lasser.html">Tobias Lasser</a>, lecturer at the Technical University of Munich Department of Informatics
</div>
<a class="case-study-link" href="/case-studies/tum/">Learn more about how TUM uses Zulip.</a>
</div>
</div>
</div>
<div class="feature-half">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/streams_and_topics_day.png" />
</div>
</div>
</div>
<div class="feature-container alternate-grid">
<div class="feature-half md-hide">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/message_formatting_day.png" />
</div>
</div>
<div class="feature-half">
<div class="feature-text">
<h1>
Powerful formatting
</h1>
<ul>
<li><div class="list-content"><a href="/help/format-your-message-using-markdown#latex">Type LaTeX</a> directly into your Zulip message, and see it beautifully rendered.</div></li>
<li><div class="list-content">Structure your points with bulleted and numbered <a href="/help/format-your-message-using-markdown#lists">lists</a>.</div></li>
<li><div class="list-content"><a href="/help/code-blocks">Zulip code blocks</a> come with syntax highlighting for over 250 languages, and integrated <a href="/help/code-blocks#code-playgrounds">code playgrounds.</a></div></li>
</ul>
<blockquote class="twitter-tweet" data-conversation="none" data-dnt="true"><p lang="en" dir="ltr">I used Piazza &amp; Zulip. Piazza lets students ask questions anonymously. Zulip better all-around for chatting, announcements, group work (has built-in LaTeX, as well as threading). Zulip basically replaced email for my class. Easy to pick up if you&#39;ve used Slack &amp; email before.</p>&mdash; Joshua Grochow (@joshuagrochow) <a href="https://twitter.com/joshuagrochow/status/1336008355911970822?ref_src=twsrc%5Etfw">December 7, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js"></script>
</div>
</div>
<div class="feature-half md-display">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/interactive_messaging_day.png" />
</div>
</div>
</div>
<div class="feature-container">
<div class="feature-half">
<div class="feature-text">
<h1>
Interactive messaging
</h1>
<ul>
<li>
<div class="list-content">
Use <a href="/help/emoji-reactions">emoji reactions</a> for a quick pulse check.
</div>
</li>
<li><div class="list-content">Gather students preferences with built-in <a href="/help/create-a-poll">polls.</a></div></li>
<li><div class="list-content">Hide answers behind <a href="/help/format-your-message-using-markdown#spoilers">spoilers</a>, letting students think before they read.</div></li>
<li><div class="list-content">Share lecture notes and reading materials with drag-and-drop file uploads.</div></li>
</ul>
<div class="quote">
<blockquote>
Participants across six continents signed up for my graduate-level classes when I decided to open them up to the world during the pandemic. Zulip became a central hub for asychronous Q&A and posting Zoom links for lectures, whiteboard PDFs, and announcements. Zulips topics, and the ability to change the topic of someone else's message, has made it much easier for me to keep things coherent. Its super easy to discuss technical material using the TeX integration, and spoilers are a great way to answer questions about homework without depriving students of a chance to keep thinking about the problem on their own.
</blockquote>
<div class="author">
&mdash; <a href="https://kskedlaya.org/">Kiran S. Kedlaya</a>, Professor of Mathematics at University of California San Diego
</div>
<a class="case-study-link" href="/case-studies/ucsd/">Learn more about how UCSD uses Zulip.</a>
</div>
</div>
</div>
<div class="feature-half">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/interactive_messaging_day.png" />
</div>
</div>
</div>
<div class="feature-container alternate-grid">
<div class="feature-half md-hide">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/flexible-administration.svg" />
</div>
</div>
<div class="feature-half">
<div class="feature-text">
<h1>
Flexible administration and moderation
</h1>
<ul>
<li><div class="list-content">Zulip offers dozens of features for <a href="/help/moderating-open-organizations">moderating the discussion.</a></div></li>
<li><div class="list-content">Assign permissions to course staff with <a href="/help/stream-permissions#detailed-permissions">fine-grained settings</a> for <a href="/help/roles-and-permissions">administrators and moderators.</a></div></li>
<li><div class="list-content">Make an announcement stream where only course staff <a href="/help/stream-permissions#public-streams">can post messages</a>.</div></li>
<li><div class="list-content">Quickly add staff and students to the right streams. Automatically subscribe users <a href="/help/set-default-streams-for-new-users">when they join</a>, subscribe a <a href="/help/user-groups">group of users</a>, or copy membership from another stream.</div></li>
</ul>
</div>
</div>
<div class="feature-half md-display">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/flexible-administration.svg" />
</div>
</div>
</div>
<div class="feature-container">
<div class="feature-half">
<div class="feature-text">
<h1>
Maintain student privacy
</h1>
<ul>
<li>
<div class="list-content">
Zulip Cloud is built with <a href="/privacy/">privacy</a> and <a href="/security/">security</a> in mind.
</div>
</li>
<li><div class="list-content">Zulip is <a href="https://github.com/zulip">100% open source</a>. We work hard to make it <a href="https://zulip.readthedocs.io/en/latest/production/install.html">easy to set up</a> and run a self-hosted Zulip installation, where you have full control of the data.</div></li>
<li><div class="list-content">Email addresses <a href="/help/restrict-visibility-of-email-addresses">can be hidden</a>, and students <a href="/help/status-and-availability#disable-updating-availability">dont have to share</a> when they are online.</div></li>
<li><div class="list-content">Students can <a href="/help/mute-a-user">mute</a> anyone they'd rather not interact with.</div></li>
</ul>
</div>
</div>
<div class="feature-half">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/privacy.svg" />
</div>
</div>
</div>
<div class="feature-container alternate-grid">
<div class="feature-half md-hide">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/mobile.svg" />
</div>
</div>
<div class="feature-half">
<div class="feature-text">
<h1>
Never miss a beat
</h1>
<ul>
<li>
<div class="list-content">
With <a href="/apps">apps for every platform</a>, you can check Zulip at your computer or on your phone.
</div>
</li>
<li><div class="list-content">Zulip alerts you about urgent messages with <a href="/help/stream-notifications">fully customizable</a> mobile, email and desktop notifications.</div></li>
<li><div class="list-content">Mention <a href="/help/mention-a-user-or-group">users</a>, <a href="/help/mention-a-user-or-group#mention-a-user-or-group">groups of users</a> or <a href="/help/pm-mention-alert-notifications#wildcard-mentions">everyone</a> when you need their attention.</div>
</li>
<li><div class="list-content">Use Zulip in your language or choice, with translations into <a href="https://www.transifex.com/zulip/zulip/">17 languages</a>.</div></li>
<li><div class="list-content">Zulip works reliably for organizations with thousands of users online at once.</div></li>
</ul>
</div>
</div>
<div class="feature-half md-display">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/mobile.svg" />
</div>
</div>
</div>
<div class="feature-end">
<div class="feature-pricing" id="feature-pricing">
<h1 class="center"> Zulip Cloud for Education plans </h1>
<table>
<tr>
<th>Zulip Cloud Standard with education discount</th>
<th>
<div>$1 per user per month</div>
<div>$1.20/month billed monthly</div>
</th>
</tr>
<tr>
<td>Zulip Cloud Standard for education non-profits*</td>
<td>
<div>$0.67 per user per month</div>
<div>$0.80/month billed monthly</div>
</td>
</tr>
</table>
<p>
* Discount applies to online purchases only for use at
non-profit institutions (e.g. colleges and universities).
</p>
</div>
<p>
Learn about using Zulip
for <a href="/for/events">conferences</a> and
<a href="/for/research">research communities</a>. If you have any
questions, please contact us
at <a href="mailto:sales@zulip.com">sales@zulip.com</a>. You
can also drop by
our <a href="https://chat.zulip.org">friendly developer
community at chat.zulip.org</a> to ask for help or suggest
improvements!
</p>
</div>
</div>
{% endblock %}

View File

@ -0,0 +1,278 @@
{% extends "zerver/portico.html" %}
{% set entrypoint = "landing-page" %}
{% set OPEN_GRAPH_TITLE = 'Zulip for conferences and events' %}
{% set OPEN_GRAPH_DESCRIPTION = 'Conferences, workshops, hackathons. In-person, online, and anything in between.' %}
{% block title %}
<title>Zulip for conferences and events: Conferences, workshops, hackathons. In-person, online, and anything in between.</title>
{% endblock %}
{% block customhead %}
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
{% endblock %}
{% block portico_content %}
{% include 'zerver/landing_nav.html' %}
<div class="portico-landing why-page no-slide solutions-page">
<div class="hero bg-education">
<div class="bg-dimmer"></div>
<div class="content">
<h1 class="center">Zulip for conferences and events</h1>
<p>Conferences, workshops, hackathons. In-person, online, and anything in between.</p>
</div>
<div class="hero-text">
<a href="/plans">Zulip Standard</a> is free for academic conferences and most other non-profit events! Contact <a href="mailto:sales@zulip.com">sales@zulip.com</a> to check whether your organization qualifies, or <a href="/accounts/go/?next=/upgrade%23sponsorship">request sponsorship</a> today.
</div>
<div class="hero-buttons center">
<a href="/new/" class="button">
{{ _('Create organization') }}
</a>
<a href="/accounts/go/?next=/upgrade%23sponsorship" class="button">
{{ _('Request sponsorship') }}
</a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button">
{{ _('Self-host Zulip') }}
</a>
</div>
</div>
<div class="feature-container">
<div class="feature-half">
<div class="feature-text">
<h1>
Use topics to organize the discussion
</h1>
<ul>
<li>
<div class="list-content">
<a href="/help/about-streams-and-topics">Zulip
topics</a> create a separate space for
each discussion or question.
</div>
</li>
<li>
<div class="list-content">
Make your event more inclusive by lowering the bar
to ask a question, share ideas, and learn from experts.
</div>
</li>
<li>
<div class="list-content">
Take time to think. Discussions work great
in real time or async, and conversations
evolve into collaborations.
</div>
</li>
</ul>
<div class="quote">
<blockquote>
Discussions at conferences often happen in small groups — most
people are not able to participate because they are not present,
or are too intimidated to join. In the conferences we organized
with Zulip, questions or ideas were spread openly. Anybody could
get a chance to contribute, and to benefit from new ideas and
opportunities for collaboration.
<br/> <br/>
Zulip turned out to be a great asset that we plan to keep even
when we go back to face-to-face events.
</blockquote>
<div class="author">
&mdash; <a href="https://perso.univ-rennes1.fr/christophe.ritzenthaler/">Christophe Ritzenthaler</a>, <cite>Executive Director of <a href="https://www.cimpa.info/">CIMPA</a>
and Professor at Rennes 1 University</cite>
</div>
</div>
</div>
</div>
<div class="feature-half">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/streams_and_topics_day.png" />
</div>
</div>
</div>
<div class="feature-container alternate-grid">
<div class="feature-half md-hide">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/interactive_messaging_day.png" />
</div>
</div>
<div class="feature-half">
<div class="feature-text">
<h1>
Your communication hub
</h1>
<ul>
<li><div class="list-content">Share the agenda and presentations with
drag-and-drop file uploads.</div></li>
<li><div class="list-content">Use <a href="/help/emoji-reactions">emoji reactions</a> for lightweight interactions. Have fun with <a href="/help/add-custom-emoji">custom emoji</a>, or get feedback with a <a href="/help/create-a-poll">poll</a>.</div></li>
<li><div class="list-content">Announce the schedule without worrying about time zones using <a href="/help/format-your-message-using-markdown#mention-a-time">local times</a>.</div></li>
<li><div class="list-content">Make a <a href="/help/start-a-call">video call</a> with the click of a button.</div></li>
<li><div class="list-content">Use Zulip in your language or choice, with translations into <a href="https://www.transifex.com/zulip/zulip/">17 languages</a>.</div></li>
</ul>
</div>
</div>
<div class="feature-half md-display">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/interactive_messaging_day.png" />
</div>
</div>
</div>
<div class="feature-container">
<div class="feature-half">
<div class="feature-text">
<h1>
Lasting knowledge repository
</h1>
<ul>
<li>
<div class="list-content">
Make the Q&amp;A a permanent resource for participants.
</div>
</li>
<li><div class="list-content"><a href="/help/link-to-a-message-or-conversation">Link to a Zulip conversation</a> from emails, talk slides, or on the website for your event.</div></li>
<li><div class="list-content">Information is at your fingertips with Zulips <a href="/help/search-for-messages">powerful full-text search</a>.</div></li>
<li><div class="list-content"><a href="https://github.com/zulip/zulip-archive">Publish</a> discussions on the web, or move your data with our high quality <a href="/help/export-your-organization">export</a> and <a href="https://zulip.readthedocs.io/en/latest/production/export-and-import.html">import</a> tools.</div></li>
<li><div class="list-content">Zulip is <a href="https://github.com/zulip">100% free and open-source software</a>, so you are never locked into a proprietary tool.</div></li>
</ul>
<div class="quote">
<blockquote>
The fact that the chat serves as a repository of the scientific /
academic exchanges is a big unanticipated bonus. Participants tend
to log in after the event, sometimes repeatedly, to consult the
messages and get in touch with others.
</blockquote>
<div class="author">
&mdash; Marianne Mandl, <a href="https://conference-service.com/">COMS | Conference Management Software</a>
</div>
</div>
</div>
</div>
<div class="feature-half">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/knowledge-repository.svg" />
</div>
</div>
</div>
<div class="feature-container alternate-grid">
<div class="feature-half md-hide">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/message_formatting_day.png" />
</div>
</div>
<div class="feature-half">
<div class="feature-text">
<h1>
Powerful formatting
</h1>
<ul>
<li><div class="list-content"><a href="/help/format-your-message-using-markdown#latex">Type LaTeX</a> directly into your Zulip message, and see it beautifully rendered.</div></li>
<li><div class="list-content"><a href="/help/code-blocks">Zulip code blocks</a> come with syntax highlighting for over 250 languages, and integrated <a href="/help/code-blocks#code-playgrounds">code playgrounds.</a></div></li>
<li><div class="list-content">Structure your ideas with bulleted and numbered <a href="/help/format-your-message-using-markdown#lists">lists</a>.</div></li>
<li><div class="list-content">If you made a mistake, no worries! You can <a href="/help/edit-or-delete-a-message">edit your message</a>, or move it to a different <a href="/help/move-content-to-another-topic">topic</a> or <a href="/help/move-content-to-another-stream">stream</a>.</div></li>
</ul>
</div>
</div>
<div class="feature-half md-display">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/message_formatting_day.png" />
</div>
</div>
</div>
<div class="feature-container">
<div class="feature-half">
<div class="feature-text">
<h1>
Set everything up ahead of time
</h1>
<ul>
<li>
<div class="list-content">
With <a href="/help/invite-new-users">multi-use invite links</a>, theres no need to create individual Zulip invitations.
</div>
</li>
<li><div class="list-content">Signing up for Zulip is quick and easy. Participants can make an account, or <a href="/help/logging-in">log in</a> with Google, Apple, etc.</div></li>
<li><div class="list-content">Automatically subscribe members to streams <a href="/help/set-default-streams-for-new-users">when they join</a>, subscribe a <a href="/help/user-groups">group of users</a>, or copy membership from another stream.</div></li>
<li><div class="list-content">Make an announcement stream where only organizers <a href="/help/stream-permissions#public-streams">can post messages</a>. Use <a href="/help/stream-permissions">private streams</a> to plan the event.</div></li>
</ul>
</div>
</div>
<div class="feature-half">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/flexible-administration.svg" />
</div>
</div>
</div>
<div class="feature-container alternate-grid">
<div class="feature-half md-hide">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/mobile.svg" />
</div>
</div>
<div class="feature-half">
<div class="feature-text">
<h1>
Never miss a beat
</h1>
<ul>
<li>
<div class="list-content">
With <a href="/apps">apps for every
platform</a>, check Zulip at your computer or on your
phone. Zulip works great in a browser, so no download is
required.
</div>
</li>
<li><div class="list-content">Zulip alerts participants about urgent messages with <a href="/help/stream-notifications">fully customizable</a> mobile, email and desktop notifications.</div></li>
<li><div class="list-content">Mention <a href="/help/mention-a-user-or-group">users</a>, <a href="/help/mention-a-user-or-group#mention-a-user-or-group">groups of users</a> or <a href="/help/pm-mention-alert-notifications#wildcard-mentions">everyone</a> when you need their attention.</div></li>
<li><div class="list-content">Zulip works reliably for organizations
with thousands of users online at once.</div></li>
</ul>
</div>
</div>
<div class="feature-half md-display">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/mobile.svg" />
</div>
</div>
</div>
<div class="feature-end">
<div class="bottom-register-buttons">
<h1>
<a href="/plans">Zulip Standard</a> is free for academic conferences and
most other non-profit events!
</h1>
<div class="hero-buttons center">
<a href="/new/" class="button">
{{ _('Create organization') }}
</a>
<a href="/accounts/go/?next=/upgrade%23sponsorship" class="button">
{{ _('Request sponsorship') }}
</a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button">
{{ _('Self-host Zulip') }}
</a>
</div>
</div>
<p>
Learn about using Zulip for <a href="/for/education/">teaching</a>
and <a href="/for/research/">research communities</a>. If you have any
questions, please contact us
at <a href="mailto:sales@zulip.com">sales@zulip.com</a>. You can also drop by
our <a href="https://chat.zulip.org">friendly developer community at
chat.zulip.org</a> to ask for help or suggest improvements!
</p>
</div>
</div>
{% endblock %}

View File

@ -16,13 +16,27 @@
{% include 'zerver/landing_nav.html' %}
<div class="portico-landing why-page no-slide">
<div class="portico-landing why-page no-slide solutions-page">
<div class="hero bg-pycon">
<div class="bg-dimmer"></div>
<div class="content">
<h1 class="center">{% trans %}Zulip for open source.{% endtrans %}</h1>
<p>Grow your community with fun, thoughtful, and inclusive discussion.</p>
</div>
<div class="hero-text">
<a href="/plans">Zulip Standard</a> is free for open-source projects! Contact <a href="mailto:sales@zulip.com">sales@zulip.com</a> to check whether your organization qualifies, or <a href="/accounts/go/?next=/upgrade%23sponsorship">request sponsorship</a> today.
</div>
<div class="hero-buttons center">
<a href="/new/" class="button">
{{ _('Create organization') }}
</a>
<a href="/accounts/go/?next=/upgrade%23sponsorship" class="button">
{{ _('Request sponsorship') }}
</a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button">
{{ _('Self-host Zulip') }}
</a>
</div>
</div>
<div class="main">
<div class="padded-content">
@ -32,6 +46,23 @@
</div>
</div>
<div class="bottom-register-buttons">
<h1>
<a href="/plans">Zulip Standard</a> is free for open-source projects!
</h1>
<div class="hero-buttons center">
<a href="/new/" class="button">
{{ _('Create organization') }}
</a>
<a href="/accounts/go/?next=/upgrade%23sponsorship" class="button">
{{ _('Request sponsorship') }}
</a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button">
{{ _('Self-host Zulip') }}
</a>
</div>
</div>
<div class="testimonials">
<div class="padded-content">
<div id="os-quote-carousel" class="carousel slide" data-ride="carousel">

View File

@ -1,13 +1,11 @@
{% extends "zerver/portico.html" %}
{% set entrypoint = "landing-page" %}
{% set OPEN_GRAPH_TITLE = 'Modern team chat for researchers' %}
{% set OPEN_GRAPH_DESCRIPTION = 'No message limits, rich moderation
features, LaTeX support, and a threading model that supports both
conversations and focus work.' %}
{% set OPEN_GRAPH_TITLE = 'Zulip for research' %}
{% set OPEN_GRAPH_DESCRIPTION = 'Chat for your project, research group, department or scientific field' %}
{% block title %}
<title>Zulip: team chat for thoughtful distributed collaboration</title>
<title>Zulip for research: Chat for your project, research group, department or scientific field</title>
{% endblock %}
{% block customhead %}
@ -18,49 +16,350 @@ conversations and focus work.' %}
{% include 'zerver/landing_nav.html' %}
<div class="portico-landing why-page no-slide">
<div class="hero bg-pycon">
<div class="portico-landing why-page no-slide solutions-page">
<div class="hero bg-education">
<div class="bg-dimmer"></div>
<div class="content">
<h1 class="center">{% trans %}Zulip for researchers.{% endtrans %}</h1>
<p>Modern team chat with native LaTeX support. Free for academic research.</p>
<h1 class="center">Zulip for research</h1>
<p>Chat for your project, research group, department or scientific field</p>
</div>
<div class="hero-text">
<a href="/plans">Zulip Standard</a> is free for academic research! Contact <a href="mailto:sales@zulip.com">sales@zulip.com</a> to check whether your organization qualifies, or <a href="/accounts/go/?next=/upgrade%23sponsorship">request sponsorship</a> today.
</div>
<div class="hero-buttons center">
<a href="/new/" class="button">
{{ _('Create organization') }}
</a>
<a href="/accounts/go/?next=/upgrade%23sponsorship" class="button">
{{ _('Request sponsorship') }}
</a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button">
{{ _('Self-host Zulip') }}
</a>
</div>
</div>
<div class="main">
<div class="padded-content">
<div class="inner-content markdown">
{{ render_markdown_path('zerver/for/research.md') }}
<div class="feature-container">
<div class="feature-half">
<div class="feature-text">
<h1>
Use topics to organize the discussion
</h1>
<ul>
<li>
<div class="list-content">
<a href="/help/about-streams-and-topics">Zulip
topics</a> create a separate space for each
discussion.
</div>
</li>
<li><div class="list-content">Find active conversations, or see what
happened while you were away, with the <a href="/help/reading-strategies#recent-topics">Recent Topics</a> view.</div></li>
<li>
<div class="list-content">
Keep discussions orderly
by <a href="/help/rename-a-topic">moving</a>
or <a href="/help/move-content-to-another-topic">splitting</a>
topics when conversations digress.
</div>
</li>
<li>
<div class="list-content">
Check out <a href="/for/communities">Zulip for communities</a>
to learn how Zulip empowers welcoming communities by making it
easy to participate on your own time.
</div>
</li>
</ul>
<div class="quote">
<blockquote>
The Lean community switched from Gitter to Zulip in early 2018,
and never looked back. Zulips stream/topic model has been
essential for organising research work and simultaneously
onboarding newcomers as our community scaled. My experience with
both the app and the website is extremely positive!
</blockquote>
<div class="author">
&mdash; Kevin Buzzard, <cite>Professor of Pure Mathematics at Imperial College London</cite>
</div>
</div>
</div>
</div>
<div class="feature-half">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/streams_and_topics_day.png" />
</div>
</div>
</div>
<div class="testimonials">
<div class="padded-content">
<div id="research-quote-carousel" class="carousel slide" data-ride="carousel">
<div class="carousel-quotes">
<div class="carousel-inner">
<div class="item active quote-container">
<blockquote>
I have to use Slack for some other
research groups I collaborate with, but my
own graduate students voted to switch to
Zulip a few years ago and it's just vastly
better. Having infinite well-organized
history (tagged by topic and accessible
with a click) is super-helpful when my
group is involved in a bunch of different
projects and I meet with each student once
or twice a week and often need help
remembering, 'Wait, what did we decide
about this a month ago when we last talked
about it?'
</blockquote>
<cite>Keith Winstein, Stanford University Computer Science</cite>
<div class="feature-container alternate-grid">
<div class="feature-half md-hide">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/knowledge-repository.svg" />
</div>
</div>
<div class="feature-half">
<div class="feature-text">
<h1>
Lasting knowledge repository
</h1>
<ul>
<li>
<div class="list-content">
<a href="/help/link-to-a-message-or-conversation">Link
to a Zulip conversation</a> from emails,
notes, talk slides, or anywhere else.
</div>
</li>
<li>
<div class="list-content">
Information is at your fingertips with
Zulip's <a href="/help/search-for-messages">powerful
full-text search</a>. New participants can
learn from past discussions with unlimited
message history.
</div>
</li>
<li><div class="list-content"><a href="https://github.com/zulip/zulip-archive">Publish</a> discussions on the web, or move your data with our high quality <a href="/help/export-your-organization">export</a> and <a href="https://zulip.readthedocs.io/en/latest/production/export-and-import.html">import</a> tools.</div></li>
<li><div class="list-content">Zulip is <a href="https://github.com/zulip">100% free and open-source software</a>, so you are never locked into a proprietary tool.</div></li>
</ul>
<blockquote class="twitter-tweet" data-conversation="none" data-dnt="true"><p lang="en" dir="ltr">+10 or maybe even 💯 for <a href="https://twitter.com/zulip?ref_src=twsrc%5Etfw">@zulip</a>. Was originally put onto it by <a href="https://twitter.com/five9a2?ref_src=twsrc%5Etfw">@five9a2</a> (thanks!). Have since used it at all levels - my research group (~10 ppl), my dept group (CS Theory, ~30 ppl), my research community (algebraic complexity), and small collaborations. All great!</p>&mdash; Joshua Grochow (@joshuagrochow) <a href="https://twitter.com/joshuagrochow/status/1383141209934163969?ref_src=twsrc%5Etfw">April 16, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js"></script>
</div>
</div>
</div>
<div class="feature-container">
<div class="feature-half md-display">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/message_formatting_day.png" />
</div>
</div>
<div class="feature-half">
<div class="feature-text">
<h1>
Powerful formatting
</h1>
<ul>
<li><div class="list-content">Teaching technical topics? <a href="/help/format-your-message-using-markdown#latex">Type LaTeX</a> directly into your Zulip message, and see it beautifully rendered.</div></li>
<li><div class="list-content"><a href="/help/code-blocks">Zulip
code blocks</a> come with syntax highlighting for over 250 languages, and integrated <a href="/help/code-blocks#code-playgrounds">code playgrounds.</a></div></li>
<li><div class="list-content">Structure your points with bulleted and numbered <a href="/help/format-your-message-using-markdown#lists">lists</a>.</div></li>
<li>
<div class="list-content">
If you made a mistake, no worries! You
can <a href="/help/edit-or-delete-a-message">edit your
message</a>, or move it to a
different <a href="/help/move-content-to-another-topic">topic</a>
or <a href="/help/move-content-to-another-stream">stream</a>.
</div>
</li>
</ul>
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I&#39;ve been using <a href="https://twitter.com/zulip?ref_src=twsrc%5Etfw">@zulip</a> recently for my research collaborations, and I was pleasantly surprised how effective it is! The excellent LaTeX rendering and clever threading make it far superior to email and Slack. I found myself shifting most of my research correspondences to Zulip.</p>&mdash; Tom Gur (@TomGur) <a href="https://twitter.com/TomGur/status/1294322062274842624?ref_src=twsrc%5Etfw">August 14, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js"></script>
</div>
</div>
<div class="feature-half">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/message_formatting_day.png" />
</div>
</div>
</div>
<div class="feature-container alternate-grid">
<div class="feature-half md-hide">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/interactive_messaging_day.png" />
</div>
</div>
<div class="feature-half">
<div class="feature-text">
<h1>
Interactive messaging
</h1>
<ul>
<li>
<div class="list-content">
Start a <a href="/help/start-a-call">video
call</a> with the click of a button, or
make plans for later without worrying
about time zones
using <a href="/help/format-your-message-using-markdown#mention-a-time">local
times</a>.
</div>
</li>
<li>
<div class="list-content">
Use <a href="/help/emoji-reactions">emoji
reactions</a> for lightweight
interactions. Have fun
with <a href="/help/add-custom-emoji">custom
emoji</a> and gather feedback
with <a href="/help/create-a-poll">polls</a>.
</div>
</li>
<li><div class="list-content">Share papers, presentations or images with drag-and-drop file uploads.</div></li>
</ul>
<figure class="quote">
<blockquote>
For more than a year, Zulip has been the cornerstone of our online
Category Theory community. We greatly appreciate the seamless
integration of Latex in every message as well as being able to get
sidetracked (which, let's face it, happens a lot with
mathematicians) without compromising an entire conversation: we
can simply create a new topic for every tangent! Moreover, the
flexible streams-and-topics system greatly helps us navigate
through the constant influx of messages, as it is simple to tell
if a message is relevant to one's interests. All in all, Zulip
enabled us to create an unprecedentedly extensive, active and
vibrant community for all category theory enthusiasts out there.
</blockquote>
<div class="author">
&mdash; Dr. Stelios Tsampas
</div>
</figure>
</div>
</div>
<div class="feature-half md-display">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/interactive_messaging_day.png" />
</div>
</div>
</div>
<div class="feature-container">
<div class="feature-half">
<div class="feature-text">
<h1>
Flexible administration and moderation
</h1>
<ul>
<li><div class="list-content">Invite new members with <a href="/help/invite-new-users">multi-use invite links</a>, or allow anyone to <a href="/help/allow-anyone-to-join-without-an-invitation">join without an invitation</a>.</div></li>
<li>
<div class="list-content">
Automatically subscribe members to
streams <a href="/help/set-default-streams-for-new-users">when
they join.</a>
</div>
</li>
<li><div class="list-content">Manage your community with <a href="/help/stream-permissions#detailed-permissions">fine-grained permission settings</a> for <a href="/help/roles-and-permissions">administrators and moderators</a>.</div></li>
<li>
<div class="list-content">
Zulip offers dozens of features
for <a href="/help/moderating-open-organizations">moderating
the discussion</a>. Members can
also <a href="/help/mute-a-user">mute</a> anyone they'd rather
not interact with.
</div>
</li>
</ul>
</div>
</div>
<div class="feature-half">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/flexible-administration.svg" />
</div>
</div>
</div>
<div class="feature-container alternate-grid">
<div class="feature-half md-hide">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/mobile.svg" />
</div>
</div>
<div class="feature-half">
<div class="feature-text">
<h1>
When and how you want it
</h1>
<ul>
<li>
<div class="list-content">
With <a href="/apps">apps for every
platform</a>, you can check Zulip at your computer or on your
phone. Zulip works great in a browser, so no download is
required.
</div>
</li>
<li><div class="list-content">Zulip alerts you about timely messages with <a href="/help/stream-notifications">fully customizable</a> mobile, email and desktop notifications.</div></li>
<li>
<div class="list-content">
Mention <a href="/help/mention-a-user-or-group">users</a>, <a href="/help/mention-a-user-or-group#mention-a-user-or-group">groups
of users</a>
or <a href="/help/pm-mention-alert-notifications#wildcard-mentions">everyone</a>
when you need their attention.
</div>
</li>
<li><div class="list-content">Use Zulip in your language or choice, with translations into <a href="https://www.transifex.com/zulip/zulip/">17 languages</a>.</div></li>
</ul>
</div>
</div>
<div class="feature-half md-display">
<div class="feature-image">
<img alt="" src="/static/images/landing-page/education/mobile.svg" />
</div>
</div>
</div>
<div class="feature-container">
<div class="feature-half">
<div class="feature-text">
<h1>
Make the move today
</h1>
<ul>
<li>
<div class="list-content">
Zulip's founder is a former MIT PhD student, and we love
helping academics succeed. Learn about using Zulip
for <a href="/for/education/">teaching</a> and
<a href="/for/events/">conferences</a>.
</div>
</li>
<li><div class="list-content">Getting started or moving from another platform is easy! Import your existing organization from <a href="/help/import-from-slack">Slack</a>, <a href="/help/import-from-mattermost">Mattermost</a>, or <a href="/help/import-from-gitter">Gitter</a>.</div></li>
<li><div class="list-content">Fully <a href="/help/stream-notifications">customizable notifications</a> let participants keep an eye on the discussions they care about.</div></li>
<li><div class="list-content">If you have any questions, please contact us at <a href="mailto:sales@zulip.com">sales@zulip.com</a>. You can also drop by our <a href="https://zulip.readthedocs.io/en/latest/contributing/chat-zulip-org.html">friendly developer community at chat.zulip.org</a> to ask for help or suggest improvements!</div></li>
</ul>
</div>
</div>
<div class="feature-half">
<div class="feature-image">
<div class="quote">
<blockquote>
I have to use Slack for some other research groups
I collaborate with, but my own graduate students
voted to switch to Zulip a few years ago and it's
just vastly better.
</blockquote>
<div class="author">
&mdash; Keith Winstein, <cite>Assistant Professor of Computer Science at Stanford University</cite>
</div>
</div>
</div>
</div>
</div>
<div class="feature-end">
<div class="bottom-register-buttons">
<h1>
<a href="/plans">Zulip Standard</a> is free for
academic research!
</h1>
<div class="hero-buttons center">
<a href="/new/" class="button">
{{ _('Create organization') }}
</a>
<a href="/accounts/go/?next=/upgrade%23sponsorship" class="button">
{{ _('Request sponsorship') }}
</a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button">
{{ _('Self-host Zulip') }}
</a>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -50,6 +50,15 @@
<li>
<a href="/for/open-source/">Open source projects</a>
</li>
<li>
<a href="/for/education/">Education</a>
</li>
<li>
<a href="/for/events/">Events and conferences</a>
</li>
<li>
<a href="/for/research/">Research</a>
</li>
<li>
<a href="/for/communities/">Communities</a>
</li>

View File

@ -157,9 +157,11 @@ class DocPageTest(ZulipTestCase):
self._test("/hello/", "Chat for distributed teams", landing_missing_strings=["Log in"])
self._test("/why-zulip/", "Why Zulip?")
self._test("/for/open-source/", "for open source projects")
self._test("/for/events/", "for conferences and events")
self._test("/for/education/", "for education")
self._test("/case-studies/tum/", "Technical University of Munich")
self._test("/case-studies/ucsd/", "UCSD")
self._test("/for/research/", "for researchers")
self._test("/for/research/", "for research")
self._test("/for/companies/", "in a company")
self._test("/for/communities/", "Zulip for communities")
self._test("/security/", "TLS encryption")

View File

@ -627,6 +627,8 @@ i18n_urls = [
path("team/", team_view),
path("history/", landing_view, {"template_name": "zerver/history.html"}),
path("why-zulip/", landing_view, {"template_name": "zerver/why-zulip.html"}),
path("for/education/", landing_view, {"template_name": "zerver/for-education.html"}),
path("for/events/", landing_view, {"template_name": "zerver/for-events.html"}),
path("for/open-source/", landing_view, {"template_name": "zerver/for-open-source.html"}),
path("for/research/", landing_view, {"template_name": "zerver/for-research.html"}),
path("for/companies/", landing_view, {"template_name": "zerver/for-companies.html"}),