14 ms·
Bullet Train – Rails-based SaaS framework
- ElfinTrousers 3y agoKind of funny that "starting you off with all the features that are the same in every product" is a good description of the original motivation for Rails itself. Which is not criticism, the goalposts have moved quite a bit the past few decades.
- danpalmer 3y agoI see your point but I think this is at a level of abstraction that Rails never set out to solve. Rails is arguably “technology batteries included”, whereas this is more like “product batteries included”. There are many Rails sites that wouldn’t use these features, however there aren’t many Rails sites that wouldn’t use ActiveRecord or HTML rendering.
- KronisLV 3y ago> Rails is arguably “technology batteries included”, whereas this is more like “product batteries included”. This seems like a great way to put it! At the lower level of abstraction, there's all of the technical stuff, but at the higher level of abstraction, you think more about the product and the business domain concepts.
- noodle 3y agoI don't think so. This boils down to a set of already installed, pre-configured gems in a starter project. That's always how Rails has worked. When I was consulting, I had exactly this for myself before Bullet Train ever existed - a pre-configured rails repo that I just forked when I started something new. The thing w/ Bullet Train is that so much work is done for you, that if you don't like an opinion or two that they hold, you really should start from scratch, as tearing things out will just take longer. Its the downside of having so much integration and configuration already done.
- nickelcitymario 3y ago>The thing w/ Bullet Train is that so much work is done for you, that if you don't like an opinion or two that they hold, you really should start from scratch, as tearing things out will just take longer. Not disagreeing, but wouldn't this be true of Rails itself? It's an opinionated framework. If you like those opinions, it's a great framework to use. If you don't agree with those opinions, you're probably better off using something else.
- noodle 3y agoYeah, of course. But there's a difference in things like, "I don't want Tailwind, I want Bootstrap" or React vs Vue; instead of things like I don't like Ruby or I don't like convention over configuration. The former set of things ARE decisions you can make within the framework, while the latter are things you can't. You can have this exact same conversation about most frameworks, it doesn't have to be just about Rails. I also had a Symphony repo set up in a similar way when doing consulting many years ago. Having said that, some of Rails opinions are becoming more optional lately.
- zaguios 3y agoThis doesn't really have the types of features I would personally want as someone who has done a lot of rails development in the past. The types of things I tend to need to set up in any modern app is SSO integration, React integrated on the frontend, etc... These are annoying things I have to integrate every time I build something and are more or less industry standard at this point.
- pelasaco 3y ago> This doesn't really have the types of features I would personally want as someone who has done a lot of rails development in the past. This is relative. > React integrated on the frontend This is something that I don't want at all. Regarding the SSO, without reading the code, I'm sure you are able to accomplish it using devise (included in their framework)
- runako 3y ago> SSO integration Devise (which BT uses for authentication) handles SSO quite effectively, with tons of provider support.
- itake 3y agoBut devise is only single tenant and doesn’t offer a web admin view for managing the integration?
- Colex 3y agoDevise does not impose anything on the number of tenants. I run a Rails app with multi-tenancy and SSO support with Devise. As someone has mentioned, although it does a lot of the work and it keeps well organized, you still need to do the UI for configuring and some backend logic.
- itake 3y agoDevise doesn't support SSO, but it supports omniauth, which supports SSO, right? You certainly can write and maintain code to add multi-tenant sso, but since omniauth does not support any configuration storage, you have to add that yourself.
- tikkun 3y agoIt'd be nice if there was a way to try the demo without signing in. That said, this looks like a good product. Are there other similar/competing things for Rails, and are there other competing SaaS-in-a-box things for other frameworks?
- JLCarveth 3y agohttps://github.com/denoland/saaskit https://github.com/denoland/saaskit
- skinnymuch 3y agoI wish Deno’s future and popularity was more known. I’d love to try my next side project in Deno, but I’ll probably stick to React/Next and maybe Rails.
- turnsout 3y agoThat looks great—thanks for the link!
- mtmail 3y agohttps://github.com/smirnov-am/awesome-saas-boilerplates https://github.com/smirnov-am/awesome-saas-boilerplates collects such frameworks, it lists 4 for Rails.
- czue 3y agoThis is a great list, though it's not that helpful for comparing them with each other. There is also https://www.starter.place/ https://www.starter.place/ which includes more information about what features are included in each one. What's still missing is some kind of aggregated review service or something for these. From the outside it's still very difficult to tell the difference between "well-maintained, production-ready thing that has been used by hundreds of real businesses" and "some rando's app they threw on github / are trying to sell". There is such a huge difference in quality/maturity for many of these and that is literally all you are paying for. Still a tricky market to navigate.
- kareemm 3y agoI evaluated Bullet Train last year when building an MVP for a client. Ended up using Jump Start Rails instead. Main reasons: 1. The hybrid approach to iOS and Android apps with JSR were better than what BT had to offer 2. There was a lot less to learn about the mental model of how JSR was built via Bullet Train. It was basically pay, pull down, configure, and get going with JSR. BT has things like SuperScaffolding, an abstraction layer on CanCanCan, etc. I didn't want to have to ramp up on those to decide whether they were better than the alternatives. YMMV of course. JSR is a paid app and IIRC BT was at the time too... but looks like maybe not anymore?
- andrei_says_ 3y agoDid you end up using tailwind with jump start rails? Any way around it? I like the idea of jump start rails but would like to stay away from tailwindcss.
- minton 3y agoI’ve only heard good things about tailwind. Did you have a bad experience with it?
- osxman 3y ago[flagged]
- nawgz 3y agoThat's the nature of how these things go. People that like Tailwind praise it. People that think it's fundamentally bad design avoid it and don't say too much, or are drowned out by the people praising it. People who just write SCSS don't even think about it.
- tough 3y agoCompanies like tailwind Engineers learn to work with it due to that simple fact. It's OK tbh, and it's easily interoperable between stacks so not really hard to pick up and useful if your project already uses it. I tried to fight it at first, but I've only seen it being used more and more. Why fight the stream if there's no good reason for it?
- yankoff 3y agoIs Ruby on Rails still widely used?
- Trasmatta 3y agoYes
- deleted 3y ago[deleted]
- volkk 3y agogenuine question -- as opposed to what when it comes to wanting to launch something quickly from zero
- makestuff 3y agoThe only one that I could see competing is Django, but IMO it isn't as fast as rails.
- thih9 3y agoFast in what sense? Dev speed, performance, or something else?
- makestuff 3y agoDev speed.
- sebastianconcpt 3y agoThe most important one at the beginning.
- makestuff 3y agoYeah, it is really hard to find something that can spin up a web app faster. Django is close, but rails is really good at it.
- rosszurowski 3y agoI haven't used Bullet Train, but I've found their "Teams should be an MVP feature" blog post [1] a really great overview of how to model team structures in relational databases before. Worth a read! [1]: https://blog.bullettrain.co/teams-should-be-an-mvp-feature/ https://blog.bullettrain.co/teams-should-be-an-mvp-feature/
- clairity 3y agonice! that's something i stumbled over when re-architecting a 2-sided marketplace (in rails) for one of my startups. the data model they describe is roughly what i ended up with, but it took some iterating to get there. the key understanding was that the relation table in a many-to-many relationship is not just a technical detail but encodes important information about real world systems, especially the human kind. as engineers, we get often get stuck on the entities being the important bits, but more often, the relations are where all the action is.
- pibefision 3y agoI'am using another framework, but this post about Teams was pure light to me. Tks
- pythonaut_16 3y agoDo you have any recommendations for more resources like this? I've had a hard time searching for patterns and tips for modeling common data/features for web applications.
- yurishimo 3y agoI really like Derrick Reimer's blog[0] for these types of posts. You might have to go back in time to find something a little more technical. On second glance, it seems the older articles are no longer available. You can find most of them[1] on the Wayback Machine though. 0: https://www.derrickreimer.com https://www.derrickreimer.com 1: https://web.archive.org/web/20181001000000*/https://www.derrickreimer.com/ https://web.archive.org/web/20181001000000*/https://www.derr...
- devmandan 3y agoBuilding from scratch wastes a ton of time and I'm a big fan of starting with some working parts and customizing from there. I think with what's going on with AI it makes sense to use python more because all the researchers love python and make examples available through python notebooks. Then your tech stack is less split amongst many languages and there is less complexity and you can hire developers for cheaper. Ruby devs are fairly pricey because they all working in silicon valley-esque well-funded startups. There is a Django boilerplate provider that's really good https://www.saaspegasus.com/ https://www.saaspegasus.com/. The guy behind it, Corey, is very responsive. All in all, it's probably not the worst thing to use Ruby, as long as you use less weakly-typed javascript :P
- deleted 3y ago[deleted]
- sourcelabs 3y agoThis is what I've been wondering as well -- For a brand new project, why would anyone even consider using Rails if there's just a slight chance of adding ML/AI capability in the future?
- steve_gh 3y agoI work in a Python shop (heavy data analytics). My experience is that the Python web frameworks (Django, Flask) are so much more cumbersome than Rails. There are arguments both for and against streamlining your tech stack. For me, the additional overhead of maintaining multiple stacks is worth it given the effort that goes into web app development
- bradhe 3y agoCool idea. The website is...man...a lot.
- Mystery-Machine 3y agoI love seeing Bullet Train progress. I've never used it, but I'm super eager to use it if I ever get the chance. There's one more framework being built on top of Rails and I think worth mentioning - RailsUI: https://railsui.com/ https://railsui.com/
- aculver 3y agoWow, hi everyone! Was just about to walk over for the first day of RailsConf when a friend let me know we were #1 here! Honored! I'm the original creator of Bullet Train, although a number of people now work on it. It's been a fun journey to this point! When I first started building Bullet Train, it was a relatively unique offering. There weren't that many full-featured "SaaS starter kits" out there, although there was some prior art. The biggest inspiration for Bullet Train was what Laravel Spark was at the time. In fact, one of the guys who had got me into Rails in the first place had started building his next product on Laravel so they could take advantage of Spark! These days there are an abundance of SaaS starter kits available in most ecosystems. I've had the pleasure of meeting and interacting with the authors of a bunch of high-quality starter kits built in different languages and frameworks and some of them have told me they were inspired in part by Bullet Train. I love that. If you're interested in Rails and SaaS, we're running a conference in Athens, Greece on June 1–2 this year and we'd love to have you! https://railssaas.com https://railssaas.com Happy to answer any questions anyone may have!
- pc86 3y agoI don't want to derail but have to ask, is the theme/template for your site custom? It's beautiful. Edit: To clarify I mean the marketing site linked here, not the starter template.
- plugin-baby 3y ago> I don't want to derail Too late - that train’s already left the station.
- yranadive 3y agoyea @aculver, its really beautiful!
- aculver 3y agoThank you! This was the work of Tamik Soziev, who also created the original theme for Bullet Train itself. I'll make sure to pass on the note!
- 3y ago
- vrglvrglvrgl 3y ago[dead]
- Novex 3y agoAnyone know of anything like this but for javascript frameworks?
- darraghor 3y ago(creator here) Miller Start does this - https://usemiller.dev/miller-start https://usemiller.dev/miller-start
- raimille1 3y agoI believe this is what RedwoodJS is all about: https://redwoodjs.com/ https://redwoodjs.com/
- aculver 3y agoCheck out https://usegravity.app/ https://usegravity.app/!
- ckluis 3y agosaasrock.com - but it goes beyond boilerplate
- creativedg 3y agoI was heavily inspired by Bullet Train to build https://nextlessjs.com https://nextlessjs.com using JavaScript ecosystem.
- kirso 3y agohttps://create.t3.gg/ https://create.t3.gg/
- mr_o47 3y agoAre there any examples of what has been built using this framework I would love to see them
- 1differential 3y agoSo this seems like the Rails equivilant of JHipster - which is great because that's saved me weeks of development times 4-5 years ago.
- brightball 3y agoIs this using Hotwire?
- jack_riminton 3y agoThey seem to have their own 'reactive' way of doing it called Sprinkles but I don't think they've open sourced it yet https://www.youtube.com/watch?v=7NqjpInVIjc&t=181s https://www.youtube.com/watch?v=7NqjpInVIjc&t=181s
- aculver 3y agoUpdate on this: We do now include Turbo by default and the "Cable Collections" feature in the linked video has been completely reimplemented by the CableReady team in a feature called "Updatable", which we now use in Bullet Train. You can learn more about it at https://cableready.stimulusreflex.com/guide/updatable.html https://cableready.stimulusreflex.com/guide/updatable.html . Very grateful for the work they did on this and grateful to not have to maintain a proprietary reactivity library going forward!
- jack_riminton 3y agoThis looks awesome thanks, and thanks to the CableReady team. Does anyone know how the equivalent would be done as best practice with Turbo?
- Alifatisk 3y agoHere's a chart framework for Bullet Train https://supercharts.dev https://supercharts.dev
- Alifatisk 3y agoIs this the competitor to https://avohq.io https://avohq.io?
- block_dagger 3y agoDevise? No thanks. If auth were handled by Sorcery I’d be much more interested.
- connordoner 3y agoWhy?
- skinkestek 3y agoThis might be a good place for a Java programmer to say thank you to the Rails community for your relentless mocking of Spring and Enterprise Java back in the days. Java is wonderful these days, and seriously I think you guys are a one of the major reasons why Java is so great today.
- wg0 3y agoI recall when I started even with Rails pre Rails 2.0, the Spring framework was a horror show. Good luck with XML plumbing and then annotations wiring and then dependency injection container and AbstractBusinessProxyFascadSingletonFactory whereas in contrast, Rails seems light years ahead from controllers to templating to ORM.
- szundi 3y agoWhy the downvotes?
- wg0 3y agoMay be the enterprise developers don't like convention over configuration[0]. [0] https://en.wikipedia.org/wiki/Convention_over_configuration https://en.wikipedia.org/wiki/Convention_over_configuration
- skinkestek 3y agoDidn't downvote, but the constant mixing up of criticism against XML nonsense (justified) with criticism of annotations (why? Have so many people seen code bases that abuse them?) might be one reason.
- ecshafer 3y agoSpring is still awful. Play, Javalin, and other frameworks are leagues better. Even Spring boot isn't a great framework which has way too much annotation soup. Worst thing with Spring/Spring Boot is that the framework and ecosystem breaks extremely often with updates.
- iamgopal 3y agoEquivalent to this in Django ? With team support etc ?
- cporrast 3y agoI've heard of Saas Pegadad [0], not a Django developer so haven't tried it [0] https://www.saaspegasus.com/ https://www.saaspegasus.com/
- wg0 3y agoIf you are doing an MVP prototype or the code would be the client's problem once you're done with your consulting, such bulk boilerplate is fine. I have extensively worked with Python and Ruby in past but my conclusion is that even though they ramp you up in the beginning but as the code base grows, it becomes harder to guess deeper in the codebase to guess what objects you're dealing with. Specifically in case or Ruby/Rails, the IDE's are of not much help as they're guessing/brute forcing the possible suggestions too. The type hinting in Python is totally optional and I know you can have stricter linting rules and what not but I'd prefer a a little more statistically typed language for which I think go has the minimalism, won't let you over engineer. Other interesting promising candidates are Nim/Crystal. So I can start my SaaS on such a Rails boilerplate but it'll be more of a liability of keeping up with the upstream codebase and my own but maybe that's my lack of confidence.
- mattbrewsbytes 3y ago> to guess what objects you're dealing with I don't understand, why are you guessing? Do you mean the parent objects of things you've written? Like ActiveRecord, etc. I would think that mental overhead is the same in any web+CRUD+ORM type of framework.
- hu3 3y agoI guess what your parent poster is saying is that: without types, all you have is the variable name to guess what it does. IDEs help but there's only so much they can do.
- wg0 3y agoYes that's what I meant. All you have is a variable and IDEs can't figure it all if there's no type on it. Not just that, let's say even if type is known but some of the methods are generated on runtime than IDE has no idea about it.
- mattbrewsbytes 3y ago
- colorado-codes 3y agoBullet Train is so great. Even for non-saas apps, the sensible defaults make things so much easier. Things like adding new webhook handlers, api routes, complex models and views are only a command away. It's like rails for rails.
- jacktheturtle 3y agoHow does the team behind this make money?
- mperham 3y agoKeep scrolling down, it's on the page.
- fchief 3y agoWe were very happy using Jumpstart Pro and were able to stay connected to changes as it evolved.
- schappim 3y ago+1 on Jumpstart Pro
- mike_hock 3y agoWe all know what happened to the train at the end of that movie.
- TestingUser123 3y ago[flagged]
- TestingUser123 3y ago[flagged]