I'm currently building a software-as-a-service app and using a novel architecture<p>I'm going to use the unix specifically Debian file system and user accounts as the users database. so basically whenever someone signs up I run a shell script that creates a new user add some to some relevant groups. the benefits are I got password checking baked in and I can save their data as simple files under the user's home directory.<p>I'll disable shell login as well as whenever I run a workload for the service application I can use the operating system to run that command as the actual user.<p>I just figure it's a simple and useful architecture because I get all the benefits of multi-user operating system baked in without having to think about any of that myself. I don't have to worry about a database.<p>and if my audience scales then I just move to a bigger instance. plus if I need to debug or support something I can just go into the user's home directory and change it easily myself.<p>also looking at the pricing of instances and the pricing of my application this will be affordable and in order to make this happy side business I don't need that many paying users.<p>I just figured this is such a good and simple architecture where it's all of the one machine and I can manage all myself but I'm also writing it in the cloud but I could also move it out if I want it. it gets a lot of flexibility and simplicity and I just think it's better than you know having a separate database and separate web server and so on.<p>this probably downsides to this so am I asking for ideas about that, so I can handle them before they surprise me.
That sounds, well novel.<p>I would encourage you to review:
(Free tier) <a href="https://auth0.com/" rel="nofollow">https://auth0.com/</a><p>(Free tier) <a href="https://firebase.google.com/docs/auth/" rel="nofollow">https://firebase.google.com/docs/auth/</a><p>Review any other proven and secure user auth solution ie. <a href="http://www.passportjs.org/" rel="nofollow">http://www.passportjs.org/</a><p>Questions to asks yourself:
How it will scale ? Is it compatible with PAM/LDAP ?
Let say you want at least two servers for scale or high availability.<p>How about social login ?
How about forgotten password?<p>How you can delegate the work on it ? (in case, you want more people work on it in future)<p>For personal projects, get some paying clients first, worry later.