Question from a beginner
Hi everyone π
I just discovered Wasp and SaaS template. I really like it, it is super easy to build something new from scratch, and the learning curve is pretty low.
I'm a BE engineer with experience primarily in Java and Go. However, thanks to your great documentation, it is not too difficult to figure out how to work with your tech stack.
I plan to build my mini SaaS based on Wasp.
However, I have a concern. Wasp is doing a lot of magic. It makes FE and BE work together without all the usual overhead. If, at some point, I decide to migrate away from Wasp, how difficult would it be? Does it mean that starting with Wasp today, I will have to stick to it forever? It is a new framework, so seeing what would happen with Wasp and project support in a few years is difficult.
It would be great to hear thoughts on this topic π
6 Replies
Hi @lucky72o. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
----------------------
Hi there! Great question about Wasp's long-term implications for your SaaS project.
You can definitely migrate away from Wasp if needed in the future. When you run
wasp build
, you get a standard React + Vite client and a NodeJS server that can be taken and used independently from Wasp Discord support thread. This means you're not permanently locked into the framework.
Wasp is designed to work with existing technologies rather than replacing them. It uses React, Node.js, and Prisma under the hood, focusing on connecting these parts together rather than reinventing everything Introduction. This approach makes migration easier since you're working with standard technologies.
Regarding the project's longevity, Wasp is backed by Y Combinator and other investors, with a team that has been working on it for about 3 years Discord support thread. The project follows a similar model to other open-source developer tools like MongoDB, Terraform, and Next.js.
The Wasp team's vision is to make it a community-driven project that can evolve independently of commercial efforts (similar to Django or Rails) Discord support thread. They're currently focused on reaching version 1.0 before exploring additional value-added services.
As a backend engineer with Java and Go experience, you might find it interesting that the Wasp team has a long-term vision of making Wasp more agnostic to the underlying technology stack, potentially supporting different languages and frameworks in the future Github Issue.
I hope this addresses your concerns about potential vendor lock-in with Wasp!
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------
Sorry @lucky72o, I seem to be having a bit of trouble. Don't worry though, I've pinged my support and they will try to fix me up! :technologist:
Perhaps try again in 15mins?I think the bot covered the topic pretty well π in a nutshell, you can take the generated code in the
.wasp/out
dir and go on your own if you need to π one of our guiding principles is to make the framework in such a way that you don't have the need i.e. you don't feel locked in and always have access to some escape hatch!great, thanks a lot for the answer Miho, and to bot as well π
I'm very new to Wasp, Node and React, so I am trying to understand how these all work together
I'm also wondering if I ever want to switch Node BE with Java or Go, how difficult would this also be
My recommendation would be to go through the Wasp docs/tutorial to get the hang of the basics first https://wasp.sh/docs/tutorial/create
1. Creating a New Project | Wasp
You'll need to have the latest version of Wasp installed locally to follow this tutorial. If you haven't installed it yet, check out the QuickStart guide!
Switching backends wouldn't really be possible with the current Wasp version (maybe in a more distant future, it would be easier). We exploring that option as well, giving you a way to swap out backends. Right now, we are focused on making the current stack work as best as possible (React + Node.js).
That being said, some of our users did things like: use Wasp + one extra backend in e.g. Go that they would send requests to from the Wasp Node.js server.
That being said, some of our users did things like: use Wasp + one extra backend in e.g. Go that they would send requests to from the Wasp Node.js server.
[ client ] --- [ Wasp server ] --- [ Go server ]
I see, thanks a lot for clarifying this!