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.
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.
Do not sell is a boolean on the user, which is default checked on sign up.
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.
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.
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]
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
sendMailfunction, a thin wrapper around the sendgrid api node bindings that passes in your API key.
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.
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.