Skip to content

Instantly share code, notes, and snippets.

@ronanyeah
Last active October 7, 2020 01:53
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ronanyeah/c371040936fa0869b4d7bd0e64acb353 to your computer and use it in GitHub Desktop.
Save ronanyeah/c371040936fa0869b4d7bd0e64acb353 to your computer and use it in GitHub Desktop.
Netlify email capture
const fetch = require("node-fetch");
const email = "foo@bar.com";
const send = () =>
fetch("/subscribers", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({ email })
})
.then(response => response.json())
.then(console.log)
.catch(console.error);
send : Cmd Msg
send =
Http.post
{ url = "/subscribers"
, body =
[ ( "email", JE.string "foo@bar.com" ) ]
|> JE.object
|> Http.jsonBody
, expect = Http.expectWhatever EmailCb
}
# Add BUTTONDOWN_TOKEN to Netlify environment variables
# https://docs.netlify.com/configure-builds/file-based-configuration/#inject-environment-variable-values
npm run netlify-setup && npm run build
[[redirects]]
from = "/subscribers"
to = "https://api.buttondown.email/v1/subscribers"
status = 200
headers = { Authorization = "Token TOKEN_PLACEHOLDER" }
{
"scripts": {
"build": "webpack",
"netlify-setup": "sed -i s/TOKEN_PLACEHOLDER/${BUTTONDOWN_TOKEN}/g netlify.toml"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment