Sign in

Chris Villa

@chrisvilla.bsky.social
83 followers 96 following 82 posts

Building @puckeditor.com

PostsRepliesMedia
Chris Villa @chrisvilla.bsky.social · 31/07/2026
isomorphic cubes!
010
Chris Villa @chrisvilla.bsky.social · 11/06/2026
booooooo
000
Chris Villa @chrisvilla.bsky.social · 11/06/2026
fable trying to spin up a python server just to confirm it fixed the most trivial of bugs... goodbye sweet tokens
000
Chris Villa @chrisvilla.bsky.social · 10/06/2026
It finally happened. I lost access to my X account. I guess this is home, now.
010
Chris Villa @chrisvilla.bsky.social · 11/11/2025
probably the coolest bit of tech I've ever built
010
Chris Villa @chrisvilla.bsky.social · 15/07/2025
Managing open source releases is hard, but we're working on improving it by reducing the size of each releases Smaller releases mean: 1. Improved stability as bug are fixed more quickly 2.Rapid improvements as features are released in smaller chunks 3. Contributions merged more quickly
100
Chris Villa @chrisvilla.bsky.social · 10/07/2025
what if you could infinitely extend your page builder for the perfect experience? sneak peak of Puck's dedicated new plugin ui 👀
020
Chris Villa @chrisvilla.bsky.social · 01/07/2025
Overrides are probably one of Puck's most powerful features, letting you add custom UI to the Puck interface ⚡️ Say you have a long list of components and need to filter them. Puck doesn't come with search, but it's easy to add one using the "components" override.
110
Chris Villa @chrisvilla.bsky.social · 26/06/2025
🔍 Easily overlooked feature in Puck 0.19: the new `trigger` parameter to resolveData that provides context about why it was called. This enables you to customise the behaviour of resolveData based on the context, like avoiding expensive async calls. Neat! Docs: puckeditor.com/docs/api-ref...
011
Chris Villa @chrisvilla.bsky.social · 25/06/2025
If you're implementing RBAC, then Puck's permissions API can help you lock things down! 🔒 For example, specifying `delete: false` will prevent the user from deleting components. You can do this globally, per-component, or dynamically based on current props. Docs: puckeditor.com/docs/integra...
021
Chris Villa @chrisvilla.bsky.social · 24/06/2025
Puck's new slots API is mind-blowingly powerful 🤯 The demo "template" component combines: - a slot field for the content - a custom field to select/save the slot data - the resolveData API to load the slot data Slot docs: puckeditor.com/docs/api-ref...
021
Chris Villa @chrisvilla.bsky.social · 19/06/2025
If you need to customise action bar in Puck, you can use the `actionBar` override! Combine this with the <ActionBar> component to extend the interface with custom actions and other behaviours.
111
Chris Villa @chrisvilla.bsky.social · 18/06/2025
One of my favourite new features in Puck 0.19 is the useGetPuck hook. It lets you access the internal Puck API without triggering a re-render. Great for performance!
100
Chris Villa @chrisvilla.bsky.social · 18/06/2025
Little demo showing Puck changing the fields based on whether the parent uses CSS Grid. Notice how the grid fields are removed from the layout section when moving the card. You can achieve this using the "parent" param provided to the resolveFields API. Docs: puckeditor.com/docs/api-ref...
011
Reposted by Chris Villa
Puck @puckeditor.com · 12/06/2025
Puck 0.19 introduces the Slots API — the powerful successor to DropZones that lets you nest components using fields — along with several other new features. Check out our latest video for a walk-through of the key features 👇 youtu.be/ZXRlB6Uugx8
youtu.be
- YouTube
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
022
Chris Villa @chrisvilla.bsky.social · 05/06/2025
Mind blown by the 10x performance improvement in Puck 0.19. I knew it would be good, but this far exceeds my expectation!
010
Reposted by Chris Villa
Puck @puckeditor.com · 05/06/2025
Puck 0.19 just got released! What’s new? 🏗️ Nest components using slot fields for programmatic control 💽 Inject metadata into all components without context ⚡ Improved performance, reducing render times by 90% puckeditor.com/blog/puck-019
133
Chris Villa @chrisvilla.bsky.social · 28/05/2025
Back in Sept 2023, I announced Puck on Hacker News and went from 6 to 1.7k stars in 24 hours. Now approaching 7k, I'm on a mission to hit 10k! I can’t do this alone. If you love Puck please: Upvote on HN: news.ycombinator.com/item?id=4411... Star the repo: github.com/puckeditor/p... Thank you! 🙏
000
Reposted by Chris Villa
Puck @puckeditor.com · 28/05/2025
Back in Sept 2023, we announced Puck on Hacker News, and went from 6 to 1,700 stars in 24 hours. Now approaching 7,000, and on a mission to hit 10k! We can’t do this alone, so please: Upvote on HN: news.ycombinator.com/item?id=4411... Star the repo: github.com/puckeditor/p... Thank you! ⭐️
022
Chris Villa @chrisvilla.bsky.social · 19/03/2025
Just merged Puck's massive (7,000 line change) Zustand state migration, eliminating almost all unnecessary re-renders. Selectors also coming soon to `usePuck`, so your own Puck components can remain performant, too!
032
Reposted by Chris Villa
Fede Bonel Tozzi @fe-bo-to.bsky.social · 23/01/2025
Yesterday, Puck 0.18 got released and introduced its revolutionary Drag-and-Drop engine. Today, I wrote an article where I break down how it improves UX, what it means for you as a developer, and how to start using the new features today: buff.ly/4hp5640
buff.ly
Revolutionizing Drag-and-Drop in React: Introducing Puck 0.18
Puck is the open-source visual editor for React, that you can embed in any application to create the...
032
Chris Villa @chrisvilla.bsky.social · 22/01/2025
It's finally here 🚀 This is a game changer for page builders, allowing you to create design-in-browser experiences directly within your React application.
030
Chris Villa @chrisvilla.bsky.social · 21/01/2025
My interview for the Craft of Open Source podcast is live! 🚀 We talked design systems at scale, origins of @puckeditor.com and how to balance it with running a consultancy @measured.co. Odd to listen to a podcast of yourself, but very much enjoyed playing it back. open.spotify.com/show/5fazVpZ...
open.spotify.com
The Craft Of Open Source
Podcast · Ben Rometsch, CEO, Flagsmith · Welcome to The Craft of Open Source, hosted by Ben Rometsch, Co-Founder and CEO of Flagsmith. This bi-weekly show is focused on the ins and outs of the Open So...
084
Reposted by Chris Villa
Puck @puckeditor.com · 16/01/2025
The wait is OVER. Next week, Puck's will launch its new drag-and-drop engine: ✔ Drag across CSS Grid & Flexbox, right out of the box ✔ Effortlessly integrate your React components ✔ Seamlessly embedded within your app Goodbye limits. Hello freedom. 🚀
041
Chris Villa @chrisvilla.bsky.social · 09/01/2025
@adactio.com’s first talk in over a year tonight! 🎉 Here’s the livestream: www.youtube.com/live/XONerj4...
youtube.com
YouTube
Share your videos with friends, family, and the world
020
Chris Villa @chrisvilla.bsky.social · 09/01/2025
Sometimes the native solutions are the most powerful ones. A great little guide that covers using CSS properties to implement theming in Puck 🌈
021
Reposted by Chris Villa
Puck @puckeditor.com · 09/01/2025
Unlock the power of dynamic theming in your page builder! 🎨 Learn how to use CSS variables with Puck to create global themes in React. 🚀 Read more:
buff.ly
Using CSS variables to create dynamic themes in Puck
When integrating Puck into your page-building product, a common requirement is to allow your users to centrally manage the theme of the page without having to make adjustments to every component. For…
041
Reposted by Chris Villa
Puck @puckeditor.com · 18/12/2024
Puck 0.17 is out, with React 19 support and numerous quality-of-life improvements for fields! Thank you to the numerous contributors for this release 🙏 Last release of the year. v0.18 early next year with the new dnd engine 🥳 Happy Holidays! github.com/measuredco/p...
github.com
Release v0.17.0 · measuredco/puck
Puck v0.17.0 adds support for React 19, improves various field APIs and squashes some bugs. This is our final feature release of the year! We're delaying the new drag-and-drop engine release until ...
031
Chris Villa @chrisvilla.bsky.social · 18/12/2024
Wow, what a great early Christmas present! Puck is featured in React Status' Top Repos of the Year! 🎄 react.statuscode.com/issues/411
021
Chris Villa @chrisvilla.bsky.social · 17/12/2024
It's rob! @isrob.com 👋
020
Chris Villa @chrisvilla.bsky.social · 23/11/2024
IT'S ALIVE! Giving Puck's new drag-and-drop engine canary a whirl on the @measured.co site!
041
Reposted by Chris Villa
Matt @mattlynch.dev · 18/11/2024
Bookmarks work in prod! Nice UI coming early this week.
Account information with a bookmarks array showing saved post information.
271
Chris Villa @chrisvilla.bsky.social · 15/11/2024
Getting to the bottom of traffic spike mysteries is always fun... @puckeditor.com is currently featured on the madewithreactjs.com homepage! 📈
020
Reposted by Chris Villa
Measured @measured.co · 09/10/2024
Lack of consensus. Lack of organising principle. Lack of reach. These are just a few reasons why design systems fail. Here are more, and how to mitigate them: measured.co/blog/why-des...
measured.co
Why design systems fail
Disaster is rare, but design systems often fail to meet the needs of the teams they’re meant to help. Here are 11 reasons why, and what to do to address them.
133
Chris Villa @chrisvilla.bsky.social · 19/09/2024
Well isn't that virtual lanyard just the cutest 😍 Got my in-person ticket for @nextjs.org conf! Hit me up if you want to talk @puckeditor.com ✌️
021
Reposted by Chris Villa
Puck @puckeditor.com · 17/09/2024
Puck v0.16 just landed! 🔐 Permissions - toggle functionality like deletion, duplication & insertion 📜 History injection - inject history using the `initialHistory` prop 🪛 Add new controls - use the `actionBar` override to insert new controls into the component overlay github.com/measuredco/p...
github.com
Release v0.16.0 · measuredco/puck
We're celebrating 5,000 stars on GitHub! Thank you to our wonderful community! 🤩 Puck v0.16 is a big release, introducing the headline permissions API and — you guessed it — quality of life improve...
122
Chris Villa @chrisvilla.bsky.social · 13/09/2024
Didn’t realise how much I missed this city
030
Chris Villa @chrisvilla.bsky.social · 12/09/2024
how does this happen
130
Chris Villa @chrisvilla.bsky.social · 12/09/2024
Hello London
020
Chris Villa @chrisvilla.bsky.social · 11/09/2024
I’ll be there! Looking forward to seeing some nerd friends 🤓👋
020
Chris Villa @chrisvilla.bsky.social · 10/09/2024
_sigh_ time to pop the standing desk
Ginger tabby sitting on office chair
030
Reposted by Chris Villa
Measured @measured.co · 06/09/2024
Design system can mean different things to different people, or be a nebulous catch-all. Saying “we need a design system” is never wrong. But it’s only a starting point. Here’s how to build what your organisation actually needs: measured.co/blog/dont-bu...
measured.co
Don’t build a design system—build what you actually need
Design system means different things to different people. Avoid the risk of misunderstanding by starting out from the problems your organisation wants to solve.
132
Chris Villa @chrisvilla.bsky.social · 03/09/2024
Fun little debug mode I built as part of @puckeditor.com's new DND engine. Red lines show possible candidates. Green lines show mostly likely candidates. It chooses a candidate based on midpoint and direction. This is an inline CSS grid example. All completely inline - no wrapping elements.
221
Chris Villa @chrisvilla.bsky.social · 27/08/2024
I knew it would be good, but I didn’t expect @danabra.mov’s talk on @atproto.com to get me thinking about B2B data… I spend a lot of time working in enterprise. These massive companies typically use on prem versions of software because they need to own their data (GDPR, data security, etc). (1/2)
150
Chris Villa @chrisvilla.bsky.social · 25/06/2024
There will always be another rebrand… we call this Scott’s law of rebrands 💫
010
Reposted by Chris Villa
Puck @puckeditor.com · 04/06/2024
2024 continues to be a very busy period - Puck v0.15 just landed with a new API for dynamic fields! 🎉 Dynamic fields let you: 1. Show and hide fields 2. Reconfigure fields 3. Populate fields with dynamic data Thank you, as ever, to our lovely community. You are appreciated 🥰
Demo of Puck editor toggling a field called "drink" between "water" and "orange juice". When "water" is selected, another field appears called "waterType" with the options "still" and "sparkling".
131
Chris Villa @chrisvilla.bsky.social · 28/05/2024
It took me a long time to get comfortable doing live demos. This blog captures a lot of what we had to learn, and hopefully acts as a shortcut for happier demo days! ⚡️
000
Reposted by Chris Villa
Measured @measured.co · 09/05/2024
Hello! Just a note to say we’ll be popping along to this year’s State of the Browser. We’d love to see you there. 📌 Saturday, 14 September, 2024 📌 9:30 am–5:00 pm 📌 Barbican Centre, London More about it: measured.co/blog/catch-u...
measured.co
Let’s catch up at this year’s State of the Browser
We’ll be going along to State of the Browser in London in September 2024.
122
Reposted by Chris Villa
Puck @puckeditor.com · 25/04/2024
Puck v0.14 is out now, introducing viewport switching! Highlights - 🌟 4.2k stars on GitHub 🤗 8 new contributor friends 🌶️ Drag-and-drop across iframes 🤝 A new @contentful package Release notes 👇 github.com/measuredco/p...
github.com
Release v0.14.0 · measuredco/puck
Puck v0.14.0 introduces the long awaited viewport switching feature, with drag-and-drop-friendly iframe rendering for full CSS media query support. TLDR Viewport switching: Render your entire Puck...
062
Reposted by Chris Villa
Kelson Thomas (poped up) @kelson.bsky.social · 24/03/2024
no pain au chocolat, no gain au chocolat
152003539