All Videos

Ep 8: Storing anon data

Hypandra · February 10, 2026

curiosity-buildsconundrum-desk

Transcript

Reading mode

0: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.

17:58I

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:48h

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:07a

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.