ImapEngine with Steve Bauman

Welcome back to the show.

Today we have with us Steve Bauman,

who created a brand new package.

It's called IMAP Engine,

which is deep into the

abyss of email, correct?

(laughs)

So tell us, if you don't mind,

just tell us a little

bit about IMAP Engine

and how this got

started, why you created it,

and sort of the backstory on it.

Yeah, yeah, so I have a

side project right now,

not product promoting,

but it's called SpamWise,

and it's an email-based service.

And so users can sign up

and they can attach

their email to my service,

and I need to process incoming emails,

and I had to do it through IMAP.

And so I did what kind of

any kind of PHP developer does

when they have to

access some kind of protocol

or something that

appears super complicated,

and they go, "I wonder if there's a

package for this," right?

And so I went searching,

and I went and found what I thought

was kind of the best at the time,

and I installed that, and over,

I started, after I

started working with that,

once you start working

with this kind of stuff,

you start noticing issues.

You're like, "Oh, I bet I could fix this

"or I could make this

better in some certain ways,"

and once you start getting a handle

of how it works and such.

And I started getting a lot of issues

with the package that it shows,

and I was kind of

just, I ended up forking it

and rebuilding it from scratch,

and that ended up just being a nightmare

because it was so

convoluted and complicated.

I'm like, "There's no way

that it's this complicated.

"It can't be true that it

has to be this complicated

"to work with this protocol.

"There's no way."

And so I was like, "You know what?

"I'm gonna dive into the RFC.

"I'm gonna read the whole RFC

"and see why this is so complicated."

Because I was also, because when I was

having these issues,

I was like, "Okay, maybe

there's another package

"that I could use."

I started looking around, I'm like,

"I'm looking in the

source of these packages."

I'm like, "Why does

this look so complicated?"

I'm like, "I'm having a hard time

understanding this."

And so, and yeah, so I

just dove into the RFC.

I'm like, "I'm gonna

just take what I know

"and try to just

build from the ground up,

"like connect with the stream,

"read the stream character by character

"and create a

tokenizer and create a parser

"and all this stuff."

And eventually I got

to a point, I'm like,

"Oh, okay, it's not

actually this difficult.

"I've just been reading

convoluted and difficult solutions

"and I could just make it simpler."

That's awesome.

Speaking of reading the

RFC, do you enjoy that?

Is that like a good hobby

that you have on the side?

That's like the driest read

you'll ever find in your life.

Yeah, no, I didn't like it at all.

It was so painful and it was

born out of the frustration.

I think a lot of other

developers make feels that,

you know, I'm like, "You

know what, I'm gonna do this

"and I'm gonna grind through it

"'cause I don't want

anyone, if I'm gonna do this,

"I don't want anyone to have to do,

"to read an RFC, this RFC again

"and I want to never have to have

"other developers experience this pain."

And so that was a motivation for it.

I'm like, "I'm gonna sit there,

"I'm gonna do this every night

"and I'm gonna finish it

and it's gonna be beautiful."

(laughing)

That's awesome.

Well, I guess that's what

relates me into, you know,

what was your sort of

the biggest challenges

while reading this?

Reading the RFC itself

or was there any code thing

that was like super hard or?

Yeah, definitely the

parser and the tokenizer

the trickiest thing for sure.

I use a lot of back and forth,

like rubber ducking with

chat GPT and various models

and stuff, just trying to figure out

how to properly parse some pieces

and what the proper

format was of some responses

and error codes and all that.

It's definitely, it

was tricky to nail down

and it took two weeks to kind of really,

two weeks every night just

kind of really wrestling with it,

nailing it, writing tests for it

and keep iterating and iterating on it.

And I'm not typically one to write

tokenizers and parsers.

Like I rarely ever do that,

that's super in the weeds, right?

Like talking and listening

to a stream back and forth

is super like low level, which is

something I don't do.

And that was definitely the hardest.

Gotcha.

I guess one of the

question that I see come,

that I've seen come up a lot

is how does this package differ

from like the native PHP IMAP function,

from back in the day?

I mean, that thing was probably created

in the early 90s, I'm guessing.

Yeah, yeah.

And I probably would

have leaned into using it

if the methods or the

extension was like available easily,

but right now the IMAP extension

doesn't get shipped with PHP by default.

So you can't just

toggle it on the INAML file.

And so you have to

actually like compile PHP with it,

which is its own process.

And it's all like complex and convoluted.

And the package that I

was using at the time

was just using a raw stream to do it.

And its feature was like,

oh, you don't have to

have the extension for it.

And I know the pain of

having to like install

the IMAP extension too,

because I tried that at the very

beginning of this product

that I was building.

And that was difficult.

And one of the other primary things

that the IMAP extension

doesn't have is called idle,

which is basically it opens

up a stream and keeps it open

and receives notifications

of when new emails come in.

And so it basically

allows you to just get alerted

or pinged as soon as emails arrive,

and you can immediately process them

or do something with them.

Versus if you're working with like POP3,

like in other email protocol,

you have to introduce polling.

So you're just

constantly like asking the inbox

if you have new

emails every 15, 20 minutes

or whatever interval.

And so that was something

that I had to have as well,

which isn't possible in

the PHP IMAP extension.

Understood.

Yeah, because I was trying to think,

because I used to do a lot of email

parsing back in the day

and we would basically

just had an old Chrome job.

It would just log in through IMAP,

check and see what's new, download it,

and then go about its life.

So with this idle thing,

you don't even have to

do that anymore, right?

It's more real time, I

guess is the right wording.

Yeah, exactly.

It's real time.

So you can basically just get to boot up

some kind of daemon in the background.

So you just register,

like I just use a Laravel command

that I registered as a daemon on Forge

and it just sits there open,

basically in its own loop

and its own stream loop.

And it just waits for new

messages from the server.

Sweet.

So, and then I assume

that's like super beneficial for,

you know, for, I guess

for like speed or, you know.

Yeah, yeah.

Basically there's just lots of benefits

to doing it this way versus

the sort of the old school way.

Yeah, yeah, absolutely.

Because especially in

the product that I built,

and it's imperative

that I act on the email

as fast as possible.

And if I was going to build it,

I had to get at the

emails as soon as they arrive,

if possible.

And if I wasn't going

to be able to get them

like as they came in,

then there's kind of no point.

Because if I'm

looking for spam or phishing

or whatever emails and the

user can interact with it

before I actually scan it,

then the product's kind of defunct.

I can't really,

I'm kind of not helping them much there.

So, yeah.

Yeah.

So how about, let me go get my note here.

This, I think we touched on this,

but we'll just clarify,

does it support parsing

and handling, you know,

sort of the different character encodings

or non-UTF8 emails or all the other mess

that you might get out of a email inbox?

Yeah, luckily that's

handled by the package

we're talking about

Z-Bates and Mail, Mine parser.

Mine Mail parser, it's

whatever combination is.

But yeah, luckily,

because that package

saved me months of work

and huge kiddos to him to

build some solid package

and out of the code there

to make sure I was like,

if I'm going to install this,

I can't just have this

package wrap some other library

that I don't think is well built.

I really want it to be

like a complete solution

that feels good and is also,

if any packages that I was

going to have to be reliant on

that those also be well built.

And so I think he did a

great job on that, luckily.

Yeah, that's sweet.

Yeah, that's, we were talking about it

kind of before we started the

show and that was a package.

I was, had some familiarity with

because it takes a lot of

the headaches out of parsing.

Like, you know, what you, like,

I don't know if you've

never parsed the emails before,

you will get into the

most random bugs and issues

and just weird stuff that

you've ever seen in your life.

Yeah, oh my gosh.

Yeah, holy moly.

I was so surprised at how complicated

and deep in the weeds you

have to get for email parsing.

Email parsing is so complicated.

I was like, I hope someone wrote

something well for this.

Yeah, yeah.

And then everybody's

like, well, you know,

there's this SaaS app you can just

install and use there.

So I was like, well, I can't use that

when we do self, you know, self installs,

all this other stuff, but yeah.

So then it was just, you know,

parsing it yourself is not fun.

Yeah, yeah.

And I think we need these solutions.

If like, I feel like it's really common

in the JavaScript land that

you just kind of outsource

these core functionalities in your auth

and your queues and your

email service and all this stuff.

You outsource all these huge components

that I feel like we should

be able to have ourselves

and PHP without having

to sign up for the service

and pay them to do it, you know.

And they've offered so

much of that, you know,

so much of that for free

that you can just host locally,

like on your machine

or on your own server.

Yeah, for sure.

I think that's one of

the benefits, you know,

to a true full stack or a

full framework, you know,

it handles all this stuff

and you technically don't have to go

reach for third parties

unless you just have some

obscure use case or something.

But that does bring me,

speaking of third party stuff,

if didn't like Google and

Microsoft and all those guys

or Habs, didn't they try to

prevent you from using IMAP

and wanting you to go

directly to API calls now

or am I mistaken on my memory there?

No, you're partially correct for sure.

So you can actually

connect to IMAP through like to,

you can use IMAP to connect

to Google and Microsoft inboxes

if you use either

OAuth or a app password.

App passwords is easier, but

you kind of have to go deep

in your weeds, deep in

the weeds of the account

to generate an app password.

And usually they won't even advertise it,

they do, you have to grab

like a link from somewhere

to navigate directly

into your account to do it.

Google, for example, doesn't even display

that they have the functionality,

you have to actually navigate directly

to like an account manage

link with app passwords on it

and generate them there.

So really deep in the weeds,

but getting access to connect over IMAP

with Google in

particular is extremely difficult.

I had to do it, I had to go

through CASA2 verification

because if you connect through IMAP,

you ultimately have

full access to the mailbox,

you can move emails

around, you can delete them,

basically full spread, right?

You can do whatever you want.

And they consider that as like a

dangerous level of scope.

And so because they see it that way,

you have to go through their intense

security verification.

And it took me four

months of just back and forth,

back and forth, getting

like trying to figure out

what they wanted next to

make sure I was compliant.

You also have to go

through a third party,

which does some pen

testing on your live application,

just to make sure that

there's no obvious like polls

and all that stuff,

which made it very painful,

very painful.

And now they even, they made

the process even more difficult

because they stopped

offering it for free.

So you have to pay 600 US dollars a year

to keep your CASA2 verification

just for the privilege of OAuth thing

and connecting through IMAP.

So now I basically, but

luckily there's a workaround to OAuth

and it's for Google and it's just

generating an app password

and you bypass all of that.

So that's basically what

I've had to instruct users

to do on my platform is

connect over app password.

Yeah, yeah, that makes sense.

I seem to remember like

a couple of years ago,

we were using app

passwords and then they were like,

we're shutting that down and like you

have to move to OAuth

or move to something

else by a certain day.

And it was the same way,

it was like you had to

go through all the stuff

and it was just the pain.

But speaking of your product,

I know you mentioned

it's called Spamwise.

So just tell me about

that, like how does that work?

Yeah, so Spamwise isn't, it's Spamwise.ai

and it's an AI based app.

And it kind of came

from me getting phish.

I got phished once by a

perfectly targeted email,

a delivery notification email.

I was expecting a delivery

from a company about a year later

and I got an email like

the next day saying that,

they tried to deliver and

to attempt to re-delivery,

we're gonna have to charge you fee.

And I've had to pay

this kind of fee before

and so I go through and I

enter in all my information,

my credit card and they had

the whole peer later website

all mocked out and stuff.

And so luckily I thought that was weird

as soon as I went through the payment.

I'm like, that was kind of weird.

I should probably check if,

this is on my smartphone at the time.

I was doing this all to my phone.

And I was like, that was kind of weird.

Maybe I should check

to see, like make sure,

go back to the link and

double check the domain name.

And of course it was

some weird domain name.

I'm like, oh my gosh, why did this email,

this obviously not peer

later email land in my inbox?

Like why did Microsoft,

because I use Outlook.

And I was like, why, this is such an

obvious phishing email

because the address wasn't

even a peer later address,

but at the time they didn't

show the address in there.

So anyway, once they were short,

that was, I was so

upset that I got phished

that I'm like, I'm gonna make sure

that this never happens to me again.

And anyone else who may

have also happened to.

And so I built the

product that I tested first.

I was like, I wonder

if I could use Chagibiti

to determine if an email

is like phishing or not.

And I was like, oh my

gosh, this is so accurate.

It's so, so accurate.

It's like 95 to 99% accurate.

It's highly accurate in figuring out

just IO3 header

checks or by like contents

or by the links and

having like AI context

to determine if something

is spanned is super accurate.

And so the issue is gone for me.

Like I don't have that

anymore because of the product.

And that's why I built it.

And I'm really glad that.

It works.

Yeah, that's like, yeah.

Those are the best product ever is like,

I had this problem and

I'm just gonna fix it.

And if people wanna buy it, good.

But it's gonna solve all my problems.

Those always seem to

be really good products.

You mentioned Forge.

I know it started off the same way.

Taylor's like, this is annoying.

Let's build something.

And then it took off

and now it's successful.

But yeah, that's a perfect use case.

Scratch your own itch kind of stuff.

Absolutely.

It is wild though.

I use Gmail, like Google apps

for your domain or whatever.

And there'll still be

occasional like PayPal ones

that come in and I'm like, this is shady.

Like none of this makes sense.

I'm like, I don't even

know why it's in my inbox.

And it's like, it's even

like to the wrong person.

But for some reason,

I don't even know how.

I need to go back and

look through all the headers.

But I end up just deleting them always.

I'm like, oh no, not touching that.

But yeah, it's crazy.

Yeah, it's frustrating.

So as far as like the IMAP stuff,

at its core, since you're

sort of using another package

for the parsing and stuff like that.

So the IMAP side of

it is you're just like

logging into the mailbox, just checking,

I guess folders that you've

sent in your search string.

And then just grabbing

new emails that come out.

Is that sort of, am I

thinking of IMAP the right way

as far as how in works technology was?

Yeah, it's like a mailbox management API.

So you can get all your mailbox folders.

You can get all your

messages in your folders.

You can execute

queries, like they support

like their own query syntax.

So you can look for messages before or

after a certain date

that are not seen or flagged

or that are within certain folders.

And you can move them

around, delete them,

flag them, unflag them and

kind of do whole management

across, oh, you can also

create draft emails as well

through IMAP and then like later pick

those up through SMTP

and throw those, like send those away.

So basically it's just

like a complete solution

to managing your mailbox.

I like that.

And as far as like, I know

since you're running SpamWise

and you've created this,

is the majority of people

sticking with like Google and Outlook

or Gmail and Outlook or is,

or there are still quite

a few people still running

their own mail

servers and stuff like that?

Oh yeah, it's a good question.

I've actually seen, it's pretty split.

I've seen, like I don't have many users.

I think I have probably like 12

subscribers right now.

It's very, very small still.

I think I have a half

our Outlook and Gmail

and half our like custom,

custom my mount servers for sure.

That's interesting.

I didn't think anybody

would still be running

their own mail servers.

For sure, yeah.

I was definitely, I'm

definitely surprised there.

Yeah, yeah, me too.

Yeah, I'm surprised.

I can't imagine running that.

Cause that would be,

that would certainly be

an uphill painful battle

to run your own mail server

and keep the

reputation alive to make sure

they're at all deliverable.

Yeah, yeah.

And I assume like you need to,

I didn't even look at

that on the read me.

You gotta make sure, you know,

if they're using IMAP engine package,

then they should be using spam wise

because what better way to make sure

you're not pulling in

spam than to run spam wise

along with IMAP engine.

Yeah, that's right.

Gotta cross market this stuff, you know?

Yeah, yeah.

I'm always careful about kind of like

cheapening the message a bit though.

I always, like I don't,

and it is also like a

scratch manage thing.

Like it's so nice to not

care if it's successful or not.

I'm like, I don't

care if it's successful.

I'm gonna run it and

maintain it regardless

of anyone who uses it

because I'm gonna use it

every single day and it doesn't matter.

And that's, I think

also very freeing, right?

You don't, you have to be like,

I don't have my

livelihood riding on this app.

And also it gives confidence.

I would think to the users that,

okay, this guy's gonna be running it

whether or not it's successful.

So it doesn't matter.

Like it'll always be online essentially.

Right.

What are some other apps like the,

as far as like the IMAP engine,

like how do you see it being used or,

I know it's pretty new,

so you might not have a

lot of data behind all this,

but I guess kind of anything

that you're building PHP with email,

you might need this.

Is that sort of what you've been seeing

or is it like more specific use cases?

Yeah, I would think a lot.

I would think of used

a lot in intranet apps.

I came from, like my

career was kind of born

in the enterprise world,

building intranet apps for the federal

government of Canada.

I was a young kid just

building in siloed servers,

not having access to the internet,

but we had all of our

infrastructure internally.

And so I was using PHP at the time

to kind of talk to all of

our internal services and stuff

without access to the internet.

And so I think it would be,

I think IMAP engine would be

probably particularly useful

in those circumstances where you do have

maybe some in-house email servers

or you are kind of

processing incoming emails

to act upon them for something,

maybe like an IT help desk or something.

And those kinds of apps, yeah.

Yeah, that makes sense.

Yeah, in my past

history, we had a help desk app

and it was the same way

we'd had a bunch of customers

that would just run

it completely offline.

But then I can't remember

how they would get around that,

but they would check emails somehow

and then it would,

but basically you

could run it all offline

or all behind a firewall or something.

So that makes perfect sense there.

And not to sort of, well,

I guess we should close out with this.

Did we miss anything that you

wanna talk about on the IMAP?

Not really.

I think it-

Cause I was gonna say,

cause I would like to talk

about your other package.

You've got one called

LDAP record, is that right?

Yeah, yeah.

Yeah, yeah.

It was born out of the

same kind of frustration,

I think, as IMAP engine.

And for those not familiar with LDAP,

that is directory

access for finding users

or something like that.

I'm thinking about it right there.

Yeah, it's lightweight

directory access protocol.

And it's again, another

intranet focused protocol,

like Microsoft Active Directory,

which is basically a directory of users.

Like if you are working in an enterprise

and you have a user account,

that's where it's gonna be stored.

And so again, since I was building everything internally

in a Microsoft based environment,

we had everything connected

to Microsoft Active Directory,

which uses LDAP.

And so we had like our

printers connected to it.

We had all the computers, all the

devices, all the phones,

like mail servers,

everything is connected

to this Microsoft Active Directory

to manage all the user accounts,

all the permissions, who

accesses what and everything.

And so that's where

that was born from, yeah.

You're just deep into the woods of,

stuff that most people,

I guess most new

developers probably haven't touched

any of these technologies, have they?

But the, which I'm trying to think of,

where I was going with this.

So the LDAP record or LDAP directory

isn't tied to email,

but it can, you can use it

as far as like pulling emails.

Am I thinking, can't they kind of go

together at some point?

Yeah, absolutely.

You can use it to like authenticate,

like using those

credentials to authenticate IMO,

for example.

Yeah, like that's where

the username and password

could be stored for the

mailbox in IMO, for example,

that like Microsoft Exchange server

could be connected to.

Yeah, and it is really deep in the weeds.

It was something that,

that when I again was

interacting with this protocol,

I was like, there's

gotta be something out there

and the solution's

out there that I tried.

Again, I forked another package

and I was like, why is this so difficult?

It can't be this difficult.

I'm like, there's gotta be a reason why

it's this difficult.

And so I started like

playing with it and I rebuilt

that package, but I had to

eventually throw it all out.

And I started something from scratch

and I've been maintaining it

for probably the last three,

three, four years now.

It's matured quite a lot

and it has actually like

a quite significant amount of downloads.

And I think there is an

untapped market in PHP

in the enterprise, in the

intranet enterprise market

where there's an unseen

amount of people building

their full apps internally

that don't actually do

anything on the outside.

I mean, that's what I

was doing for years.

I wasn't building anything public-facing.

I had maybe, I was lucky

to have maybe 10, 20 users

of the enterprise kind of using my app.

And I felt super

proud of that at the time.

That was a kind of a guess.

I got like 10 people

using this, this is sweet.

That's awesome.

But yeah, it was a really fun experience

and it comes with

trade-offs and benefits,

but it was a lot of fun.

On a personal level, like how,

since you're so big into

like the Microsoft world,

what made you go with PHP

versus like ASP or ASP.net

or whatever is over there now?

That was, when I

started it was PHP or ASP.

Those were your two things or ColdFusion.

So I'm just curious

like why PHP and not ASP

since you're so big

into the Microsoft world?

Yeah, that's actually

a really good question.

When I went to community college,

I was taught C-sharp and PHP

and PHP at the time

just seemed a lot easier

and it was kind of easier

because it wasn't

C-sharp is very strictly typed

and you have to compile everything.

And it was a slow moving process.

I think at the time I

was, I gravitated to PHP

because I could just change

something and refresh the page

and it something happened.

Because every time I

did jump into C-sharp,

change something, click

the compile button and play

and then it rebuilds

and then you're able

to access the new code.

And it was such a hard

process, a hard learning process,

especially back then

we didn't have any AI

to tell you what you're doing wrong

and what you're helping.

It was like, I would spend hours

trying to get something to compile.

And so when I didn't have to

deal with that in PHP land,

it was such a

significant productivity boost

where you just keep like

change something, refresh,

change something, refresh,

change something, refresh,

it just kind of spiraled from there.

And I'm like, okay,

there's definitely something.

I think I can get something going here.

All right, that's cool.

Yeah, my history.

So when I started, it was,

I used front page and then--

What's that built on?

Microsoft, Microsoft front

page from back in the day.

Oh, right, right, right.

And you didn't use,

basically it was just a WYSIWYG

and you would publish the web.

And I was like, well, I

wanted to build this little app.

And it was, at the time I was like,

I don't know any language.

And, but the internet was like,

you either do ASP or PHP.

So I started doing ASP

because I was already

on a Windows machine.

I was like, oh, this will be good.

But then I started looking at hosting

and like the ASP

hosting was like $20 a month.

And I was like, well, that's dumb.

I'm just gonna PHP.

(laughing)

That's how I found PHP and never left.

Jesus is kind of like an economic

decision at the time.

Yes, it seemed to work out in the end.

But--

How was your learning

curve with PHP then?

How did you make that migration?

So I was actually working

at a motorcycle dealership

in sales and I was like,

we need a way to show our

inventory on the internet.

And that sort of got me, so I

just wanted to build an app.

I had no programming experience at all.

And so back then you

would just go visit forums,

ask questions, read

questions, try to help out.

And that's how I kind

of sort of picked up PHP

and figured it all out.

So this was way back.

This was before CSS was around.

It was everything was tables, spacer

gifs, stuff like that.

So it was way back.

When did you personally

discover like Laravel?

So for me, I went from just straight PHP

and then moved into found code igniter

and I was like, oh, this is really good.

And then as soon as I found Laravel,

which was like version, I don't know,

it was super early and Laravel,

because Laravel went from

like version one to three

within a matter of six months probably.

So it was somewhere in that range is

where I found Laravel

and I just never left.

I was like, this is great.

I love it.

I like the way Taylor,

his ideas going forward.

So I just kind of stuck with

it and the rest is history.

So I guess that was

what, 13 years ago, 12?

I don't know, it feels longer,

but it could be shorter though too.

Were you in the version three round then

when you started

building with it or at four?

Oh yeah.

No, I was in the round

when it didn't have anything

but just the really simple route.

Like, I forgot what,

anyway, it was like sort of right

after the first

announcement of where Laravel came out.

It like didn't have models or controllers

or anything back then.

Oh, it was very verbal, okay.

Yeah, so it was really early

and really, really,

really a long time ago.

But yeah, it's a,

yeah, back then it was IRC.

We all just chatted on our IRC.

So old, yeah.

Back in the good old days.

Yeah, yeah, no kidding.

Well, to go back to

what you're working on,

any other projects and stuff

that you've been working on

recently or you have launched?

Yeah, well, I'm

actually working on a product

that I didn't think that

I would ever really think

I'd be able to build is I'm

working on my own email client,

actually, so my own desktop email client.

And maybe I can ship it

on a phone at some point

because I've been an

Outlook user for my whole life.

Not really by choice,

it's just kind of landed.

And Outlook just when I was a kid

and I just have used it

for my whole life and stuff.

But I've been kind of

getting a little bit upset

with the recent changes with Outlook.

And so I'm like, I wonder

now that I've built my own

engine for connecting to IMAP,

I wonder if I could

build my own email client

that I would love to use.

And maybe others would love to use.

That is just super

simple, it's just emails

and no AI nonsense, no trash all over.

Because I think all these email clients,

the same with Gmail

and they become so heavy

and convoluted with features

that you don't want or need.

It's like, I just want

my inbox, my folders,

and my email with a basic

like markdown editor if possible.

And that's it, like I don't need anything

else other than that.

So I'm wanting to,

I'm right now building,

using native PHP

actually, Simon's native PHP,

I'm building on top of.

So I'm gonna see if I can make it happen.

I was gonna, that was

actually gonna be my next question,

is what you're building it on.

So native PHP seems like a

perfect pairing for that.

Yeah.

And yeah, it's funny, like every year,

I guess email clients are

sort of like to-do apps.

Like every year I go

searching for a new email app

and nothing is like perfect.

It's like, surely

something out there is perfect,

but it's like, I've yet to find it yet.

So I think there's

always a market for email apps

and to-do apps.

Yeah, yeah, like there's

always something wrong about it

or the company you download it from

is pushing one kind

of service or another,

or they want you to pay a

subscription or something.

And it's like, can I

just get like an email app

that just does email and that's it?

Like just super bare

bones and a clean interface,

that's all I need and that's all I want.

And all these companies

are just trying to add

all these services on

and especially AI, right?

Like the AI craze,

everyone is trying to

get them at AI craze

to slap services in your email.

And I don't want any of that.

I want like the spam

protection service that I'm using.

Like I want just the emails filtered out

that I shouldn't see,

but when it comes to actually like

looking at my email,

interacting with my email,

sending emails, replying,

I want that to be a really

clean and bare bones experience

where there's no nonsense, you know?

Yes, speaking of AI, the best use case,

I think I've seen in an

email is it's through the search

and you can be like, you know,

what meetings do I have tomorrow?

And it'll go through all

your emails and be like,

these are, you know, these are things

that might be coming up due

tomorrow, things like that,

which is kind of neat,

especially when you have it like talk to

somebody in a while.

It's like, when's the last

time I talked to, you know,

John, and it'll just pop up and be like,

here's all the John's

you've talked to recently.

Things like that I

found kind of interesting.

Interesting, Abhiu, is

there an email client right now

or email service that does that for you?

Yeah, it's, speaking of

subscriptions, it's superhuman,

but it does all that

with its AI integration,

but it does a lot more to that.

That's really the only use case

that I've actually enjoyed for the AI.

The rest of it's just like more

annoyance, you know,

where it tries to rewrite your, you know,

it tries to be like a Grammarly

and like rewrite how you're

writing and stuff like that.

Exactly.

And I hate all that.

Oh my gosh, yeah.

Just let me write in my natural tone.

Yeah, and you know,

that's so funny you say that

because the whole

issue I have with Outlook

and why I'm building

this email client now

is because Outlook

recently introduced CoPilot

in their writing experience.

And so as you type, it shows what they

think you want to say

after you're typing. Oh yeah, yes.

Kind of like in an editor in a way,

but in editor it helps more.

It's like I don't need

help to write an email,

like stop it and I can't disable it.

And so now I'm

building my own email client

so that no one can mess

with my email experience.

That's great.

That's the new age of clipping, right?

You know. Yeah, yeah.

Please stop.

Please let me know.

That's wild though, yeah.

That's probably my

biggest annoyance with AI

is the things like that.

I know Google, like

Gmail wants to do that too.

I don't know if you,

well, since you use Outlook,

you probably don't use Gmail.

But as you write in the Gmail interface,

it tries to

auto-complete and do all this stuff.

And it's the same way, it just,

to me that gets on my nerves.

And the other one that gets on my nerves

is actually Grammarly, you know,

because I write a lot of

articles for liberal news,

so I use Grammarly to try

to help me fix the spelling

mistakes and commas

and all that other stuff.

But now it's like, well,

you should just

rewrite this whole sentence.

And then they like, it loses context.

It's like, it just don't

even sound like something

I would write in the first place.

And that part's very

annoying with the AI.

Yeah, yeah, 100%.

And I think I've gotten to the point.

There's a lot of AI tools right now

that really are trying to

not get you to write things,

even though they should be,

like things that should

be personal and authentic.

And I think email and text messages

and posts on social media,

these are really like

services that you should be posting

things that are authentic

and stuff that you would write.

And these services are trying to get,

like trying to shovel or

pigeonhole themselves in

and be like, no, it's okay.

Like we'll thank for

you, we'll write for you.

And say, I don't want that.

I'm like, I'm okay with like

code kind of being pushed in

and I can touch it up and

change it and everything.

But when it comes to

those personal services

that require authenticity,

I'd rather be okay

with making the mistake

of like grammar mistakes and stuff

and showing that

nowadays, especially nowadays,

because all the AI slop that we're seeing

and Twitter and Facebook

and all these posts, right?

Everyone's using AI to write stuff.

Yeah, yeah, that's very true.

It's almost like

mistakes are now more authentic

and it makes you

feel, makes it more human

than perfect writing.

Exactly, which is such a

weird circle of events.

Yeah, well, even the kids,

like I've got two kids in high school now

and when they do their reports,

if they don't make any mistakes

then the teachers

thinks they're cheating.

So it's like, there's this whole like

weird dynamic going on

where they can't trust anything anymore

unless there's mistakes in it.

It's like, what?

Gosh, I wonder what the experience

of elementary school and

high school would be right now

with AI, that'd be interesting.

And your kids are loving it.

Yeah, I remember now

this probably ages me.

So I took typewriting in high school

and the guy that sat beside me,

of course we were on like,

you know, 1992 Windows machines

but he taught me how to copy and paste.

And I was like,

cause you know, you'd

have to write the same line

like four times and that was like,

oh, this is the future,

this is the best thing ever.

And now it's just like

AI can just do everything.

Oh my gosh, that's crazy.

You have such a nice frame

of reference though, right?

But it's so

interesting because, you know,

you would think that you

would show anyone, you know,

from that distance of time,

if you transported them to now,

their mind would be absolutely shattered.

They're like, how is this possible?

This is like a machine God

we're speaking with right now.

But because it's been

such a gradual increase

of intelligence, we're kind

of warmed into it, you know,

gradually warmed into it.

And so it's not as

shocking as it should be

but it is actually so

shocking to where we are right now.

The intelligence is actually wild.

Yeah, well, that sort of reminds me too.

I know we're getting so

kind of off the subject

but when I first

started, I really struggled

on like comprehending

you had a web server,

you had a database server,

and then you had the browser

and how those all pieces fit together.

Cause like I could not

comprehend this database thing

and how we connect to it

and talk to it and all this.

And then all of a

sudden one day it clicked

and it's like, well, I was

sort of an idiot back then,

you know, but now it's

just like common knowledge

that everybody knows.

It's like, oh yeah, it's basics.

But we didn't have video

tutorials back then either.

You know, it was just

what you could find.

Yeah, I mean, yeah, that was so new.

I mean, MVC, the MVC

pattern was super, super new

at that time for sure.

And figuring out how to do that properly

and make it feel

right was very difficult.

You know, cause when I, I'm

sure you remember this one

when PHP first got

around, everyone was kind of,

you'd have a form and

you'd inject PHP tags

at the top of a form to

like handle the form submission

in its own page.

And that would also like

execute like a SQL query

to the backend database and stuff.

And it was so ugly and it was weird.

And everyone was trying to

figure out how does this work?

How do we make this work?

Yeah, well, I remember like

PHP didn't even have classes,

you know, back, I want to

say PHP four days or, you know.

Yeah, that's right.

It was only functions.

You could only write functions.

It's crazy just how far

we've came in the last 20 years,

you know, I guess 24 years,

cause this would have been

early night or late nineties,

early 2000s when I was around.

But yeah, it's just, that part's crazy.

Just thinking about it.

Yeah, not having

classes, that would be wild.

I've never had PHP

without that functionality.

So you were there for the glory days.

I mean, I'm thinking they didn't,

I mean, nobody used them.

I think you're right, yeah.

If they did have classes,

I don't remember ever seeing a class

until like PHP five,

but I could be totally, totally

misremembering this stuff.

You know, I am getting old now.

I'm quite forgetful.

But I don't want to do

this all day, you know,

I don't want to keep you

from family life and other life,

but anything else to work on that we miss

that you want to bring

up or people to check out?

Well, I wouldn't like

to check out iMap Engine.

Just take a look and

if they're interested

in viewing how it works,

or if they're thinking about

building a project with it,

it'd be nice to give it a

start if you're interested

and take a look and all

the other open source work

that I have.

I think they might find

things that are useful

they could build with.

And I really tried really hard.

I tried really hard in

all my open source stuff

to make sure that the

developer experiences

is top tier to what my own standards.

I love that.

I love that.

Well, I want to say thank you

again for coming on the show

and talking about all

this very nerdy email stuff

and active record and all the fun things.

I can talk about it for days.

I'm so invested.

Ask me anything about the RFC

and I'll tell you.

(laughing) That's great.

Oh, that's fun.

Well, Steve, I want to

thank you again for coming on

and everybody I'll have all the links

that we talked about in the show notes

and we'll have a post on Laravel News

dedicated to all this and everything.

So thanks for tuning

in and until next time.

Thank you so much.

ImapEngine with Steve Bauman
Broadcast by