Skip to content

Commit 4eed75b

Browse files
committed
site(video): captions + posters for the re-cuts; drop the pre-1.0.4 caveat
All five Pages-hosted VTTs and posters match the re-rendered mp4s now on the Cloudflare site. The getting-started caveat ("Recorded before 1.0.4") is gone — the cut itself is 1.0.4 now; its description drops forms/hooks/grid (never generated in the new run) and says "drift fails the build instead of shipping". The drift-detection heading stops saying "compile error" about the gate — that phrase is retired positioning. Co-Authored-By: Claude Code <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BHEQGNA9McKNBwDkesNMDC
1 parent d5d9cb9 commit 4eed75b

11 files changed

Lines changed: 544 additions & 335 deletions
40 Bytes
Loading

www/video/adopt-existing.vtt

Lines changed: 85 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -17,110 +17,142 @@ You adopt it, incrementally.
1717
Here's how.
1818

1919
5
20-
00:00:11.700 --> 00:00:16.466
21-
This is a real app — real tables, a real database, none of it built by MetaObjects.
20+
00:00:11.700 --> 00:00:14.446
21+
And the first step isn't even installing anything.
2222

2323
6
24-
00:00:16.466 --> 00:00:22.208
25-
We're going to point MetaObjects at one table, and get typed code for it, without touching the rest.
24+
00:00:14.446 --> 00:00:24.444
25+
One line to your coding agent runs a fit assessment against your actual repo — read only, propose only — and it comes back with a verdict for your app, including a no when it's a no.
2626

2727
7
28-
00:00:23.608 --> 00:00:26.815
29-
There's no magic import — and honestly, that's fine.
28+
00:00:24.444 --> 00:00:25.598
29+
Let's say it's a yes.
3030

3131
8
32-
00:00:26.815 --> 00:00:29.591
33-
You describe one existing entity in metadata.
32+
00:00:25.598 --> 00:00:25.982
33+
Onward.
3434

3535
9
36-
00:00:29.591 --> 00:00:39.090
37-
And you don't write it from scratch: hand your schema to Claude Code, which already knows the workflow from meta init, and it drafts the metadata for you.
36+
00:00:27.382 --> 00:00:32.148
37+
This is a real app — real tables, a real database, none of it built by MetaObjects.
3838

3939
10
40-
00:00:39.090 --> 00:00:44.888
41-
Adopting an existing app is a judgment call, not a one-click button — so start with one table.
40+
00:00:32.148 --> 00:00:37.890
41+
We're going to point MetaObjects at one table, and get typed code for it, without touching the rest.
4242

4343
11
44-
00:00:46.288 --> 00:00:50.407
45-
Here's that one table described — matching the columns you already have.
44+
00:00:39.290 --> 00:00:42.498
45+
There's no magic import — and honestly, that's fine.
4646

4747
12
48-
00:00:50.407 --> 00:00:55.842
49-
The source points at your existing customers table, and fullName maps to your full name column.
48+
00:00:42.498 --> 00:00:45.274
49+
You describe one existing entity in metadata.
5050

5151
13
52-
00:00:55.842 --> 00:01:02.879
53-
And look at the email field: validators live right on it, as child metadata — a required check and an email-format pattern.
52+
00:00:45.274 --> 00:00:54.773
53+
And you don't write it from scratch: hand your schema to Claude Code, which already knows the workflow from meta init, and it drafts the metadata for you.
5454

5555
14
56-
00:01:02.879 --> 00:01:07.227
57-
That's validation you get to layer on, that the raw database never enforced.
56+
00:00:54.773 --> 00:01:00.571
57+
Adopting an existing app is a judgment call, not a one-click button — so start with one table.
5858

5959
15
60-
00:01:08.627 --> 00:01:09.603
61-
Then meta gen.
60+
00:01:01.971 --> 00:01:06.090
61+
Here's that one table described — matching the columns you already have.
6262

6363
16
64-
00:01:09.603 --> 00:01:17.827
65-
You get a typed entity, queries, and routes for your existing table — generated alongside your app, not instead of it.
64+
00:01:06.090 --> 00:01:11.525
65+
The source points at your existing customers table, and fullName maps to your full name column.
6666

6767
17
68-
00:01:19.227 --> 00:01:26.359
69-
And the generated code maps your real schema — Drizzle and Zod for your customers table, with fullName wired to full name.
68+
00:01:11.525 --> 00:01:18.562
69+
And look at the email field: validators live right on it, as child metadata — a required check and an email-format pattern.
7070

7171
18
72-
00:01:26.359 --> 00:01:32.672
73-
And the validators you layered on come through too: the email format check is right there in the Zod schema.
72+
00:01:18.562 --> 00:01:22.909
73+
That's validation you get to layer on, that the raw database never enforced.
7474

7575
19
76-
00:01:32.672 --> 00:01:35.069
77-
Typed, idiomatic, ready to use right now.
76+
00:01:24.309 --> 00:01:26.212
77+
Now — what should this generate?
7878

7979
20
80-
00:01:36.469 --> 00:01:40.232
81-
Run verify against your live database, and it tells you exactly where you stand.
80+
00:01:26.212 --> 00:01:28.114
81+
MetaObjects doesn't decide that.
8282

8383
21
84-
00:01:40.232 --> 00:01:41.550
85-
Customers matches the model.
84+
00:01:28.114 --> 00:01:33.642
85+
Claude asks the catalog, and takes what the app needs: entity, queries, routes, and a barrel.
8686

8787
22
88-
00:01:41.550 --> 00:01:45.549
89-
Orders isn't modeled yet — so that's your next table to adopt, whenever you're ready.
88+
00:01:33.642 --> 00:01:38.755
89+
Meta eject copies each one into your repo — plain TypeScript generators, yours to own.
9090

9191
23
92-
00:01:46.949 --> 00:01:48.605
93-
This is low-risk by design.
92+
00:01:40.155 --> 00:01:41.130
93+
Then meta gen.
9494

9595
24
96-
00:01:48.605 --> 00:01:54.373
97-
The generated code runs with no MetaObjects dependency, so adopting it commits you to nothing.
96+
00:01:41.130 --> 00:01:49.355
97+
You get a typed entity, queries, and routes for your existing table — generated alongside your app, not instead of it.
9898

9999
25
100-
00:01:54.373 --> 00:02:02.594
101-
You take one table at a time, the rest of your app is untouched, and you keep your escape hatches for anything metadata can't express.
100+
00:01:50.755 --> 00:01:57.886
101+
And the generated code maps your real schema — Drizzle and Zod for your customers table, with fullName wired to full name.
102102

103103
26
104-
00:02:03.994 --> 00:02:09.393
105-
That's adoption: describe one table, generate, adopt — no big rewrite, no magic.
104+
00:01:57.886 --> 00:02:04.200
105+
And the validators you layered on come through too: the email format check is right there in the Zod schema.
106106

107107
27
108-
00:02:09.393 --> 00:02:16.345
109-
Then, table by table, the model becomes the spine, and meta verify keeps it honest as you grow into it.
108+
00:02:04.200 --> 00:02:06.596
109+
Typed, idiomatic, ready to use right now.
110110

111111
28
112-
00:02:17.745 --> 00:02:20.295
113-
You don't have to start over to start.
112+
00:02:07.996 --> 00:02:11.760
113+
Run verify against your live database, and it tells you exactly where you stand.
114114

115115
29
116-
00:02:20.295 --> 00:02:23.381
117-
Run meta init, describe a table, and meta gen.
116+
00:02:11.760 --> 00:02:13.077
117+
Customers matches the model.
118118

119119
30
120-
00:02:23.381 --> 00:02:27.407
121-
That's the MetaObjects series — more at metaobjects dot dev.
120+
00:02:13.077 --> 00:02:17.076
121+
Orders isn't modeled yet — so that's your next table to adopt, whenever you're ready.
122122

123123
31
124-
00:02:27.407 --> 00:02:28.749
124+
00:02:18.476 --> 00:02:20.004
125+
This is low-risk by design.
126+
127+
32
128+
00:02:20.004 --> 00:02:29.223
129+
The generated entity module imports only Drizzle and Zod; the routes mount through one ordinary open-source package — so adopting it is reversible, table by table.
130+
131+
33
132+
00:02:29.223 --> 00:02:35.106
133+
The rest of your app is untouched, and you keep your escape hatches for anything metadata can't express.
134+
135+
34
136+
00:02:36.506 --> 00:02:44.305
137+
That's adoption: assess the fit, describe one table, choose your generators, generate, adopt — no big rewrite, no magic.
138+
139+
35
140+
00:02:44.305 --> 00:02:50.999
141+
Then, table by table, the model becomes the spine, and meta verify keeps it honest as you grow into it.
142+
143+
36
144+
00:02:52.399 --> 00:02:55.003
145+
You don't have to start over to start.
146+
147+
37
148+
00:02:55.003 --> 00:03:00.347
149+
Have your agent assess the fit, run meta init, describe a table, and meta gen.
150+
151+
38
152+
00:03:00.347 --> 00:03:04.185
153+
That's the MetaObjects series — more at metaobjects.dev.
154+
155+
39
156+
00:03:04.185 --> 00:03:05.555
125157
Thanks for watching.
126158

-8.76 KB
Loading

0 commit comments

Comments
 (0)