Ep 8: Storing anon data
Hypandra · February 10, 2026
Transcript
Reading mode0:08Okay, welcome back to another episode of
0:08Curiosity Builds. I'm Trevan and we are
0:11in the middle of working on our
0:13conundrum desk tribute project for the
0:16Slate Political Gabfest 20th year
0:19anniversary. I'm going to one of their
0:21live shows and I thought this would be a
0:23fun thing to do. We created a really
0:25complex plan in the last episode. It
0:27asked me a bunch of questions. since it
0:29was getting a little long. So, we kind
0:31of put it on pause. I'm now ready to
0:33build the plan. So, we're just going to
0:34go on into it and it's going to work on
0:39this plan. What we are trying to do is
0:41we are trying to add a superb base a
0:44Supabase persistence layer. So, that
0:47way we are able to store information. We
0:50are trying to create a way that people
0:53can vote on conundrums that they like.
0:55And so the ones that they like will stay
0:56at the top and the ones that don't will
0:58go to the bottom. People can come to the
1:01website, generate a conundrum, put their
1:03own conundrum in, and it'll stay saved
1:06there, but it won't collect any
1:07information. Hopefully, we can get that
1:09to work, but it's complicated. So, we
1:12are uh
1:14we're here.
1:16Yeah. Yeah. Oh.
1:20I can't see an existing to-do list. The
1:22to-do requires an item update without
1:24creating new items. Probably because I
1:25put this whole thing on pause and I
1:26might have clicked something incorrect.
1:34Yeah, this is an old um chat plan
1:34implementation.
1:36What do you mean you can't see the to-do
1:37list in this session? And you do right
1:40proceed without stopping. Tell me how to
1:42recreate them from the plan so I can
1:44mark them first as in progress and
1:46proceed without stopping. So, I think
1:48it's sitting over here saying it's
1:50building. Uh, it should be able to read
1:52this plan. So, I'm gonna ask it.
1:56You can't read the global conundrum feed
1:59plan. It's an MD file that we created.
2:12You can see that it was smart enough to
2:12grab this, grab this, and uh, put it in
2:14here, this file. So now it's reading the
2:18plan that we created in the last episode
2:20and going through and finishing. I think
2:22what happened was I paused this because
2:24the video was just going to get too
2:25long. We didn't need like an hourong
2:27video on this. Wanted to chunk it up. So
2:30I put it on pause.
2:32Oh,
2:34and yeah, now it's uh looks like it's
2:38back to what it should be doing. So
2:40we've got the conundrum desk here. Last
2:42episode, we made this just one one page.
2:46We're not going around doing too much
2:47right now. Um, this is what the website
2:49looks like right now live, right? So, it
2:51used to have like a bunch of different
2:54things going on. Um,
2:57but now we've moved it to where it's
2:59just this trying to make something clean
3:02and cool and and fun. And that requires
3:06us to roll things back a little bit and
3:08slow down uh and not do so much. All
3:11right, we're gonna run this. So,
3:15we are trying to get it to do a lot of
3:18things at once, which is why I put it
3:20into a plan because you want to make
3:23sure it's understanding everything. It's
3:25going to ask me questions. In the last
3:27episode, you probably if you watched it,
3:29you'd saw it asked me like four or five
3:31questions for context, which helps it
3:33get to where it needs to go quicker with
3:36using less tokens. It also it's good to
3:39have it planned because then it
3:40dialogues back to you to make sure that
3:42it understood at least some of what you
3:44were saying. So, it's going to be a
3:47complicated plan for it to execute. Um,
3:51but while it's doing this, I think I can
3:54talk a little bit about what Supabase
3:57is because uh it's one of my favorite
4:00words to say Supabase. But we're adding
4:04a Supabase SQL or a Supabase uh
4:09connection here. And what what Supabase
4:11is, it's an open- source backend as a
4:13service. So, BAS platform built on top
4:16of uh PostGSQL.
4:19uh if anybody knows what that means.
4:21It's designed as a flexible SQLbased
4:23alternative to Firebase and it provides
4:24developers with a database
4:26authentication subscription storage edge
4:29functions allowing rapid app development
4:32without managing a big backend
4:34infrastructure which I definitely don't
4:35know how to do. So because we're storing
4:37stuff in this hopefully we're going to
4:40store the you know the recent conundrums
4:42uh we need to add that Supabase in
4:45here. So, just a little up information
4:48on what that is. I had no idea what
4:50Supabase was until a couple of months
4:52ago, but definitely necessary for this
4:55operation. So, while it's building, I
4:57will
4:59fasttrack us to the next spot.
5:08Okay, we're back. It is still working on
5:08building the plan. We ran into some
5:12issues, which is fine. doesn't mean
5:14that's going to persist. Sometimes
5:16issues will pop up while it's building
5:18because things are interacting. If
5:20things stay this way at the end though,
5:22we can copy the issue information and
5:24put it into the agent and try to debug
5:27or troubleshoot. So, it is going through
5:31and adding a bunch of stuff. We will see
5:35how
5:36how complicated this becomes for me.
5:39Lots of stuff I'm learning here. never
5:41added a superb basease to one of my
5:43builds directly. Uh we have that on our
5:46main website, but that was built by
5:48somebody who knows much more about this
5:50than I do. I am stumbling through,
5:52remember, so we might have to read. Oh,
5:55there we go. Cannot read the properties.
5:58Well, we have not finished building yet.
6:00So, we'll see. Hey, look at that. I told
6:04you it wasn't always going to persist.
6:06Okay, so we added a recent view over
6:10here. We got rid of the build options
6:14and we just kept the tone. Added the
6:16context note. Submit to the feed. So it
6:19says share a question, but I want it to
6:21be a conundrum. So we need to change it
6:23the words there. But this is looking
6:25better. This needs to be Yeah, we don't
6:29need that to be scrollable. But let's
6:31see how this works. First generator
6:35conundrum. What does a fair compromise
6:37look like when every side is convinced
6:39it's losing? Let's change the tone to
6:41trivial.
6:48If potholes were a ballot question, how
6:48would campaigns look? Okay, so I don't
6:52know what this is. The desk is temporary
6:53out for a drink. Try again or we'll
6:55generate one locally. Oh, because it's
6:58not going to save it because this is
6:59just a preview. Uh, okay. It's nice that
7:02it uh added that. I didn't tell it to
7:04put that in there. Um cute. Out for a
7:07drink, you know, because on the show
7:10they do cocktail chatter. It's probably
7:11where it grabbed that from.
7:13So, all right. I want to fix this a
7:16little bit uh to make it a little nicer
7:20looking. But we're making progress here.
7:24So, I'm going to go in and do some
7:25prompting without planning. We're just
7:27make some small changes here.
7:30Uh yeah. So
7:38for the your conundrum spot where it's
7:38generated
7:40the draft a question worth debating or
7:43generate one from the desk copy is
7:46sitting at the bottom of the pill. It
7:49needs to be centered so it's in the
7:51middle. I don't need a scroll bar to be
7:54attached to it either. Also these are
7:57conundrums. So, where it says, "Draft a
7:59question worth debating." Draft a
8:02conundrum worth debating.
8:06Share a question of your own with the
8:08desk. Share a conundrum of your own with
8:10a desk.
8:12I do think that
8:16we don't need a submit to the feed
8:19section if we can make the entry point
8:23for your conundrum where it's generated
8:25also where you can enter. So, I think it
8:28could say enter or generate your
8:30conundrum and maybe
8:34the submit button can go underneath that
8:38and we don't need to have the submit to
8:40the feed on the side. But I do think
8:45under this text field where it says your
8:49conundrum,
8:50the buttons underneath should say, you
8:53know, submit to the feed there. So if
8:57people want to submit it, they can, but
8:59they don't have to.
9:08I asked it when I don't even have it in
9:08plan mode, but we're going to turn it
9:10into plan mode because that got a little
9:11more complicated than I thought. And
9:13sometimes when I'm, you know, when
9:15you're prompting, especially when you're
9:16speaking to text, it's really helpful
9:19for me to do that, right? Because I'm
9:21speaking and I can just let it flow. But
9:25sometimes I pause because it's not like
9:27I'm choosing a word. It's because I'm
9:29looking at something like, oh, should I
9:30add this to that? Should I add this to
9:32that? And I got a little carried away.
9:34So instead of just acting it to a asking
9:36it to act, we're going to put it in plan
9:38first.
9:40We're going to put in plan first and see
9:42if it asks me any questions. And if it
9:43does, then that was probably the right
9:45choice.
9:54So, it's going to go through and try to
9:54make those changes. We might be able to
9:56see them live um
10:00instead of wait. Oh, it asked a
10:01question. Confirm. Remove the right rail
10:02submit box and use the main your
10:04conundum field for both entering and
10:05submitting with the submit feed button
10:07under the main field. Yep, sounds
10:10exactly right. For the no scroll bar
10:12attached, should I remove should I
10:14remove the max height limit so the main
10:15text area never scrolls so it it can
10:18grow tall or keep a cap but hide the
10:21scroll bars? I like to keep the cap but
10:23hide the scroll bars.
10:25Keep the cap but hide the scroll bars.
10:27And you can extend that
10:30text area to be a little bigger than it
10:32is right now. Also, I don't want the
10:35text to ab but the top or sides or
10:38bottom. It needs to stay in the middle
10:40like you would expect.
10:44Just extra clarification on that because
10:46I really don't like this
10:50little gh. What does this scroll? I want
10:53to be right there. Right.
10:55Okay. So, it is drafting a plan
10:59and uh
11:02it'll present it to us once it's ready.
11:06Once it's ready. This is the plan from
11:08last time. Get rid of that if we want
11:10to.
11:13And then once it throws it plan up here,
11:14we'll take a look and we will execute or
11:17adjust.
11:19So, making the changes here.
11:23Yep. Yep. Yep. Yep. Yep. Yep. Yep. Yep.
11:26Files that it will touch everything
11:28within here. Notes. The submit action
11:31will be optional. Anchored. The text
11:33area will keep its max height. We'll
11:34show scroll bars. To-do. Reverse copy
11:37strings to match new phrasing. Submit
11:39new act. Submit action under main input.
11:42Increase the minimum height. What's
11:43that? Text area. Add no scroll bar
11:46utility for the text area. I'm skeptical
11:48this is going to work well, but we will
11:50give it a try and we'll come back when
11:52it's ready.
11:58Okay, so it's already making the changes
11:58we wanted. Uh, it's already changed the
12:01question words to conundrum, right?
12:04Enter, generate your conundrum. Share a
12:06conundrum. No more questions. Still
12:09going through and doing stuff, but uh,
12:11changes are happening. See, got rid of
12:13the submit here. Now it's under here.
12:16This I hope it brings it down.
12:19I hope it brings it down.
12:23Let's see what it does here. But yeah,
12:25see now it's starting to look a lot
12:27cleaner and
12:29less overwhelming. This this uh we don't
12:33need our website up. This the OG
12:38a lot lot going on. It's like a
12:40newspaper, right? And that was the
12:41original effect. And so I don't think if
12:43I was walking into this and thinking
12:44news, I don't think this would overwhelm
12:46me as much. But if I'm thinking podcast
12:50conundrums, I'd be like, "The heck is
12:51this?" So over here, a lot better. And
12:56sorry if you hear my dog click clacking
12:58behind me. He does not wait for anyone.
13:01Yeah, look at that. Pulled it down. I
13:03like it. Let's give it a try. Let's
13:07generate a conundrum. How much privacy
13:08would you trade for civic trusting
13:10institutions again? Uh, okay. Submit to
13:13the feed. Submission failed. Try again.
13:16I wonder why.
13:18So, I'm gonna take a screenshot of this.
13:22Show my agent here.
13:25And we'll put that screenshot in here so
13:29it can see it. But first, I didn't
13:32actually grab it. Let me grab it one
13:33more time. So,
13:37Groovy
13:39and copy that and then we'll put it in
13:41here.
13:44Why won't this work? Is this just
13:46because it's the local preview or is
13:48there something causing an issue?
13:52So, I sent it the screenshot of this
13:55submission fail and we'll see what it
13:57says. It could just be that there's
13:59something going on um
14:02with the local like it's just not going
14:04to work on this. But I don't think it's
14:06supposed to be like that. And I don't
14:07think this thinks it's supposed to be
14:09like that either.
14:11It looks like it's going to go through
14:12and investigate the API, right? Because
14:15we're using an API to go in and make
14:19these calls to generate these
14:21conundrums.
14:23But additionally, I notice the
14:25conundrums are the same ones. So, I do
14:28need to go through and connect that um
14:31better. Allow this to run. Yeah. Yeah.
14:35Yeah. Okay. So, hopefully we will get
14:39some answers here.
14:45Yeah. Yeah.
14:45It's failing because Supabase server
14:47varies. It's not because local preview
14:49blah blah blah blah blah. If you want
14:51the UI to still work without Supabase
14:53locally, I can gracefully fall back and
14:55return a friendly error and disabled
14:57submit vote. So I wonder how we fix
15:01this.
15:03Add these server only. Restart bun dev.
15:07So I need to add this
15:11plus this plus this.
15:20A little unsure how to do this fix
15:20adding
15:22those to server only. Is that something
15:24I need to do at Supabase or can I do
15:27that out of my terminal? It looks like
15:30I'm needing a key as well. When you put
15:32the ellipsus after the Supabase files,
15:36I'm assuming there's information I need
15:39to go grab to finish those out.
15:43And I'm going to change this to ask.
15:50If this causes some problems though, we
15:50can bring in a heavy hitter called
15:52claude and see what we can do. So this
15:54is going to tell me how to do it. You
15:55can do this locally from your terminal
15:56by adding this values what you need
15:59steps in the Supabase dashboard blah
16:02blah blah blah blah blah blah blah blah
16:04blah. So I am going to try that and come
16:08back and see if it works. I am not going
16:10to record that because I don't want to
16:12record something I'm not supposed to by
16:14accident. So we'll be back when that's
16:16set up. Okay. Well, that was fun to
16:19learn. And it's good I didn't record it
16:21because I had to copy some special API
16:24keys that allowed this website to go
16:27create storage on Supabase so we could
16:29store conundrums. And it's working
16:32recent, although there are some
16:34problems, but I got it up and running.
16:36We are going to
16:39get a new chat going with a new agent.
16:43Get rid of that. that.
16:47Whoops. I'll throw that. Oh, hello.
16:51Whoops. There we go. Uh, new agent.
16:55I'm going to turn this to not auto. I
16:59would like it to be Codex.
17:02And we're going to
17:04this back up and get the terminal up.
17:08Groovy. So, what we did is started a
17:13storage
17:14So now people will be able to add and
17:17save, but I don't see voting things on
17:20here yet. So also I don't want to be
17:22able to add the same thing.
17:25All right, we're making progress. We've
17:26got Supabase set up. The issues now are
17:30when I click generate a conundrum, it
17:33automatically goes to recent. I actually
17:36want people to make the decision. So,
17:39generate and then it shows up and they
17:41can submit to the recent um and maybe we
17:47won't even call it recent. We'll call it
17:49conundrum submissions. So, change the
17:52text for that. And I don't see a thumbs
17:56up or a thumbs down.
18:04want to make sure we track that. And
18:04then the number of thumbs up, right? So,
18:08how many points does it have? It might
18:10actually be cute to change those from
18:12thumbs up and thumbs down to something
18:14else. Maybe Gavfest related. I'll have
18:17to think about that more. So, let's see
18:20if we can make that fix.
18:30Delete that last little part. And I'm
18:30just going to send it in in agent mode.
18:32I think we can trust it to do that.
18:37Yeah. Yeah, lots of learning. I wish I
18:38could have walked through part of the
18:39Supabase stuff, but basically what I
18:41needed to do is connect my project to
18:44Supabase and even started there. So, I
18:47have a website. I have a place where
18:51we're producing or sending them to
18:52production, right? Versell, but the
18:55storage is over in Supabase. And I
18:57didn't have a project set up for the
19:00conundrum desk there. So, I connected
19:02it. It generated a special secret key
19:06that I gave to my terminal and it
19:09connected. So now it will store stuff
19:12for me without it going away every time
19:15or just staying locally in your like
19:18browser cache.
19:21Yep. Yep. Yep. Cool stuff.
19:25Cool stuff.
19:27So after this um after this
19:32feature adjustment, I think we'll commit
19:34it and call it an episode
19:47so bad. Oh, there we go. This is looking
19:47better.
19:49But also, why is there a scroll?
19:53Don't like this
19:55leaderboard recent. Yeah. Yeah. Yeah.
19:59Okay. Because I did say a leaderboard
20:00and recent, so I confused it with my own
20:03prompting, but Oh, look, they thumbs up
20:06over there. So,
20:09yeah,
20:11I don't think I want a recent and a
20:16leaderboard
20:18to show up. I think what I want
20:22I want the recents and the leaderboard
20:25to be more like I don't remember there's
20:27this website I saw where it lists like
20:32top 10 lists or just like best movies of
20:34all time but it's always changing based
20:36on people's votes and submissions and
20:38like you create your own list and submit
20:39it and then it will like tally and then
20:41people can just go and look at the top
20:42and move them up or down. So I want
20:44something like that. So,
20:57okay, I want to take the leaderboard and
20:57move it over to where the recent section
21:00is. And that whole side should be the
21:02leaderboard all the way down. And we
21:04will just show, you know, the top five
21:08conundrums that are there. I want to
21:11move the recent to where the leaderboard
21:13is now. And we're just gonna show as
21:17many as you want that stay on the desk.
21:20We can keep the scroll bar. I like the
21:23view all so when it pops up it's in your
21:25face and it shows all of the recent
21:27conundrums. We'll keep it in order of um
21:31submission. The leaderboard will be
21:36static on the side with the thumbs up.
21:38People can vote on those top options.
21:47But they can also go through the recent
21:47and vote those up.
21:57So I'm wondering Oops. Command C. I'm
21:57wondering if there's another way. You
21:59know, it'd be cool. So you've got the
22:02recent here and you got the leaderboard
22:03here.
22:05It would be kind of cool if there's like
22:09I don't know, some kind of interesting
22:13animation.
22:15You know, that scroll thing at the top
22:17would be cool to have with like
22:19different conundrum ideas. I don't know.
22:22But we're we're getting there. This is
22:24very clunky and not looking well either.
22:26So, I need to make sure that it
22:28understands that as well.
22:37Additionally, on the leaderboard, you
22:37have these thumbs up, thumbs down
22:40containers. We don't need them.
22:42Everybody understands what the thumb up
22:44and thumb down symbols mean. So remove
22:47them and make those cards
22:50similar to what the recent cards are,
22:53but include the score as well.
23:00All right,
23:00let's give that a try and we'll see how
23:03we do.
23:05But just so we the reason I haven't you
23:07know updated or anything because I want
23:09to keep going back to show you know
23:11where we've come from came from
23:13something look like this you know we've
23:15got these different features this
23:17conundrum desk on its own page and now
23:21we've moved to Whoops there we go now we
23:24move to this which is just the conundrum
23:26desk and trying to make it more simple
23:30more simple more user friendly more more
23:33something people want uh play with
23:36people want to play with. So, we'll be
23:38back when this is done and we'll see
23:39what we've got for you.
23:53Okay. So, it is just about finished up
23:53here. Yeah.
23:55Yeah. Yeah. Yeah. We're getting better,
23:58right? Some centering needs to happen,
24:00but we can hit the view all. Nice. So if
24:03I just let me just generate
24:06one and that didn't automatically add
24:08add right. So now submit to recent but
24:11it also submitted to leaderboard which
24:13makes sense because there's you know
24:15only so many
24:18you all. Yeah.
24:21Oh it says questions. We want to say
24:23conundrums.
24:25Oops. Sorry. Back to Codex.
24:29I want the recent to say recent
24:32conundrums, not recent questions.
24:39Okay,
24:40let's see if this works.
24:47Boom. Boom. Use on desk. Submit to
24:47recent. Use on desk. Submit to recent.
25:10What does the use on desk button mean?
25:10I didn't ask for that. Which is very
25:13common and I've noticed when they put
25:15out new models that seems to happen
25:16more. They'll add little extra things.
25:19Right. Just generate draft on the main
25:21desk. You can tweak it before
25:22submitting. It copies a draft questions
25:24rationale and editable input and
25:26restores context at present.
25:39generate a conundrum
25:39when we do decide.
25:42See, it's already on the desk though.
25:44Why would I need it both places, right?
25:55That's kind of weird.
25:55doesn't really make sense because when I
25:59generate a conundrum, it's already put
26:00on the desk with everything.
26:04So, I think it's a redundant button and
26:07I don't think we need it to be there.
26:10The whole conundrum submission section
26:12can just be removed and we can push
26:15everything up.
26:24Put that into agent and have it execute.
26:24It should be a fact fast change.
26:28Although
26:29a lot of times I say that and they take
26:31forever and then other times there's
26:32something I think it's going to be so
26:33complicated. It's like oh it's like
26:35flipping a switch.
26:37It's like flipping a switch. I knew the
26:39Supabase thing would be difficult
26:40though. Okay, it's gone. View all
26:46tone meaningful. It pushes beyond the
26:48headline and now well I don't know what
26:50that means like why it's saying that but
26:52look at that I think we're going to call
26:54this another success and we are going to
26:57commit this. So let's commit
27:00these updates
27:03and I am going to walk through the very
27:06first PR for this since its creation.
27:10Um
27:12and then when you go to the website
27:14you'll be able to see the changes that
27:15we did. They'll be live.
27:18They'll be live. I guess you can just
27:20sit here and smash. Oh, vote already
27:22counted. Okay, good. Good. Good. Good.
27:26Unrelated as commit and still present.
27:28If you want to include any of those in
27:29other files.
27:53We can deal with that later.
27:53Let's make a PR.
27:55PR is a pull request which basically
27:57it's taking the issue with all of the
27:59saving save saves and commits and
28:01changes and deletions that you've made
28:04and it's going through and checking them
28:07seeing if there's any major conflicts
28:10that prevent a build from being executed
28:13and deployed and then you can merge that
28:16and Verscell will take it and build it
28:19and it'll be your live website. So
28:22hopefully we will be able to do that. So
28:24PR would be empty. Oh wait, a bunch of
28:26Oh yeah, in the working tree we want to
28:28commit those. Make a new branch in PR
28:30for the committing change. Make a new
28:32branch includes some or all the
28:33uncommitted changes. Commit them and
28:35open a PR.
28:42We want to include all of the
28:42uncommitted changes that we have here.
28:44So let's go ahead and do that.
28:53And I'm going to cheat a little bit and
28:53switch to Opus. And I think that'll make
28:56this a little faster.
28:58It's really good at at uh pushing things
29:02to GitHub, including PRs,
29:05even when it's a little confused.
29:07Sometimes I move things around that I
29:09shouldn't, but Claude will double check
29:11itself and say like, "Oh, we didn't find
29:13it. We're supposed to be found." But,
29:16you know, we we know these common little
29:19problems. Let's go see if it got put
29:21here, here, here. Let's go just do a
29:23general search here. But yeah, look at
29:25that. Did it did it for me right there.
29:27So,
29:29that's awesome. I'm going to go
29:32merge that poll request. Hopefully, this
29:34will be up at conundrum.com,
29:37conundrum.com in the next couple of
29:40minutes here, and it'll be a live
29:42website. Not finished by any means, but
29:44way further than we were. Thanks for
29:47watching. Don't forget to stay curious
29:49and don't forget to commit. Have a
29:50wonderful day.
