I appreciate the efforts being done in this space, but I don't think this is launch ready yet. It doesn't include some of the things that make a SaaS a SaaS, and not a typical user sign up web app with admin panel.
For a SaaS framework you usually need at least: integration with a billing provider (almost always Stripe nowadays), web hook handling for a bunch of services (or a generic way of handling webhooks easily), some kind of social auth integration framework or ready built integrations for a bunch of services, bulk email support, a modular dashboard (seems you have the start of this?), a landing page generator with pricing tiers that integrate with the backend somehow, a team management option for users.
Have a look at Laravel Spark, or some of the other premium SaaS frameworks available right now for what people a now expecting of these frameworks.
Also, I'm a little dubious about your license (seems to be fixed now?). You need to be crystal clear about whether or not this is open source, or if you are trying to sell a product. "SaaS as a Service" (or SaaSaaS as I like to call it) seems to have blown up recently, but I'm usually wary of things like this. When making a SaaS, I like to keep margins and fuss as low as possible, and including a piece of software that might cause me legal trouble down the track is a big no-no.
I agree, i'm working on my own SaaS boilerplate in laravel debating oss vs paid, might be a cheaper Nova/Spark combo alternative. $99 per project is pricy, esp when a lot of projects are just testing ideas and things.
SaaS needs to have teams, projects, payments, auth, invites, and possibly be configurable for different 'types' of scenarios... projects could be optional for instance if they don't group actions by project, invites could be optional if anyone can join any team, heck even teams can be optional if you can't add multiple orgs but it's nice to have, say you run multiple brands or something....and want separate invoices with separate logos... etc...
I'm getting close to launch, thinking I might do it as a paid $9.99/month gets unlimited access to everything I do in the scope of the project. Might raise prices eventually but grandfather people in for a time. Or might do FOSS with addons that are pricier, but I don't like apps that do that -- I'd rather pay small fee monthly and use what I need depending on client.
I totally agree about the functionality. Stripe integration will be the next feature I will add. And even so, I still believe this boilerplate can save you at least a week of work. I already used it for my other projects and I can confirm it.
Dashboard UI is already done and I'm going to add more modules/components to make it easier to use. Do you have any suggestions what it would be?
Laravel Spark is one of the resources for inspiration :))) I just didn't implement everything I would like to - yet.
I fixed the license, the boilerplate can be used for any purposes (except ones against the law) - this version. Because I'm working on the commercial extension of it - and it will be a completely separate story. But even with using of commercial modules (or version) you will be totally free to use it and it will be completely white-labeled.
Another situation when you are trying to modify and resell a product but it has nothing to do with making a SaaS, right?
Although there are literally dozens of tools out there that aim to facilitate SaaS, if you look at the definition of SaaS and what makes SaaS, SaaS. Things like “on demand” activation, licensing models, and resource management are the key definition points, not so much the nuts and bolts libraries needed behind the scenes.
Having "Open Source" in the name is slightly misleading...
> License
> Copyright (c) 2019 SaaS Forge Inc. https://www.saasforge.dev. You can use this template for any purposes except reselling or purposes prohibited by law.
You could replace everything here with Django. There's nothing in here that supports migrations, deployment etc (Django can).
I've used React and Webpack and loath it, it's extremely opinionated, saturated with pure JS developers, has an enormous learning curve and load of gotchas.
Django also has API support and a wealth of add-ons for services like federated auth, ElasticSearch bindings, bindings for S3, Redis, discovery, Cassandra, NoSql, etc etc.
The architecture here is also really unscalable. There's nothing in here that can be horizontally scaled, and Jinja or Django + bootstrap is 10x faster for prototyping before you hire a dedicated dev to maintain a React nightmare.
Modules are not a feature of this app, they're a feature of the Python language. Putting that in the README is misleading IMO.
Thanks for your opinion! It's probably more valuable for me than from people who like it :)
But you are a little bit wrong.
Currently, it supports migrations and will support deployment very soon.
I don't agree about ReactJS and Webpack. I start using both in my projects and it didn't take too much time to learn them. Even if I don't know them deep I know them enough to use in the real projects.
I agree that currently, Django is more might than this project but it's just a beginning.
You are not right about modules too. It has nothing to do with Python's modules, I "invented" my own "modules" - it's just a combination of front-end code and Python API in one folder. And I created them to make the project more scalable. I don't know though if I gained this goal or not - yet.
I have briefly evaluated a few of these in the last month (focusing only on TS or Python) or so and have ended up convincing myself I need to go down the path of building bits I need in my own way. Consider this only constrictive criticism and I massively applaud the hard work that has gone into these projects:
https://github.com/async-labs/saas
Good:
-React Material UI Front End
-Book showing how you how to build it, really cool way of funding OSS!
-Simple but scalable enough architecture, not too much cruft.
Not for me:
-MongoDB/Mongoose, where SQL (sequalize ORM or plain postgres) would have been a much better fit for a SAAS boilerplate in my opinion. Quite a big user document in the mongodb schema.
-Quite tight integration with AWS by default (s3,SES,Lambda) not hard to replace but the principle of OSS with defaults to one vendors IAAS feels uncomfortable to me.
-No password based login, not a big deal but an interesting choice.
-No Delete on team members and some other simple things that are needed to make it functional.
-Missing a few key features (permissions, master dashboard ect) that are addons by commercial licence which is fine, but these add up quickly to ~$1000 for something that would still be a fairly basic boilerplate.
https://github.com/staart/api
Good:
-Awesome features: landing page, RBAC (although roles are hardcoded so take a look at these before you build your app), TFA, Api Gateway, Auto Join company based on domain. Everything you need (and some you wont)
Not for me:
-While there are lots of features, some don't actually work out of the box and require fixes. Some features you will not need and may have to strip out. If more time was spent on getting fewer core features absolutely perfect this would be the best SAAS starter out there in my view (in TS/JS).
-Again integration with AWS by default (SES) with no SMTP or second option, easy to replace though.
- Would personally have chose postgres with knex (rather than direct mysql) for the DB and react for the front end over vue but these are personal preferences.
- UX on front end could do with a little work.
SAASForge seems interesting but missing alot of features like companies/teams master dashboard ect.
You are not the first person who wants companies/teams. But I'm not sure I understand you well, guys. Can you give more details, with some examples, why and what it could be useful for?
Ha! This is awesome! I did something similar in 2016, and called it something silly like SaaS-in-Box, but after integrating security, and Blueprints and multi-tenancy and caching, and ... (I do think I ran into some problem with blueprints, actually), ... I finally decided I was inventing Django-on-Flask and that it probably didn't solve as many problems as I originally thought it would.
BUT! That said - I think there is a solution gap here. Keep it up!
To be honest me either. The problem with these files is if you keep them you will not able to update the database because your last file has one version and database does another. You could just remove the last migration file, that would work too.
As for the problem overall, I didn't find a good solution for it. Maybe you can help?
Nice! I have a similar boilerplate that I've built for myself (there's no client-side), Flask with JWT, login, logout, etc. The React UI looks really nice here.
Thanks! You know, deployment automation is one of my highest priority tasks. I even wrote a book on it (https://www.saasforge.dev/books/the-book-on-deployment) but I think it would be much better to add some scripts/automation into the boilerplate.
I remember when there was a Rails one... It worked great, until it didn't. It was, however, a great learning tool on how you could role your own Rails SaaS.
[+] [-] Thorentis|6 years ago|reply
For a SaaS framework you usually need at least: integration with a billing provider (almost always Stripe nowadays), web hook handling for a bunch of services (or a generic way of handling webhooks easily), some kind of social auth integration framework or ready built integrations for a bunch of services, bulk email support, a modular dashboard (seems you have the start of this?), a landing page generator with pricing tiers that integrate with the backend somehow, a team management option for users.
Have a look at Laravel Spark, or some of the other premium SaaS frameworks available right now for what people a now expecting of these frameworks.
Also, I'm a little dubious about your license (seems to be fixed now?). You need to be crystal clear about whether or not this is open source, or if you are trying to sell a product. "SaaS as a Service" (or SaaSaaS as I like to call it) seems to have blown up recently, but I'm usually wary of things like this. When making a SaaS, I like to keep margins and fuss as low as possible, and including a piece of software that might cause me legal trouble down the track is a big no-no.
[+] [-] gremlinsinc|6 years ago|reply
SaaS needs to have teams, projects, payments, auth, invites, and possibly be configurable for different 'types' of scenarios... projects could be optional for instance if they don't group actions by project, invites could be optional if anyone can join any team, heck even teams can be optional if you can't add multiple orgs but it's nice to have, say you run multiple brands or something....and want separate invoices with separate logos... etc...
I'm getting close to launch, thinking I might do it as a paid $9.99/month gets unlimited access to everything I do in the scope of the project. Might raise prices eventually but grandfather people in for a time. Or might do FOSS with addons that are pricier, but I don't like apps that do that -- I'd rather pay small fee monthly and use what I need depending on client.
[+] [-] KRains|6 years ago|reply
I totally agree about the functionality. Stripe integration will be the next feature I will add. And even so, I still believe this boilerplate can save you at least a week of work. I already used it for my other projects and I can confirm it.
Dashboard UI is already done and I'm going to add more modules/components to make it easier to use. Do you have any suggestions what it would be?
Laravel Spark is one of the resources for inspiration :))) I just didn't implement everything I would like to - yet.
I fixed the license, the boilerplate can be used for any purposes (except ones against the law) - this version. Because I'm working on the commercial extension of it - and it will be a completely separate story. But even with using of commercial modules (or version) you will be totally free to use it and it will be completely white-labeled.
Another situation when you are trying to modify and resell a product but it has nothing to do with making a SaaS, right?
[+] [-] jamesbiv|6 years ago|reply
I wrote a funcional specification for a SaaS provider platform about a month ago (see https://abstractionlayer.jamesbiv.tech/Abstraction%20Layer%2...) its initial chapters deal with the definition of SaaS.
[+] [-] adamfeldman|6 years ago|reply
For an open-source solution that largely revolves around the React frontend, consider react-admin [1] + its adapter for Hasura [2].
[1]: https://github.com/marmelab/react-admin [2]: https://github.com/hasura/ra-data-hasura, https://github.com/hasura/graphql-engine/
In Ruby/Rails-land, there is https://bullettrain.co.
[+] [-] michaelbuckbee|6 years ago|reply
[+] [-] madamelic|6 years ago|reply
You better be super sure you can launch something good in 1 year with a $1,500 / year license.
[+] [-] benboughton1|6 years ago|reply
[+] [-] KRains|6 years ago|reply
[+] [-] antsar|6 years ago|reply
> License
> Copyright (c) 2019 SaaS Forge Inc. https://www.saasforge.dev. You can use this template for any purposes except reselling or purposes prohibited by law.
[+] [-] KRains|6 years ago|reply
[+] [-] KRains|6 years ago|reply
[+] [-] anandchowdhary|6 years ago|reply
It has typical SaaS features like onboarding, API gateway, social auth, Stripe recurring billing, teams, etc.
[+] [-] KRains|6 years ago|reply
[+] [-] mfrieswyk|6 years ago|reply
[+] [-] KRains|6 years ago|reply
[+] [-] HNLurker3|6 years ago|reply
You could replace everything here with Django. There's nothing in here that supports migrations, deployment etc (Django can).
I've used React and Webpack and loath it, it's extremely opinionated, saturated with pure JS developers, has an enormous learning curve and load of gotchas.
Django also has API support and a wealth of add-ons for services like federated auth, ElasticSearch bindings, bindings for S3, Redis, discovery, Cassandra, NoSql, etc etc.
The architecture here is also really unscalable. There's nothing in here that can be horizontally scaled, and Jinja or Django + bootstrap is 10x faster for prototyping before you hire a dedicated dev to maintain a React nightmare.
Modules are not a feature of this app, they're a feature of the Python language. Putting that in the README is misleading IMO.
[+] [-] KRains|6 years ago|reply
But you are a little bit wrong. Currently, it supports migrations and will support deployment very soon.
I don't agree about ReactJS and Webpack. I start using both in my projects and it didn't take too much time to learn them. Even if I don't know them deep I know them enough to use in the real projects.
I agree that currently, Django is more might than this project but it's just a beginning.
You are not right about modules too. It has nothing to do with Python's modules, I "invented" my own "modules" - it's just a combination of front-end code and Python API in one folder. And I created them to make the project more scalable. I don't know though if I gained this goal or not - yet.
[+] [-] matt-p|6 years ago|reply
-React Material UI Front End
-Book showing how you how to build it, really cool way of funding OSS!
-Simple but scalable enough architecture, not too much cruft.
Not for me:
-MongoDB/Mongoose, where SQL (sequalize ORM or plain postgres) would have been a much better fit for a SAAS boilerplate in my opinion. Quite a big user document in the mongodb schema.
-Quite tight integration with AWS by default (s3,SES,Lambda) not hard to replace but the principle of OSS with defaults to one vendors IAAS feels uncomfortable to me.
-No password based login, not a big deal but an interesting choice.
-No Delete on team members and some other simple things that are needed to make it functional.
-Missing a few key features (permissions, master dashboard ect) that are addons by commercial licence which is fine, but these add up quickly to ~$1000 for something that would still be a fairly basic boilerplate.
Good:-Awesome features: landing page, RBAC (although roles are hardcoded so take a look at these before you build your app), TFA, Api Gateway, Auto Join company based on domain. Everything you need (and some you wont)
Not for me:
-While there are lots of features, some don't actually work out of the box and require fixes. Some features you will not need and may have to strip out. If more time was spent on getting fewer core features absolutely perfect this would be the best SAAS starter out there in my view (in TS/JS).
-Again integration with AWS by default (SES) with no SMTP or second option, easy to replace though.
- Would personally have chose postgres with knex (rather than direct mysql) for the DB and react for the front end over vue but these are personal preferences.
- UX on front end could do with a little work.
SAASForge seems interesting but missing alot of features like companies/teams master dashboard ect.
[+] [-] KRains|6 years ago|reply
You are not the first person who wants companies/teams. But I'm not sure I understand you well, guys. Can you give more details, with some examples, why and what it could be useful for?
[+] [-] ci5er|6 years ago|reply
BUT! That said - I think there is a solution gap here. Keep it up!
[+] [-] KRains|6 years ago|reply
[+] [-] unknown|6 years ago|reply
[deleted]
[+] [-] leetrout|6 years ago|reply
> In the database remove the record from alembic_version table
> Remove any files from your computer under app/migrations.
I'm not sure advising users to delete all their migrations is the right thing to do (which is what this appears to be doing).
[+] [-] KRains|6 years ago|reply
As for the problem overall, I didn't find a good solution for it. Maybe you can help?
[+] [-] potta_coffee|6 years ago|reply
[+] [-] KRains|6 years ago|reply
[+] [-] elt193|6 years ago|reply
One request is to include some recommended production deployment. I have spent way too much time on devops every time I start on my weekend project.
[+] [-] KRains|6 years ago|reply
[+] [-] JoblessWonder|6 years ago|reply
[+] [-] KRains|6 years ago|reply
[+] [-] adibalcan|6 years ago|reply
[+] [-] KRains|6 years ago|reply
[+] [-] VonFuchs|6 years ago|reply
[+] [-] KRains|6 years ago|reply
[+] [-] jckblckch|6 years ago|reply
[+] [-] KRains|6 years ago|reply
[+] [-] PlanetRenox|6 years ago|reply
[+] [-] KRains|6 years ago|reply
[+] [-] ryancp|6 years ago|reply
[+] [-] ishyfishyy|6 years ago|reply
[+] [-] KRains|6 years ago|reply
[+] [-] KRains|6 years ago|reply
[+] [-] unknown|6 years ago|reply
[deleted]