Developers

The Bocoup Privacy Stack is a remix.run app derived from the remix indie stack. We took the indie stack, added some of privacy UX, transactional emails, file upload, and ansible playbooks for self hosting. Read more about Remix.run at Bocoup.

Quickstart

With node and NPM installed, you can install the template with

create-remix
:

npx create-remix@latest --template bocoup/privacy-stack

That's it! We recommend nvm for installing and managing node versions.

Relevant code

Do Not Sell

Do not sell is a boolean on the user, which is default checked on sign up.

Data access and Deletion

Data access and deletion are implemented as a page in the settings area, and allow for deletion of all notes created by the user as well as full account deletion. As you build on top of this template, make sure to continue adding the data you store on users to the data access and deletion page so that the feature stays current.

Deployment

This stack deploys to a self managed VPS and comes with a set of comprehensive ansible playbooks for locking down, provisioning, and deploying your app. You can be up and running in 10 minutes.

UI Library

We have integrated shadcn, and installed the components we needed in this boilerplate. Add more components with the follwoing command:

npx shadcn-ui@latest add [component]

Transactional emails

We use sendgrid for transactional emails. We would love to include our own mail server, but then no one would get our emails. Add a sendgrid API key to the .env file and things will start working. You can send emails with the

sendMail
function, a thin wrapper around the sendgrid api node bindings that passes in your API key.

File upload

We included an image upload components that handles image previewing, along with boilerplate image uploading code in the actions of the note edit and profile pages. The uploads go straight to your server. That's it.

Github actions

We run eslint, typechecking and e2e cypress tests on push to main and dev, just like the remix indie stack. We removed deployment, and ansible deployment from a github action is on our roadmap. PRs welcome.