You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

239 lines
9.8 KiB

10 years ago
10 years ago
10 years ago
10 years ago
9 years ago
9 years ago
10 years ago
9 years ago
10 years ago
10 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
9 years ago
10 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
  1. {% extends "base.html" %}
  2. {% load staticfiles compress %}
  3. {% block title %}Pricing - It's Free! - healthchecks.io{% endblock %}
  4. {% block content %}
  5. <!-- Plans -->
  6. <section id="plans">
  7. <div class="container">
  8. {% if messages %}
  9. <div class="alert alert-danger">
  10. <p>
  11. <strong>We're sorry!</strong> There was a problem setting
  12. up the subscription. Response from payment gateway:</p>
  13. {% for message in messages %}
  14. <p class="error-message">{{ message }}</p>
  15. {% endfor %}
  16. </div>
  17. {% endif %}
  18. {% if sub.plan_id %}
  19. <div class="row">
  20. <div class="col-md-12">
  21. <div id="subscription-status" class="jumbotron">
  22. <p>
  23. {% if first_charge %}
  24. Success! You just paid ${{ sub.price }}.
  25. {% else %}
  26. You are currently paying ${{ sub.price }}/month.
  27. {% endif %}
  28. <a href="{% url 'hc-billing' %}">See Billing History</a>.
  29. </p>
  30. <p>
  31. Thank you for supporting healthchecks.io!
  32. </p>
  33. </div>
  34. </div>
  35. </div>
  36. {% endif %}
  37. <div class="row">
  38. <!-- Free -->
  39. <div class="col-sm-4 text-center">
  40. <div class="panel panel-default panel-pricing">
  41. <div class="panel-body text-center free">
  42. <p>free</p>
  43. </div>
  44. <ul class="list-group text-center">
  45. <li class="list-group-item"><i class="fa fa-check"></i> Personal or Commercial use</li>
  46. <li class="list-group-item"><i class="fa fa-check"></i> Unlimited Checks</li>
  47. <li class="list-group-item"><i class="fa fa-check"></i> Unlimited Alerts</li>
  48. <li class="list-group-item">100 log entries / check</li>
  49. </ul>
  50. <div class="panel-footer">
  51. {% if request.user.is_authenticated %}
  52. {% if sub.subscription_id %}
  53. <form method="post" action="{% url 'hc-cancel-plan' %}">
  54. {% csrf_token %}
  55. <button type="submit" class="btn btn-lg btn-default">
  56. Switch To Free
  57. </button>
  58. </form>
  59. {% else %}
  60. <a class="btn btn-lg btn-success disabled" href="#">Selected</a>
  61. {% endif %}
  62. {% else %}
  63. <a class="btn btn-lg btn-success" href="{% url 'hc-login' %}">Get Started</a>
  64. {% endif %}
  65. </div>
  66. </div>
  67. </div>
  68. <!-- /item -->
  69. <!-- P5 -->
  70. <div class="col-sm-4 text-center">
  71. <div class="panel panel-default panel-pricing">
  72. <div class="panel-body text-center">
  73. <p>$5<span class="mo">/mo</span></p>
  74. </div>
  75. <ul class="list-group text-center">
  76. <li class="list-group-item">Personal or Commercial use</li>
  77. <li class="list-group-item">Unlimited Checks</li>
  78. <li class="list-group-item">Unlimited Alerts</li>
  79. <li class="list-group-item">1000 log entries / check</li>
  80. </ul>
  81. <div class="panel-footer">
  82. {% if request.user.is_authenticated %}
  83. {% if sub.plan_id == "P5" %}
  84. <button class="btn btn-lg btn-success disabled">
  85. Selected
  86. </button>
  87. {% else %}
  88. <button
  89. data-plan-id="P5"
  90. class="btn btn-lg btn-default btn-create-payment-method">
  91. {% if sub.plan_id == "P20" %}
  92. Switch to $5/mo
  93. {% else %}
  94. Upgrade your Account
  95. {% endif %}
  96. </button>
  97. {% endif %}
  98. {% else %}
  99. <a class="btn btn-lg btn-primary" href="{% url 'hc-login' %}">
  100. Get Started
  101. </a>
  102. {% endif %}
  103. </div>
  104. </div>
  105. </div>
  106. <!-- /item -->
  107. <!-- P20 -->
  108. <div class="col-sm-4 text-center">
  109. <div class="panel panel-default panel-pricing">
  110. <div class="panel-body text-center">
  111. <p>$20<span class="mo">/mo</span></p>
  112. </div>
  113. <ul class="list-group text-center">
  114. <li class="list-group-item">Personal or Commercial use</li>
  115. <li class="list-group-item">Unlimited Checks</li>
  116. <li class="list-group-item">Unlimited Alerts</li>
  117. <li class="list-group-item">10'000 log entries / check</li>
  118. </ul>
  119. <div class="panel-footer">
  120. {% if request.user.is_authenticated %}
  121. {% if sub.plan_id == "P20" %}
  122. <button class="btn btn-lg btn-success disabled">
  123. Selected
  124. </button>
  125. {% else %}
  126. <button
  127. data-plan-id="P20"
  128. class="btn btn-lg btn-default btn-create-payment-method">
  129. Upgrade Your Account
  130. </button>
  131. {% endif %}
  132. {% else %}
  133. <a class="btn btn-lg btn-primary" href="{% url 'hc-login' %}">
  134. Get Started
  135. </a>
  136. {% endif %}
  137. </div>
  138. </div>
  139. </div>
  140. <!-- /item -->
  141. </div>
  142. </div>
  143. </section>
  144. <!-- /Plans -->
  145. <section id="faq">
  146. <div class="container">
  147. <div class="page-header">
  148. <h1>FAQ</h1>
  149. </div>
  150. <div class="row">
  151. <div class="col-sm-12">
  152. <h2>What is the "log entries / check" number?</h2>
  153. <p>
  154. healthchecks.io keeps a log entry for each ping it receives.
  155. The log entry contains the date, the source IP address,
  156. the protocol (http or https) and the user agent string.
  157. The log can be useful for auditing past activity of
  158. your cron jobs.
  159. </p>
  160. <p>
  161. There is a per-check limit of how many log entries are
  162. kept. When this limit is reached, the oldest log entries
  163. are culled. You can increase this limit by upgrading to
  164. paid plans.
  165. </p>
  166. <h2>When is 100 log entries per check sufficient?</h2>
  167. <p>
  168. It depends on how frequently your cron job runs and
  169. for what time period you want to keep a log of received
  170. pings. For example, if your cron job runs once a week,
  171. then the 100 log entries will cover 2 years. On the other
  172. hand, if the cron job runs every 5 minutes, then the 100
  173. log entries will only cover 8 hours.
  174. </p>
  175. <h2>If I cancel my paid plan, do I get a refund?</h2>
  176. <p>
  177. You can easily cancel your subscription at any time.
  178. There are no cancellation fees, though no refunds are
  179. provided for prorated periods.
  180. </p>
  181. </div>
  182. </div>
  183. </div>
  184. </section>
  185. <div id="payment-method-modal" class="modal" data-client-token="{{ client_token }}">
  186. <div class="modal-dialog">
  187. <form method="post" action="{% url 'hc-create-plan' %}">
  188. {% csrf_token %}
  189. <input id="plan_id" type="hidden" name="plan_id" value="" />
  190. <div class="modal-content">
  191. <div class="modal-header">
  192. <button type="button" class="close" data-dismiss="modal">&times;</button>
  193. <h4>Set Up Subscription</h4>
  194. </div>
  195. <div class="modal-body" id="payment-method-body">
  196. <div id="payment-form"></div>
  197. </div>
  198. <div class="modal-footer">
  199. <button id="payment-method-cancel" type="button" class="btn btn-default">
  200. Cancel
  201. </button>
  202. <button type="submit" class="btn btn-primary">
  203. Set Up Subscription
  204. </button>
  205. </div>
  206. </div>
  207. </form>
  208. </div>
  209. </div>
  210. {% endblock %}
  211. {% block scripts %}
  212. <script src="https://js.braintreegateway.com/v2/braintree.js"></script>
  213. {% compress js %}
  214. <script src="{% static 'js/jquery-2.1.4.min.js' %}"></script>
  215. <script src="{% static 'js/bootstrap.min.js' %}"></script>
  216. <script src="{% static 'js/pricing.js' %}"></script>
  217. {% endcompress %}
  218. {% endblock %}