Read the transcript
Jeroen Leenarts: Hi, welcome to
another special edition of my
podcast. I'm sitting here with
Alexandre Flexport. That's a
Dutch name, you might have been
able to tell that by the way
that I could pronounce it
because try it. And you might
have a hard time because there
are some typical Dutch vowels in
there. Alexandre has been
working on agenda.com, which is
a notetaking app that has a
twist in the sense that it
attaches your notes to your
calendar. So probably going to
dive into that he's been working
on that with through McCormack,
and several designers on the
needs of a needs basis. So
that's Marcelo and Joe, but
mostly it's you, Andrew working
on this product. But just to get
started, Alexandre, how long has
agenda been available?
Alexander Griekspoor: Hi, yeah.
Since 2018. Yeah, that's amazing
of Time flies.
Jeroen Leenarts: But that's
probably not the first time that
you wrote some code for this
product. Right?
Alexander Griekspoor: For
agenda. Yeah, well, agenda
started two years earlier, we
had a bit of a bumpy start. You
know, it's a long story about
that. Maybe we get into that.
But before that I was already
making apps for Mac. Yeah, for
science, basically.
Jeroen Leenarts: So immediately,
you dive into some of the
history because I know, by
chance, maybe that you've been
doing something with software
development since at least 2001.
At least, then you graduated
from your education, which was
not it related. But you've been
tinkering with computers a lot
longer. I believe you. Just
before we started recording, you
said, since you were 15. So
that's, that's a couple of
decades already that you've been
doing something with computers?
Alexander Griekspoor: Yeah, you
make me feel old? Well, we
Jeroen Leenarts: only have a
difference of like, two years, I
think. So let's let's just keep
it at that. Right? Well aged. So
But why did you get started with
computers in the first place
when you were a kid, because as
a 15 year old, there's a whole
bunch of things that you can do
a lot of stupid things you can
do, but then bought something
with computers, as has been a
very useful thing to do.
Alexander Griekspoor: Yeah,
well, I guess with this answer,
I'm gonna reveal the, you know,
people can do the math, but, you
know, that's 30 years ago. So
things are completely different.
I mean, I have three small
children. They basically the
moment they, you know, open
their eyes, people are babies
nowadays, you know, they get an
iPad. And for us, it was very
different. I didn't have TV
until seven, you know, my dad
brought home a Mac a classic Mac
when I was 14. And that's when
it started. And so So, you know,
mobile phone, not before 23. So
it's a completely different
time. And, yeah, so my dad
brought back that that Mac from
from work, he wasn't too much
into it. And he asked me to help
basically, and I and that's how
I got hooked to the Mac right
from the start. Many of my
friends have, you know,
Commodore 460 fours and these
kinds of things, but I just from
the get go, I was a Mac person,
which also meant no programming
windows, you know, yet with
Windows and clicking a mouse and
everything. So even the
programming that wasn't really
my thing. Status hobby, but that
got me a side job where I got
more and more into it. And
ultimately, I discovered the
multimedia side of the Mac. So
making videos and making images
Photoshop 1.0. And, you know,
that's, that's where I got in, I
fell in love with it until 2001
where it became for people like
me accessible to program because
I was 10 came out and with that,
you know, the project builder at
the time interface builder and
the tools from Apple and so
finally, I managed to jump that
hurdle and and get into
programming
Jeroen Leenarts: and getting
into programming. You mentioned
you did that. Not at an early
age so in 2001 So you probably
were like 21 years old. Yeah,
yeah. So why did you
Alexander Griekspoor: What is
what something is something I
always wanted I mean, I had done
multimedia project. So a little
bit of scripting language
scripting tools came with that
and you know, to to make your
dynamic and interactive
slideshows and stuff I had done
this but for me the jump to
especially then you know,
building things in I think C++
was a language that your Pascal
Pascal that you that you had to
know to make Mac apps was just
way too big and I couldn't make
that mental jump. And in
addition, the tools were just
inaccessible, you know, you had
to buy Metro works for, you
know, $1,000 or something. So it
was just a way to pick a risk
and to different And then when
Apple, you know, brought
basically tools for free, they
made the tools for free. And in
a much more accessible language
than it was still a big jump
because I started out with Apple
script studio. World Fair all
things. But yeah,
Jeroen Leenarts: what you
mentioned there the much more
accessible language and trying
tell any regular swift developer
nowadays that Objective C is an
accessible language.
Alexander Griekspoor: Yeah,
that's That's true. I still like
it, actually. I mean, I still, I
still liked it a lot at the
time, because it was definitely
a lot more readable than
anything. See, Oh, yeah. Read
answer. Yeah. So that was, yeah.
And in fact, there's a funny
story because I, I bought
basically the Getting Started
with Coco book at the time, and
I forgot that's it. But now I
can actually, you know, that
this looks a lot more
accessible. And then it started,
you know, talking about arrays
in like base three. And it's
like, I don't get any of this,
what's this thing with a star
and, and so I Okay, I have to go
a little bit more back to a
little bit more basic. So I
bought a book on C itself, like
a C Bible. I read until chapter
seven, where they again, started
talking about the pointer
arithmetic and all the stuff
that you had to do with arrays
and buffers, and was like, well,
maybe I can now understand this
whole NSRA thing. And so I
stopped reading the Bible. And
went back to the, to the cocoa
guide, and that was exactly the
jump that we're at just enough
info to understand it and grow
from there. Yeah.
Jeroen Leenarts: Yeah, we're
really talking about Objective
C. Before all the nice syntactic
sugar that we have nowadays
before aarC, automatic reference
counting, you had your own
memory management with, with
what Alec and release? I think
it's been exactly. Release?
Yeah. And then sometimes you
want to drain your auto release
pool manually, because otherwise
you would run out of memory. And
so yeah, algorithmic situations.
Alexander Griekspoor: A lot of
times, yeah, a lot of a
Jeroen Leenarts: lot of hassle
to just get some simple things
done, right. Yeah,
comparatively, the iOS apps and
Mac apps back in that day, they
were a lot simpler compared to
what they are now, right?
Alexander Griekspoor: Are you
hearing my silence, I'm doubting
I don't personally see a lot of
difference to be honest. And in
fact, you know, the nicest thing
and you know, this is kind of
maybe a pet peeve of mine. But
everything that we got back then
was built in a way, you know,
the whole next, basically, the
call Coco set up, was built in a
way where it was really generic
Lego bricks. So you could build
everything. That's how I felt I
felt empowered, I felt I felt
super excited, I could build
everything, because you could
override things and subclass
things, if you wanted to do it
differently. It was real fought
out in a way where it was
generic building blocks, which
is sometimes a bit harder to get
started. But you can then build
everything and control
everything. And it felt
fantastic. You could build
everything nowadays. It's true,
it's more complex, more devices,
more things. But I feel that
Apple is building stuff in in a
way that you also see actually,
with Lego itself happen as well,
where you get more and more of
those kinds of one use parts is
like you buy a project or a box
of Lego. And more and more you
have, you know, 234 of those
kinds of parts that are specific
for that box. And, and it means
that you can't do much more than
that, then then just use them in
that project. And and, and I
feel that that's where things
have moved a lot. So you got a
lot more stuff you can do. But
in a way, you have way less
control. So and it's not built
generically anymore. It's built
basically, Apple needs this.
That's what they built for their
apps, then they let it mature
once, you know, the next WWDC,
we get it as developers, but it
does exactly what Apple does.
And, you know, and if I didn't
say, but I would like to do like
that. It's like, yeah, sorry,
that API. We haven't got any.
It's not fought out in a way
where it's built for generic
purpose reuse. And that's and
that's the thing that one of the
things that I find the big PD
nowadays, actually,
Jeroen Leenarts: could you say
that a lot of complexity has
shifted from, like coming up
with your own things based on
more basic building blocks to an
API that has a much more broader
API surface. So that's as
there's so much API you get to
deal with and every specific
thing that you can do on a Mac
or on an iOS app, is something
that you have to call a specific
API for I'm thinking about all
the extensions that you can deal
with nowadays. Everything is an
extension it seems Yeah.
Alexander Griekspoor: Yeah. And
it actually goes me Uh, yeah, I
mean, we talked a lot about my
80s podcast, and I'm gonna sound
like a grumpy old man. It's
horrible. But, you know, even
with API design, I see this
happening and you know, like
swift to go back to Swift. I
love the link, I absolutely love
the language, I feel it's going
way too broad. There are
services like combine are the
things that I simply haven't
touched, because my, I just feel
more and more than my mental
capacity is not able to craft
the whole thing. I just feels
heavy to me. I mean, every time
is something new is in, for
instance. You know, I think the
one of the biggest mistakes made
with Swift, two, so to speak, is
the addition of function
builders. It's terrible. Because
take Dow added as a shortcut
support, so app intense, and
every framework of Apple now
starts to build their own
effectively domain specific
language, which is terrible,
because it means that if I, if I
go to implement app intense, I
have to think, Okay, how did
this actually work? And what
kind of Function Builder things
do, did they invent? And which
means like, okay, they've
decided that you need to do an
if then when else, whatever, all
kind of nothing follows the
basic swift rules, because it's
all functions. So you can do
whatever you want, and that they
build a complete domain specific
language for app intents, then
I'm going to implement, I don't
know, I want a handle for
something else. And chances are
that that group within Apple
have built their own domain
specific language with function
builders, let alone swift UI,
which is another one with with
Function Builder. And so it
means that every framework gets
basically is becoming different.
And you have to if I now a month
later go back to the app intense
stuff. How do I know that it
actually works? Documentation is
terrible, all this stuff. And so
it's, like you say, it expands
the surface at a tempo at the
speed at which just becomes too
much for me to even, you know,
it feels draining. And maybe
that's because I'm getting
older, but I don't feel I didn't
have that with you know, the
old. It was very concise, the
old app kid, Coco. And it felt
different at a time. Yeah. But I
do
Jeroen Leenarts: think you have
a point there because it used to
be that apps on the Mac, and
also a little bit on the on the
iPhone, because the iPhone was
already much more constrained
and a Mac platform that
initially it was really about,
okay, what can people do on this
platform in creative ways. So
what their product really does.
And nowadays, a lot of the work
that you have to do to build a
product is actually finding new
and interesting ways to actually
attach Apple's API's together in
new and novel ways. So that you
can actually pipe data from an
input to some sort of an output
facilitated by Apple.
Alexander Griekspoor: Yeah, and
the problem there is that
because those API's were not
built in a generic way, often,
you cannot do much more than
what Apple does. For instance, a
good example is I implemented
pointer support in agenda. And
one of the things I wanted to do
is like, based, you know, based
on, you know, whether when you
would swipe, you know, the
trackpad, you would open the
left or the right sidebar, and I
would do that on a Mac, I do
that based on where the mouse
your pointer is, because it's
very low. If your pointer is on
the right side of the screen,
you very likely want to open the
thing on the right side, it's on
the left, vice versa. Now, the
first thing I do is like, Okay,
give me the location of the
pointer on screen. API doesn't
exist. You can't ask, you know,
where's
the ring on screen school?
Sorry, I have to get that out.
You know, you can't ask you
where's the finger on the
screen?
Jeroen Leenarts: It's probably
somewhere like three layers? No,
it's
Alexander Griekspoor: not. It's
not. It's just not there. No, at
least I want my happy, happy to
be contacted say, Now is there
but I look for, it's not there.
And it's, it's, it's like,
what's even worse is that, like,
you know, it's not that the
pointer was invented for the
iPad, I mean, we have had for 30
years, and literally over a
month. And and so, you know, all
this stuff? Is there on a Mac.
And it's just like, of course,
you can just ask for the mouse
location in its window. It's,
you know, and it's like, and I
feel a lot is that of that is
happening. And I think it's a
shame because it's not fought
out from Okay, so what are we
what does a great, you know,
pointer API looked like in a
generic sense. And then we built
that now, it's basically Oh,
Apple needed this. And they just
never had this need to, you
know, at least publicly make
available the mouse location, so
or the pointed location on
screen. So the API is not there.
And we didn't need it. So we
didn't build it. And I can
understand that that's how their
system has worked. But it
doesn't, you know, it doesn't
mean it generates, you know,
good API for us as developers.
Any new security in a box,
you're in a box that is
basically say, okay, Apple
things, this is what you should
make. And this is what great
apps are. But you know the time
from the highly inventive apps
where you were like blown away
by third party apps, it's kind
of it's gone. And maybe the only
way we get those is by
technology, like the stuff that
Twitter nowadays is exploding
about, but not about apps that
do interesting stuff, because
they're boxed in all kinds of
ways. API wise, sandbox wise,
privacy wise, everything is Oh,
yeah, don't expect something
like that blows you away
anymore, like an old disco did
with smoke coming out of your
fingers, or that we did with I
did with putting a destroy in CD
into your Mac, I remember,
Jeroen Leenarts: like, there was
like a CD ROM, the only tool.
That was initially when they
brought it out, there were some
people who are running with
somewhat older hardware, that
their actual write operations
were failing because the CPU was
a bit busy rendering the smoke
coming out the app on screen. So
it was a bit of a suboptimal
experience if you didn't have
enough performance in your
system. But speaking of, of the
Swift language, because you
touched upon that a little bit,
and you mentioned swift UI, and
I know that a lot of the
features that have been added
last few years have been to sort
of make sure that certain things
would become possible in Swift
UI. And some other things like
async await, and some other
asynchronous operation has been
added to the Swift language. But
what I do notice is that the
basic principles that were
already available in the Swift
language, they're being
repackaged and given new API's,
and it's just adding more
complexity. And I'm, I'm, I'm
still a recovering Java
programmer for decades. So I've
been doing Java development from
2002 till 2012. And then I
switched over to iOS development
full time. I see the Swift
language making the same moves
and going into the same
direction as for instance, the
Apple language, it's just
getting, it's a nice concise
language, then it gets a bit
bigger. And then it's basically
Well, at least my taste was like
feature complete somewhere
around the time of Swift five,
or maybe swift six. And then it
just starts growing and growing
and growing. And I don't know
about you, but I'm feeling like,
do I need all this stuff? Yes,
yes, it is cool. And yes, it is
interesting to read about it.
But do I need it?
Alexander Griekspoor: Yeah, no,
I'm with you. And swift UI, you
know, it just doesn't click with
me. And again, that's because I
like to have real control over
what I get on screen. I want to
say this pixel needs to be one
pixel up, and not, you know, and
so because it's off, and then I
mean, I'm just, I can't I just
want that control. I understand
that Apple is steering towards,
okay, we'll get unfortunately,
we'll get you know, 90% of the
apps doing, you know, great
stuff in terms of basics. Yeah.
Which was their problem that I
tried to address, I think, is
that a lot of app developers
were just sloppy or not going
for it. But people like, you
know, maybe like us that want to
really go the extra mile to make
a great app. That's actually the
ones that you now hinder.
Because you don't give them the
control that I need. And worse
for me, I've been following it
from the side every time. Okay,
I'm not ready to join that ship.
But it works like you say,
because it's grow so fast that
if I would join now and try it
now. And then often the answer
is yeah, oh, yeah. But that was
kind of how you did things last
year, because now we have, you
know, last year it was geometry
reader, but now it's something
that where you can just ask it
to face fit the size you give
it. Right. Okay. And it's okay.
Yeah, what next year, you know,
and so, combined, same, you
know, where did that go? Like
this? WWDC is gone. And so
Jeroen Leenarts: it's, it has a
very specific nice use case. But
it's not, like, advocated
anymore by Apple as being the
end all solution for
asynchronous and timeout
operations and orchestrating
basically processes within your
app process. Wow, that's kind of
matter. But anyway, you think
that's that that's the old
style, compared to the new
style, and then the old style
being objective C swift and UI
kit and app kit? Does that like
fade out in comparison to Swift
UI on the Mac? And on iOS
eventually, because I know right
now, there are certain things
you still cannot do in Swift UI.
You have to go back to app kits
or UI kit but what do you think
about like the future of like,
the familiar API's to the both
of us?
Alexander Griekspoor: Yeah, I
think ultimately it will go that
route that I think it will be
very comparable to Objective C
and Swift, ultimately, in the
sense that, you know, Objective
C, you can still do things and
you can build. Yeah, it will, it
will. Yeah, but I think
Objective C and Swift is a good
comparison, because ultimately
you will start to get, you'll
actually see that already, you
will start to get frameworks
that are only available in Swift
UI. Just like some frameworks
are only available in Swift and
not in object in Objective C,
and that's the route I can see
things going for that it's been
too long to not be a garbage
collection. To mention, another
nice example of garbage
collection
Jeroen Leenarts: fails in
Objective C, right? Yeah, but
Alexander Griekspoor: that's
what I mean, I've heard I, you
know, I've made that mistake.
I've I've gone full in garbage
collection with, with papers at
the time. And, you know, because
that was the thing. And and
indeed, you mentioned out the
release and all this stuff, and
you're like, oh, man, no, DeLacy
kind of this is this is it, you
know, garbage collection is
going to do all of that stuff
for you automatically knows
better than you, etcetera. So we
went all in. And it was a
disaster till the point that at
some point, you know, I
literally ripped it out. And I
was surprised how much quicker
things were gaming, because we
had massive performance issues.
But, you know, for certainly, at
least one WWE, I'm sure,
probably to Apple was, you know,
telling you this is basically
the way forward garbage
collection, is it. And so, and
then two years later, you know,
it was dead. And so that's the
one thing I've learned Ben is to
say, I never jumped on any, you
know, like, well, in a way
combined, I think is for me,
that's a similar example. It was
really brought at one WBC it's
kind of almost like this is the
next example, maybe not
intended, but just because we've
got so much intention. And then
now it's gone. Nobody talks
about it, I think
Jeroen Leenarts: combined,
basically, was a victim of its
own. Well, not success, but it
was so well thought out as an
API. That was true, but it was
trying to do so many things. And
also, the complexity of the API
itself was so high that a lot of
people they just tried combined,
and they just failed miserably.
And then just thought, well,
table flip, I'm just going to do
it the old way. And that's why
when Apple saw that happening,
they came up with something like
async await to just simplify the
experience for the for the end
user, the software developer, I
think, yeah,
Alexander Griekspoor: yeah.
Well, I mean, the funny thing is
that, you know, you mentioned
async await, and it's another
with actors and everything I can
see, I guess. Yeah, exactly. And
that's what I mean, I mean, that
it just feels heavy to just add
all that info to really dive
into that, if you're an app
developer, like myself, who's
always, you know, his main focus
is to progress the app, and
already is an existing app not
to forget, right. So I can't
jump always into the newest
things, you know, just adding on
top of, you know, doing the
support and the development of
your app, and everything, just
add the mental load of having to
learn new API's, and certainly
the complex ones, because they
tend to be, you know, you know,
complicated to keep to say it
nice. You know, it's just too
much. And then even worse, I
recognize that there's a lot
with a lot of those
technologies, you, you know,
it's make apples, and I
understand why it is, and it's
not wrong, but you want to make
it feel that you can step easy
easily in and it often makes you
feel that you don't have to know
so much of what's going on
beyond the you know, below the
hood. And I think that's a you
know, ultimately you always need
to know exactly what happens
because you can still create
reentrant issues and you know,
all kinds of, you know, typical
concurrency problems. So, and at
least with, you know, with
Grant, you know, this it can
Grand Central Dispatch, yeah,
that you kind of familiar with
those limitations and
everything. So, that also took
long, but at least that,
Jeroen Leenarts: could it be
just just like, thinking a bit
out there, because you have a
product that you've been working
on for six years now. Yeah, that
part of your viewpoint is also
influenced by the situation that
you have to be careful with your
backwards compatibility. And
adoption of new API is not as
straightforward as like
greenfield development, because
you already have a ton of code
that just needs to be brought up
to spec again, in sight of new
SDK versions coming out. Yeah,
absolutely. I
Alexander Griekspoor: mean, it's
different if you start a new
project is different if you're
mean there's nothing nicer than
to be younger. If not no, and
then because that gives you the
energy to battle these things
that you will come across the
way Well, now, you know, you may
be more the guy that has become
the person or to the app, let's
not risk it, you know, you have
your risk evaluation very
differently. And so, you know,
when I started programming, you
were like, you know, I just want
to make this happen in every
hurdle on the way you would you
would just overcome. Now, I'm
much more like, okay, you know,
I see 10 hurdles on the way
because of my experience, so I'm
not going to try it. And yeah,
yeah, whether that's what I'm
saying that sometimes I'd love
to be the one, you know, back to
be in that state. It's just not
how it goes. It's just
Jeroen Leenarts: one of the
characteristics that separates a
junior developer from a more
experienced media or senior
developer, you think,
Alexander Griekspoor: yes, and
in many ways, it makes a senior
developer, you know, more
valuable, more effective, etc,
etc. But the new stuff or the
innovation, and it may be the
kind of thing that unexpected
comes from the junior people,
because they don't have to beg.
It's
Jeroen Leenarts: like, the new
guy on the team comes in, and he
just does something in like, I
don't know, 10% of the lines of
code that took me like 10 times
as much code. And I was like,
wow, yeah, yes. Right, actually,
Alexander Griekspoor: yeah,
maybe because he didn't start
off by thinking about all the
things. I mean, a good example
of it, I look at swift UI, and I
just see bindings. And that's
another technology, I've been
bitten so much by cocoa
bindings, you know, it, you
know, you end up with, with all
this stuff, where you're like,
Oh, my God, oh, let's just push
this to the next run loop,
because then it will actually
work. And then things are
actually ready, you know, and as
you've saved you a lot of these
kinds of parallels, and they're
like, no, never again,
Jeroen Leenarts: I've been lucky
in regards to binding, I think,
because I got started on iOS
development, and they just
didn't have the concept of
binding at all. So it was never
a thing within within the iOS or
iPhone ecosystem. Yeah. But
before we really dive into,
like, too much complaining about
Yeah. I do want to talk a little
bit about the product that you
work on. But before we do that,
I just want to drop in a little
bit of a timeline, because 30
years ago, you started tinkering
with a classic Mac. And then
yeah, 24 years ago, you started
software development in earnest.
So somewhere around 2001, you
mentioned, yeah, but Well, what
did you do between the tinkering
and 2001, because you must have
done something, you did some
form of education, you just did
something to like, sharpen your
cognitive abilities, and get
yourself to a point that you
actually wants to start to
program, I guess,
Alexander Griekspoor: yeah, I
lived a parallel life,
basically, two parallel lives. I
had on one hand, I had studies
studies becoming University for
some, you know, I won't go into
crazy reason, I went from a more
technical thing that I always
liked to biology, then studied
biology, and then you go into
kind of a flow in a kind of
stream that you, you know,
there's just automatic, you
follow University, then you have
to do rotation periods as part
of those. So you do those, then
the guy where I did the rotation
period offered me a position in
his lab to stay longer than he
offered me a PhD position, and
etc. And so I've I followed the,
the career path of a scientist,
the biological scientist, and at
the same time, I had this, you
know, like I said, I earn some
money on the side is in this in
the summer, you know, helping
out on in an office where they
had Max, you know, just doing
Excel sheets, and etc. Then I
went to university, I couldn't
do that in the summer anymore.
But so I had to shift to
something that I could do in
evening hours. So I worked for
them on the marketing
department, by then my immediate
skills required, okay. And then
speaking of the programming, so
at that university, I run around
the time I started building
websites, so I earn money by
building websites, then, you
know, then on the during a PhD,
I started making those Mac apps,
those were basically targeted
for myself and scientists. So we
started sharing that and that
started living its own life
grew, etc. So I had these two
parallel tracks. One was kind of
wonder what you would call it
Mac iOS development. And the
other one was scientific career.
And, but they kind of were
overlapping, but I realized at
some point that the passion was
at making those apps.
Jeroen Leenarts: But when did
you really make the switch from
primarily being a biologist to
being a software developer
because the software development
was like, growing and becoming a
thing in the background, but at
some point, you must have
flipped the switch in your own
mind. Right.
Alexander Griekspoor: Yeah, so
during my PhD in cell biology, I
started making those apps for
scientists, we put them on their
website called Macintosh, that
was our kind of our acronym.
And, and that started really
taking its own life, people
started using scientists started
using those apps, and you can
really popular, they were all
free, by the way at a time. And
I, I noticed, okay, this is
really you got feedback, you got
a lot of users, you know, you
got it. But you really, it
really became the passion. And
then, when I finished the PhD, I
realized I need to do something
where that software bug kind of
contributes to my scientific
career, because I couldn't
really see how I could live from
those free apps. And so I chose
a bit of a slight redirection of
my scientific career towards
bioinformatics. And I had a gap
because I was waiting for a
grant to come through. And
that's when, and that's when I
decided to build papers. And
that was a project that was just
too big for hobby, but that I
always wanted to make what's the
kind of iTunes for scientific
research articles. And that's,
that's what I built. And that
became so popular. And because I
had, you know, used some time
from the spare time, I also
decided to make that a paid for
product, you know, and that
became so big that within one
year, it basically was the
equivalent of my, you know, my
postdoc salary. And I figured,
well, it was also what I really
wanted to work on the moment
that would leave the lab. And so
I decided, okay, if I, if that
is now already generating and
living next, on top of what I'm
doing for professionally, I
should be able to live from that
full time. So that's when I
stopped the science bit and went
full time indie developer, first
alone, and then a bunch of
people join me because, you
know, you meet people that are
like minded, and it kind of
organically grew until in 2012,
we were with six people in six
different places in the world.
And a big scientific publisher
came and they said, Well, we
really like to, you know,
acquire your product, grow it
further within, you know, this,
this publisher. And so that's
when I sold it, and then it grew
to 25 people or something in
based in London, but I was still
working from here in Portugal.
And I decided to, basically,
after three years, okay, well,
what are we I basically seen the
entire cycle from pure hobby, to
more serious hobby to more, you
know, independent developer,
small group distributed to large
corporates, 25 people. And I
said, Well, what I really loved
was the period where I was just
doing it on my own. Just
everything, just also the
marketing, also the sport
design, the building of the
product, everything. And so I
returned to that, basically,
Jeroen Leenarts: so. So we're
talking about that 2016
timeframe, I guess that you
stepped away from papers, which
was a successful acquired
product, which basically, many
indie developers just dream of
that ever happening to one of
their products. You got a
paycheck out of this
acquisition, I guess. So they
gave you some runway to build
something new? Did you already
have like an idea of what you
wanted to create? Because I can
see the similarities between
your prior experience as being a
researcher or a biologist, doing
a lot of things with notes and
that you wanted to organize in
your own way?
Alexander Griekspoor: Yeah,
actually, this is actually a
product that came from the
period that I was running a
larger team in a more corporate
environment. So you start having
more meetings, and you start to
have, you know, one on ones with
people, weekly meetings, etc.
And that's where I kind of had
developed a notetaking way, you
know, that was our fault
revolving around dates and
everything. And I also realized
there wasn't really a good tool
for that. And at the same time,
I saw people around me that were
not taking notes at all. So I
was like, okay, you know, I see
something that at least I can
build for myself, which has
always been housing, so it's
gone. For me, I always build
stuff today, too. Which, by the
way, is also you know, even I
was by then also like, five or
10 years out of science hands on
science. So also by then I
started realizing I'm not
building papers for myself
anymore. And so I that's another
reason why I wanted to go to
agenda because there was a
product that I still everyday
use for everything in that same
kind of way.
Jeroen Leenarts: So do you use
agenda yourself everyday?
Alexander Griekspoor: Everyday?
Everything everything?
Jeroen Leenarts: Do you for
yourself use the production
version, or the latest bleeding
edge that you have products?
Alexander Griekspoor: Products
in person? Yeah. And so I
switched to, you know, we have
said that we have set the
project up for that reason, so
that our debug versions are, I
can run them side by side and
they run their own libraries.
And then basically the moment we
create the first test flight
builds is when we switch
ourselves, Drew and I switch
ourselves to, for our own notes
to that version. Yeah,
Jeroen Leenarts: yeah. So at
least you have the full product
lifecycle. It's yeah.
Alexander Griekspoor: And we're
going full in, you know, I'm
losing my notes if my testflight
build is not,
Jeroen Leenarts: that would be a
bit sad. Yes. So so the
notetaking of agenda is, well,
the novel thing is the direct
attachments with your agenda, I
think. And also, for some
reason, you were able to land
this amazing domain name for
that. Is that also maybe in
part, part of the origin of the
product that you were able to
security agenda.com domain? And
then thought, Okay, well, now I
have to build a product based on
this name or what?
Alexander Griekspoor: No, no,
no, it's actually it's a kind of
a funny story. Because the I was
thinking about naming its
agenda. It's because the idea is
that it's the cross between
calendar in a notetaking. App.
And in, in certainly in Dutch,
we have we use the word agenda a
lot for for it's a sec,
essentially a pocket agenda.
It's kind of a small, small kind
of agenda that you have with
you, which has more like the
week is more focused on the day
slash week view. But a lot of
people use it also to keep notes
in. And so it's not like a wall
calendar, or desk calendar. It's
really in between. And that was
also my thinking is like there
is something missing that is in
between the Calendar app and the
Notes app, you know, and so
that's what's the idea. And at
the same time, I was thinking,
okay, there was a lot of
calendar apps done again, we're
living in. I think, right now
we're living in the hype of
calendar apps, one every there's
every week, a new one. That's
same hype cycle, we went through
with notes app 234 years ago. So
there was there's a ton of note
taking apps, and there's very
little in between. So you start
thinking is that because there
is a gap in the market that we
can fill? Or is it because the
other two categories are so
overlapping that there is no
oxygen in the room for that,
that kind of product? And I was
looking at the time, I was
thinking about naming it agenda
and under name, we thought it
was minutes, you know, from
meeting minutes, but there was a
bit more focus. But agenda
sounded nice. And I started
looking and then I noticed that
agenda.com was up for sale, I
find it very odd. And and I
looked at it, but it was it was
very expensive, first of all,
but at the same time, again,
it's confirmed this thing like
Okay, is there then nothing in
the middle between? And in the
end, he said, Okay, we go for
it. And I negotiated a bid with
the domain owners. And they it
was just a generic, it was
literally just for sale. So it
was one of those generic
companies. And it was a very
expensive domain. But at the
same time I fought out. Yeah,
let's go for it. I mean, I knew
from from papers, that was also
a successful product, that if if
the product is successful, it's
nice to have a domain like that.
Jeroen Leenarts: So yeah, it
does help with discovery. And
also, it's okay, yeah, agenda.
Yeah. agenda.com. It's very
Yeah, share with people.
Alexander Griekspoor: Yeah, it's
very hard to find on the App
Store. That's, that's the flip
side.
Jeroen Leenarts: That's where
the domain name comes in. So but
agenda is, what I really like
about it is that my mom, she
used to have like this big. It's
more than a4 sized book. That
was her agenda. And it was
basically she took her
appointments in there, which
also did during the appointment,
she did her note taking in the
book itself. So and that's
always the the idea I get with,
with your products. And
Alexander Griekspoor: yeah,
that's exactly, exactly it.
That's exactly it. Yeah.
Jeroen Leenarts: But I do know
that the book that my mom used
to carry was a bit unwieldy, and
just having it available in your
pocket on your phone, or on your
laptop. That's like really
awesome, because you can just
bring it with you. Yeah, but
creative agenda. It's a Mac app.
It's an iOS app. How difficult
was it to grow? These two
codebase because I recognize
some overlap. But some things
are very specific. And on top of
that, I do see that a lot of the
user interface elements that you
and mechanisms that you use in
agenda, both on the Mac and on
the on the iOS platform. There,
but they're not exactly
standard. I think they're like,
they're obvious. They're
logical, but it's not what you
get out of the box with with
with SDKs. If I'm right,
Alexander Griekspoor: Yeah,
correct. Yeah, I mean, Marcel
did an amazing design, very
clean and fun. If it is that. I
think we were one of the few
people that have very few things
to do for, you know, what does
it make? I was 11 or when they
introduced the big redesign.
Yeah. Because effectively, we,
you know, our app looks like
that. So you know, it's like the
windows It is very wide. It's
very text based and is very
clean. So yeah, it's using a lot
of stamp for me easy. It's not
like we invented everything
from, you know, all the all the
controls. Now it's just styling
them really. But like you say,
like we discussed earlier, I
think with Swift UI would have
maybe a bit more work to do
could also be possible. But it's
not that it's not crazy amount
of custom controls. But there's
a fair amount of them. Yeah, in
their own looks. Yeah.
Jeroen Leenarts: One thing that
is really different about when
you launched agenda with Drew,
was the way that people could
actually support the product,
right? Because back in the day,
when agenda was launched, it was
a new thing that you did. And
it's basically an in app
purchase that gave you sort of
like a runway of updates. And
then once that runway ran out,
you either renewed or you didn't
get the new feature anymore, you
still get the product updates,
but new features that you
launch, they are not part of
your experience anymore, then.
So what's the idea there because
it was new, it was, I think, a
big gamble that you took there.
Alexander Griekspoor: Yeah, I
don't want to take all credits.
Because I mean, I think there
were a product like sketch and
others that were kind of going
in this direction of you will
kind of keep the products even
if you stop paying. But that's
the thing where there was this
big drive that is still going
on, I think towards
subscriptions. And Drew and I
ourselves, we're not a big fan
of it in the sense that if
everything becomes a
subscription, it just doesn't
make sense. So and the other
component of that is that they
say subscription. But if you
think about it, it's actually
rental often. So you basically
until you you get the features,
and then when you stop paying,
you're simply lose them. So it
feels like more like rental to
me, then social. So
subscription. And a real
subscription, to me feels like
the magazines that you would you
would pay at a magazine
subscription, you get those
copies at home. And if you stop
paying, then yeah, you won't get
new magazines at home. But the
pile of magazines that you're
read is yours and will stay
yours, you know. And that model
is what we tried to replicate.
So it's it's really feature
based and date based. So each
feature, what we call a premium
feature. It has a date stamp,
and basically depending on on,
if you're paying if you're
paying, then it's included that
feature and will stay for your
for as long as forever,
basically, you will own that
feature. If you stop paying,
then then basically you can keep
using whatever you have. But if
there is a new premium feature,
it will be indicated in the UI
that it's premium. And that is
not part of what you have. And
so you can't use that feature.
But everything else is there.
And I mean, that's only a
handful features, almost
everything of the app is free,
you will also still get all the
updates, because that's the
major difference with say the
models from sketch is that there
you would be stuck on version
with us, you're always on the
latest version. So you always
have the latest version. And you
know, you get say in the next
update another 50 minor new
features and bug fixes and
everything that we ship, just
not maybe that one or two new
premium features, if you're if
you've decided to stop paying.
And the whole idea is to say
every time we have to deliver
because you you can just It's
fine that you pay once and then
you stop paying us if you don't
feel you get the value for what
we deliver. And you can keep on
using what you have. And then
maybe, you know, you know, a
year from now we ship a feature
that you do think makes it all
worth it paying for. And then
and then you step back in, and
you basically unlock those and
everything that was in between
at that moment in time. So it's
very much, you know, it's much
more, I think, what the
reactions have been very poor,
very, very good. People think
it's an extremely fair model
towards the user. And at the
same time, it does guarantee us
as developers some kind of
recurrent income, which
ultimately is needed if you want
to keep on going and keep the
app alive.
Jeroen Leenarts: Do you see a
lot of reactivation of user
accounts from like unpaid state
to a paid state in their
timeline? Or do you track those
metrics? Yeah,
Alexander Griekspoor: it's nice,
because we can see in the App
Store Sales, for instance, are
clear. I mean, often, you know,
we're lucky in that Apple
sometimes teaches us after it's
one of those updates. But the
nice thing is that we see a
direct, big peak on the day that
we release the app, which are
people then That must be
reactivating or, you know,
buying premium features again.
And so we see that big peak
preceding the kind of attention
the big you usually get if, say,
Apple features you. So we see
that very clearly. Yeah.
Jeroen Leenarts: So basically,
the reactivation that you're
seeing when you release is based
on your existing user base, and
exactly the feature status with
Apple is just added on top. And
that's growing your exposure,
but new use exactly, exactly the
same people seeing the same
stuff again,
Alexander Griekspoor: that's
really cool. Yeah. So we invite
now we've seen, it's often that
you can say it really works. And
the model works. And we get a
lot of developers saying, oh,
yeah, but that doesn't work.
Because Oh, now you've got like
a wheel, the code base, where
we'd 100 If deafs everywhere,
because, and in fact, there's
another all the case, because it
feels very natural, because, you
know, it's just like, it's like,
it's just a door right there
feature is a door, door to a
sheet or to a configuration or
to an action. And so it's
there's very often natural entry
points to the house. So this is
the front door. So if the front
door, you can't open, you can't
get into what's behind that
house. But other than that, you
don't have to think about it. So
it's very natural, you learn how
to pick, you know, where you put
those barriers, but then it
doesn't lead at all to a code
base. It's Oh, this guy can't
use this, or this guy can't do
that. And it's very natural.
It's not very different from any
of them.
Jeroen Leenarts: And just as an
indication for the two of you,
Drew, and you, is it like a
recurring income stream that is
on the level of yeah, we're
getting by or we're living
comfortably? Or it's like, oh,
wow, what do I do with all this
money? I need new ideas to
create something new.
Alexander Griekspoor: Now, it's
free, I think in the in the
middle for two people is is
comfortable income? Yeah. Of
course there is the you're still
an independent developer. So you
need to look further than two.
Okay, now I have a stable
income. So that's all but that's
for any self employed person? I
would say. It's not like it's
comes with buckets loads in and
we don't know what to do, you
know, the fifth Ferrari doesn't
fit my garage? No, it's not, but
it's not, we don't have to
scrape by. But the thing is, is
we can't scale this to say, oh,
let's add 15 developers, then
then then it doesn't become
profitable anymore. Yeah,
Jeroen Leenarts: yeah. But
that's, that's, I think, right
on the sweet spot where your
wants to be right to be able to
keep on working on a product
tightly integrated with your end
users, because you have a lot of
a lot of interaction with them.
And a lot of back and forth,
that at least that's what I see
on the agenda forms. And also on
top of that, the product and the
company is now in a state that,
well, you don't need to have
some sort of an outside investor
just giving you lots of cash to
grow the product, there's no
pressure to grow it. It's just,
I think, the
Alexander Griekspoor: only
priority even even differently,
I would put it even differently.
I mean, in 2018, we won the
Apple design award, I kind of in
year one. And at that point, we
had the choice because now I in
hindsight having gone through
the entire cycle I can I can
understand that I can see that
we could have gone to a bunch of
feces and say we're the next
Evernote with did went away I
kind of predicted and gain a lot
of money, you know, open an
office in Lisburn, with beanbags
and football tables, and you get
a whole bunch of people working.
But I'd come from that I've
that's exactly what I didn't
want to do. I didn't want to
become a manager. So we decided
on purposely not to go to the
world, it means also that you
can't just do a lot of things
that that those companies would
want you to do, like an android
version or a web version, or or,
you know, I don't know, you have
to really be selective and say
no to a certain amount of things
that that people would want to
see.
Jeroen Leenarts: But it also
gets to the product, right?
Yeah,
Alexander Griekspoo: definitely.
And, and keeps it in this phase
where we can do everything. And
we can have those interactions
with the users. And I can have
this chat without anybody having
to consulted about why am I not
here this morning? And, you
know, everything right? So
that's a that's a deliberate
choice that you make. Yeah,
Jeroen Leenarts: that's, that's,
it's very good to hear that
it's, it's actually in a state
that you Andrew actually want it
to be, but doesn't give you a
lot of pressure that you have to
get the next premium feature,
thought out and implemented in a
reasonable timeframe. Because I
can imagine people with a
subscription, they are really
itching to get to new premium
feature or the next best thing
that you're going to add to the
product, right?
Alexander Griekspoor: Well, not
in my experience, I think we
have basically a list of
features that we know people
would want then that we wanted
from day one, we're now five,
six years further. And so we're
chunking through a bond to
through those I know the things
we're working on is that people
want because we wanted ourselves
as well. Yeah, the pressure
comes not from the business
model, the pressure comes from
the interaction with the people
that ask you a, you know, I
asked them, you promised this
two years ago, which I never
have learned to try to minimize
promising. But nevertheless, you
experienced it as that's a form
of pressure. But it's again, I
think we both are in the
software business before. So we
learned how to deal with that
pressure. And, and it's the
same, it's pressure, but it is
also excitement that the stuff
I'm now working on, which is
scheduled for January, that I
think will be the stuff that
everybody that is now a user
would love to have. Yeah. So
that's that's excitement that
you get from the energy that you
get from that, that knowledge.
Jeroen Leenarts: And it's its
agenda, the the only thing that
you're doing professionally?
Yeah,
Alexander Griekspoor: yeah. It's
funny, because I remember people
asking me when we launched the
need to have a DNA. So what are
you going to do next? You know,
Friends, you don't understand if
this is any, if we can see if
it's sustainable. That was, of
course, the big question in year
one. If it's sustainable, then
this is a product I can work for
10 years on, and that that's
maybe something more specific to
me, you know, every person is
has this kind of, I need
something new kind of level. But
for me, which fits this job very
well, I think is that I can I
can really motivate and find
energy out of working on this
project for, you know, another
five or 10 years easily. Without
the need, like, oh, I need to do
something now with with Swift UI
or something.
Jeroen Leenarts: Maybe someday,
start carefully with an
extension or two.
Alexander Griekspoor: Yeah, you
know, one of the I'll be honest
with you. And again, maybe
that's a bit of a set, etc.
Moment. I'm getting actually
more and more to the point where
I kind of know that my next
project is maybe not anymore Mac
app or an iOS app. And because
what I really miss again, you
know, the cycle is this feeling
in 2001, where I would make
something in this objective C
app in Project builder, I think
it would be cool, I would make a
zip file would upload it. And I
would give you a ring and say
don't use it, use it. Use it,
look what I've done. And you
download it, and you're like,
Oh, this is amazing. But it
would be cool. If it could do a
and it's like, okay, hold your
horses, you know? And yeah, give
me a second build and run, zip
file, upload and try it now. And
that fit. Yeah. And that feeling
that was effectively the same as
building websites in 2001,
right, where you would say, Hey,
do you see it? I've made the
made a thread reload your
browser. And that was super
exciting. Because yeah, and that
has completely be gone. It's now
all kinds of limits then have to
go to app store reviews. I've
seen reviews, there's no or
doesn't like it or misunderstood
it or whatever. And then this
and then that. And can we do
this maybe not the API's don't
allow it, or whatever. And I
miss Ole Miss that that creative
freedom that I'm too good. And
myself getting to the point is
like, and sometimes I wonder if
Apple is missing the point there
is like Yeah, but Swift, the
Swift UI is the future and so
maybe it's by now is for me, the
future is just my next project
would be a web based app, I'm
Onyx insurer, with a very
lightweight wrapper to make it
run on a Mac on iOS, maybe. But
if I would start something new,
I would go back to that feeling
of, of, of the web and and which
is really sad because I'm one of
the biggest Mac persons from
Jeroen Leenarts: the age of ever
just the ability to tinker with
things right?
Alexander Griekspoor: Yeah, and
the freedom the freedom to say
I'm going to build this and and
I can do that I can push it and
it's instantly available to
everybody without you know big
discussions. For me it's never
about the 30% Gods on the
revenue because that for me
Apple deserves that part of that
what they bring they bring a lot
of people to the agenda and
everything but for me it's about
the being put in a sandbox that
is become so limited that you
literally can't think outside
the box because it doesn't allow
you right so that's that's why
I'm saying like, I like agenda,
but there is still more and more
this this feeling in the back of
your head sometimes like Okay,
what if Apple doesn't like this
anymore? Or what We have all
these exciting users in a super
fair model. But if tomorrow
Apple says, yeah, maybe it
doesn't fit the App Store, or we
don't think it fits rule number
18, whatever. Yeah, then what do
I do? You know, and so that
that, you know, I would like to,
yeah, I find I find a pity that
it went in a direction to be
honest. All right. But I will be
continuing on agenda.
Jeroen Leenarts: Okay, that's,
that's good. That's a good.
That's I think, yeah,
Alexander Griekspoor: let's not
let's not, let's not end it
alone.
Jeroen Leenarts: Speaking about
agenda, where should people go
to learn more about agenda?
Yeah. agenda.com
Alexander Griekspoor: is the is
the website. And we have a
really nice community that's in
the app, but also available for
anybody using a web browser. Its
agenda dot community. And that's
where all the users are, you
know, we have articles on
notetaking, and all kinds of
other related topics. And so and
that's also where you can find
out more
Jeroen Leenarts: now, what's the
best way for people to try
agenda for the first time?
Alexander Griekspoor: That's a
good question, actually. Because
we see a lot of people actually
seeing that there's only click
second time. It's filled, I
haven't got my finger behind why
that is, I have
Jeroen Leenarts: one tip for
people who start and who have
installed and start agenda for
the first time, make sure that
you're in a quiet area, that you
have to follow him off your Mac
turned up just a little bit. And
luckily, I can sit back and just
see what happens.
Alexander Griekspoor: Especially
in your library. Now. Yeah,
there is, it comes with some
very nice and funny sample
documents, that gives you
already a good idea, I think you
do have to give it a bit of a
chance to play around. And but
yeah, or check the YouTube
videos that I've started making,
maybe that helps as well, to get
a better feel of what what the
idea is. But it's really a
notetaking to where at least I
keep everything that's going on
in my life effectively, that I
want to put on paper and
preserve. I put everything in it
from I keep track of the
development of agenda, all its
features, its bugs. When I have
chats with people, when I meet
people, you know, everything
really literally. But it is
yeah, you have to find the right
set up a little bit imperfectly,
it's actually like Lego to come
back to that story. It's, it's a
notetaking app that I'm
purposely gives you a box of
Lego, where ultimately after a
while, you will build your own
system. And it takes a little
bit of tinkering, a little bit
of trying a little bit of re
organizing sometimes if you if
you notice, but it also doesn't
mean that it's Yeah, it doesn't
come with a whole ton of one use
parts. You see what I mean? It's
the same analogy. You build your
own system after a while. And
the nice thing is that that
might look different for
everybody. And in your
community, you see a lot of
people then sharing what works
for them. So that's also where
you can get a lot of ideas. If
you feel that, why don't I grind
away? Why doesn't click for me,
maybe it's because you haven't
yet find the right setup. And
Jeroen Leenarts: also, if you're
in some sort of process with
agenda for your day to day, you
can always adjust and tinker
with it and change it a little
bit down the line. I think
that's exactly what your agenda
is really a tool that that you
adjust and integrate to your
life instead of making sure you
adjust to the tool. And yeah,
that's that's one of the that's
one of the biggest barriers to
entries. But I also think it's
one of the biggest exactly
because it ties to the to
Alexander Griekspoor: Yeah,
because it gives a bit this
blank page problem, by
definition, right the year ago.
So how do I start this exactly
this setup because you haven't
got that set up yet. But you
know, that's the nice thing. It
gives you the flexibility to
start building it out. And after
a while you kind of nicely it
kind of Yeah, continuous, you
know, iteration is kind of part
of it, I think.
Jeroen Leenarts: All right. I
will make sure to link those
things in the show notes. Great
just in case you you start
developing some wild ideas about
something after agenda where
people will follow you to stay
up to date.
Alexander Griekspoor: Normally,
I would say Macintosh at
Twitter. That's how long the
Zabbix is. Yeah, got the agenda
community. Like I said, That's
it. That's where we're very
active. So you will see us
around. And again, yeah, Twitter
is still my kind of newspaper in
check. So that's another one and
agenda.com if you if you go to
your fine Neil ventually. I
Jeroen Leenarts: will I will
take up some some links for
people to follow What to do cool
all right Alex I'm gonna thank
you for your time and we'll talk
to you soon
Alexander Griekspoor: yeah
cheers you
Jeroen Leenarts: bye bye