Repository files navigation

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...

  • If you want to build a web app without writing any backend code.
  • If you want secure authentication out of the box.
  • If you want to store user data securely.
  • If you want to radically simplify your GDPR compliance.
  • And if you want to keep things really simple.

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.

About

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

Topics

Resources

Stars

2.3k stars

Watchers

31 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

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...

  • If you want to build a web app without writing any backend code.
  • If you want secure authentication out of the box.
  • If you want to store user data securely.
  • If you want to radically simplify your GDPR compliance.
  • And if you want to keep things really simple.

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.

About

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

Topics

Resources

Stars

2.3k stars

Watchers

31 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

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...

  • If you want to build a web app without writing any backend code.
  • If you want secure authentication out of the box.
  • If you want to store user data securely.
  • If you want to radically simplify your GDPR compliance.
  • And if you want to keep things really simple.

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.

About

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

Topics

Resources

Stars

2.3k stars

Watchers

31 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

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...

  • If you want to build a web app without writing any backend code.
  • If you want secure authentication out of the box.
  • If you want to store user data securely.
  • If you want to radically simplify your GDPR compliance.
  • And if you want to keep things really simple.

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.

About

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

Topics

Resources

Stars

2.3k stars

Watchers

31 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

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...

  • If you want to build a web app without writing any backend code.
  • If you want secure authentication out of the box.
  • If you want to store user data securely.
  • If you want to radically simplify your GDPR compliance.
  • And if you want to keep things really simple.

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.

About

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

Topics

Resources

Stars

2.3k stars

Watchers

31 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

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...

  • If you want to build a web app without writing any backend code.
  • If you want secure authentication out of the box.
  • If you want to store user data securely.
  • If you want to radically simplify your GDPR compliance.
  • And if you want to keep things really simple.

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.

About

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

Topics

Resources

Stars

2.3k stars

Watchers

31 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

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...

  • If you want to build a web app without writing any backend code.
  • If you want secure authentication out of the box.
  • If you want to store user data securely.
  • If you want to radically simplify your GDPR compliance.
  • And if you want to keep things really simple.

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.

About

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

Topics

Resources

Stars

2.3k stars

Watchers

31 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

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...

  • If you want to build a web app without writing any backend code.
  • If you want secure authentication out of the box.
  • If you want to store user data securely.
  • If you want to radically simplify your GDPR compliance.
  • And if you want to keep things really simple.

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.

About

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

Topics

Resources

Stars

2.3k stars

Watchers

31 watching

Forks

Releases

Packages

Used by

Contributors

Languages