8 ms·
Show HN: SaaS application boilerplate
- adamfeldman 7y agoI am a fan of opinionated full-stack frameworks, in particular for building B2B web applications which contain lots of CRUDL views. 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 https://github.com/marmelab/react-admin [2]: https://github.com/hasura/ra-data-hasura https://github.com/hasura/ra-data-hasura, https://github.com/hasura/graphql-engine/ https://github.com/hasura/graphql-engine/ In Ruby/Rails-land, there is https://bullettrain.co https://bullettrain.co.
- benboughton1 7y agoAnything full stack with Python/PostgreSQL/Angular?
- adamfeldman 7y agoI've previously found this site helpful for a high-level view of the ecosystem: https://www.fullstackpython.com/angular.html https://www.fullstackpython.com/angular.html
- benboughton1 7y agoNice thanks - I had not been here. The first two tutorial links are pretty old there are to AngularJS.
- KRains 7y agoThanks for the link - pretty interesting.
- KRains 7y agoMaybe you would think to move to ReactJS from Angular?
- benboughton1 7y agoYes I'll still take a look. I subscribed to your list and Twitter, kind of interested in what you are up to.
- KRains 7y agoTHANKS!!
- czue 7y agoNot Angular, but there's https://www.saaspegasus.com/ https://www.saaspegasus.com/ which is bulit on top of Django. Full disclosure: I'm the creator. Happy to answer any questions you have about it!
- KRains 7y agoThanks, will look at them.
- michaelbuckbee 7y agoBig fan of BulletTrain - it's a big accelerant for building a SAAS (literally worth a couple of months of development time).
- KRains 7y agoI saw them, read their blog (for inspirational purposes of course :) and even wrote them. But I believe it's really overpriced. I'm working on the paid modules/components but I will keep the price moderate.
- michaelbuckbee 7y agoFWIW - I found it valuable as it provided both the sort of modules/components as you're describing but also a set of productivity accelerating things like the SuperScaffolding etc to really apply those into an application along with a well thought out system to extend all of that when I hit the limits.
- KRains 7y agoScaffolding and other cool things for productivity accelerating are in our plans. Check some of them on our website https://www.saasforge.dev https://www.saasforge.dev in the "Coming soon" section.
- aculver 7y agoHey KRains, author of Bullet Train here! Congratulations on your launch and making the front page of HN! I know how great a feeling that is after all your hard work! I disagree that Bullet Train is "really overpriced". The features it provides to customers can save them hundreds of hours of development time in total. There are individual features in Bullet Train (the teams functionality, the Stripe integration, outbound webhooks, scaffolding real-time chat conversation threads onto models and an inbox for all of them, Zapier integration, just to name a few) that would each save most development teams at least $1,450 in development costs, and that's before you take into account the power of Super Scaffolding for code generation. Bullet Train will save most development teams months in effort right off the bat. That's well worth $1,450 to the customers who have been able to get to market faster with components they know are being used and maintained across many different products. Bullet Train is only two years old, and there are already folks running seven-figure businesses around products that cost five-figures to build using Bullet Train. I'm not trying to imply it's magic, I'm just trying to point out that there are situations where $1,450 can be a no-brainer. I love that you're starting with an open source base. If I knew when I started what I now know after two years of selling Bullet Train, I would probably do something similar. But you will need (as I've needed and as others who are doing similar projects have needed) help along the way. (For example, you'll definitely want to get the support of a designer.) Unless you want to bring those people on as partners, that help will cost you money, sometimes lots of it, so make sure you're charging enough for your premium components to pay for the help you need to make the product a success and the best it can be. Best of luck! Wishing you a lot of success!
- madamelic 7y agoWooooow. You better be super sure you can launch something good in 1 year with a $1,500 / year license.
- antsar 7y agoHaving "Open Source" in the name is slightly misleading... > License > Copyright (c) 2019 SaaS Forge Inc. https://www.saasforge.dev https://www.saasforge.dev. You can use this template for any purposes except reselling or purposes prohibited by law.
- KRains 7y agoThanks! I have to fix this sentence...
- KRains 7y agoFixed! But I still left the part about not using the code for purposes prohibited by law...
- lemagedurage 7y agoIt would be interesting to see a court case in which the offender violates this clause of the license.
- KRains 7y agoHaha! But at least nobody would sue me for permitting improper using of it :-0
- e12e 7y agoIt's (presumably) redundant for what you intend it for (you can't grant a right to break the law..) - but can still be troubling. Which law(s), which jurisdictions ? Copyright law is fairly international through trade agreements - which is one of the reasons copyleft was such a great hack.
- KRains 7y agoI changed all those words to just MIT :)
- mfrieswyk 7y agoReminds me of https://spark.laravel.com/ https://spark.laravel.com/
- KRains 7y agoWe all are part of the family called "boilerplates" :))))
- ishyfishyy 7y agoAny plan to add job task management like RQ or Celery?
- KRains 7y agoYES! As soon as anyone will ask for them :) You can add your request (with the use case) as an issue in the repo.
- cal97g 7y agoI couldn't find any authentication / user registration code within the Flask application itself?
- potta_coffee 7y agoNice! 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.
- KRains 7y agoThanks! Do you have your boilerplate on Github or anywhere else?
- potta_coffee 7y agoNo, I haven't felt like it's really ready for anyone else to use. Just something I use as a shortcut when starting new projects. I ought to go through it and clean it up and put it out there though.
- KRains 7y agoYeah, I understand you. But you know what - I found if you would like to share your work with people in any way (open-source, commercial or whatever) it's much better to show it as soon as possible even if you think it's not ready yet. Quote: If You're Not Embarrassed By The First Version Of Your Product, You’ve Launched Too Late :))) (Reid Hoffman, founder of Linkedin)
- leetrout 7y ago> If you experience such errors: > 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 7y agoTo 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?
- JoblessWonder 7y agoI 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.
- KRains 7y agoWhat happened to it? Was it open-source or commercial?
- Thorentis 7y agoI 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.
- KRains 7y agoThanks a lot for the great comment. 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?
- dickeytk 7y ago
- elt193 7y agoThis is great. Thank you so much!! 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 7y agoThanks! 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 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.
- teah10 7y agothanks for the link. I long for the day where I can single click and have Flask/ReactJS boilerplate setup with functional public www and local dev environment setup. I only want to focus on business logic. Sorta like Heroku on steroid? (read: I would pay for that)
- KRains 7y agoThanks for your idea! Btw I created a simple script that literally does the same - you just provide comments and it's sending to GitHub, rebuild the frontend and send command to deploy to AWS. But it's when I already set up everything. I'm thinking to automate much more - the WHOLE process of deployment, from the beginning, and actually, I already did it partially (you can find working snippets in the book). So, stay tuned to know when I implement it :)
- anandchowdhary 7y agoLooks great! I also recently worked on a similar project, Staart (https://staart.js.org https://staart.js.org) but with a Node.js and Vue.js stack using TypeScript. It has typical SaaS features like onboarding, API gateway, social auth, Stripe recurring billing, teams, etc.
- KRains 7y agoThanks for sharing your link. It looks pretty mature to me! But I see you put all parts separately in Github, is it more convenient?
- PlanetRenox 7y agoDoes anything exist like this that uses a Java backend?
- ci5er 7y agoHa! 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!
- KRains 7y agoThanks! It's a pity you gave it up, maybe you could create something really cool.
- KRains 7y agoUpdate the license, now it's MIT.
- deleted 7y ago[deleted]
- deleted 7y ago[deleted]
- matt-p 7y agoI 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.
- KRains 7y agoThanks for your great comment. 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?
- VonFuchs 7y agoI am working on the same idea, on a different stack. Hope to finish it soon. Good luck with your project!
- KRains 7y agoThanks! Which stack do you use?
- HNLurker3 7y agoNice effort but I don't like it. 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 7y agoThanks 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.
- jckblckch 7y agoNoGo criteria NR1. No test/test frameworks included.
- KRains 7y agoI know, I know!! I will include unit tests... some day... soon.
- adibalcan 7y agoNice, but I think you need also an ORM. I used Flask with ORM from Django after I tested SQLAlchemy, and now I think that was a good choice.
- KRains 7y agoORM is used in this boilerplate, and it's SQLAlchemy. I need to mention it somewhere.