Merge pull request #231 from bigchaindb/feature/gdpr

GDPR compliance
This commit is contained in:
Matthias Kretschmann 2018-05-16 16:18:12 +02:00 committed by GitHub
commit 96b185126a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 381 additions and 162 deletions

View File

@ -18,6 +18,7 @@ email:
cla_cc: troy@ascribe.io
services: mdgvledx
services_cc: "kamal@bigchaindb.com,ricardo@bigchaindb.com,gautam@bigchaindb.com"
gdpr: gdpr@bigchaindb.com
social:
gitter:

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="23" height="26" viewBox="0 0 23 26">
<g fill="none" transform="translate(1 .861)">
<path d="M10.501,17.211 C10.501,17.211 16.29,13.043 16.29,9.955 C16.29,6.391 11.553,5.266 10.501,9.598 C9.447,5.266 4.71,6.391 4.71,9.955 C4.71,13.043 10.501,17.211 10.501,17.211 Z"/>
<path stroke="currentColor" d="M10.508,0.5 L10.491,0.5 C8,2.997 0.5,5.021 0.5,5.021 C0.5,12.983 1,19.983 10.5,23.5 C20,19.982 20.5,12.982 20.5,5.021 C20.5,5.021 13,2.997 10.508,0.5 Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 524 B

View File

@ -2,6 +2,7 @@
//=include svg4everybody/dist/svg4everybody.js
//=include jquery/dist/jquery.js
//=include smooth-scroll/dist/js/smooth-scroll.js
//=include cookies-eu-banner/dist/cookies-eu-banner.js
//=include bigchain/analytics.js
//=include bigchain/dnt.js
@ -15,10 +16,6 @@ jQuery(function($) {
//
Forms.init()
if (!_dntEnabled()) {
GoogleAnalytics.init();
}
//
// init Smooth Scroll

View File

@ -90,3 +90,4 @@
@import '_sections/section-partners';
@import '_sections/section-blog';
@import '_sections/section-getstarted';
@import '_sections/section-newsletter';

View File

@ -1,21 +1,9 @@
.section-newsletter {
.section--newsletter {
background: $brand-primary;
align-items: flex-start;
// .sections redefinitions
padding-top: $spacer;
padding-bottom: $spacer;
@media ($screen-sm) {
padding-top: ($spacer * 3);
padding-bottom: ($spacer * 3);
}
}
.newsletter {
p,
.form-group { margin: 0; }
.form-group,
.grid { margin-bottom: 0; }
.form-control {
@ -38,7 +26,11 @@
.form-control-feedback {
@extend .bold;
margin-top: ($spacer / 2);
margin-top: $spacer / 2;
}
.form--newsletter {
margin-top: $spacer * 2;
}
}
@ -49,6 +41,25 @@
}
.newsletter__title,
.newsletter__text {
.newsletter__text,
.newsletter__gdpr {
color: $gray-dark;
}
.newsletter__gdpr {
opacity: .8;
.icon {
stroke: $brand-main-blue;
color: $brand-main-blue;
}
a {
box-shadow: inset 0 -1px 0 $brand-main-blue;
&:hover,
&:focus {
background: $brand-main-blue;
}
}
}

View File

@ -38,13 +38,13 @@
@import 'bigchain/terminal';
@import 'bigchain/nyan';
@import 'bigchain/dropdowns';
@import 'bigchain/cookie-banner';
@import 'bigchain/utilities';
// Content types
@import 'bigchain/content-page';
@import 'bigchain/comments';
@import 'bigchain/toc';
@import 'bigchain/newsletter';
@import 'bigchain/testimonials';
// Section specific styles

View File

@ -14,6 +14,7 @@
margin-bottom: ($spacer * 1.5);
margin-top: ($spacer * 3);
position: relative;
font-size: $font-size-h3;
&:hover {
.header-link {
@ -23,20 +24,27 @@
}
}
h3 {
font-size: $font-size-h4;
}
h4 {
font-size: $font-size-h5;
}
.header-link {
box-shadow: none;
transition-timing-function: $timing-bounce;
display: block;
padding: 0 .25rem;
opacity: 0;
transform: translate3d(20px, 0, 0) scale(0);
position: absolute;
left: -1.15rem;
left: -1.5rem;
top: 0;
&,
.header-icon {
@extend .transition;
transition: .2s $timing-bounce;
}
&:hover,
@ -50,7 +58,7 @@
.header-icon {
font-style: normal;
font-size: $font-size-lg;
font-size: $font-size-h3;
color: $brand-primary;
}
}

View File

@ -0,0 +1,59 @@
.cookie-banner {
position: fixed;
bottom: $spacer / 2;
z-index: 10;
background: rgba($brand-main-blue-dark, .6);
backdrop-filter: saturate(150%) blur(10px);
font-size: $font-size-sm;
padding: $spacer / 2 $spacer;
text-align: center;
max-width: 36rem;
border-radius: $border-radius;
transition: opacity .6s ease-out;
opacity: 0;
transition-delay: 3s;
.wf-active &,
.wf-inactive & {
opacity: 1;
}
p {
margin-bottom: $spacer / 2;
&:first-child {
opacity: .8;
}
}
@media ($screen-sm) {
left: 50%;
margin-left: -18rem;
text-align: left;
justify-content: space-between;
align-items: center;
p {
margin: 0;
&:first-child {
flex: 0 0 75%;
}
&:last-child {
flex: 0 0 22%;
text-align: right;
}
}
.btn {
&:last-child {
padding-right: 0;
}
}
&[style='display: block;'] { // work around plugin style injection
display: flex !important; // stylelint-disable-line declaration-no-important
}
}
}

View File

@ -325,3 +325,34 @@ input[type='checkbox'] {
from { transform: translate3d(0, 0, 0); }
to { transform: translate3d(0, ( $font-size-sm + ($spacer / 4)), 0); }
}
//
// GDPR messages
//
.form__gdpr {
opacity: .7;
font-size: $font-size-sm;
position: relative;
margin-top: $spacer * 2;
.icon {
stroke: #fff;
color: #fff;
stroke-width: 1.5;
opacity: .5;
width: 1.5rem;
height: 1.5rem;
position: absolute;
left: -.25rem;
top: .25rem;
}
.text {
margin-left: $spacer * 2;
}
a {
box-shadow: inset 0 -1px 0 rgba($brand-primary, .5);
}
}

15
_src/_data/gdpr.yml Normal file
View File

@ -0,0 +1,15 @@
general: >
We will only use your email to contact you and by submitting this form you give us permission to do so. You can change your mind at anytime by contacting us at contact@bigchaindb.com to have your data deleted. For more information visit our [Privacy Policy](/pivacy/).
We use Formspree & Zapier to send this form and by submitting it, you acknowledge that the information you provide will be transferred to Formspree ([Privacy Policy](https://formspree.io/static/PrivacyPolicy.pdf)) & Zapier ([Privacy Policy](https://zapier.com/privacy/)) for processing. Don't want that? Send us an email at contact@bigchaindb.com.
newsletter: >
We will only use your email to send you our newsletter and by submitting this form you give us permission to do so. You can change your mind at any time by clicking the unsubscribe link of any newsletter you receive from us, deleting your data in the process. For more information visit our [Privacy Policy](/pivacy/).
We use MailChimp for our newsletter and by submitting this form, you acknowledge that the information you provide will be transferred to MailChimp for processing in accordance with their their [Terms](https://mailchimp.com/legal/terms/) and [Privacy Policy](https://mailchimp.com/legal/privacy/).
cookies: >
By continuing your visit to this site, you accept the use of cookies from Google Analytics so we can improve the site for you.

View File

@ -0,0 +1,10 @@
<div class="cookie-banner" id="cookies-eu-banner" style="display: none;">
<p>
{{ site.data.gdpr.cookies }}
<a href="{% link privacy.md %}" id="cookies-eu-more">Read more</a>
</p>
<p>
<button class="btn btn-xs btn-secondary" id="cookies-eu-accept">Accept</button>
<button class="btn btn-xs btn-link" id="cookies-eu-reject">Reject</button>
</p>
</div>

View File

@ -70,6 +70,15 @@
<input type="text" name="_gotcha" style="display: none;">
<input type="hidden" name="_subject" value="New CLA submission (Individual)" />
<input type="hidden" name="_cc" value="{{ site.email.cla_cc }}" />
<div class="form__gdpr">
<svg class="icon">
<use xlink:href="/assets/img/sprite.svg#icon-heart-protect"></use>
</svg>
<div class="text">
{{ site.data.gdpr.general | markdownify }}
</div>
</div>
</form>
</div>
@ -129,6 +138,15 @@
<input type="text" name="_gotcha" style="display: none;">
<input type="hidden" name="_subject" value="New CLA submission (Organization)" />
<input type="hidden" name="_cc" value="{{ site.email.cla_cc }}" />
<div class="form__gdpr">
<svg class="icon">
<use xlink:href="/assets/img/sprite.svg#icon-heart-protect"></use>
</svg>
<div class="text">
{{ site.data.gdpr.general | markdownify }}
</div>
</div>
</form>
</div>

View File

@ -41,4 +41,13 @@
<input type="text" name="_gotcha" style="display: none;">
<input type="hidden" name="_subject" value="New contact form submission" />
<input type="hidden" name="_cc" value="{{ site.email.contact_cc }}" />
<div class="form__gdpr">
<svg class="icon">
<use xlink:href="/assets/img/sprite.svg#icon-heart-protect"></use>
</svg>
<div class="text">
{{ site.data.gdpr.general | markdownify }}
</div>
</div>
</form>

View File

@ -1,6 +1,6 @@
<form id="newsletter"
class="form-newsletter js-parsley"
action="//ascribe.us9.list-manage.com/subscribe/post?u=56f2d3da26a7d407177d3fba3&id=0a99a9481e"
class="form--newsletter js-parsley"
action="https://bigchaindb.us9.list-manage.com/subscribe/post?u=56f2d3da26a7d407177d3fba3&amp;id=0a99a9481e"
method="post">
<div class="form-group has-feedback">
@ -15,6 +15,7 @@
</button>
</span>
<input type="hidden" name="GDPR" value="yes" />
</div>
<div class="form-control-feedback"></div>

View File

@ -104,4 +104,13 @@
<input type="text" name="_gotcha" style="display: none;">
<input type="hidden" name="_subject" value="New services form submission" />
<input type="hidden" name="_cc" value="{{ site.email.services_cc }}" />
<div class="form__gdpr">
<svg class="icon">
<use xlink:href="/assets/img/sprite.svg#icon-heart-protect"></use>
</svg>
<div class="text">
{{ site.data.gdpr.general | markdownify }}
</div>
</div>
</form>

View File

@ -1,5 +1,3 @@
<!--
//
// Site scripts
@ -8,9 +6,9 @@
<script src="/assets/js/bigchain.min.js"></script>
{% if page.js %}
<script src="/assets/js/{{ page.js }}"></script>
<script src="/assets/js/{{ page.js }}"></script>
{% elsif layout.js %}
<script src="/assets/js/{{ layout.js }}"></script>
<script src="/assets/js/{{ layout.js }}"></script>
{% endif %}
<!--
@ -25,81 +23,60 @@ svg4everybody.js
//
-->
<script>
if (!_dntEnabled()) {
(function(window) {
if (!_dntEnabled()) {
new CookiesEuBanner(function () {
(function (window) {
// Google Analytics async snippet
// http://goo.gl/3FPNDx
window.ga = window.ga || function () { (ga.q = ga.q || []).push(arguments) };
ga.l = +new Date;
// Google Analytics async snippet
// http://goo.gl/3FPNDx
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};
ga.l=+new Date;
var d=document,
g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
g.async=true;
// Create the GA tracker
ga('create', '{{ site.analyticsID }}', 'auto', {siteSpeedSampleRate: 10});
{% if jekyll.environment == "production" %}
g.src='https://www.google-analytics.com/analytics.js';
{% else %}
g.src='https://www.google-analytics.com/analytics_debug.js';
{% endif%}
{% if jekyll.environment != 'production' %}
// In non-production mode, simply log GA hits to the console.
// Note, tasks must be set before sending the first hit
ga(function(tracker) {
tracker.set('sendHitTask', function() {
// Throw to stop subsequent tasks.
throw 'Abort tracking in non-production environments.'
});
});
{% endif %}
s.parentNode.insertBefore(g,s);
// IP Anonymization
ga('set', 'anonymizeIp', true);
// Create the GA tracker
ga('create', '{{ site.analyticsID }}', 'auto', { siteSpeedSampleRate: 10 });
// Send initial pageview
ga('send', 'pageview');
{% if jekyll.environment != 'production' %}
// In non-production mode, simply log GA hits to the console.
// Note, tasks must be set before sending the first hit
ga(function (tracker) {
tracker.set('sendHitTask', function () {
// Throw to stop subsequent tasks.
throw 'Abort tracking in non-production environments.'
});
});
{% endif %}
// Track uncaught errors
window.onerror = function(message, url, line, col) {
var desc = message + ' (line: ' + line + ', url: ' + url + ', col: '
+ col + ')';
// IP Anonymization
ga('set', 'anonymizeIp', true);
ga('send', 'exception', {
exDescription: 'window.onerror: ' + desc,
exFatal: false
});
};
// Send initial pageview
ga('send', 'pageview');
}(window));
}
// Track uncaught errors
window.onerror = function (message, url, line, col) {
var desc = message + ' (line: ' + line + ', url: ' + url + ', col: ' + col + ')';
ga('send', 'exception', {
exDescription: 'window.onerror: ' + desc,
exFatal: false
});
};
}(window));
GoogleAnalytics.init()
});
}
</script>
{% if jekyll.environment == "production" %}
<script async src="//www.google-analytics.com/analytics.js"></script>
{% else %}
<script async src="//www.google-analytics.com/analytics_debug.js"></script>
{% endif%}
<!--
//
// Disqus comments
//
-->
{% if page.comments %}
<script>
var disqus_config = function () {
this.page.url = '{{ site.url }}{{ page.url }}';
this.page.identifier = '{{ page.id }}';
this.page.title = '{{ page.title }}';
};
{% if jekyll.environment == "development" %}
var disqus_developer = 1;
{% endif %}
(function() {
var d = document, s = d.createElement('script');
s.src = '//{{ site.disqus }}.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
{% endif %}

View File

@ -1,8 +1,8 @@
<section class="section section-newsletter newsletter">
<section class="section section--newsletter">
<div class="row row--wide">
<div class="grid grid--full grid-small--half grid--gutters grid--center">
<div class="grid grid--full grid-medium--half grid--gutters grid--center">
<div class="grid__col">
<h1 class="newsletter__title">
{% if page.newsletter.title %}
@ -18,10 +18,19 @@
No more than one email per month. We're busy too.
{% endif %}
</p>
{% include form-newsletter.html %}
</div>
<div class="grid__col">
{% include form-newsletter.html %}
<div class="form__gdpr newsletter__gdpr">
<svg class="icon">
<use xlink:href="/assets/img/sprite.svg#icon-heart-protect"></use>
</svg>
<div class="text">
{{ site.data.gdpr.newsletter | markdownify }}
</div>
</div>
</div>
</div>

View File

@ -15,10 +15,12 @@
{{ content }}
{% include banner.html %}
{% include banner.html %}
{% include footer.html %}
{% include cookie-banner.html %}
{% include scripts.html %}
</body>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -5,51 +5,84 @@ title: Privacy & Cookies Policy
description: 'Privacy & Cookies policies for use of the BigchainDB website.'
---
### Introduction
<div class="lead"><h4 style="opacity:.75;">tl;dr</h4> If you have Do Not Track activated we don't collect any information at all about your visit on the Site. If deactivated, we make sure to only collect the bare minimum of information needed, as described in this Privacy Policy.</div>
## Introduction
Our Privacy Policy sets out how your personal information is collected and used while you use the Site. We believe your personal information belongs to you, so we are very open about how we use it. The Privacy Policy is meant to be read together with the [Terms](https://bigchaindb.com/terms), so words that are capitalized have the same meaning in the Privacy Policy as they do in the Terms.
If you have a question about the Privacy Policy, email terms@bigchaindb.com and we will try to answer it for you.
### Our policies
If you have a question about the Privacy Policy, email {{ site.email.gdpr }} and we will try to answer it for you.
## Our policies
We collect and use information in accordance with the German Telemedia Act (Telemediengesetz) and (Bundesdatenschutzgesetz), or with your specific and express consent.
We do not knowingly collect personal information from children under 18 without consent from a parent or guardian. If we learn a child has provided personal information, we may delete it.
We respect the Do Not Track header.
### What information we collect and how we use it
When you visit the Site, we may log some of the information about your visit (such as your IP address, browser version, and so on) so we can improve the site and keep it secure.
## What information we collect and how we use it
When you visit the Site, we **don't** log any information about your visit on the server (technically, S3 bucket). We also don't load any 3rd party scripts tracking your indiviual behavior across multiple channels, like A/B testing tools, social network or sharing buttons, and so on.
We simply don't measure your "engagement with our brand" because we believe this is always in violation of your privacy, and ultimately meaningless.
### Google Analytics
The Site uses Google Analytics, which provides us with anonymized information about our users (such as IP address, browser version, and so on) and how they use the Site. We use this information to make the Site better. The collected IP addresses are truncated before being sent to Google, making them anonymized. Google Analytics also sets [cookies](#cookies).
If you have Do Not Track activated in your browser, or if you rejected our cookie banner, we don't collect any information and won't load anything from Google at all.
You can verify our technical implementation by looking into the [Site's repository source code](https://github.com/bigchaindb/site/blob/master/_src/_includes/scripts.html#L20).
### Web Forms
If you use the contact forms or CLA form on our website, the information you submit is collected by:
- [Formspree.io](https://formspree.io/), subject to its [Terms](https://formspree.io/static/TermsOfUse.pdf) and [Privacy Policy](https://formspree.io/static/PrivacyPolicy.pdf)
- [Zapier](https://zapier.com), subject to its [Terms](https://zapier.com/terms/) and [Privacy Policy](https://zapier.com/privacy/)
Note that Formspree.io only saves the most recent 100 messages. After that, messages are deleted. Formspree.io sends emails to us through Sendgrid.com in accordance with the [Sendgrid.com Privacy Policy](https://sendgrid.com/privacy).
If you want to contribute to the project, you must complete our [Contributor License Agreement](https://www.bigchaindb.com/cla) (CLA). We will store your completed CLA, including the personal information you include on it. We may use that personal information to contact you or to enforce the terms of the CLA.
If you use the contact forms or CLA form on our website, the information you submit is collected by [Formspree.io](https://formspree.io/) and is subject to its terms and privacy policy. Note that Formspree.io only saves the most recent 100 messages. After that, messages are deleted. Formspree.io sends emails to us through Sendgrid.com in accordance with the [Sendgrid.com privacy policy](https://sendgrid.com/privacy).
If you want to sign the CLA form or contact us without using these forms, you can email contact@bigchaindb.com.
### How information is shared
If you want to sign the CLA form or contact us without using these forms, you can email {{ site.email.gdpr }}.
We use MailChimp for our newsletter, and the information you submit via our newsletter subscription form will be transferred to MailChimp for processing in accordance with their [Terms](https://mailchimp.com/legal/terms/) and [Privacy Policy](https://mailchimp.com/legal/privacy/).
### BigchainDB Test Network
Use of the BigchainDB Test Network available under [testnet.bigchaindb.com](https://testnet.bigchaindb.com) is subject to its own [Terms](https://testnet.bigchaindb.com/terms-network). Creating an account and using it submits your entered information to 3Scale according to their [Terms](https://www.3scale.net/terms-and-conditions/) and [Privacy Policy](https://www.redhat.com/en/about/privacy-policy).
### BigchainDB Documentation
Our documentation available under [docs.bigchaindb.com](https://docs.bigchaindb.com) is not part of this Site and is hosted by [Read the Docs](https://readthedocs.com). Usage of the documentation is subject to the [Terms](https://readthedocs.com/terms/) of Read the Docs.
## How information is shared
We will not share or sell the identifiable personal information we collect or generate except as defined in this section.
We may share non-personal or aggregate information, such as usage statistics for the Site.
### Cookies
The Site uses Google Analytics, which provides us information about our users and how they use the Site. We use this information to make the Site better.
You can block cookies by installing a browser add-on such as [Privacy Badger](https://www.eff.org/privacybadger) or [uBlock Origin](https://github.com/gorhill/uBlock).
### Updating your personal information or revoking consent
## Cookies
You may ask us to correct or update your personal information if you cannot update it yourself. You may ask us to delete your personal information unless we are under a legal obligation to store it. If you revoke consent to store your personal information, it will be deleted. If you want to correct or update your personal information, or revoke your consent, you can email us at terms@bigchaindb.com.
On the Site, only Google Analytics sets cookies. We have to set a cookie of our own though, for remembering acceptance or rejection of our cookie banner.
### Business transfers
Again, if you have Do Not Track activated in your browser, or if you rejected our cookie banner, we dont collect any information and wont let Google set any cookies in your browser.
If you reject the cookie banner, all cookies set by Google Analytics for the Site will be removed from your browser.
In general, you can block cookies by using your browser's setting, or by installing a browser add-on such as [Privacy Badger](https://www.eff.org/privacybadger) or [uBlock Origin](https://github.com/gorhill/uBlock).
## Updating your personal information or revoking consent
You may ask us to correct or update your personal information if you cannot update it yourself. You may ask us to delete your personal information unless we are under a legal obligation to store it. If you revoke consent to store your personal information, it will be deleted.
If you want to correct or update your personal information, or revoke your consent you can email us at {{ site.email.gdpr }}.
## Business transfers
If we are involved in a merger, acquisition, or sale of all or a portion of our assets, your personal information may be transferred as part of that transaction. If this happens we will post a notice on the News section of the Site to advise of any change of control or use of personal information or files, and of any choices you may have regarding the information.
### Law enforcement requests
## Law enforcement requests
We may disclose personal information to law enforcement if we believe disclosure is necessary to:
- Comply with a law, regulation, or mandatory request such as a warrant or court order.

View File

@ -240,6 +240,15 @@ Logo can be used with a base class and modifier classes for size & color:
<div class="form-group">
<input class="btn btn-primary" type="submit" value="Submit">
</div>
<div class="form__gdpr">
<svg class="icon">
<use xlink:href="/assets/img/sprite.svg#icon-heart-protect"></use>
</svg>
<div class="text">
{{ site.data.gdpr.general | markdownify }}
</div>
</div>
</form>
```html
@ -277,6 +286,15 @@ Logo can be used with a base class and modifier classes for size & color:
<div class="form-group">
<input class="btn btn-primary" type="submit" value="Submit">
</div>
<div class="form__gdpr">
<svg class="icon">
<use xlink:href="/assets/img/sprite.svg#icon-heart-protect"></use>
</svg>
<div class="text">
{{ site.data.gdpr.general | markdownify }}
</div>
</div>
</form>
```

View File

@ -1,19 +1,24 @@
# Forms
We have multiple forms in use throughout the whole site doing the following:
We have multiple forms collecting and processing data throughout the whole site doing the following:
| Form | Actions |
| ------------|-------------|
| `/contact` | send to CC emails, Slack message |
| `/services` | send to CC emails, Slack message, add new row to Google Sheets |
| `/cla` | 2 different forms, send to CC emails |
Form | Actions
------------ |-------------
`/newsletter` | send data to MailChimp and subscribe to newsletter list (double opt-in)
`/contact` | send data to CC emails, Slack message
`/services` | send data to CC emails, Slack message, add new row to Google Sheets
`/cla` | 2 different forms, send data to CC emails
Initial form sending is handled via formspree.io with a Gold account. As form submissions arrive there, Formspree sends out the received submissions to the email addresses setup as CC in [our site config](../_config.yml).
Initial form sending, except for newsletter, is handled via formspree.io with a Gold account. As form submissions arrive there, Formspree sends out the received data to the email addresses setup as CC in [our site config](../_config.yml).
Submissions are processed further like so:
_Formspree -> Zapier Email Parser -> Zapier -> Slack & Google Sheets_
The Zapier email parser is a special mailbox provided by Zapier which receives form submissions from Formspree, parses the content of those emails and extracts data fields out of it.
The Zapier email parser is a special mailbox provided by Zapier which receives form submissions from Formspree, parses the content of those emails and extracts data fields out of it. The parser as a source then provides the structured data to our Zapier tasks.
The parser as a source then provides the structured data to our Zapier tasks.
The Slack message never contains personally identifiable information. Name and email are not transmitted.
## Newsletter
Newsletter submissions are sent directly to MailChimp via their undocumented `jsonp` functionality, NOT the MailChimp API. We use a local copy of [ajaxChimp](https://github.com/scdoshi/jquery-ajaxchimp) to send the data. Library is old and jQuery but it just works across a wide range of browsers, even older ones.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -16,20 +16,20 @@
},
"browserslist": [
"last 2 versions",
"Chrome >= 30",
"Safari >= 6.1",
"Firefox >= 35",
"Opera >= 32",
"iOS >= 8",
"Android >= 4",
"ie >= 10"
"Chrome >= 50",
"Safari >= 9",
"Firefox >= 50",
"iOS >= 9",
"Android >= 6",
"ie >= 11"
],
"dependencies": {
"bigchaindb-driver": "^4.0.0",
"bootstrap": "^4.1.0",
"clipboard": "^2.0.0",
"bigchaindb-driver": "^4.0.1",
"bootstrap": "^4.1.1",
"clipboard": "^2.0.1",
"cookies-eu-banner": "^1.2.10",
"gumshoe": "github:cferdinandi/gumshoe",
"is-in-viewport": "^3.0.0",
"is-in-viewport": "^3.0.3",
"jquery": "^3.3.1",
"normalize-css": "^2.3.1",
"normalize-opentype.css": "^0.2.4",
@ -43,16 +43,16 @@
},
"devDependencies": {
"acorn": "^5.5.3",
"babel-core": "^6.26.0",
"babel-preset-env": "^1.6.1",
"browser-sync": "^2.23.7",
"babel-core": "^6.26.3",
"babel-preset-env": "^1.7.0",
"browser-sync": "^2.24.4",
"concurrent-transform": "^1.0.0",
"critical": "^1.2.2",
"critical": "^1.3.2",
"cross-spawn": "^6.0.5",
"del": "^3.0.0",
"gulp": "github:gulpjs/gulp#4.0",
"gulp-autoprefixer": "^5.0.0",
"gulp-clean-css": "^3.9.3",
"gulp-clean-css": "^3.9.4",
"gulp-cli": "^2.0.1",
"gulp-concat": "^2.6.1",
"gulp-header": "^2.0.5",
@ -61,7 +61,7 @@
"gulp-imagemin": "^4.1.0",
"gulp-include": "^2.3.1",
"gulp-load-plugins": "^1.5.0",
"gulp-rename": "^1.2.2",
"gulp-rename": "^1.2.3",
"gulp-replace": "^0.6.1",
"gulp-rev": "^8.1.1",
"gulp-rev-replace": "^0.4.4",
@ -72,18 +72,17 @@
"gulp-util": "^3.0.8",
"gulp-zip": "^4.1.0",
"js-yaml": "^3.11.0",
"request": "^2.85.0",
"request": "^2.86.0",
"stylelint": "^9.2.0",
"stylelint-config-bigchaindb": "^1.2.1",
"stylelint-config-standard": "^18.2.0",
"uglify-es": "^3.3.10"
"uglify-es": "^3.3.9"
},
"engines": {
"node": ">=7.0.0"
},
"private": true,
"repository": {
"type": "git",
"url": "https://github.com/ascribe/bigchain-website"
"url": "https://github.com/bigchaindb/site.git"
}
}