Hey folks, and welcome to The Small Tech Podcast by Ephemere Creative. I am your host Raph. And today we're going to be talking about frameworks and specifically, we're going to be talking about web development, mobile app development frameworks. I haven't been pushing this stuff yet, but if you enjoy our content, please, please, please. Like, and subscribe on YouTube. Go give us a rating of five star rating hopefully. On apple podcasts or wherever you listened to your podcasts.
It's really, really helpful for us. We're a small team, hence small tech, and we would be so grateful for any help we can get. Also, if you have anything that you would like to talk about. And you want to hop on the podcast with me. That would be awesome too. You can reach out at raphael@ephemerecreative.ca. I'll put my email in the show notes and I'd love to have you on. Okay. So before we dive into it, I think we really need to define what is a framework.
And again, specifically software development, web mobile app development frameworks, and there's a few different things that kind of fit into this category. But basically, we're talking about code that provides a base for a variety of functionality that you can generally expect to need in a web or mobile application. This often means stuff like authentication a way to generate an API.
Maybe a way to generate a frontend and usually like a workflow for making all of those things happen and figuring out how they work together. Often, these are split into different little sections and they might actually be cobbled together from existing open source tools. They just give you a nice way of working with them altogether. So why would you use a framework? It seems obvious to those of us who have done this before.
But for a lot of new developers, they don't know that frameworks exist and they dive right into just building all kinds of stuff from scratch. So why should they use a framework or why should any of us use a framework? The first thing that comes to mind for me is speed. If you have a bunch of tools that are already pieced together, and there's nice documentation on how to use them together. Then you're going to save a lot of time. That stuff is already built. It's organized. You just use it.
So speed. Speed is a big one. Another thing that I find is when you're using a framework, you're forced to be more consistent and that's helpful on a team. If you don't use a framework, it's easier for different people to write code in their own way. A lot of frameworks will sort of force you to write things the way that they expect things to be written.
And so it makes it easier for different developers on your team to move between different modules, different components that they're working on and understand what other team members are, are writing. The last thing that really sticks out to me is support. And sometimes that might mean paid support. There are frameworks out there that will give you help in exchange for money. But the other thing is a lot of really great frameworks have really big communities built up around them.
And so you can just go onto a forum or a discord and ask a question and somebody who is part of that community will be happy to help. But the other side of that too, is when you have big communities, there's lots of people writing stuff about these frameworks and how to do things and they've encountered the bugs. And so if there is an issue, you can be almost certain that someone else has already had it and it's already documented and they've explained how to fix it or how to work around it.
Let's talk about some examples of frameworks. Some of the ones that are really popular out there that you may have heard of, even if you're not a developer are Ruby on rails Django, and Laravel. Rails is a Ruby framework. It has been around for a really long time and got really popular. I feel like in the sort of late two thousands, which is also when Django started to become quite popular. I think Django's a little bit newer. Django is a Python framework. And, Laravel is a PHP framework.
They each have their own way of doing things. I wouldn't say that one is particularly better than the other. They all provide very similar functionality in the end. One of the considerations might be what other things you want to do outside of the framework context that might be easier to do in Python, Ruby, or PHP? Python, for example, is commonly used for machine learning and AI. So if you're going to build a web app that also relies on AI stuff.
Then it might be practical to use a framework like Django. Okay, next, I'm going to talk about things that aren't exactly frameworks, but provide a lot of the functionality of a framework. These are backends as a service. So when we think about frameworks like rails, Django, and Laravel, they allow you to do a few different things, that are quite common in app development, which is they help you manage authentication. Reading and writing data from a database.
And creating the user interface on top of that data. Now backends as a service, do most of that without the UI. So they just give you. A way to interact with data as an authenticated user. And that's it. So you usually need another framework or another tool. To build your user interface separately from them. So the backends that I am. Not necessarily super familiar with, but at least somewhat familiar with our Supabase, Pocketbase, AppWrite and Firebase.
Now I have only used Supabase and Firebase personally, and they're pretty similar products in many ways. The main difference is that Supabase is open source and you can host it on your own machines whereas Firebase is a closed source SaaS product offered by Google. So, if you're going to use the backend as a service, you're going to need some separate way to build your front end. And that's where front end frameworks come in. Some of the ones that I'm familiar with are Angular, Next, and Expo.
Expo is for building mobile apps, Angular and Next are for building web apps. They give you a lot of stuff out of the box. Primarily around. Routing, so figuring out which URL go like we'll show which page. Uh, expo we'll do that with mobile app screens. They'll do a lot of other stuff around caching and data management and how you interact with your backend as a service or your API or whatever.
I think it's kind of up to you to just choose one that feels right for you because in the end, most of them can do pretty much the same thing. Okay. Finally, I am going to talk about. What we are calling a deep stack framework and that's because it's our own product, the Chewy Stack. The thing that's different about the Chewy Stack is that if you want to deploy a Django app or a Supabase app or an Next.js app, those all need to be configured for the place that you're going to host them.
So if you're going to host Django, you'll need to make sure you know, how to deploy to AWS or DigitalOcean or Heroku or Fly or any other solution out there. You'll have to do the same for Supabase or with Next or Angular. Each of these things requires a lot of work to sort of configure to make them play nice with different parts of your digital product. The thing that we think is special. And the reason we build Chewy is it's, kind of like a framework of frameworks.
So it ties together backend tooling to build, on top of your database and manage authentication. So we've got different components for that, that are open source tools. One is called Hasura. The other one is called Ory. And, Uh, front end, built on Next.js and Expo. But the secret sauce behind Chewy is that we make it dead simple to connect all of those things and to get them up and running in a developer's machine.
And then more importantly, get all of them up and running on different types of infrastructure. So you don't need to think about, well, which sort of database should I provision? How do I make sure that the database is properly networked? So it can connect to my API servers. And is my front end, actually going to be able to connect to my API and how do I make Auth play nice with all of those different components. We just take care of that for you.
So you can say Chewy deploy to staging, and we'll provision a staging environment for you or Chewy deploy to production, and we'll deploy to production and manage those servers and configurations for you. So that's the promise that we are trying to deliver on with the Chewy Stack. We want to make it easier for people to build scalable complex products without having to put in a ton of work, just to configure things and get servers up and running. Alrighty. Well, thanks for listening folks.
If you enjoy this stuff. Please like subscribe on YouTube. Subscribe to the podcast in your favorite podcast app. Leave us a review. We'd love to hear what you think and we'd love to have you on the podcast. If you are interested in talking about this stuff. Also make sure to sign up for our newsletter, where we will be sending you tons of great info about how to build small tech products. It's going to be videos, blog posts, any podcast episodes you might have missed. And plenty of other stuff.
So go to smalltechpodcast.com and you'll see a little newsletter button at the top there. And, you can use that to subscribe. So that's it for this week's episode, we all want to do some good in the world, out there folks. So go build something good. See ya.
