2021-07-10 12:16:13 +02:00
<div id="plans-section" class="env-{{env}}">
<div class="container">
<div class="row">
<div class="col-12 title-box">
2022-11-28 18:16:32 +02:00
<h1 translate class="text-center">
2021-07-10 12:16:13 +02:00
Joplin Cloud <span class="frame-bg frame-bg-yellow">plans</span>
</h1>
2022-11-28 18:16:32 +02:00
<p translate class="text-center sub-title">
2021-09-03 15:50:06 +02:00
<a href="https://joplincloud.com">Joplin Cloud</a> allows you to synchronise your notes across devices. It also lets you publish notes, and collaborate on notebooks with your friends, family or colleagues.
2021-07-10 12:16:13 +02:00
</p>
</div>
</div>
2021-07-31 15:42:56 +02:00
2021-08-02 18:43:18 +02:00
<noscript>
<div class="alert alert-danger alert-env-dev" role="alert" style='text-align: center; margin-top: 10px;'>
To use this page please enable JavaScript!
</div>
</noscript>
2021-07-31 15:42:56 +02:00
<div style="display: flex; justify-content: center; margin-top: 1.2em">
<div class="form-check form-check-inline">
<input id="pay-monthly-radio" class="form-check-input" type="radio" name="pay-radio" checked value="monthly">
2022-11-28 18:16:32 +02:00
<label translate style="font-weight: bold" class="form-check-label" for="pay-monthly-radio">
2021-07-31 15:42:56 +02:00
Pay Monthly
</label>
</div>
<div class="form-check form-check-inline">
<input id="pay-yearly-radio" class="form-check-input" type="radio" name="pay-radio" value="yearly">
2022-11-28 18:16:32 +02:00
<label translate style="font-weight: bold" class="form-check-label" for="pay-yearly-radio">
2021-07-31 15:42:56 +02:00
Pay Yearly
</label>
</div>
</div>
2021-07-10 12:16:13 +02:00
2021-07-31 15:42:56 +02:00
<div class="row plan-group plan-prices-monthly">
2021-07-10 12:16:13 +02:00
{{#plans.basic}}
{{> plan}}
{{/plans.basic}}
{{#plans.pro}}
{{> plan}}
{{/plans.pro}}
2022-04-07 16:35:15 +02:00
{{#plans.teams}}
2021-07-10 12:16:13 +02:00
{{> plan}}
2022-04-07 16:35:15 +02:00
{{/plans.teams}}
2021-09-03 15:50:06 +02:00
2022-11-28 18:16:32 +02:00
<p translate class="joplin-cloud-login-info">Already have a Joplin Cloud account? <a href="https://joplincloud.com">Login now</a></p>
2021-07-10 12:16:13 +02:00
</div>
2022-04-07 16:35:15 +02:00
<div class="row">
<div>
<h1>Feature comparison</h1>
<div class="joplin-cloud-feature-list">
{{{featureListHtml}}}
</div>
<p> </p>
</div>
</div>
2022-11-28 18:16:32 +02:00
<div class="row faq">
2021-07-10 12:16:13 +02:00
{{{faqHtml}}}
</div>
</div>
<script src="https://js.stripe.com/v3/"></script>
<script>
2021-08-02 18:43:18 +02:00
const urlQuery = new URLSearchParams(location.search);
2021-07-31 15:42:56 +02:00
let subscriptionPeriod = 'monthly';
2021-10-07 15:19:40 +02:00
const stripe = Stripe('{{{stripeConfig.publishableKey}}}');
2021-07-31 15:42:56 +02:00
2021-08-02 18:43:18 +02:00
let checkoutSessionUser = null;
// Temporary setup to allow Beta users to start their subscription.
function setupBetaHandling(query) {
let accountType = Number(query.get('account_type'));
if (isNaN(accountType)) accountType = 1;
const email = query.get('email');
if (!email) return;
$('.account-type-3').css('display', 'none');
$('.subscribeButton').text('Buy now');
if (accountType === 2) {
$('.account-type-1').css('display', 'none');
}
checkoutSessionUser = { email, accountType };
}
2021-07-31 15:42:56 +02:00
var createCheckoutSession = function(priceId) {
2021-10-07 15:19:40 +02:00
const promotionCode = urlQuery.get('promo') || '';
2021-07-31 18:05:39 +02:00
2021-10-07 15:19:40 +02:00
console.info('Creating Stripe session for price:', priceId, 'Promotion code:', promotionCode);
2021-07-31 15:42:56 +02:00
2023-07-16 18:48:13 +02:00
const source = localStorage.getItem('source');
2021-07-31 15:42:56 +02:00
return fetch("{{{stripeConfig.webhookBaseUrl}}}/stripe/createCheckoutSession", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
2021-10-07 15:19:40 +02:00
priceId,
promotionCode,
2021-08-02 18:43:18 +02:00
email: checkoutSessionUser ? checkoutSessionUser.email : '',
2023-07-16 18:48:13 +02:00
source,
2021-07-31 15:42:56 +02:00
})
2021-07-31 18:05:39 +02:00
}).then(async function(result) {
if (!result.ok) {
console.error('Could not create Stripe checkout session', await result.text());
alert('The checkout session could not be created. Please contact support@joplincloud.com for support.');
} else {
return result.json();
}
2021-07-31 15:42:56 +02:00
});
};
2022-08-24 12:30:39 +02:00
const applyPeriod = (period) => {
subscriptionPeriod = period;
$('.plan-group').removeClass(period === 'monthly' ? 'plan-prices-yearly' : 'plan-prices-monthly');
$('.plan-group').addClass('plan-prices-' + period);
$("#pay-" + period + '-radio').prop('checked', true);
}
2021-07-31 15:42:56 +02:00
$(() => {
$("input[name='pay-radio']").change(function() {
const period = $("input[type='radio'][name='pay-radio']:checked").val();
2022-08-24 12:30:39 +02:00
applyPeriod(period);
2021-08-02 18:43:18 +02:00
});
setupBetaHandling(urlQuery);
2023-01-23 19:49:02 +02:00
if (urlQuery.get('period') === 'monthly') {
// Nothing - this is the default
} else {
applyPeriod('yearly');
}
2021-07-10 12:16:13 +02:00
});
</script>
</div>