
Ask HN: SaaS user management platform, would you use it? - siscia
Hi HN,<p>I am considering if building a small SaaS to manage users.<p>It will be a very simple and tiny api to register, login, send confirmation email,  reset password for users and manage stripe token.<p>I would also like in a second step to attach something like a key value store to each user.<p>Something like Auth0 or Stormpath but tinier and simpler.<p>It is something you guys would use?<p>Cheers,
======
benologist
I am ~60,000 lines of code into this project. My version is NodeJS and Redis
and is modular with packages that can be added for GitHub-like organizations,
subscriptions using Stripe, and platforms using a full custom integration of
Stripe Connect.

My software installs with NPM and may be positioned with your NodeJS app, or
your application may be served by something else and any URLs my software
doesn't handle proxy your application.

The installation of my software is an NPM install and then creating a two-line
JavaScript file to start the app if you're not using NodeJS already.

It is completely API-driven and the API can be used by NodeJS or over HTTP,
and has administrator and user branches. The UI has complete account and
administrator functionality including creating sessions to impersonate a user
for fine-grained controls.

I have complete test coverage, about 2/3 of all code is unit tests that cover
internal APIs, the public APIs and the pages.

I am currently finishing some improvements to the Subscriptions and Connect
modules and then I will be on version 1.

I'm just about ready to launch this as an open source project, maybe you'd
like to have a chat on Skype - benlowry at outlook.com?

~~~
siscia
That is interesting. Although I was looking to create something really really
simple and dumbed down.

~~~
benologist
Despite the mountain of code it is hopefully simple by design:

\- about 40 NPM dependencies in total when all modules are added so it
installs very quickly and node_modules is manageable

\- about 150 lines of CSS

\- one Redis database, with optional encryption at rest

\- no client-side javascript (but needs a couple bits for Stripe stuff, and
the groundwork is in place for it to feel like an SPA eventually)

\- no build process, just node main.js so it starts very quickly

\- no templating language to learn, just ECMAScript string literals `like
${this + that}` in vanilla HTML files
([https://github.com/userappstore/dashboard/blob/master/src/ww...](https://github.com/userappstore/dashboard/blob/master/src/www/account/sessions.html))

\- DOM-like construction of HTML in NodeJS
([https://github.com/userappstore/dashboard/blob/master/src/ww...](https://github.com/userappstore/dashboard/blob/master/src/www/account/reset-
codes.js#L74))

\- continually sweeping the software and modules to apply more consistent code
formatting and tests

\- careful not to include text and formatting in code in preparation for
localization

\- careful not to abstract to the point you require broad familiarity with the
project to understand any page or nodejs

If you want to have a look check this out:

1) This is the basic dashboard software, this part by itself is intended to be
all you need to create a web or mobile app with user registrations.

[http://github.com/userappstore/dashboard](http://github.com/userappstore/dashboard)

2) This is what the application emits when you start it up, after combining
the dashboard, any modules you use, and any code you added to a single
sitemap:

[https://github.com/userappstore/dashboard/blob/master/sitema...](https://github.com/userappstore/dashboard/blob/master/sitemap.txt)

3) This is the test output for the dashboard

[https://github.com/userappstore/dashboard/blob/master/tests....](https://github.com/userappstore/dashboard/blob/master/tests.txt)

Then the modules extend it:

[http://github.com/userappstore/organizations](http://github.com/userappstore/organizations)

[http://github.com/userappstore/stripe-
subscriptions](http://github.com/userappstore/stripe-subscriptions)

[http://github.com/userappstore/stripe-
connect](http://github.com/userappstore/stripe-connect)

[http://github.com/userappstore/maxmind-
geoip](http://github.com/userappstore/maxmind-geoip)

My end goal is for this software to reach a very stable and mature place,
concentrating on a very small set of responsibilities and doing them very
well.

------
Jack000
frankly, probably not. Even stormpath closed shop and dropped their api. I
probably wouldn't be able to trust a small startup to not do the same..

~~~
siscia
Reasonable concern, thanks for the feedback.

