Introduction
Welcome to the Chewy Stack! ๐๐
In this document we'll cover the following:
- What is the Chewy Stack?
- Can the Chewy Stack help me?
- Why should I choose the Chewy Stack?
- Give me a sense of how the Chewy Stack works.
The idea is to help you determine if the Chewy Stack is a good fit for you and why you might want to choose the Chewy Stack over other comparable tools. We believe the Chewy Stack can help a wide variety of developers to get projects off the ground, but we acknowledge that it's not going to be everyone's cup of tea. โ๏ธ
So let's go ahead and figure out if it's right for you.
What is the Chewy Stack?โ
The Chewy Stack is a deep stack framework which aims to get developer from zero to scalable product faster than anything else out there
If you've made it here, you've probably come across other stacks like LAMP, MERN, or MEAN. You've probably also come across frameworks like Django, Rails, or Laravel. You may also have come across "Backend as a Service" products like Supabase, AppWrite, or Parse.
Chewy is a bit like the stacks, in that it combines existing open source technologies. It's like the frameworks, in that it provides a structure to address high level concerns from data management all the way to rendering a frontend. It's like a "Backend as a Service" in that the tooling it provides out of the box makes it really easy to define, organize, and access data. These are the things that make Chewy really different:
A micro-service architectureโ
Monoliths are easier to get started with, but can be limiting down the line. Microservices can be difficult to get started with and manage, but are easier to deal with down the line. The Chewy Stack aims to provide the advantages of microservices, while maintaining the simplicity of a monolith. Read more
Micro-services aren't for everyone! But there are many projects that would benefit from them if they were easier to manage and deploy. The Chewy Stack does that for you.
Deeper than full-stackโ
We're making up a new word: "Deep Stack Framework." Traditional full stack frameworks provide structure and tooling around your frontend and backend. A "deep stack framework" goes one step deeper: the infrastructure you deploy to is explicitly part of the framework. Read more
Infrastructure is complicated! Many tools offer the "freedom to just develop, and not think about infrastructure." But that promise often falls short because the platforms don't know quite what to expect from the code and the code doesn't know quite what to expect from the infrastructure. The Chewy Stack solves this by making the infastructure explicitly tied to the code.
Can the Chewy Stack help me?โ
In short, if you're building a new web or mobile app... probably!
Part of our mission is to make complex systems simple to manage, and to make the Chewy Stack accessible for developers of all levels. For that reason, we're making certain tradeoffs, which won't make sense for everyone. That being said, if you like TypeScript, GraphQL, and React, and you like building products fast, the Chewy Stack is probably for you.
One other thing: we want to make the Chewy Stack flexible and extensible. So if you like Kubernetes and managing infrastructure, we hope the Chewy Stack will provide a solid base for you to build some really cool systems.
Why should I choose the Chewy Stack over the alternatives?โ
You should choose the Chewy Stack if you fit the following criteria:
- You want an opinionated framework so you can start building, rather than choosing components.
- You like (or ideally love ๐งก) TypeScript, React, and GraphQL.
- You want to be able to easily deploy to your own cloud provider without building a bunch of tooling.
Give me a sense of how the Chewy Stack works.โ
Ok, this is roughly what the workflow looks like from zero servers and zero code, to production-ready application running in your own cloud.
# This gives you a graphql api, auth, and Next.js app all hooked up.
chewy-cli init --template minimal-web
# This starts everything in development mode so you can start building.
chewy-cli dev start
### ... build something awesome ...
# This creates a new environment to deploy to.
chewy-cli create environment --name production --domain mycoolproduct.io
# This connects a DigitalOcean account to the production environment.
chewy-cli create provider digitalocean --environment production --token <YOUR_DO_TOKEN>
# This provisions infrastructure (databases, kubernetes cluster, etc.), builds everything, and deploys everything.
chewy-cli deploy --environment production
At this point, as long as your name servers are properly configured, you would have a fully functional app, ready at app.mycoolproduct.io
. It would have certs configured and would autoscale (to some extent!)