Development frameworks
E9

Development frameworks

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
[email protected].

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.

Episode Video

Creators and Guests

Raphaël Titsworth-Morin
Host
Raphaël Titsworth-Morin
Trying to do good in the world with tech and design. I also take the occasional photograph. Co-founder of Éphémère Creative. He/him.