Episode Transcript
Transcripts are displayed as originally observed. Some content, including advertisements may have changed.
Use Ctrl + F to search
0:00
All right, we're rolling. All right,
0:03
welcome. Welcome to the show
0:05
Ian Landsman. Hello invited myself
0:08
on. You invite himself on
0:10
and we're using his Riverside.
0:13
This is notes on work
0:15
featuring Ian Landsman talking
0:17
me down. He's like, your message was
0:19
something like. I'm a third of the
0:22
way into these podcasts and I need
0:24
to convict him and do this. I
0:26
got to the first two. The third
0:29
one about how you were building a
0:31
micro charting framework and I was just
0:33
like, I got to get on the
0:36
horn to this guy. If you listen to
0:38
the first two, you get what's going on.
0:40
Yes. So I think I have a good
0:42
idea. Okay. So where do we start
0:45
here? Like, all right, where I'm sitting
0:47
right now. After these podcasts, I'm
0:49
feeling pretty good. I was feeling
0:51
pretty bad and now I'm feeling
0:54
pretty good. Okay. Tell me why
0:56
I shouldn't feel good. So, so
0:58
with the conclusion, I couldn't get
1:00
to the third one. So the
1:02
third one, did you finish? I'm
1:04
gonna build a micro line only
1:07
charting framework thing. Yeah. Okay.
1:09
Alright, so here's my point. It's
1:11
going to be so sick. I forgot
1:13
a few problems with that. Okay. Just
1:15
in the first two podcasts, right? Like
1:18
it's incredibly complicated. And a hundred times
1:20
you're like, do we need that? Do
1:22
we need labels? We don't need labels?
1:25
Do we need, you know, labels? We
1:27
don't need any bars. Do we need all
1:29
this stuff? I guess here's the thing to me.
1:31
Anybody who's really using a chart
1:34
library, who actually had data to
1:36
chart in a serious application? needs
1:39
the full charting library. I
1:41
don't know. So I'm looking
1:43
at stripe and they literally have
1:46
a line that you can offer
1:48
the points. Oh God. And get
1:50
a little tool tip of what
1:52
data is at what points. And
1:55
they have two labels in the
1:57
x-axis that says the beginning time.
1:59
and the end time and that's
2:02
what they have for like most
2:04
of the app. Well they have
2:06
bar charts, I've seen bar charts,
2:08
there's line charts, so there's multi-line
2:10
line charts, multi-line easy, got it,
2:12
okay. Listen, the only things, ticks,
2:14
and labels, which you said ticks,
2:16
or maybe not gonna have it,
2:18
I can't do his ticks. It's
2:20
a big one. I literally can't
2:22
do this. Writing writing stuff. In
2:24
the SVC is this a problem?
2:26
It sounds like it was maybe
2:28
a problem. I have text and
2:31
text. Yeah, yeah, like dates and
2:33
times, numbers and things. The generating
2:35
of it's not necessarily a problem,
2:37
it's the spacing of it. It's
2:39
not, they're not divs. They don't
2:41
adjust to each other. They're just
2:43
painted over each other. Right. And
2:45
I say to put them on
2:47
the X-axis. Yeah. You have to
2:49
figure out what you're going to
2:51
do with all that. There's a
2:53
lot of stuff in it. No,
2:55
I don't, because I'm not doing
2:57
ticks. What do I do with
3:00
a chart with no ticks? So
3:02
a lot of charts have no
3:04
ticks. They have the beginning and
3:06
end date or kinds. Men and
3:08
Max, why? The people who need
3:10
such a ridiculously simple charting thing
3:12
are coin base, stripe, lemon. No,
3:14
they're not. Stripes are not like
3:16
that. What are you talking about?
3:18
We're on it right now, we're
3:20
pulling on it. I was just
3:22
in there looking at this. But
3:24
I will look again. There was
3:26
bar charts. You always see multiple
3:29
kinds of charts. I do actually
3:31
see these bar charts. Yeah, I
3:33
just saw them. I literally saw
3:35
them before I got on the
3:37
call. If you go on reporting,
3:39
go on reporting. Show me. Okay.
3:41
Let me to it. Yeah, I
3:43
can't show you, but just tell
3:45
me. Morning, I was just in
3:47
there. Okay, so if you go
3:49
reporting overview, there's bar charts with
3:51
numbers, year over year, smaller, your
3:53
percentage difference. Reporting, overview, gotcha, okay.
3:55
Okay, now you click that little
3:58
box that expands it and you
4:00
get a line chart over the
4:02
bar chart, you get tooltips over
4:04
everything, you get ticks, you get
4:06
labels, you get interactivity when you
4:08
click it. Okay, okay. A lot
4:10
of stuff in there. Yeah. y-axis
4:12
to go with your left-hand y-axis?
4:14
So yeah yeah yeah okay right
4:16
right there are there are things
4:18
there are some things like that
4:20
that I think particularly on stripe
4:22
when I see something and it's
4:24
like I could mostly do that
4:26
but then oh like on stripe
4:29
they have they'll show like a
4:31
progress line Where like they'll put
4:33
a lot like render half a
4:35
line it extends. It's like yeah
4:37
estimated continuation or stuff like that
4:39
like that stuff is like oh
4:41
That's that last bit and I
4:43
wouldn't even know how to do
4:45
that in a normal charting library
4:47
like so All right, let's look
4:49
at this bar chart I think
4:51
bars are within my future I
4:53
think I could do them right
4:55
now if I thought about it
4:58
hard enough Their ticks are these
5:00
ticks on this bar chart this
5:02
so bar charts use categorical data
5:04
categorical x-axis so you all are
5:06
going to render every single one
5:08
and if there's not enough room
5:10
you can so the way that
5:12
I'm building it let me get
5:14
this I don't know if this
5:16
helps you at all because I
5:18
know I know what you're saying
5:20
I know what you're thinking this
5:22
is good but this I'm going
5:24
to just completely run you off
5:27
yes so mine is going to
5:29
be driven by like SVC's that
5:31
you deal with as a developer
5:33
and it's not that bad it's
5:35
like you sort of build your
5:37
own SVC So you would say
5:39
template because all these other libraries
5:41
are basically doing that except just
5:43
removing you one like Recharts have
5:45
you have used recharts at all?
5:47
No, I don't know about recharts.
5:49
So basically you say like chart,
5:51
like that's my, this is what
5:53
Chadsey does as well, like so
5:56
you got like chart component, then
5:58
inside of it you'll have line,
6:00
and online you can specify stroke,
6:02
stroke width, stuff like that. Right.
6:04
That's just a wrapper around a
6:06
path, literally an SVC path, and
6:08
all those attributes get passed down.
6:10
And that's fine, but it's just
6:12
like an unnecessary removal of like
6:14
one level, where so mine's gonna
6:16
be like. line, but it's literally
6:18
a path element. So you can
6:20
add tail-in classes, you can add
6:22
whatever attributes you want. So what
6:25
this does is give you like,
6:27
now you're in the SVC. So
6:29
you can use any CSS you
6:31
want, you can add to the
6:33
SVC. Like you can add your
6:35
own deaths at the top of
6:37
like linear gradients and transitions and
6:39
whatever you want to apply. So
6:41
what this means and why I
6:43
told you this is because if
6:45
you're using my thing. If you're
6:47
rendering bars, and there's not enough
6:49
room for the labels of the
6:51
x-axis ticks, you can rotate them.
6:53
And then they'll just be rotated
6:56
and they'll fit nicely together. It's
6:58
like you just render it and
7:00
you go, oh, that doesn't look
7:02
right. Rotate. And so I have
7:04
to do a lot of work
7:06
in this. Yeah. Like way more
7:08
than with chart JS or equivalent
7:10
library. So the problem, I mean,
7:12
so chart, this is the other
7:14
thing, is like, what's the alternative.
7:16
I mean a little bit, not
7:18
in serious anger. I mean, high
7:20
charts a lot. Okay, high charts.
7:22
Chart JS a little bit. High
7:25
charts is a paid thing. Okay.
7:27
Charts and charting libraries suck because
7:29
there's 10 million configuration options. A
7:31
lot of configuration. But you don't
7:33
even understand. You can simplify. See,
7:35
to me, this is the whole
7:37
thing. Where does Caleb provide value?
7:39
Okay. It's the attraction and design
7:41
and simple application. Yes, give me
7:43
the API, give me, make it
7:45
awesome. Like, don't, like, do you
7:47
building a charting library? is zero
7:49
value, there's already a million charting
7:51
libraries. They all have 6,000 closed
7:54
issues. When are you going to
7:56
work on the 6,000 closed issues
7:58
that are going to come up
8:00
inevitably once you release this thing?
8:02
And people are like, it doesn't
8:04
render in this weird way, right?
8:06
Like, all that stuff. The date
8:08
stuff was one thing. I always
8:10
think it's the date thing too.
8:12
But this is even worse. This
8:14
is high five times better. No,
8:16
I think this is five times
8:18
better. No, because I can't. No,
8:20
because it doesn't have the charts.
8:23
You're not going to build, you
8:25
just said you're not going to
8:27
build all the charts people need.
8:29
Are you going to build a
8:31
scatter plot? Are you going to
8:33
build a pie chart? No way.
8:35
Okay, these are the types people
8:37
you use in real applications. When
8:39
you need those, you put in
8:41
D3 or whatever. Like, I'm not
8:43
even going to be able to
8:45
make a wrapper around any chart.
8:47
It's going to look like the
8:49
rest of flux. And obviously it's
8:51
going to open up like there's
8:54
some way to pass in the
8:56
like config stuff. If you want
8:58
to get down to the like,
9:00
I need to set my chart
9:02
JS or whatever library, like I
9:04
need to get deeper in there,
9:06
great, you could pass in the
9:08
config. But the like passes data
9:10
from Laravel into it, past, you
9:12
know, the feaming default to looking
9:14
like flux. Like I think the
9:16
base case could be magical without
9:18
you building a chart library. Which
9:20
is a ton of work. And
9:23
it will never ever ever ever
9:25
ever be as good as these
9:27
other chart libraries. Right. Because you're
9:29
not going to put that kind
9:31
of work into it. It's not
9:33
going to be as powerful as
9:35
these charting libraries. But that's what
9:37
you need in the chart library
9:39
though. But it will be simpler.
9:41
But nobody wants that. Who wants
9:43
a simple chart library that goes
9:45
one thing? I do. That's no.
9:47
This is Ian. This is where
9:49
we are fundamentally misaligned. Are you
9:52
ready? Yes. I'm ready. I want
9:54
a minimal charting library. I always
9:56
have any web app that I've
9:58
been in and building. I go,
10:00
uh-huh. I need a chart at
10:02
the top of this table to
10:04
show revenue over time. Yep. That's
10:06
almost always what it is. Maybe
10:08
usage over time, maybe memory over
10:10
time, but it's something over time
10:12
and it's usually money. And I
10:14
go, what am I going to
10:16
use? Okay, well, pull in chart
10:18
JS. I have to learn the
10:21
words data set and I have
10:23
to get in like to tick
10:25
callbacks because I don't want. when
10:27
you go to chart j s
10:29
and you pull in the default
10:31
it is loaded and looks like
10:33
not what you want exactly same
10:35
thing with return same thing with
10:37
d3 then you need one little
10:39
configuration and now you're like in
10:41
the whole thing again you know
10:43
I guarantee you are capable of
10:45
making that clean and easy for
10:47
me I hate it I make
10:49
it clean and easy for me
10:52
because I want to be able
10:54
to reach in there and get
10:56
all the bag of tricks and
10:58
you're never going to build those
11:00
bag of tricks which means that
11:02
I know I will always have
11:04
to use a different charting library
11:06
I will never use fluxes and
11:08
I think a lot of people
11:10
will not be able to use
11:12
fluxes because as soon as I
11:14
need literally anything that's not the
11:16
ultimate most simple use case it's
11:18
a flux charting library is totally
11:21
used. Okay then let me what's
11:23
both I'm gonna I'm gonna steal
11:25
man you or at you or
11:27
at I'm going to at least
11:29
go there. And I want you
11:31
to go here. I'm going to
11:33
go there though. Okay. I don't
11:35
know what to use. Because of
11:37
the library or something? Yes. Yeah,
11:39
I mean, I don't know what
11:41
to use either. I mean, there
11:43
is no great option here. You
11:45
know, if it was in react,
11:47
I would use recharts. Recharts to
11:50
me, feels good. It's good enough.
11:52
It's D3 under the hood. It's
11:54
a fairly lightweight wrap around it.
11:56
they have these transitions you might
11:58
need whatever but and you and
12:00
they have all the extra configuration
12:02
that is like a little weird
12:04
like you know that you might
12:06
want to customize so so right
12:08
there why don't you just do
12:10
that it's order yeah but poor
12:12
Oh, I think at that point,
12:14
I think that's what I'm doing.
12:16
I think I'm building it. But
12:19
you're not wrapping in D3 and
12:21
giving us all the fun different
12:23
charts and stuff, right? Oh, so
12:25
I am oscillating back and forth
12:27
between using D3. But yes, on
12:29
the last episode that you heard.
12:31
It's no D3. This is the
12:33
thing about D3. And that, like,
12:35
if you, even just on recharts,
12:37
they say, I think on their
12:39
home page. So they say, okay,
12:41
built on topics SVG elements with
12:43
a lightweight, don't throw the ticks
12:45
in my face. It's so funny.
12:48
The most like basic charting feature.
12:50
The ticks, right there, checks inside
12:52
the box. Recharts. built on top
12:54
of SVC elements with a lightweight
12:56
dependency on D3 sub modules. So
12:58
I'd have to dig into their
13:00
actual repository to see what they're
13:02
doing. But my guess is they're
13:04
kind of doing what I'm doing,
13:06
which is like, I don't know,
13:08
let's just see if I don't
13:10
know, it's too long for me
13:12
to actually look at one of
13:14
these bar charts that TSX. Yeah,
13:16
I don't know. They're probably doing
13:19
what I'm doing, which is using
13:21
the D3 math. Some of it
13:23
is really valuable and some of
13:25
it is just like you could
13:27
have like three functions built by
13:29
clients that are going to do
13:31
this. So anyway, what I'm saying
13:33
is, I can't... I mean, this
13:35
recharts, recharts has 2,800 closed issues
13:37
and 440 open. Chartjas has 6,800
13:39
closed issues and 400 or something
13:41
open. These are huge, gigantic libraries
13:43
that do a lot of stuff
13:45
and have a lot of weird
13:48
edge cases. The scope that they
13:50
like take on is insane. But
13:52
your but the super simple scope
13:54
is just so not like this
13:56
it feels not aligned with flux
13:58
to me. I guess that's my
14:00
problem. Like I don't view flux
14:02
as like this is the ultra-
14:04
simple, you know, components for your
14:06
really stupid, simple projects. Don't play
14:08
anything realness. This is not for
14:10
real projects. This is for your
14:12
very simple, don't, nothing complicated, super
14:14
easy. I don't know, dude. I
14:17
don't know. I mean, you know,
14:19
no, no, no, no. No, it's
14:21
definitely not it. It's, like, with
14:23
the date picker. Take the date
14:25
picker as not. The date picker
14:27
does everything you would get out
14:29
of any other date picking library
14:31
that you could find. Yes, exactly.
14:33
Yeah, exactly. That will not be
14:35
true of charts, right? It will
14:37
not be true of charts, right?
14:39
It will not be true of
14:41
charts. It will not be true
14:43
of charts. It will not be
14:46
true. So that's the difference. So
14:48
you took two months and built
14:50
dates, pretty much. with the other
14:52
day things out there. I'm sure
14:54
there's some edge cases, whatever, blah
14:56
blah blah. But it's like 90%
14:58
of the other ones. You are
15:00
not going to be 90% on
15:02
this chart library in six weeks
15:04
to edit these big chart libraries.
15:06
Tell me. Unless you are. I
15:08
mean, maybe it will be. It
15:10
seems very unlikely. This chart is
15:12
going to be done by the
15:14
end of the week. Line charts,
15:17
multi-line line charts with coverable tooltips
15:19
and basic ticks. Zero dependency and
15:21
cumulative weight of like two kilobites
15:23
will be done by the end
15:25
of the week. Won't have ticks.
15:27
Right, won't ticks? Do I have
15:29
anything? This is the thing I
15:31
need you to at least acknowledge.
15:33
The majority of web apps and
15:35
any time I've needed charts and
15:37
web apps, I have only needed
15:39
what I have just described to
15:41
you. What I could have done
15:43
in a week. I build, right,
15:46
that's 100% not true. We have
15:48
like five different types of charge.
15:50
We have really complicated charge. We
15:52
have a heat map. You have
15:54
a multi-area area one. Yes. We
15:56
have three lines with a ball.
15:58
underneath like so I don't I
16:00
have not built the real app
16:02
that's just like here's a single
16:04
line line chart or whatever that's
16:06
an ultra simple line chart I'm
16:08
not I've not personally worked on
16:10
something like that. So and what
16:12
you're describing heat maps and whatever
16:15
like there's no that's not like
16:17
a off-the-shelf component lab you know
16:19
I'm not gonna offer heat maps.
16:21
Like what if you have to
16:23
build it in this scenario? That's
16:25
my point. I need why you
16:27
don't need to build it all?
16:29
I need a junk drawer. Like
16:31
what I need is I want
16:33
this charting library, but I also
16:35
want as soon as you reach
16:37
the end of it, you go,
16:39
I need D3. And then there's
16:41
some way for you to just
16:44
use D3 or whatever or chart.
16:46
I mean, you could just use
16:48
chart. You could use any of
16:50
these things and I could provide
16:52
like. Yeah, if you want to
16:54
hear a simple one, right? But
16:56
then you also have some type
16:58
of Caleb, nicely integrated chart JS
17:00
thing, that's probably only going to
17:02
take you another week or whatever,
17:04
right, to come up with a
17:06
reasonable API and the components and
17:08
whatever to pass things around and
17:10
let you get at the underlying
17:12
config if you need to, makes
17:15
it look like the rest of
17:17
flux and react to its beaming
17:19
and blah blah blah blah. Then
17:21
you have that then you have
17:23
like basic charts and advanced charts
17:25
advanced charts. I'm shipping you over
17:27
here charts That's a good a
17:29
good way to but with a
17:31
helper with a little helping hand
17:33
so that you don't have to
17:35
spend three days figuring out how
17:37
to like make chart jas look
17:39
like the rest of your completely
17:41
flux app like Caleb's already done
17:44
that part. It all works nice
17:46
together and if you need all
17:48
these other feet on that I'm
17:50
not recommending chart jas, but Whatever
17:52
one of them right obviously there's
17:54
multiple ones But there's an integration
17:56
there that feels Organic if you
17:58
have a more advanced need. There's
18:00
not a lot of good stuff
18:02
outside of react so it's like
18:04
hard to just pick one like
18:06
we could use chart j s
18:08
it and so this is my
18:10
fear is is like if you
18:13
look at filament charts they I'm
18:15
pretty sure they use chart j
18:17
s and the experience of using
18:19
it is like you just have
18:21
it's so much configuration and whatever
18:23
like somebody who needs the thing
18:25
just needs the thing and they're
18:27
gonna eat whatever shit they need
18:29
to eat so that's 100% true
18:31
but it's like my answer I
18:33
can't part of that's each chart
18:35
It doesn't make any sense. Like
18:37
you should do that yourself. You
18:39
need this. Well, you're a web
18:42
developer, just do it, you know,
18:44
like. Sure. But I feel like
18:46
that's not the promise of flux,
18:48
right? I don't know. I don't
18:50
think the promise is like everything
18:52
you'll ever need ever in a
18:54
web app. It's like, you know,
18:56
I don't know. Maybe it is.
18:58
But like, I don't know if
19:00
it's reasonable for me. Like if
19:02
you go to Shadsey, I mean,
19:04
This doesn't apply. If you go
19:06
to Shadsey-N, like, they're showing you
19:08
simple bar charts, simple line charts,
19:11
like, very simple, out of the
19:13
box, what you need. But of
19:15
course, this whole argument, the points
19:17
moot because you can just configure
19:19
recharts. I mean, you go on
19:21
their charts, there's all kinds of
19:23
stuff. There's pie charts, there's all
19:25
different colors, there's stacked bar charts,
19:27
there's a stacked bar charts, there's
19:29
negative. Bar charts, there's like hundreds
19:31
of charts in here. I, radar
19:33
charts. Yeah, at the very top
19:35
navigation click charts. There's radar charts,
19:37
there's radial charts. I was just
19:39
in the chart component. Yeah, yeah.
19:42
Yeah. Yeah. This is what I
19:44
want. I want this. All right.
19:46
Let me build it for you.
19:48
Yeah. Go with me here. Yeah.
19:50
First chart. We have to just
19:52
unfortunately describe this. listener. First chart.
19:54
This I could show, oh well,
19:56
I guess, I don't know if
19:58
we're going to put the video
20:00
out. No, no video. No video.
20:02
That's just, yeah, that's fine. So
20:04
first chart, two lines, both have
20:06
area underneath it and categorical labels,
20:08
Jan Fab March, April, May, June,
20:11
and then horizontal, horizontal lines. Like,
20:13
yeah, and then the tool tip
20:15
with the values and the colors.
20:17
This is, this is basically done.
20:19
This to me is what I'll
20:21
have, MVP ready. Bar charts, I
20:23
gotta figure out bar charts. All
20:25
right, so this one, but this
20:27
one's doable. Like if I decide
20:29
to do bars, this is very
20:31
doable. Pie chart, this is where
20:33
I had a, so I had
20:35
a talk with Claude and Claude
20:37
thinks I, that line charts are
20:40
like 80% of the use case
20:42
like that I need, or maybe
20:44
70%, bars are like 20% and
20:46
then this pie stuff is like.
20:48
Like, and then there's a lot
20:50
of like people like there's warnings
20:52
I guess like it's not always
20:54
a good practice even to use
20:56
a pie chart like I don't
20:58
like this angle you're going on
21:00
here. People find it like confusing.
21:02
But see here's the thing that's
21:04
not that's not your issue because
21:06
are you making an educational site
21:09
for the best way to people
21:11
to chart or are you giving
21:13
developers what they've been a tool
21:15
that they can use to build
21:17
what they've been told to build
21:19
or that they think they need
21:21
they need to build or that
21:23
they need to build or that
21:25
their customers are asking help spot.
21:27
My customers want certain types of
21:29
charts. Maybe it's not the best
21:31
type of chart, right? But maybe
21:33
that's not my job to tell
21:35
them you're being an asshole and
21:37
you're being stupid. Why are you
21:40
using that kind of chart? No,
21:42
we don't have that kind of
21:44
chart because it's stupid. Why are
21:46
you doing that? I'm just going
21:48
to give them the kind of
21:50
chart they want. So like, that
21:52
I think is where to me,
21:54
like that should be your mindset
21:56
in my opinion. Oh man, there's
21:58
no bar chart that's stacked. Like
22:00
and... So you can then have
22:02
a conversation with them about why
22:04
it's dumb and Claude said that
22:06
you shouldn't use pie charts or
22:09
whatever, right? Or you can make
22:11
the sale and say, I'd be
22:13
like, yeah, we got pie charts.
22:15
Give me $600 now. Great, I
22:17
got your $600. You have
22:19
pie charts. Everybody's happy, which
22:21
is what I'm thinking is the
22:23
better option. Okay, so let's say,
22:26
let's do it. We're gonna do
22:28
it. I asked Claude what are
22:30
the non-react open source charting libraries
22:32
so D3 number one that's kind
22:34
of out like do you think it's
22:37
like a lower level thing right is
22:39
that correct level like you can't just
22:41
be like line me you know
22:43
you really have to build up
22:45
like the SVC yourself you're still
22:47
creating yeah the problem with chart
22:49
JS well one of the many
22:51
problems is it uses canvas and
22:53
not SVC okay which is like kind
22:55
of fine but makes it just
22:57
way heavier and whatever. Why do
22:59
I care? Flexible. You might not
23:02
care. I don't care. I 100%
23:04
don't care. All right. I could
23:06
imagine caring less to be honest.
23:08
Plotty. Plotty. Plotty. J. Plotty. J.
23:10
Plotty. J. Plotty. J. Ploty. J.
23:12
I mean, I guess I'll just
23:14
have to look into some of
23:16
these and see what's going on.
23:18
But I bet high charts, but
23:20
that high charts, but that's a
23:23
commercial license. Yeah, I've heard people
23:25
use high charts. I've definitely heard
23:27
of that. Whoa, dude, yeah. I
23:29
don't know. Or the recharge thing,
23:31
is there a way to, is there
23:34
a way to port it? Could you
23:36
and call do some work on porting
23:38
it? I don't know, it depends how
23:41
it's built, right? You initially said it's
23:43
a thin layer around the three. So
23:45
if it's actually a thin layer around
23:47
the three, maybe you can just port
23:50
it. Did I say thin. It's probably
23:52
a sick layer. A sick layer around
23:54
the three would be something different. Again,
23:56
I don't love that option because then
23:58
you are still maintaining it. I'll prefer
24:00
you to be maintaining the API, the
24:02
flux API to it is the thing
24:05
Kayla maintains. Not Kayla maintains a whole
24:07
charting library. Yeah. All right, go with
24:09
me. Tell me. I'll come to you
24:12
now on this. Come to me. Tell
24:14
me the world where this works and
24:16
where this is a good idea. Give
24:19
it to me. Where, which part? Your
24:21
side. Give me my side. Give me.
24:23
Yeah, give me even just a pro
24:25
of the light library. Okay, see, I
24:28
think a lot of things you think
24:30
are pros, I definitely don't think are
24:32
pros. Some of that is just built
24:35
into a thing, like developer, there's some
24:37
things that are just differences between you
24:39
and I, and that sort of like,
24:41
like a segment, the developer community of
24:44
like two groups of people. Right. And
24:46
I am firmly in this group and
24:48
proud. So like, that's a part. So
24:51
we're not going to change that. So
24:53
I guess the thing I like, if
24:55
you're saying that. If you're saying the
24:57
ultralight. thing is going to be done
25:00
next week or whatever, right? Then I
25:02
think that's definitely a benefit. That's probably
25:04
the biggest benefit to me. Because I
25:07
think you going off for two or
25:09
three months while you have like competitors
25:11
and all this stuff, you've got to
25:14
be out there selling, right? So if
25:16
you disappear to build a chart library
25:18
for three months, I think that's a
25:20
disaster. So I think in that regard,
25:23
it's like, hey, it's out next week,
25:25
it's for lines. Maybe you find out
25:27
that that truly is enough and nobody
25:30
really wants anything else. And fine. And
25:32
when they do, you just say go
25:34
obviously, you can just implement whatever you
25:36
want, just load up chart jazz or
25:39
whatever you want to do. And I
25:41
think that's fine. I guess to me
25:43
that wasn't like, you know, it's fine.
25:46
It's not exciting. It's not like there's
25:48
going to be a page on flux.
25:50
It's like, oh, would you click charts?
25:53
Like when I click charts on Shad
25:55
CNN. I'm like, damn, this has everything
25:57
I could want, whatever I need to
25:59
build, this thing has it. Whereas when
26:02
I click. on Flux, there's going to
26:04
be a line chart that might not
26:06
have ticks, and that's going to be
26:09
the whole thing, right? And so that
26:11
is not going to make me feel
26:13
like, oh, this is no matter what
26:15
criteria comes up in a year from
26:18
now, when someone says, hey, we got
26:20
this new feature, we got a little
26:22
chart, and I'm going to be like,
26:25
oh shit. Now I can only use
26:27
line charts. So now I got to
26:29
bring in another package to do a
26:32
different chart to do a different chart.
26:34
this chart is going to look totally
26:36
different than this other chart. So I'm
26:38
going to figure out, can I make
26:41
them look the same? I don't know,
26:43
like you've got this custom methodology thing,
26:45
how am I going to figure out
26:48
how to back change that into the
26:50
make it look like this new chart
26:52
yes thing I have to do or
26:54
whatever? So, you know, I think just
26:57
in terms of like overcoming objections, it's
26:59
hard when you're not going to have
27:01
a really flushed out offering there. If
27:04
this is important, maybe it's not important.
27:06
Yeah, yeah, yeah, yeah, yeah. Maybe you
27:08
shouldn't have anything. I mean, that's that's
27:10
another thing too. Like, this is a
27:13
thing that people don't think about, but
27:15
you could think about it the other
27:17
way. It's like, maybe you shouldn't have
27:20
charts at all. Right. Is it better
27:22
to have nothing than to have something
27:24
that's weak? Right. Potentially. I don't know
27:27
if that's true in this case, but
27:29
it might be. big item that people
27:31
want included. It's tricky. I agree that
27:33
that this is foolish in like if
27:36
I'm thinking about like flux as a
27:38
business and where time goes and where
27:40
users of flux want time to go,
27:43
even what I want to be doing.
27:45
It's like I don't think I want
27:47
to be like fiddling with like charting
27:49
bugs all day. I think it was
27:52
that I started on this, I think
27:54
I started on this path thinking like,
27:56
let's just see what I can do
27:59
with charts, totally open mind, and got
28:01
into it and realized like, there's nothing
28:03
good and to. do the good thing
28:06
yourself you end up pretty much doing
28:08
everything yourself anyway with D3 and then
28:10
I sort of found some things that
28:12
I was like excited about was like
28:15
wow I could the thing that you
28:17
know that speaks to me that's different
28:19
thing that I always wanted was a
28:22
super lightweight SVC charting library like how
28:24
hard could this be like a few
28:26
kilabytes give me a kill me with
28:28
the kilowites dude it matters to me
28:31
it doesn't matter it's irrelevant So, all
28:33
right, I mean, Chuck Jass, I just
28:35
saw, is tree shaking. So, in theory,
28:38
you know, only ship the kilabytes that
28:40
you use. So, I mean, right, but
28:42
with Charles, that's, it's gonna be a
28:45
lot. Like, I'm sure it's 100. Okay.
28:47
That's what the matter. Okay. So, I
28:49
get it. Yes, yeah. So you have
28:51
that. So you have the light, it's
28:54
light. But you really aren't like, like,
28:56
like, I thought the whole thing would
28:58
be rocket science. And then I opened
29:01
it up and went, a bunch of
29:03
this is very simple. I'm a major
29:05
fan. I came across in the podcast
29:07
because it's like I can't even do
29:10
ticks is kind of where we're at.
29:12
That doesn't seem like, that's like the
29:14
most basic part of the choice. The
29:17
rocket science. You're like, you're like, we're
29:19
already at rocket science for the ticks.
29:21
Like, there's a lot of other things
29:23
in there though. I was pretty breezy
29:26
until I got in the ticks. Like,
29:28
like, but even just the things we
29:30
first talked about, like the X-axis labels
29:33
labels. Yeah. Now I have to figure
29:35
out the spacing of the exact labels.
29:37
What if the data is variable? Again,
29:40
our charts, it's always variable. It's not
29:42
just like always 12 months. It's going
29:44
to be my time, it might be
29:46
48 months, might be five years, might
29:49
be one year, might be whatever. So
29:51
now I have to come up with
29:53
all the math to figure out like,
29:56
well, how wide is this thing? chart
29:58
config chart dot label I would like
30:00
to know how much configuration is about
30:02
like in some of these shad examples
30:05
like is he saying somewhere like in
30:07
this is all recharts raw are there
30:09
parts of it that are like yeah
30:12
tick formatter so it's a callback that
30:14
receives the day okay so he's there's
30:16
okay so here's a component called x-axis
30:19
for recharts okay And it's got the
30:21
key, the data key, you know, that
30:23
you're using, tick line if you're rendering
30:25
that or not, axis line if you're
30:28
rendering that. Okay, tick margin. Also find,
30:30
like, this is all stuff that can
30:32
be configured, done in an SVC, like
30:35
you can literally just size the SVC
30:37
differently. I know you don't want to
30:39
get in SVC. Sure. Min-Tik gap. Yeah,
30:41
that's where it's where it's like. So
30:44
start to get into like it's doing
30:46
so much aware of some stuff I
30:48
really want I shouldn't mess with the
30:51
recharge and see what happens if you
30:53
put like that that to be like
30:55
64 like doesn't how to you know
30:58
Yeah So then I've used in the
31:00
past two there are like you can
31:02
it'll drop off labels and things if
31:04
it needs to with some kind of
31:07
smartness, which don't always work great to
31:09
be fair. They are definitely downside there.
31:11
But what else is out here is
31:14
like a formatter. So the tick formatter
31:16
is a callback that accepts the date
31:18
object and then you are in charge
31:20
of converting a date object into English
31:23
and you would use JavaScript international date
31:25
time. Right. Formatter and whatever. So that's
31:27
like, yeah. I mean, the hard part
31:30
about my thing. is like, how would
31:32
you even, like if I create, if
31:34
I had a chart JS or something,
31:37
where am I giving you that configuration
31:39
ability? You know, where are you writing
31:41
tick formatting code? You're in the API
31:43
guy, I'm not the API guy. You
31:46
know what I'm saying though? I do.
31:48
It's like with this, you're already in
31:50
job. script so you can just pass
31:53
a callback you're already in react with
31:55
backendy stuff and live wire stuff it's
31:57
like you can't write that in PHP
31:59
because that's on the back end and
32:02
you don't on your chart to have
32:04
to like call back every time it
32:06
needs to play well label. But wouldn't
32:09
you for you send it in formatted
32:11
that's how I've always handled it. So
32:13
have you interesting have you formatted the
32:15
labels of the like do you generally
32:18
send in the labels to a chart
32:20
formatted that's what I used to do.
32:22
Yeah, that's what I would do. Generally
32:25
speaking, I mean, I don't know if
32:27
I've done it that way every time,
32:29
but that's usually how I would think
32:32
about it. I guess I'm sending, I'm
32:34
giving the chart library the exact stuff,
32:36
right, and formatted and ready to go,
32:38
and then it's charting. The part where
32:41
it gets tricky is if you have
32:43
like a thousand data points within two
32:45
months or something, you don't want the
32:48
ticks to be on a time interval
32:50
and display the time, which you can't.
32:52
No, I had, you know, like you
32:54
can't format that I had unless you
32:57
knew how many ticks would be rendering.
32:59
That's where it's true. They do it
33:01
stupidly, right? Like it's just like, well,
33:04
we can only show one and every
33:06
10 ticks. Right. So you would just
33:08
do one every 10. Like we're not
33:11
like relabling it necessarily to be grouped.
33:13
That you could do that then have
33:15
some grouping or whatever, but that would
33:17
be a separate chart. Into your heart,
33:20
Ian. Yeah, do it. What if you
33:22
have to take this at face value?
33:24
What if I could create a line
33:27
charting library and bar charting library that
33:29
did all of these things all that
33:31
automatic tick stuff all that formatting stuff?
33:33
Space stuff line multi lines areas bars
33:36
stacked bars horizontal grids vertical grids vertical
33:38
grids tooltips the whole thing what if
33:40
I could do that? How would you
33:43
feel about my approach? I mean, I
33:45
still would not prefer it. because the
33:47
end of the day if I want
33:50
a scatter chart and this doesn't offer
33:52
a scatter chart now I'm in the
33:54
place where I have to use two
33:56
different chart libraries I have to try
33:59
to make them look the same that's
34:01
always a disaster it's gonna be impossible
34:03
right so like I don't love that
34:06
I mean it's probably if you got
34:08
it more full-featured like that right like
34:10
it's you're probably capturing more of your
34:12
core use case group right like now
34:15
instead of like Maybe lines only is
34:17
good enough for like, I put the
34:19
number much lower than Claude and you
34:22
do, I mean, I think it's probably
34:24
like 30 or 40 percent, but if
34:26
you get bars and it does all
34:28
the magic stuff that you kind of
34:31
want, you know, then maybe it is
34:33
like 70 percent or something like that.
34:35
And so maybe that's enough. So I
34:38
think that gets you closer at least.
34:40
It sounds like it's like annoying that
34:42
because if you have a more what
34:45
I would call a more sophisticated or
34:47
real use case than like not real
34:49
is not appropriate right but like a
34:51
sophisticated use case which I think a
34:54
lot of people do when you're getting
34:56
into charting things you're already at a
34:58
certain level of app I think in
35:01
terms of yes not the like every
35:03
admin builder you've ever seen that's like
35:05
we have a little chart in the
35:07
top here like yeah rarely you see
35:10
that in a real apps but you
35:12
always see it in admin builders right
35:14
but in real apps you see the
35:17
40 sections single line yeah the little
35:19
single you know here's three pills at
35:21
the top of the chart and it's
35:24
a little thing like that's fine but
35:26
like in real apps you rarely see
35:28
that news case but in but you
35:30
do see like here's the reporting section
35:33
in the reporting section there are lots
35:35
of reports that show you all different
35:37
stuff. I'm never gonna, that's usually, they
35:40
have different types of charts in them,
35:42
like that's what's in the reporting section.
35:44
Yeah, dude, it's tricky. I hear what
35:46
you're saying, I'm having, you know, a
35:49
big part of this is the, this
35:51
is just the like, um, builder, addictive
35:53
thing, you know, you know, you like
35:56
to be in full control of your
35:58
code and what you're shipping. Yep. And
36:00
I gave that up with the text
36:03
editor because I feel... I felt like
36:05
there was a wall of like something
36:07
I'm unwilling and unable to do. Yeah,
36:09
this is very similar to that. I
36:12
feel like this is very similar. That
36:14
is a very complicated area. If you
36:16
really were to go all the way
36:19
down in there, that is very, very
36:21
complicated. Yep. And this feels like that
36:23
as well. To me, maybe that's not
36:25
true. I've never tried to build a
36:28
chart library. Anything over lines and bars
36:30
feels that way to me. That's the
36:32
line. falls off a cliff and yeah
36:35
but man yeah reporting I mean I
36:37
guess I hear what you're saying I
36:39
now I don't know bro don't you
36:41
think you're gonna have a ton of
36:44
bugs and stuff even just through lines
36:46
and bars but sophisticated lines of bars
36:48
if you go sophisticated lines and bars
36:51
yeah a lot of work in there
36:53
don't you think it would be these
36:55
things would be all over the place
36:58
there's gonna be things like I could
37:00
see people's data sets being like so
37:02
Bazaar that like, you know, I don't
37:04
know, one of them is like way
37:07
off the chart and it messes up
37:09
the whole chart and they're like, yeah,
37:11
definitely going to have that, you know,
37:14
negative values is something that's negative values,
37:16
you have to account for. Yep. Did
37:18
you like quadrants? What about quadrants? I
37:20
want like, I guess that would be
37:23
more for like a scatter. You never
37:25
have a line with quadrants. Would you
37:27
have a bar with quadrants? Probably not.
37:30
That's a good edge case thing, so
37:32
probably not. But negative, definitely, below the
37:34
X axis for sure. And that is
37:37
where it gets weird and bad. All
37:39
right, so this, this is, so, I
37:41
mean, when I think about that stuff,
37:43
yeah, it's, it's like I want to
37:46
tackle all that stuff, but it'll take
37:48
me three months. It's not a week
37:50
long thing. If you build a thing
37:53
with D3. You end up having to
37:55
do all that stuff yourself. Like, you
37:57
end up having to just like account
37:59
for that. I wonder what chart JS
38:02
does. Maybe I just forced myself to
38:04
spend a few hours using all of
38:06
these libraries and trying to break
38:08
them and seeing how bad their APIs
38:10
are. Yeah, I don't know, man. I mean,
38:13
I guess which way the other thing is like
38:15
you could look at it more
38:17
like that's where again, like my
38:19
upside, the kind of positive takeaway
38:21
I had of like what you're
38:23
building right now if you just
38:25
ship lines is the idea of like,
38:27
then you can find out. Sort of
38:30
at least to some degree like Hey,
38:32
everybody's like I need
38:34
more than this or everybody's like
38:36
this is fine I do think I
38:38
Don't know I think there's the
38:40
people you interacted right who
38:42
are going to tell you whatever this
38:44
is great, but I do worry I
38:46
guess that if I'm like looking at
38:49
Shad Sien and I'm looking at flux
38:51
and I got the charts page like
38:53
you just have no story for
38:55
that which maybe isn't a problem
38:57
right but maybe it is I don't know,
38:59
but it feels like it could be a problem.
39:02
No, absolutely. No, a big part of
39:04
it. At the end of the day,
39:06
it's tricky, man. This is the classic,
39:08
like, I've used this example a
39:10
hundred times, but when, like,
39:12
before, Bootstrap had themes, and I
39:14
would use, like, Edmund LTE and these
39:17
other themes, like, they kind of looked
39:19
like crap, they were really narrowly to
39:21
configure and deal with, but they did
39:23
everything. And then I remember using
39:25
bootstrap themes and feeling like this is
39:27
such a breath of fresh air. It's
39:29
like there's so much more that I
39:31
had to do. It was like clean and
39:33
minimal and simple and just didn't feel like
39:36
shit. But then I also remember feeling like
39:38
this doesn't do anything. It's just displays for
39:40
things. And I have to like, oh, if
39:42
I want to add that, I have to
39:44
build that. Like I don't even know how
39:46
to build that. So it's a balance of
39:48
like making something that feels. And that's
39:50
where Shadsey is doing it
39:52
perfectly well with charts, because
39:54
they're basically just giving you
39:56
configuration for recharts, which is
39:58
a good library. But I just
40:01
don't know of a library that
40:03
feels good like that. But maybe
40:05
chart chess isn't as bad as
40:07
you think it is. I don't
40:09
know if that's true or not.
40:11
I mean I've used a lot
40:13
and I have in Alpine components
40:15
I have a chart JS integration
40:17
and whatever and it often takes
40:19
me like I mean they used
40:21
it in pulse I'm pretty sure
40:23
and I remember helping Jess with
40:25
a lot of that chart JS
40:27
stuff and just like kind of
40:29
seeing how to wrangle it to
40:31
get it to work to get
40:33
it to work. It's at 50
40:35
lines, it's so much config, it's
40:37
gross. Anyway, I guess I just
40:39
think when I think about like
40:41
the big picture, yeah, why is
40:43
somebody going to use live wire?
40:45
Why, okay, there's no, part of
40:47
the big negatives was there was
40:49
no component library, right? Now there
40:51
is a first party component library
40:53
for live wire. Yeah. I guess
40:55
I feel like there is a
40:57
sort of. implied there's something implied
40:59
there to me that it's going
41:01
to be fairly feature complete yeah
41:03
at some point right and so
41:06
like so now I'm comparing should
41:08
I use react should I use
41:10
live wire should I use view
41:12
what are the different component libraries
41:14
everybody's on the component library tip
41:16
right nobody wants to build components
41:18
anymore I wanted it's table stakes
41:20
whatever my JavaScript reactive JavaScript solution
41:22
is I want there to be
41:24
components. So I don't have to
41:26
do that and I can get
41:28
right to my business stuff, right?
41:30
So like, I guess that's just
41:32
where I come from. It's like
41:34
when people look at all this
41:36
and they're making a choice on
41:38
a project, I just feel like
41:40
if flux, the more feature complete
41:42
flux is then the higher likelihood
41:44
they choose live wire and flux
41:46
over inertia and react. So this
41:48
is where this is where it's
41:50
different. This is what makes this
41:52
stuff hard. Is in react. you
41:54
have radics, base ui, react area,
41:56
recharts, you have, I mean I
41:58
literally, you could... just have the
42:00
react ecosystem which is incredible and
42:02
capable and polished every other command
42:04
palette built for them everything their
42:06
drop-downs their many everything is all
42:08
built but listen but listen well
42:11
hold on let me finish my
42:13
spiel finish your spiel out of
42:15
the gate you just have the
42:17
react ecosystem which is incredible and
42:19
capable and polished every other ecosystem
42:21
doesn't have that including view but
42:23
They have some semblance of that.
42:25
Right. The vanilla, JS, back-end rails,
42:27
Python, Jango, not put, yeah, whatever,
42:29
Jango and Phoenix and Laravel have
42:31
none of that. We have old
42:33
crusty J-query libraries. Nobody's building vanilla,
42:35
you know, that's just, you don't
42:37
have that, that horsepower horsepower. So
42:39
I rolled up my sleeves and
42:41
wrote. a drop-down menu and went
42:43
to the ends of the earth
42:45
on a safe dragover and like
42:47
every little piece like that. And
42:49
I think, because it's like, I'm
42:51
better off, that's the story of
42:53
flux, like I've done this, every
42:55
component you could have said what
42:57
you're saying right now about. But
42:59
I went the other direction, found
43:01
out that I can maintain giant
43:03
piles of complicated JavaScript, just like
43:05
anything else, you get the big
43:07
bugs up front and then, you
43:09
know, and then you have a
43:11
long tail of small stuff small
43:13
stuff that most people don't even
43:16
encounter. Yeah, I don't know. You
43:18
know what I'm saying? Yeah, I
43:20
don't know. See, so it gives,
43:22
I guess to me, it's like,
43:24
there's two angles there. One is
43:26
that like, Shad embraced all these
43:28
external libraries, right? And I get
43:30
what you're saying that they are
43:32
superior libraries. That's the point I'm
43:34
making is they're superior. Right. Because
43:36
Shad can throw together a bunch
43:38
of components based on top of
43:40
a bunch of open source. pretty
43:42
high quality to very high quality
43:44
libraries right you couldn't do that
43:46
and i i i don't think
43:48
I would have said that for
43:50
all things like I don't think
43:52
I would say you select to
43:54
because I think that would be
43:56
janky maybe you could but I
43:58
bet when I said that I
44:00
bet at that point I don't
44:02
think you would have said that
44:04
knowing the complexity involved I don't
44:06
know about for select to the
44:08
complexity on select to is steep
44:10
like very steep so select two
44:12
is like unmaintained though see that's
44:14
a difference like I don't think
44:16
that's true of like chart JS.
44:18
Do you know what I'm saying?
44:21
So that's there's places where you
44:23
can hedge a little bit like
44:25
the WhizzyWig. This is a maintained
44:27
thing, the tip tap or whatever,
44:29
right? And chart JS is a
44:31
maintained thing. I mean, it's got
44:33
65,000 GitHub stars. So it's not
44:35
like, oh, I'm pulling this library
44:37
that's like 800 people depend on.
44:39
So. It's not, like you're not
44:41
going way out there and taking
44:43
a huge risk. And you could
44:45
always work backwards, I feel like.
44:47
It's like, hey, if it doesn't
44:49
work out, there's a too clunky
44:51
ultimately, then as time allowed, you
44:53
could always swap it out or
44:55
build something in addition to it.
44:57
But I don't know. I just
44:59
think there's a couple of big
45:01
spots where like using libraries is
45:03
going to give you an advantage.
45:05
You're a one man show, you're
45:07
in there, you're hacking everything, you're
45:09
maintaining all this other JavaScript. That
45:11
is stuff where you couldn't, there
45:13
aren't good alternate solutions. Even the
45:15
date stuff, you know, maybe you
45:17
could have, maybe you couldn't have,
45:19
but I think, you know, you
45:21
want me over to like your
45:23
solution being superior there. I think
45:26
that makes sense. Because again, the
45:28
date stuff, I think there is
45:30
a lot of stuff that's not
45:32
maintained and things like that. You
45:34
don't want to use anything like
45:36
that makes sense. But I don't
45:38
think that's the case here. I
45:40
hear what you're saying. I hear
45:42
what you're saying, Ian, and what
45:44
am I going to do about
45:46
it? I don't know, but I
45:48
will say that I was pairing
45:50
with Josh. handly and he said
45:52
like he said like so I
45:54
guess this is the announcement we're
45:56
doing a flux 2.0 and we're
45:58
bundling a stuff bunch of stuff
46:00
together and I was like let's
46:02
just see if I can bang
46:04
out you know some charts here
46:06
real quick and so yesterday I
46:08
was pairing with him and he
46:10
said yeah he's like well you
46:12
know you need to like announce
46:14
flux too and and like we
46:16
should put a date on the
46:18
calendar for when to do that
46:20
and he's like just don't do
46:22
it Don't say charts until after
46:24
the end of this week. You
46:26
know, don't say anything. Don't, yeah,
46:28
don't be committed to it. Yeah,
46:31
like don't publicly say flux 2.0
46:33
will include charts until you're sort
46:35
of done with this week that
46:37
it's going to take you to
46:39
get it done. You know, yeah.
46:41
Okay, so let me just, I
46:43
got to ask you one more
46:45
thing. Yeah. If because, because when
46:47
we end this call, I am
46:49
left with actual decisions to make.
46:51
If I build a minimal charting
46:53
library that does lines, maybe bars,
46:55
will it, even, is there a
46:57
world where I build it? It's
46:59
in there. It serves a good
47:01
amount of people. And then I
47:03
can upgrade it. without like kicking
47:05
myself in the face or looking
47:07
bad or it being a bad
47:09
experience like is there something here
47:11
like should I call it flux
47:13
simple chart or something right like
47:15
that seems like the obvious solution
47:17
like basic charts simple charts fast
47:19
charts svg charts svg charts like
47:21
if these you ship is or
47:23
this which is like the basic
47:25
line charts just to get people
47:27
rolling do the little simple charts
47:29
at the top of your table
47:31
whatever fine And then you can
47:33
decide for advanced charting, what does
47:36
that look like? Is that? Yeah.
47:38
Are you just going to forever
47:40
tell people? to pull in something
47:42
different, do you want to make
47:44
it more integrated? Maybe you can't,
47:46
maybe it, maybe there isn't a
47:48
good way to make it more
47:50
integrated and it is best to
47:52
just let people do it on
47:54
their own. I mean, Younger Kill
47:56
would have been like, I got
47:58
my next, my next big like
48:00
thing. I'm going to be a
48:02
charting guy because there's a giant
48:04
hole. There's like this giant gap
48:06
between like high charts and everything
48:08
else in the video jazz world.
48:10
There's nothing simple. I mean people
48:12
do pay for these charting libraries
48:14
like it's a thing I've paid
48:16
for it for years. I think
48:18
there needs to be a simple
48:20
free open source charting library that
48:22
is limited in scope and I
48:24
bet it would take off. It's
48:26
like lines, bars, basic stuff. No,
48:28
are you telling me for serious
48:30
there's not 50 of those out
48:32
there that has to be. Not
48:34
that I'm aware of. But maybe
48:36
it this supports your point of
48:38
like. anything like that inevitably won't
48:41
be popular because you're gonna go
48:43
I need it to support you
48:45
know infinite values or whatever it's
48:47
so rough when you build a
48:49
chart is always a disaster right
48:51
like it's yeah all this data
48:53
it's of heavy queries it's complicated
48:55
queries it's all this stuff right
48:57
just on the back end now
48:59
I gotta display it and people
49:01
want to be able to click
49:03
the chart and have it go
49:05
to a different page and show
49:07
you detail views all the stuff
49:09
it's like to not be sure
49:11
that when I need a different
49:13
chart that this library can do
49:15
both charts, it feels like a
49:17
big ask. Now again, I don't
49:19
know if people are doing very
49:21
simple things and they know they're
49:23
only going to align charts fine.
49:25
But I can't really imagine any
49:27
B to B app feeling that
49:29
way. And I don't know, just
49:31
there is always just more complication
49:33
with these things. The reason they're
49:35
big in huge libraries is because
49:37
it is a very complicated problem.
49:39
And I don't think that there
49:41
is a like easy simple solution
49:43
if you want to provide the
49:46
same feature set or a similar
49:48
feature set. Of course, you could
49:50
just not have all the features
49:52
and then it's just a line
49:54
on a page. Great. Like, I
49:56
mean, you could do that in
49:58
each. You don't even need that.
50:00
You don't need anything. Like you
50:02
could make a line with some
50:04
CSS or whatever. But you know, at some
50:06
point, like you wanted to do all these
50:08
other things, people would be like, oh, inside
50:10
the tool tip. I want to be able to
50:12
put a link in there. I want to be
50:14
able to show more data inside a tool tip,
50:16
not just. Don't just give me the
50:19
data that the point is, I want
50:21
to be able to do other data
50:23
inside that tool tip with details and
50:26
whatever, right? Like there's all these things
50:28
when you get into the chart what
50:30
people want to do, depending on. But
50:32
like I, there's no world where I'm able
50:35
to offer a nice API with chart
50:37
or whatever, where you can put your
50:39
nice details inside a tooltips and not.
50:41
Oh, come on, I believe in you,
50:43
Caleb, I believe in you. No way,
50:46
no way. There's no. I pretty much
50:48
need to offer some sort of, so
50:50
what, I mean, what filament does
50:52
is, you figure out all in PHP. Yeah.
50:54
And it's just, but it's a lot, like,
50:57
it's, it's a very, I mean, yeah,
50:59
I don't want to, I like that, I
51:01
like that a lot. I like that a lot.
51:03
I want that a lot. I
51:05
want that, I just want to
51:07
be, I just, this is the
51:09
problem with a live wire, right?
51:11
I just want to stay in
51:13
PDPP land. If there's a chart
51:15
object or whatever that I have
51:17
to populate with data and then
51:19
the data points can have objects
51:21
which have details and whatever, blah,
51:23
blah, blah, blah, that sounds amazing.
51:25
I love everything about that and
51:27
then you're spitting out a bunch
51:29
of JavaScript gobbledygook that's 500 lines
51:31
long that talks chart JS or
51:33
whatever library is. That to me sounds
51:35
optimal. For the advanced use
51:37
cases, definitely overkill. For
51:40
a simple use case. Yeah, I just have
51:42
this 50 points of data. It's
51:44
a date and a value and
51:46
that's it. Nobody wants anything else.
51:48
Nobody wants to click it. Nobody
51:50
wants to do anything. Yeah, fine. Like,
51:52
that's that's simple. All right,
51:54
I'm gonna finish burning my week. If and
51:56
then at the end of the week, I
51:58
will decide where you're at. if this is
52:00
a giant mistake and I'm gonna hop
52:02
on a like a screen share with
52:04
you at at some point and see if
52:07
I can show you something that you
52:09
are like let's do it flows me
52:11
away I'm not sure that you'll be like
52:13
let's do it unless I'm sure that
52:15
you'll be like let's do it unless I'm
52:17
sure the line you're coming up it's
52:19
gonna be awesome but it's just the problem
52:22
is when I need a scatter chart
52:24
and this chart see anything didn't I Oh
52:26
yeah, there's scatter chart, but it's, you
52:28
know. Oh, scatter chart. I'll make you
52:30
a scatter chart, are you kidding me? Yeah.
52:32
Don't do it. Not on a grid?
52:34
I know, I know, the scatter chart's one
52:36
of the easier ones. Let's go, let's
52:38
do a scatter chart. Not really different than
52:41
a line chart, really. It's sort of
52:43
the same thing, but without the lines. Let
52:45
me build you. Like a Cartesian if
52:47
it's a Cartesian grid thing I'm in no
52:49
radar charts. No None of that soon
52:51
as we get polar. I'm out Until
52:53
I crack open that black box realize it's
52:56
humanly possible to learn it and then
52:58
want to do it No heat charts you
53:00
give me the heat charts. No way
53:02
can't do it won't do it. Is that
53:04
thing called re chart? Do they have
53:06
any of this stuff? No, they do have
53:09
the treat which is like a heat
53:11
chart. Yeah, they do have it They
53:13
have the tree map. I don't know what's
53:15
involved. Style it that way though, but
53:17
high chart. You must be able to. H.R.B.
53:19
dude. Oh yeah, they do. They do
53:21
have it. I mean, I mean. The thing
53:23
with all these charges, I don't think
53:25
any of these things are too hard for
53:28
you, right? Like I think you could
53:30
make a pie chart. Like I feel
53:32
very confident. You can do it. No, I
53:34
believe it. But the problem is like
53:36
the 8,000 million edge cases of like and
53:38
all the little sub things when people
53:40
want to show a certain way. That's where
53:43
all the trouble is. Not in like
53:45
can you draw a circle and divide it.
53:47
Like I feel like. Yeah, you could
53:49
definitely draw a circle and divide it
53:51
up into the parts and put a number
53:53
in it. Like, not gonna be a
53:55
problem. But when you wanted to magically fly
53:58
together with a nice animation and you
54:00
wanna do, you know, all the stuff, you
54:02
want the chart segments to be clickable
54:04
and what happens when they're clicked and blah
54:06
blah blah blah blah. All that stuff.
54:08
Don't do it all. And I think
54:10
you can do it all. But I don't
54:12
know if it's the best use of
54:14
your time to do it. All right. This
54:17
is good. You've at least you've at
54:19
least like shaken me and I stated my
54:21
game up for what truly what you've
54:23
done is woken me up from my just
54:25
like, you know, Ivy drip of like
54:27
problem solving. We're selling software here Caleb.
54:29
We're selling software. That's what we're trying to
54:32
do. Sell software. Honestly, it is literally
54:34
if you were like talking to somebody about
54:36
the mechanics of like a business thing
54:38
like this and they didn't. Most people wouldn't
54:40
understand that like you're selling software. But
54:42
you could just be selling someone else's software
54:45
that they gave to you for free
54:47
and are letting you sell. They're letting
54:49
you sell it. You're literally like you can
54:51
just have millions of hours of work.
54:53
You can literally have hundreds of thousands of
54:55
hours right here. Like and you can
54:57
just capitalize on it. It's so much. That's
54:59
sort of interesting thing too about the
55:02
idea of like the P. P. abstraction layer.
55:04
It's like you can then even most
55:06
likely fix some of the rough edges. the
55:08
final config right like now you're massaging
55:10
things to do what you want to
55:12
do potentially and things like that as well
55:14
so that's kind of interesting but yeah
55:16
yes you can get this hundreds of thousand
55:19
hours of labor and eight thousand bugs
55:21
they've already fixed and all that stuff it's
55:23
totally free you can ship it but
55:25
just you're what your value is you're giving
55:27
me a nice API I don't have
55:29
to think about all that stuff too
55:31
much unless I really need to and then
55:34
I can dig in there and that's
55:36
fine but I'm getting the kaleidified API Let
55:38
me make this simple line chart thing.
55:40
Everybody's gonna love it. nobody's going
55:42
to want anything
55:44
else. to be else. to want
55:47
anything else. to want
55:49
they're going to carry
55:51
you around at going to
55:53
carry you around at their
55:55
party libraries and see
55:57
if any of them
55:59
aren't the worst thing
56:01
in the world.
56:03
But they're probably all
56:06
our thing in the world, but
56:08
don't want to use.
56:10
all our except charters, which I don't
56:12
thanks. want you, brother. Okay,
56:14
Ian. Thanks. right, to you.
56:16
Appreciate you. Say it.
Podchaser is the ultimate destination for podcast data, search, and discovery. Learn More