WEBVTT

NOTE
This file was generated by Descript 

00:00:06.014 --> 00:00:12.314
Hey folks, and welcome to The Small
Tech Podcast by Ephemere Creative.

00:00:12.344 --> 00:00:14.264
I am your host Raph.

00:00:14.924 --> 00:00:20.984
And today we're going to be talking about
frameworks and specifically, we're going

00:00:20.984 --> 00:00:26.024
to be talking about web development,
mobile app development frameworks.

00:00:26.524 --> 00:00:30.274
I haven't been pushing this
stuff yet, but if you enjoy our

00:00:30.274 --> 00:00:32.404
content, please, please, please.

00:00:32.704 --> 00:00:34.864
Like, and subscribe on YouTube.

00:00:34.894 --> 00:00:38.734
Go give us a rating of
five star rating hopefully.

00:00:38.804 --> 00:00:42.104
On apple podcasts or wherever
you listened to your podcasts.

00:00:42.404 --> 00:00:44.414
It's really, really helpful for us.

00:00:44.694 --> 00:00:49.104
We're a small team, hence
small tech, and we would be so

00:00:49.104 --> 00:00:51.354
grateful for any help we can get.

00:00:51.854 --> 00:00:55.094
Also, if you have anything that
you would like to talk about.

00:00:55.544 --> 00:00:58.034
And you want to hop on
the podcast with me.

00:00:58.124 --> 00:00:59.624
That would be awesome too.

00:00:59.674 --> 00:01:03.634
You can reach out at
raphael@ephemerecreative.ca.

00:01:03.994 --> 00:01:07.774
I'll put my email in the show
notes and I'd love to have you on.

00:01:08.274 --> 00:01:08.754
Okay.

00:01:08.784 --> 00:01:14.484
So before we dive into it, I think we
really need to define what is a framework.

00:01:14.964 --> 00:01:18.714
And again, specifically software
development, web mobile app

00:01:18.714 --> 00:01:21.534
development frameworks, and
there's a few different things that

00:01:21.534 --> 00:01:23.844
kind of fit into this category.

00:01:24.654 --> 00:01:32.694
But basically, we're talking about
code that provides a base for

00:01:32.694 --> 00:01:37.944
a variety of functionality that
you can generally expect to need

00:01:37.944 --> 00:01:40.974
in a web or mobile application.

00:01:41.474 --> 00:01:48.164
This often means stuff like
authentication a way to generate an API.

00:01:48.504 --> 00:01:53.454
Maybe a way to generate a frontend
and usually like a workflow for

00:01:53.544 --> 00:01:58.164
making all of those things happen and
figuring out how they work together.

00:01:58.664 --> 00:02:01.784
Often, these are split into
different little sections and they

00:02:01.784 --> 00:02:06.614
might actually be cobbled together
from existing open source tools.

00:02:07.094 --> 00:02:12.274
They just give you a nice way
of working with them altogether.

00:02:12.774 --> 00:02:15.054
So why would you use a framework?

00:02:15.494 --> 00:02:18.584
It seems obvious to those of
us who have done this before.

00:02:19.054 --> 00:02:24.694
But for a lot of new developers, they
don't know that frameworks exist and

00:02:24.694 --> 00:02:29.254
they dive right into just building
all kinds of stuff from scratch.

00:02:29.754 --> 00:02:33.864
So why should they use a framework or
why should any of us use a framework?

00:02:34.254 --> 00:02:37.974
The first thing that comes
to mind for me is speed.

00:02:38.604 --> 00:02:43.114
If you have a bunch of tools that are
already pieced together, and there's nice

00:02:43.114 --> 00:02:45.574
documentation on how to use them together.

00:02:46.054 --> 00:02:47.914
Then you're going to save a lot of time.

00:02:48.094 --> 00:02:49.324
That stuff is already built.

00:02:49.324 --> 00:02:50.194
It's organized.

00:02:50.194 --> 00:02:51.664
You just use it.

00:02:52.024 --> 00:02:53.164
So speed.

00:02:53.434 --> 00:02:54.364
Speed is a big one.

00:02:54.864 --> 00:02:59.154
Another thing that I find is when
you're using a framework, you're

00:02:59.154 --> 00:03:03.834
forced to be more consistent
and that's helpful on a team.

00:03:04.424 --> 00:03:07.484
If you don't use a framework,
it's easier for different people

00:03:07.484 --> 00:03:09.134
to write code in their own way.

00:03:09.184 --> 00:03:13.024
A lot of frameworks will sort of
force you to write things the way

00:03:13.024 --> 00:03:15.484
that they expect things to be written.

00:03:15.964 --> 00:03:21.454
And so it makes it easier for different
developers on your team to move between

00:03:21.454 --> 00:03:25.234
different modules, different components
that they're working on and understand

00:03:25.234 --> 00:03:27.634
what other team members are, are writing.

00:03:28.134 --> 00:03:31.254
The last thing that really
sticks out to me is support.

00:03:31.374 --> 00:03:34.134
And sometimes that
might mean paid support.

00:03:34.164 --> 00:03:38.994
There are frameworks out there that will
give you help in exchange for money.

00:03:39.534 --> 00:03:44.244
But the other thing is a lot of
really great frameworks have really

00:03:44.244 --> 00:03:46.314
big communities built up around them.

00:03:46.674 --> 00:03:51.204
And so you can just go onto a forum
or a discord and ask a question

00:03:51.264 --> 00:03:54.864
and somebody who is part of that
community will be happy to help.

00:03:55.194 --> 00:03:59.124
But the other side of that too, is
when you have big communities, there's

00:03:59.124 --> 00:04:03.054
lots of people writing stuff about
these frameworks and how to do things

00:04:03.054 --> 00:04:04.644
and they've encountered the bugs.

00:04:05.004 --> 00:04:09.294
And so if there is an issue, you can
be almost certain that someone else

00:04:09.294 --> 00:04:13.464
has already had it and it's already
documented and they've explained how

00:04:13.464 --> 00:04:15.474
to fix it or how to work around it.

00:04:15.974 --> 00:04:18.854
Let's talk about some
examples of frameworks.

00:04:19.474 --> 00:04:23.134
Some of the ones that are really popular
out there that you may have heard of,

00:04:23.194 --> 00:04:28.174
even if you're not a developer are
Ruby on rails Django, and Laravel.

00:04:29.194 --> 00:04:31.924
Rails is a Ruby framework.

00:04:32.094 --> 00:04:35.934
It has been around for a really
long time and got really popular.

00:04:36.144 --> 00:04:42.424
I feel like in the sort of late two
thousands, which is also when Django

00:04:42.424 --> 00:04:44.854
started to become quite popular.

00:04:45.124 --> 00:04:47.194
I think Django's a little bit newer.

00:04:47.194 --> 00:04:49.054
Django is a Python framework.

00:04:49.654 --> 00:04:52.944
And,  Laravel is a PHP framework.

00:04:53.564 --> 00:04:55.454
They each have their
own way of doing things.

00:04:55.454 --> 00:04:59.654
I wouldn't say that one is
particularly better than the other.

00:05:00.124 --> 00:05:03.844
They all provide very similar
functionality in the end.

00:05:04.344 --> 00:05:08.964
One of the considerations might be what
other things you want to do outside

00:05:08.964 --> 00:05:15.014
of the framework context that might be
easier to do in Python, Ruby, or PHP?

00:05:15.544 --> 00:05:19.804
Python, for example, is commonly
used for machine learning and AI.

00:05:20.134 --> 00:05:24.814
So if you're going to build a web
app that also relies on AI stuff.

00:05:25.234 --> 00:05:28.144
Then it might be practical to
use a framework like Django.

00:05:28.644 --> 00:05:32.154
Okay, next, I'm going to talk
about things that aren't exactly

00:05:32.154 --> 00:05:36.444
frameworks, but provide a lot of
the functionality of a framework.

00:05:37.014 --> 00:05:39.864
These are backends as a service.

00:05:40.314 --> 00:05:45.414
So when we think about frameworks like
rails, Django, and Laravel, they allow

00:05:45.414 --> 00:05:50.714
you to do a few different things, that
are quite common in app development, which

00:05:50.714 --> 00:05:53.534
is they help you manage authentication.

00:05:54.464 --> 00:05:57.074
Reading and writing data from a database.

00:05:57.974 --> 00:06:03.134
And creating the user
interface on top of that data.

00:06:03.634 --> 00:06:09.154
Now backends as a service, do
most of that without the UI.

00:06:09.214 --> 00:06:10.774
So they just give you.

00:06:11.684 --> 00:06:15.574
A way to interact with data
as an authenticated user.

00:06:16.204 --> 00:06:16.954
And that's it.

00:06:17.314 --> 00:06:22.144
So you usually need another
framework or another tool.

00:06:22.364 --> 00:06:25.544
To build your user interface
separately from them.

00:06:26.264 --> 00:06:29.054
So the backends that I am.

00:06:29.534 --> 00:06:33.614
Not necessarily super familiar
with, but at least somewhat

00:06:33.614 --> 00:06:39.584
familiar with our Supabase,
Pocketbase, AppWrite and Firebase.

00:06:40.154 --> 00:06:46.334
Now I have only used Supabase and
Firebase personally, and they're

00:06:46.334 --> 00:06:48.974
pretty similar products in many ways.

00:06:49.004 --> 00:06:54.944
The main difference is that Supabase is
open source and you can host it on your

00:06:54.944 --> 00:07:02.084
own machines whereas Firebase is a closed
source SaaS product offered by Google.

00:07:02.554 --> 00:07:05.824
So, if you're going to use the backend
as a service, you're going to need some

00:07:05.854 --> 00:07:08.134
separate way to build your front end.

00:07:08.464 --> 00:07:10.564
And that's where front
end frameworks come in.

00:07:11.064 --> 00:07:16.944
Some of the ones that I'm familiar
with are Angular, Next, and Expo.

00:07:17.604 --> 00:07:23.934
Expo is for building mobile apps, Angular
and Next are for building web apps.

00:07:24.264 --> 00:07:26.514
They give you a lot of
stuff out of the box.

00:07:26.624 --> 00:07:27.944
Primarily around.

00:07:28.664 --> 00:07:33.524
Routing, so figuring out which
URL go like we'll show which page.

00:07:33.614 --> 00:07:36.344
Uh, expo we'll do that
with mobile app screens.

00:07:36.994 --> 00:07:42.364
They'll do a lot of other stuff around
caching and data management and how

00:07:42.364 --> 00:07:47.944
you interact with your backend as
a service or your API or whatever.

00:07:48.654 --> 00:07:53.124
I think it's kind of up to you to
just choose one that feels right for

00:07:53.124 --> 00:07:57.714
you because in the end, most of them
can do pretty much the same thing.

00:07:58.214 --> 00:07:58.574
Okay.

00:07:58.604 --> 00:08:01.154
Finally, I am going to talk about.

00:08:01.514 --> 00:08:07.064
What we are calling a deep stack
framework and that's because it's

00:08:07.064 --> 00:08:09.224
our own product, the Chewy Stack.

00:08:09.614 --> 00:08:16.934
The thing that's different about the Chewy
Stack is that if you want to deploy a

00:08:16.964 --> 00:08:26.304
Django app or a Supabase app or an Next.js
app, those all need to be configured for

00:08:26.304 --> 00:08:28.284
the place that you're going to host them.

00:08:28.554 --> 00:08:32.664
So if you're going to host Django,
you'll need to make sure you know, how to

00:08:32.664 --> 00:08:39.834
deploy to AWS or DigitalOcean or Heroku
or Fly or any other solution out there.

00:08:40.114 --> 00:08:45.334
You'll have to do the same for
Supabase or with Next or Angular.

00:08:46.294 --> 00:08:50.614
Each of these things requires a
lot of work to sort of configure to

00:08:50.614 --> 00:08:54.904
make them play nice with different
parts of your digital product.

00:08:55.504 --> 00:08:57.424
The thing that we think is special.

00:08:57.454 --> 00:09:02.594
And the reason we build Chewy is it's,
kind of like a framework of frameworks.

00:09:02.834 --> 00:09:07.244
So it ties together backend
tooling to build, on top of your

00:09:07.244 --> 00:09:09.374
database and manage authentication.

00:09:09.704 --> 00:09:13.034
So we've got different components
for that, that are open source tools.

00:09:13.034 --> 00:09:14.254
One is called Hasura.

00:09:14.474 --> 00:09:16.064
The other one is called Ory.

00:09:16.514 --> 00:09:21.234
And, Uh, front end, built
on Next.js and Expo.

00:09:21.984 --> 00:09:27.204
But the secret sauce behind Chewy is
that we make it dead simple to connect

00:09:27.204 --> 00:09:31.944
all of those things and to get them up
and running in a developer's machine.

00:09:32.424 --> 00:09:36.444
And then more importantly, get
all of them up and running on

00:09:36.444 --> 00:09:38.184
different types of infrastructure.

00:09:38.184 --> 00:09:42.924
So you don't need to think about, well,
which sort of database should I provision?

00:09:42.924 --> 00:09:46.464
How do I make sure that the
database is properly networked?

00:09:46.464 --> 00:09:49.524
So it can connect to my API servers.

00:09:49.824 --> 00:09:55.254
And is my front end, actually going
to be able to connect to my API and

00:09:55.494 --> 00:09:59.094
how do I make Auth play nice with
all of those different components.

00:09:59.394 --> 00:10:01.284
We just take care of that for you.

00:10:01.314 --> 00:10:07.284
So you can say Chewy deploy to staging,
and we'll provision a staging environment

00:10:07.284 --> 00:10:12.624
for you or Chewy deploy to production,
and we'll deploy to production and manage

00:10:12.624 --> 00:10:15.024
those servers and configurations for you.

00:10:15.474 --> 00:10:20.694
So that's the promise that we are trying
to deliver on with the Chewy Stack.

00:10:20.964 --> 00:10:25.614
We want to make it easier for people
to build scalable complex products

00:10:25.764 --> 00:10:30.054
without having to put in a ton
of work, just to configure things

00:10:30.054 --> 00:10:31.824
and get servers up and running.

00:10:32.324 --> 00:10:32.804
Alrighty.

00:10:32.804 --> 00:10:35.294
Well, thanks for listening folks.

00:10:35.324 --> 00:10:37.454
If you enjoy this stuff.

00:10:37.764 --> 00:10:40.374
Please like subscribe on YouTube.

00:10:40.374 --> 00:10:43.794
Subscribe to the podcast in
your favorite podcast app.

00:10:44.294 --> 00:10:45.554
Leave us a review.

00:10:45.584 --> 00:10:49.244
We'd love to hear what you think and
we'd love to have you on the podcast.

00:10:49.244 --> 00:10:51.734
If you are interested in
talking about this stuff.

00:10:52.234 --> 00:10:55.864
Also make sure to sign up for
our newsletter, where we will be

00:10:55.864 --> 00:11:00.094
sending you tons of great info about
how to build small tech products.

00:11:00.454 --> 00:11:06.484
It's going to be videos, blog posts, any
podcast episodes you might have missed.

00:11:06.854 --> 00:11:08.474
And plenty of other stuff.

00:11:08.504 --> 00:11:14.474
So go to smalltechpodcast.com and
you'll see a little newsletter

00:11:14.474 --> 00:11:15.854
button at the top there.

00:11:16.154 --> 00:11:18.764
And, you can use that to subscribe.

00:11:19.044 --> 00:11:23.364
So that's it for this week's
episode, we all want to do some

00:11:23.364 --> 00:11:24.894
good in the world, out there folks.

00:11:24.924 --> 00:11:27.714
So go build something good.

00:11:28.074 --> 00:11:28.674
See ya.