Christian Grøngaard's Avatar

Christian Grøngaard

@hamburger.cloud

Father of two children and countless software bugs Currently working on the text editor used in the very core of the @Sanity.io Content Operating System: https://github.com/portabletext/editor.

162
Followers
100
Following
102
Posts
23.10.2024
Joined
Posts Following

Latest posts by Christian Grøngaard @hamburger.cloud

GitHub - christianhg/vscode-theme-undefined: A dark, slightly opinionated, but otherwise no-nonsense theme for Visual Studio Code A dark, slightly opinionated, but otherwise no-nonsense theme for Visual Studio Code - christianhg/vscode-theme-undefined

One of the reasons I made my own theme was to dim TS types: github.com/christianhg/...

15.01.2026 21:34 👍 3 🔁 0 💬 0 📌 0

As expected, it was *incredibly* difficult to delete my Facebook account.

However, after some UI debugging and browser switching, I finally succeeded, and it looks like 2026 is off to a flying start.

01.01.2026 21:34 👍 2 🔁 0 💬 0 📌 0
Preview
A Website To End All Websites | Henry From Online How to win the war for the soul of the internet, and build the Web We Want.

you’re right! it feels mostly awful to Go Online™, these days. the internet in a sad state, for reason after reason after reason. but there is a way to fix it; to trade the voidful howling for a quiet & joyful song.

here’s how to win the war for the soul of the internet, and build the Web We Want.

01.01.2026 19:27 👍 328 🔁 126 💬 10 📌 31
Preview
You’ll need a CMS eventually. Let your agent set it up. | Sanity With the Sanity MCP server, your AI agent can now create schemas, content, and editorial interfaces from prompts.

You vibe-coded a site. Content lives in markdown. It works.

Then your client asks for a login.

The Sanity MCP Server lets your agent set up and manage a real content backend in the same conversation you used to build everything else.

www.sanity.io/blog/sanity-...

15.12.2025 18:17 👍 7 🔁 3 💬 0 📌 0
Video thumbnail

Replaced the boring buttons with some type controls!

(🤫 This is actually a really good showcase for input rules: github.com/portabletext...)

20.10.2025 17:01 👍 0 🔁 0 💬 0 📌 0
Video thumbnail

Couldn't sleep so I built Game of Life in @sanity.io's Portable Text Editor

👉 portable-text-of-life.vercel.app

🧑‍💻 github.com/portabletext...

17.10.2025 09:55 👍 21 🔁 5 💬 2 📌 0
GitHub contribution chart with three consecutive blank weeks

GitHub contribution chart with three consecutive blank weeks

Now that's what I call vacation

04.08.2025 11:06 👍 5 🔁 0 💬 1 📌 0

OK this quiz is just *flips table*

11.07.2025 20:10 👍 2 🔁 0 💬 0 📌 0

The cake was not a lie!

25.05.2025 11:25 👍 3 🔁 0 💬 0 📌 0
Preview
Spring Release | Sanity Build, automate, and run every content workflow with native apps, schema-aware AI, and serverless functions—all in Sanity.

The age of Headless CMS is over. Say hello to the Sanity App SDK, Functions, AI Agents, and more—all part of The Content Operating System.

www.sanity.io/spring-relea...

08.05.2025 16:43 👍 20 🔁 3 💬 2 📌 2
AngularJS

Here you go, Jeppe: docs.angularjs.org/guide/scope

28.04.2025 08:58 👍 1 🔁 0 💬 1 📌 0

error TS6133: 'someVariable' is declared but its value is never read.

That's terrible. Better fail the whole build immediately.

27.04.2025 17:13 👍 2 🔁 0 💬 0 📌 0

Hey, it worked! This is going to become expensive...

09.04.2025 19:50 👍 1 🔁 0 💬 0 📌 0
The sun, visible through dark clouds, partially eclipsed by the moon

The sun, visible through dark clouds, partially eclipsed by the moon

Partial solar eclipse, March 29, as seen from Denmark (through the right glasses)

30.03.2025 15:40 👍 3 🔁 0 💬 0 📌 0

I Love Features!

16.03.2025 18:38 👍 0 🔁 0 💬 0 📌 0

Can I slide the thingy to commit code or how does it work?

16.03.2025 09:55 👍 0 🔁 0 💬 2 📌 0
Blue floppy disk containing Wolfenstein 3D Episode One: Escape from Wolfenstein

Blue floppy disk containing Wolfenstein 3D Episode One: Escape from Wolfenstein

Found my Wolfenstein 3D floppy

16.03.2025 09:01 👍 3 🔁 0 💬 1 📌 0

Maybe there's something I'm not seeing here, but since the type resolves to "string" I'd just use that instead. At least "string" won't provide a false sense of type safety.

15.03.2025 07:47 👍 0 🔁 0 💬 1 📌 0

I wouldn't, unless it was last resort, use the type "string" either if any of the values had special meaning. Which my whole point.

15.03.2025 07:06 👍 0 🔁 0 💬 1 📌 0

Maybe a 🌶️ take, but I generally don't like this trick. If one of your default/known values changes - e.g., "alert" is renamed to "warning" - your call sites won't break, and subtle, hard-to-discover bugs can be introduced. Any string is allowed, remember?

15.03.2025 06:14 👍 3 🔁 0 💬 2 📌 0

It's so good.

And... psst... guess what's driving the behaviours in and around the code block: www.portabletext.org/concepts/beh...

14.03.2025 19:26 👍 2 🔁 0 💬 0 📌 0

What's the end goal?

09.03.2025 18:14 👍 0 🔁 0 💬 1 📌 0

Ah, stupid me. Of course there are third-party solutions 😇 Let's see if scrobbling is still fun or if it's time to leave one of my oldest internet accounts.

08.03.2025 17:47 👍 0 🔁 0 💬 0 📌 0
Preview
christianhg’s Music Profile | Last.fm Listen to music from christianhg’s library (85,044 tracks played). christianhg’s top artists: Radiohead, The Beatles, Tom Waits. Get your own music profile at Last.fm, the world’s largest social music...

Looks like last.fm still doesn't offer a way to export your data. So... I guess I might as well revive my 20-year-old account for the second(?) time!

Do you have one?

www.last.fm/user/christi...

(I want to listen to more music again, and maybe this can be a weird sort of motivation.)

08.03.2025 15:24 👍 2 🔁 0 💬 3 📌 0

But does it have :potato-intensifies:

26.02.2025 18:40 👍 1 🔁 0 💬 0 📌 0

It's a common term 🤔 en.m.wikipedia.org/wiki/Blue%E2...

25.02.2025 18:34 👍 1 🔁 0 💬 1 📌 0
MacBook A1181 with various stickers, including "I Hate Computers", on a couch

MacBook A1181 with various stickers, including "I Hate Computers", on a couch

My MacBook from 2007. Still boots. And I still hate computers.

23.02.2025 09:24 👍 2 🔁 0 💬 0 📌 0

Here's a link to the Behavior that turns `---`/`___`/`***` to a horizontal rule object: github.com/portabletext...)

Any feedback welcome!

14.02.2025 10:18 👍 0 🔁 0 💬 0 📌 0
Preview
editor/apps/playground/src/editor.tsx at main · portabletext/editor The Standalone Portable Text Editor. Contribute to portabletext/editor development by creating an account on GitHub.

PTE still needs to know what object you want to use for the <hr />: github.com/portabletext...

But at least you don't have to reach for any UI tool to insert it. Maybe this would help?

We are hoping to bring the Behavior API, in some form or another, to Studio very soon.

14.02.2025 10:18 👍 0 🔁 0 💬 1 📌 0
Video thumbnail

Hi there!

We are working on a new API (currently beta) for PTE that allows you to easier customise the editor behaviours: www.portabletext.org/concepts/beh...

Behavious can be bundled in plugins and the most fully-fledged plugin we've made so far is a Markdown plugin:
playground.portabletext.org

14.02.2025 10:18 👍 1 🔁 0 💬 1 📌 0