Skip to content

feat(blog): add doba guest post#1464

Merged
fabian-hiller merged 12 commits into
open-circle:mainfrom
karol-broda:feat/blog/doba-guest-post
Jun 3, 2026
Merged

feat(blog): add doba guest post#1464
fabian-hiller merged 12 commits into
open-circle:mainfrom
karol-broda:feat/blog/doba-guest-post

Conversation

@karol-broda

@karol-broda karol-broda commented May 12, 2026

Copy link
Copy Markdown
Contributor

guest post introducing doba

the post covers:

  • defining schemas and migrations between different data shapes (database, frontend, AI, legacy)
  • automatic path finding through intermediate schemas
  • migration context for tracking defaults and assumptions
  • schema identification for unknown data

discussed with @fabian-hiller on discord

happy to change the writing around if needed, it's in my usual style right now and i get it if that's not what you want for the blog


Summary by cubic

Adds a guest post, “One Model, Many Views: Type-Safe Transforms with Valibot and doba,” and removes the Nix flake dev shell. Updates testing deps to vitest 4.1.8.

  • New Features

    • New post at website/src/routes/blog/(posts)/same-data-different-shapes/index.mdx introducing doba/dobajs with valibot; covers transforms, path finding, migration context, and schema identification; links docs/source on first doba mention; clarifies Standard Schema compatibility; publication date 2026-06-03.
  • Dependencies

    • Bumped vitest and @vitest/coverage-v8 to 4.1.8 in codemod/zod-to-valibot, library, and packages/to-json-schema; updated pnpm-lock.yaml.

Written for commit bbab758. Summary will update on new commits.

Review in cubic

@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label May 12, 2026
@vercel

vercel Bot commented May 12, 2026

Copy link
Copy Markdown

@karol-broda is attempting to deploy a commit to the Open Circle Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented May 12, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

This pull request adds a new blog post in MDX format that explores type-safe schema migrations and data transformations using Valibot with doba. The article introduces a schema registry pattern, demonstrates migrations with chaining when no direct route exists, shows how to capture metadata during transformations without exception handling, introduces a pipe builder for mechanical transformation steps, covers runtime schema identification using match guards, and concludes with practical applications including API versioning, LLM pipeline shaping, legacy imports, and webhook normalization.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The PR title 'feat(blog): add doba guest post' clearly and concisely summarizes the main change: adding a new blog post introducing the doba library.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The pull request description clearly relates to the changeset, introducing a guest blog post about doba and Valibot integration with specific coverage areas mentioned.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@dosubot dosubot Bot added the documentation Improvements or additions to documentation label May 12, 2026

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 4 files

@karol-broda

Copy link
Copy Markdown
Contributor Author

cc @flySewa

@flySewa

flySewa commented May 12, 2026

Copy link
Copy Markdown
Contributor

Hey Karol! Thanks for sharing this with us. Doba looks like a really cool tool.

Before we go live, though, I think there are a few things we could change to help it resonate more with Valibot readers: Right now, it feels a bit like “here's a tool I built that works with Valibot.” I think it’d resonate better if we flipped that to “here's a tool I built, and here's how you can use it with Valibot.” After your opening, I suggest we focus on what Valibot users can do with doba in their projects.

It might be also helpful to clearly explain what Valibot users get from this combination. You mentioned tree-shaking, but very quickly. It'd be great to highlight why these two work well together and what Valibot adds to the mix.

One last thing, could you switch to standard capitalization to match the blog's format.

I'm happy to revisit after you've had the chance to go through it.

@karol-broda

Copy link
Copy Markdown
Contributor Author

fixed the capitalization, expanded the valibot sections. lmk if there's anything else

@fabian-hiller

Copy link
Copy Markdown
Member

@karol-broda can you remove the 3 flake related files from the PR?

@flySewa

flySewa commented May 13, 2026

Copy link
Copy Markdown
Contributor

Would you consider updating the title to something like 'Managing Multiple Data Shapes in Your Valibot Project with doba'? The current one doesn't tell much at a glance.

@karol-broda

Copy link
Copy Markdown
Contributor Author

@flySewa does this title work better for what you had in mind?

@flySewa

flySewa commented May 13, 2026

Copy link
Copy Markdown
Contributor

@flySewa does this title work better for what you had in mind?

It does. Let's go with it.

@karol-broda

Copy link
Copy Markdown
Contributor Author

hey @flySewa @fabian-hiller , all the feedback should be addressed. is this ready to merge?

@vercel

vercel Bot commented May 19, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
valibot Ready Ready Preview, Comment May 21, 2026 9:47pm

Request Review

@pkg-pr-new

pkg-pr-new Bot commented May 19, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/valibot@1464

commit: bbab758

@flySewa

flySewa commented May 20, 2026

Copy link
Copy Markdown
Contributor

hey @flySewa @fabian-hiller , all the feedback should be addressed. is this ready to merge?

Hi Karol,

The blog post is ready on our end, except for one minor edit that I will complete today. It should be live in the next few days.

@fabian-hiller

Copy link
Copy Markdown
Member

We reach out to you before publishing it. Sorry for the syntax highlighting issue. I will fix this in the long run. It is already fixed for the Formisch docs. I can try fixing it before publishing this post.

@fabian-hiller

Copy link
Copy Markdown
Member

Thanks for the blog post!

@karol-broda

Copy link
Copy Markdown
Contributor Author

We reach out to you before publishing it. Sorry for the syntax highlighting issue. I will fix this in the long run. It is already fixed for the Formisch docs. I can try fixing it before publishing this post.

ahhh alright, i was trying to fix it locally but couldn’t really find a good fix for that haha

@karol-broda karol-broda reopened this May 21, 2026
@karol-broda

Copy link
Copy Markdown
Contributor Author

ups

@fabian-hiller

Copy link
Copy Markdown
Member

PR is up: #1468

@fabian-hiller

Copy link
Copy Markdown
Member

I expect to publish this in the next few days or early next week.

@karol-broda

Copy link
Copy Markdown
Contributor Author

sounds great, thanks

Someone needs legacy-to-AI, there's no function for that, so they chain two together and hope the intermediate shape doesn't change. Nobody writes tests for these because they're "just mapping."
Then a schema change ships and half your transforms silently produce wrong data.

I wrote [doba](https://doba.karolbroda.com) to deal with this ([source](https://github.com/karol-broda/doba)). It's a schema registry that works with Valibot, and the two pair well for a few reasons.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this paragraph would be better with this: "I wrote doba to deal with this. It's a schema registry that works with any Standard Schema compatible library, but I use it with Valibot, and the two pair well for a few reasons."


Valibot's type inference is also what makes doba's typed migrations work. When you define a schema with `v.object()`, the inferred type flows straight into the migration function signature. Rename a field in the Valibot schema and the migration won't compile until you fix it. That feedback loop is the core of what makes this useful.

doba builds on [Standard Schema](https://github.com/standard-schema/standard-schema), so it works with any library that implements the spec.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we stated this in line 21, this will need to go.

@fabian-hiller

Copy link
Copy Markdown
Member

@flySewa and @karol-broda should we publish this on Tuesday?

@karol-broda

Copy link
Copy Markdown
Contributor Author

yes, today works for me

@fabian-hiller

Copy link
Copy Markdown
Member

Sorry! I missed it. Let's plan it for tomorrow. I will publish it tonight.

@fabian-hiller fabian-hiller merged commit e7bcacb into open-circle:main Jun 3, 2026
16 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants