smallbets / userbase

Create secure and private web apps using only static JavaScript, HTML, and CSS.
https://userbase.com
MIT License
2.28k stars 125 forks source link
backend-as-a-service database end-to-end-encryption frontend privacy userbase

Userbase

Create secure and private web apps using only static JavaScript, HTML, and CSS.

What is Userbase?

Userbase is the easiest way to add user accounts and user data persistence to your static site. All Userbase features are accessible through a very simple JavaScript SDK, directly from the browser. No backend necessary.

Built-in user accounts

Userbase takes care of your user accounts. The Userbase SDK lets you sign up, login, and logout users directly from your static site.

Zero-management database

Instead of sending database queries to a server, Userbase sends the user's data to the browser. Queries happen client-side, and there is nothing on the backend to manage or worry about.

End-to-end encryption

Userbase encrypts all database operations in the browser with user-controlled keys. This helps you prevent personal data misuse, and lets you offer a high level of data privacy.

Open source

Userbase is 100% open source, MIT licensed. You can host it yourself always under your control, or we can run it for you for a full serverless experience.

When would I use it?

If you're building a web app, you will likely need a database and a backend. Userbase can replace both of those things...

Check out the FAQ for more details.

How do I start?

The easiest way to start using Userbase is to follow our Quickstart guide. If you have any questions, or if there's anything we can do to help you with your web app, please get in touch. Thank you!

Development

This section is for those who want to host the Userbase stack themselves. For the full serverless experience, head over to our Quickstart guide to get started.

Configure the AWS credentials

Running the Userbase server requires an AWS account. You just need to provide your AWS credentials and the server will automatically create all the AWS resources it needs. To run the app locally, simply put your AWS credentials in ~/.aws/credentials under a profile called encrypted:

echo "
[encrypted]
aws_access_key_id=<YOUR ACCESS KEY>
aws_secret_access_key=<YOUR SECRET KEY>" >> ~/.aws/credentials

Check out the repo

git clone https://github.com/encrypted-dev/userbase.git

Install the dependencies

Mac/Linux

npm install

Windows WSL

To bypass symlink issues on Windows, you need to disable symlinks on WSL. For more info, check WSL issues #14 and #26.

npm install --no-bin-links

Start the dev server

npm start

Go to http://localhost:3000 and you should see the sign in screen.

Running tests

We use Cypress to run tests, all the test files are under the ./cypress dir.

npm run test

Credits

The people who made this project a reality:

License

This project is released under the MIT License.