[HN Gopher] Bullet Train - Rails-based SaaS framework ___________________________________________________________________ Bullet Train - Rails-based SaaS framework Author : bauerpl Score : 349 points Date : 2023-04-24 13:04 UTC (9 hours ago) (HTM) web link (bullettrain.co) (TXT) w3m dump (bullettrain.co) | zaguios wrote: | 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. | | 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 wrote: | > 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 wrote: | > SSO integration | | Devise (which BT uses for authentication) handles SSO quite | effectively, with tons of provider support. | itake wrote: | But devise is only single tenant and doesn't offer a web | admin view for managing the integration? | Colex wrote: | Devise 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 wrote: | Devise 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. | zaguios wrote: | Devise does integrate with SSO, but you still have to set | everything up yourself for all the main providers which takes | a good bit of time with a lot of custom frontend work needed | and a bit of extra backend as well. It would be nice to have | SSO out of the box without the need for a bunch of manual | setup which was kind of the promise of this bullet train | thing. | tikkun wrote: | It'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 wrote: | https://github.com/denoland/saaskit | turnsout wrote: | That looks great--thanks for the link! | skinnymuch wrote: | I 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. | JLCarveth wrote: | I've made a project using their Fresh framework, it was | actually quite a nice dev experience. | mtmail wrote: | https://github.com/smirnov-am/awesome-saas-boilerplates | collects such frameworks, it lists 4 for Rails. | czue wrote: | This is a great list, though it's not that helpful for | comparing them with each other. There is also | 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. | clairity wrote: | rails has the concept of app templates, so you can create this | for yourself. here's one step-by-step example: | https://citizen428.net/blog/rails-quick-tips-5-create-apps-f... | | there are also repositories, like https://railsbytes.com/, | where you can peruse similarly pre-composed app templates of | varying quality. | pgm8705 wrote: | https://jumpstartrails.com is terrific. | schappim wrote: | Yup, jumpstart Pro is amazing... | ElfinTrousers wrote: | Kind 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 wrote: | I 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 wrote: | > 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 wrote: | I 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 wrote: | >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 wrote: | Yeah, 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. | jacktheturtle wrote: | How does the team behind this make money? | mperham wrote: | Keep scrolling down, it's on the page. | block_dagger wrote: | Devise? No thanks. If auth were handled by Sorcery I'd be much | more interested. | connordoner wrote: | Why? | mike_hock wrote: | We all know what happened to the train at the end of that movie. | 1differential wrote: | So this seems like the Rails equivilant of JHipster - which is | great because that's saved me weeks of development times 4-5 | years ago. | Novex wrote: | Anyone know of anything like this but for javascript frameworks? | creativedg wrote: | I was heavily inspired by Bullet Train to build | https://nextlessjs.com using JavaScript ecosystem. | aculver wrote: | Check out https://usegravity.app/! | ckluis wrote: | saasrock.com - but it goes beyond boilerplate | raimille1 wrote: | I believe this is what RedwoodJS is all about: | https://redwoodjs.com/ | Alifatisk wrote: | Here's a chart framework for Bullet Train https://supercharts.dev | bradhe wrote: | Cool idea. The website is...man...a lot. | brightball wrote: | Is this using Hotwire? | jack_riminton wrote: | They 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 | Mystery-Machine wrote: | I 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/ | kareemm wrote: | I 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_ wrote: | Did 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 wrote: | I've only heard good things about tailwind. Did you have a | bad experience with it? | osxman wrote: | [flagged] | nawgz wrote: | That'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 wrote: | Companies 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? | lowercased wrote: | > Why fight the stream if there's no good reason for it? | | Why jump tool chains when you already have more than | enough on your plate to keep up with? | | I watched a conference presentation last week from a | front-end person who talked about FE design. He pulled up | a slide on bootstrap and said "if you use bootstrap, | everything will end up looking like twitter. your login | page won't be able to be creative, you'll just look like | every other login page". | | I had to push back at the end of the presentation with | some BS support. I don't use it much any more, but the | obvious misinformation about bootstrap continues in 2023, | and it's bothersome. FWIW, the presenter said "oh yeah, | you're right, and it can be used well, but some people | just use the defaults". | | Separately, my experiences with tailwind have been less | than exciting. Perhaps if I spent the $300+ on 'premium | tailwind components' I'd be more on board? | | > easily interoperable between stacks so not really hard | to pick up and useful if your project already uses it. | | And if I don't use it? I get a fair amount of pushback | from colleagues sometimes for not jumping on the 'newest' | things. Spoiler: I don't deploy many projects with docker | either. Is that 'fighting' it? Or just using other | established/tested/documented tools and proceses to get a | job done? | andrei_says_ wrote: | I am the people who just write scss. | | For an app I may use bootstrap as it is a framework with | bigger blocks. | schappim wrote: | >> "fundamentally bad design" | | They literally wrote the book on good design[1] | | [1] https://www.refactoringui.com/ | thih9 wrote: | Why? | | Note, Bullet Train also uses tailwind. | aculver wrote: | Yes, this is true that we lean heavily into Tailwind CSS by | default. However, when I implemented our "new" component | system in 2021, I designed it so that there was a path | forward for Bullet Train on vanilla CSS or Bootstrap if | anyone wanted to implement it. I don't have any plans to do | it myself, but people (including Tamik, the original theme | author for Bullet Train) have expressed an interest. I'd | love to see it happen. You can get a sense for how this | would be possible from our theme docs at | https://bullettrain.co/docs/themes. | jonwinstanley wrote: | Have you tried it on a real project? Tailwind is a huge time | saver when compared to traditional CSS or SASS. | nawgz wrote: | What I really think you're saying is that Tailwind is a | huge time saver when it comes to design, and compared to | your past experiences translating designs to CSS it felt | like a net win. | | A lot of people disagree with Tailwind's design philosophy | on both the developer and consumer side of the code (i.e. | DX and UI), so it's questionable what "real project" and | "time saver" really mean; ironically, I question that your | definition of "real project" even included a team with | design chops. | danjac wrote: | I like Tailwind, but I like it precisely as a non- | frontend person working on side projects: it lets me | iterate quickly without a deep knowledge of CSS (while at | the same time providing an introduction to modern CSS). | | I can see how that would also be a benefit to a "SAAS | starter pack" where you have a small team wearing many | hats, probably people with a familiarity with CSS but not | experts. The code base in these early stage startups and | side projects is going to be small and you want to move | quickly. Tailwind is great at that. | | However if you have a frontend team of CSS experts to | draw upon, the benefits of Tailwind are fewer and the | downsides are greater - your CSS people will not enjoy | having your classes named things like "px-2 py-1 rounded | border bg-blue-800 text-white font-bold hover:bg- | blue-500" rather than just "btn btn-primary". They can | iterate fast anyway and they will probably leave more | maintainable HTML and CSS/SCSS in the long run. | | However I'd still be interested if any large teams (with | correspondingly large code bases) have made Tailwind work | for them. | thih9 wrote: | > ironically, I question that your definition of "real | project" even included a team with design chops | | "No, _you_ have never worked on a real project!" :) | | Both can be real projects, without quotation marks. I'm | constantly surprised that there are so many different | ways and processes to build a website; and people who | think theirs is the best. | nawgz wrote: | Indeed, personally I would never open a conversation with | that, but I believe this is someone gussying up their | personal hobby project where they learned how to use a | CSS framework into a "real project" while they denigrate | someone else. | | If we're going to discard some projects as real, a pretty | easy filter is "were multiple people required to build | it". People who need Tailwind to provide their design | system like Tailwind, but they are usually working on | very small-scale projects they're unlikely to maintain | and upgrade like a project with real users, real design, | and multiple engineers would. And a pretty easy proxy for | the latter type of shop is "do you have people who aren't | even front-end engineers doing your design", and that | commenter was displaying all those signals to me. | akio wrote: | > I question that your definition of "real project" even | included a team with design chops. | | Do you believe that | | The New York Times (2023): | https://tailwindcss.com/showcase/nytimes | | Shopify (2023): https://tailwindcss.com/showcase/shopify | | OpenAI (2023): https://tailwindcss.com/showcase/openai | | GitHub (2022): https://tailwindcss.com/showcase/github | | The Verge (2022): https://tailwindcss.com/showcase/the- | verge | | Google (2022): https://tailwindcss.com/showcase/google- | io-2022 | | Microsoft (2022): https://tailwindcss.com/showcase/dotnet | | Netflix (2022): https://tailwindcss.com/showcase/netflix | | Mashable (2022): | https://tailwindcss.com/showcase/mashable | | don't have teams with "design chops"? | | ---- | | Anecdotally, I can tell you that Tailwind is heavily | favored by shiny designery startups. Many of the best | designed websites these days are built with Tailwind, and | design-oriented engineers are reaching for it first. | | Back in 2018 I was arguing against utility classes and | vetoing their use in projects I was involved with in | favor of thoughtfully architected SCSS. By now in 2023 | it's clear Tailwind has earned its place in high-end UI | development. | nawgz wrote: | Nice list. Did you actually look at those sites? | | Your first example implies "The New York Times" uses | Tailwind. Besides that being hilarious, you click the | link and immediately see there is a big subheading | "Events" | | I have never heard of NYT "Events", so I checked out | their page: | | https://www.nytimes.com/events | | > Do you believe that [The New York Times Events doesn't] | have teams with "design chops"? | | Yes, yes I do. | | Not really going to bother with the rest, you're joking | if you think these top corps meaningfully rely on this | 2-year-old CSS framework. I exactly believe that you're | linking me to things thrown together quickly by a | resource-strapped team, the "Events" example merely | affirmed it | | Edit: I sort of bothered | | * GitHub Next - splash page | | * Shopify - marketing page | | * Google IO - marketing page | | * Microsoft .NET - marketing page | | * Netflix Global Top 10 - marketing page | | * New York Times Events - extremely basic | | * OpenAI - Attention grabber, but... the homepage didn't | even use full width of nor center content in my 1440p | display. Not exactly a UI-driven success | | * Mashable, The Verge - Pretty bad websites. | | This is my point. People use Tailwind to slap together | something good looking and simple. They don't use it to | build applications because you make your own design | system for applications. | akio wrote: | > They don't use it to build applications because you | make your own design system for applications. | | Some examples of SaaS companies that use Tailwind on the | application side are PlanetScale, Fly.io, Lemon Squeezy, | and Supabase. | nawgz wrote: | I agree. The main uses of Tailwind are people making | template-based pages, or putting up informational | offerings in front of service-oriented businesses which | give people APIs to build their own apps on. | DANmode wrote: | Many believe there is a direct choice between best tool | for a type of job, and a best tool for a type of person. | | The right path is having tools the team is currently, or | will be productive with, and isn't the markedly wrong | tool for a type of job. | schappim wrote: | At the time, JSP was more cost-effective than Bullet Train, and | the early adoption of Tailwind was also significant. | yankoff wrote: | Is Ruby on Rails still widely used? | Alifatisk wrote: | Yes, https://toprubycompanies.info | Trasmatta wrote: | Yes | [deleted] | volkk wrote: | genuine question -- as opposed to what when it comes to wanting | to launch something quickly from zero | makestuff wrote: | The only one that I could see competing is Django, but IMO it | isn't as fast as rails. | thih9 wrote: | Fast in what sense? Dev speed, performance, or something | else? | makestuff wrote: | Dev speed. | sebastianconcpt wrote: | The most important one at the beginning. | makestuff wrote: | Yeah, 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. | gabereiser wrote: | [flagged] | Alifatisk wrote: | Is this the competitor to https://avohq.io? | aculver wrote: | Not at all! You can use Bullet Train and Avo together or you | can use them independently. Avo is the recommended admin | library to use with Bullet Train. | Alifatisk wrote: | Oh okey, that's clears it up for me! | mr_o47 wrote: | Are there any examples of what has been built using this | framework | | I would love to see them | devmandan wrote: | Building 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/. 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 | steve_gh wrote: | I 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 | sourcelabs wrote: | This 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? | [deleted] | vrglvrglvrgl wrote: | [dead] | skinkestek wrote: | This 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. | obiefernandez wrote: | You're welcome. Hehehe | tinco wrote: | Haha this comment immediately made me think of you, and here | you are. | obiefernandez wrote: | Hard to believe we're coming up on 20 years soon. Crazyyyy | wg0 wrote: | I 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 wrote: | Why the downvotes? | wg0 wrote: | May be the enterprise developers don't like convention over | configuration[0]. | | [0] | https://en.wikipedia.org/wiki/Convention_over_configuration | ecshafer wrote: | Spring 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. | skinkestek wrote: | I use Quarkus these days which means the IDE support and | ecosystem of Java, the very simple annotation rules from | JavaEE, and reload times like PHP. | davedx wrote: | Yeah Ruby on Rails and its associated projects have had such a | giant, positive impact on development at large. | brightball wrote: | And honestly, with jRuby there's no reason you can't just jump | in this pool. | skinkestek wrote: | I like the Java and Kotlin languages and that I can get world | class IDE support for them. | ajmurmann wrote: | RubyMine does some really great stuff to provide a great | IDE for Ruby. | aculver wrote: | Wow, 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 | | Happy to answer any questions anyone may have! | brightball wrote: | The "Join the Mailing List" link on the home page is dead now | btw. | creativedg wrote: | It's so amazing to see how the tech community inspires and | learns from one another. Laravel found inspiration from Rails. | Then, seeing Bullet Train was inspired back from the Laravel | ecosystem with Laravel Spark. | | In the past, I was jealous of the Ruby ecosystem with an | extremely large community (the grass is always greener on the | other side?). And, thinking the JavaScript ecosystem was left | behind, but now I am hopeful that the JavaScript ecosystem has | finally caught up. | | I can totally confirm Bullet Train is an inspiration for many | SaaS Boilerplates. I was personally inspired by Bullet Train to | build Nextless.js [1], a Next.js based SaaS Boilerplate, | bringing SaaS starter kits in Next.js/React/JavaScript | ecosystem. | | --- [1]: https://nextlessjs.com | michaelbuckbee wrote: | I was privileged enough to attend Andrew's LA RailsSaas | conference and it was outstanding. | | If you're in the EU running a SaaS or developing with Rails you | should at the very least check out his upcoming one in Greece. | pc86 wrote: | I 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. | aculver wrote: | Thank 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! | plugin-baby wrote: | > I don't want to derail | | Too late - that train's already left the station. | yranadive wrote: | yea @aculver, its really beautiful! | wg0 wrote: | If 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. | matt_s wrote: | > 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 wrote: | I 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 wrote: | Yes 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. | fchief wrote: | We were very happy using Jumpstart Pro and were able to stay | connected to changes as it evolved. | schappim wrote: | +1 on Jumpstart Pro | iamgopal wrote: | Equivalent to this in Django ? With team support etc ? | cporrast wrote: | I've heard of Saas Pegadad [0], not a Django developer so | haven't tried it | | [0] https://www.saaspegasus.com/ | rosszurowski wrote: | I 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/ | pibefision wrote: | I'am using another framework, but this post about Teams was | pure light to me. Tks | clairity wrote: | nice! 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. | colorado-codes wrote: | Bullet 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. ___________________________________________________________________ (page generated 2023-04-24 23:00 UTC)