Sign in

Michael Aufreiter

@michaelaufreiter.com
406 followers 595 following 503 posts

On a mission to make the internet editable. Building editable.website and svedit.dev.

PostsRepliesMedia
Michael Aufreiter @michaelaufreiter.com · 25/09/2026
I think this might be the easiest way to translate website content. What do you think? 😊
010
Michael Aufreiter @michaelaufreiter.com · 22/09/2026
Yeah they do!
010
Michael Aufreiter @michaelaufreiter.com · 21/09/2026
Just tried Codex Computer Use to make edits on an editable.website and it works surprisingly well. I told it to "enable edit mode and go find grammar and spelling mistakes on the current page. Highlight first error and suggest what you'd like to change."
200
Michael Aufreiter @michaelaufreiter.com · 16/09/2026
Shout-out to a growing group of svedit.dev users! Hope you’re having a smooth sailing. And if you happen to hit rough seas and need a compass, hit me up!
0110
Michael Aufreiter @michaelaufreiter.com · 16/09/2026
Selection rectangle is CSS anchor-positioned. Focal point (crosshair) is relative positioned inside it. Scrolling the wrapping container moves the rectangle correctly but the focal point is doing silly things. Scratching my head... Safari anchor positioning bug?
121
Michael Aufreiter @michaelaufreiter.com · 14/09/2026
Nothing to see here... Just an in-place editable.website carousel. (Illustrations by bookofshapes.com)
130
Michael Aufreiter @michaelaufreiter.com · 07/09/2026
Quick intro to the Editable Design System Thx @johannesmutter.bsky.social for setting the base of the design language and creating a beautiful set of icons for the editor. editable.website/design-system
061
Michael Aufreiter @michaelaufreiter.com · 05/09/2026
Have a nice weekend, everyone! And don't forget:
030
Michael Aufreiter @michaelaufreiter.com · 04/09/2026
This is how you create a blog post on an Editable website. There's no concept of collections or posts. Everything is a page, and you can link them up. And get creative with how you do that.
130
Michael Aufreiter @michaelaufreiter.com · 02/09/2026
Editable 2.0 Preview 5 is out! — New blocks: Listing and TitledGallery — Sticky nav and footer — Table of contents for LOOONG pages — Subtle crossfade page transitions — UX improvements and bug fixes Install: editable.website/manual#quick...
071
Michael Aufreiter @michaelaufreiter.com · 01/09/2026
But it is for managing complete sites. Here‘s how you create a new page for instance… If you want to build something else (like an app), we‘ve also released the foundational editing library. It‘s free and open source. See: svedit.dev
030
Michael Aufreiter @michaelaufreiter.com · 30/08/2026
Fixing a typo on your editable.website
190
Michael Aufreiter @michaelaufreiter.com · 29/08/2026
Oh, and you can install Editable on your machine with just a few commands and try the full functionality, including: - Creating new pages - Linking between pages - Uploading images and videos (processed in the browser) - Setting your own colors and fonts - Editing HTML/CSS in (Svelte components)
Installation instructions for Editable.
090
Michael Aufreiter @michaelaufreiter.com · 26/08/2026
For your next website… Skip the CMS Define structure and layout in code with Svelte Let clients edit text, images, and videos directly on the page — easily and safely, without breaking your design This is Editable — launching in preview today Install now: editable.website
6578
Michael Aufreiter @michaelaufreiter.com · 04/08/2026
You can write raw SQL too — sometimes needed.
110
Michael Aufreiter @michaelaufreiter.com · 04/08/2026
Working on a simple migration API for editable.website. Because docs are stored as JSON-serialized subgraphs, you want a way to easily manipulate that data.
1120
Michael Aufreiter @michaelaufreiter.com · 23/07/2026
Svedit is Editing for Svelte. v0.13.0 brings a polished new UX, much better mobile editing, and beautiful new icons (thx @johannesmutter.bsky.social). Also, schema-inferred types and autocomplete, plus plenty of fixes and stability improvements. Demo at svedit.dev
0141
Michael Aufreiter @michaelaufreiter.com · 20/07/2026
Just managed setup a script that allows you to deploy your editable.website to a fresh Ubuntu server (e.g. DigitalOcean droplet) in a single command.
160
Michael Aufreiter @michaelaufreiter.com · 17/07/2026
We already had types in svedit.dev (via JSDoc) but now made the switch to TypeScript eventually. So in Svedit 0.13.0, you will get property auto completion for node properties, that are derived from your document schema.
150
Michael Aufreiter @michaelaufreiter.com · 12/07/2026
Spent some time around tooling for backup and restore of editable.website data. You'll be able to safely pull and push Editable's data folder from local to remote and vice versa. Optionally, you can configure your server for automatic backups to S3 using Litestream.
020
Michael Aufreiter @michaelaufreiter.com · 08/07/2026
svedit.dev v0.12.0 is insanely fast (5-1000x gains). Thx @johannesmutter.bsky.social! And you can now attach marks and annotations not only to text, but also node arrays. Marks are exclusive and render as a DOM elements (e.g. <strong>) while annotations (e.g. a comment) can stack as overlays.
040
Michael Aufreiter @michaelaufreiter.com · 02/07/2026
After svedit.dev, ProseMirror successor wordgard.net fully relies on input events. New era without DOM diffing! Wordgard also renders selections and carets on its own now, avoiding browser glitches. Here I still hope that this is temporary and browsers catch up. marijnhaverbeke.nl/blog/wordgar...
0161
Michael Aufreiter @michaelaufreiter.com · 01/07/2026
The last remaining big puzzle piece. In the next version of Svedit, you'll be able to toggle annotations on node_arrays, not just text. In Editable, this enables you to group blocks together to sections, without introducing additional hierarchy, or hacky spacer blocks.
121
Michael Aufreiter @michaelaufreiter.com · 29/06/2026
Whops. I released but never announced Svedit 0.11.0. It introduces explicit text types, non-destructive type switching of compatible types, and adds infrastructure that helps with implementing things like code blocks (auto-indent, ENTER is considered a newline etc.)
040
Michael Aufreiter @michaelaufreiter.com · 11/06/2026
Confession: Spent 1000s of hours wrestling with contenteditable, yet never touched the new EditContext API. Until today. (With the help of Fable.) 400LOC demo for IME composition. Uses CSS custom highlight to underline the composition while in progress. michael.github.io/edit-context...
110
Michael Aufreiter @michaelaufreiter.com · 06/06/2026
And here's the spec of the underlying Common Content Model for it.
020
Michael Aufreiter @michaelaufreiter.com · 06/06/2026
For example here's the `accordion` with `accordion_items` being live edited on the page.
130
Michael Aufreiter @michaelaufreiter.com · 06/06/2026
Working on a spec + implementation of a Common Content Model, aiming to cover 80%+ of content structures most websites need. Spoiler: It's not Markdown. ;)
3161
Michael Aufreiter @michaelaufreiter.com · 28/05/2026
First apps built on svedit.dev are launching in production this summer. Hence, lots of hours went into the latest 0.10.0 release. Focus was on bugfixes, performance and dev ergonomics. Big thanks to @johannesmutter.bsky.social for the help!
150
Michael Aufreiter @michaelaufreiter.com · 26/04/2026
Aiming to lock-in theming of editing colors that complement the theming of apps/websites that use Svedit in v0.10.0... Pls join the discussion if you have opinions. :) github.com/michael/sved...
010
Michael Aufreiter @michaelaufreiter.com · 10/04/2026
What if (now more than ever) you could do everything, but you still decide to do that one thing, and do it really well?
080
Michael Aufreiter @michaelaufreiter.com · 25/03/2026
Experimenting with a new primitive <SizableViewbox> for editable.website. Because sometimes you want to give site owners a few degrees of freedom in how they position and size media.
170
Michael Aufreiter @michaelaufreiter.com · 24/03/2026
svedit.dev 0.8.0 introduces --node-caret-boundary: --some-anchor to fine-tune node gap placement in real apps, along with several bug fixes. Check the README and release notes for details. Thanks to @johannesmutter.bsky.social for additional contributions!
150
Michael Aufreiter @michaelaufreiter.com · 16/03/2026
Svedit 0.7.0 is out. 🥳 Thanks to @johannesmutter.bsky.social, you can now build content blocks with any layout while Svedit smartly places gap cursors using CSS Anchor Positioning. Also fixes several selection mapping bugs. Things should feel quite stable now. 👉 svedit.dev
271
Michael Aufreiter @michaelaufreiter.com · 10/03/2026
AI writing is soulless. But that's just fine for iterating on an ARCHITECTURE.md doc for editable.website v2... 😛 github.com/michael/edit...
000
Michael Aufreiter @michaelaufreiter.com · 25/02/2026
Almost 3 years since editable.website won 2nd place at @sveltesociety.dev SvelteHack. Since then, I’ve been busy turning this from a prototype into something solid. A way to build CMS-free, in-place editable websites using only Svelte. This is v2. 🥳
911023
Michael Aufreiter @michaelaufreiter.com · 12/02/2026
Sneak peek: In Editable Website v2 you’ll be able to define a couple of colorsets (background, foreground, accent) in code. And then apply them with a keyboard combo as you edit your site.
130
Michael Aufreiter @michaelaufreiter.com · 02/01/2026
Code for "Feature - Layout 1"
010
Michael Aufreiter @michaelaufreiter.com · 02/01/2026
Block type 'Feature' more or less implemented in editable.website v2. Does the spacing feel alright at all breakpoints? (layouts designed by @johannesmutter.bsky.social)
190
Michael Aufreiter @michaelaufreiter.com · 19/12/2025
I'm working on designing and balancing a number of core content types for editable.website. Each type comes with a number of layouts, and the challenge is to have a "layout intention" that you can recognize on desktop and mobile. Example: Feature.svelte github.com/michael/edit...
130
Michael Aufreiter @michaelaufreiter.com · 15/12/2025
v2 is born. Still very early days, but I decided to do development in the open, so y'all can follow along. github.com/michael/edit...
0191
Michael Aufreiter @michaelaufreiter.com · 14/12/2025
Grateful for the active discussions happening around the bug reports and feature requests I identified during svedit.dev development. github.com/w3c/editing/...
060
Michael Aufreiter @michaelaufreiter.com · 09/12/2025
Been struggling hard creating easy-to-maintain blocks that have 10+ layout variations for editable.website v2. Realization: A bit of redundancy in the layout bits is likely the better tradeoff, compared to having tons of parameters and a mess of conditional classes.
030
Michael Aufreiter @michaelaufreiter.com · 28/11/2025
Web-based editors + CSS Anchor position = <3 Here's how easy it is to position a CreateLink prompt (without any of the crazy positioning math) using Svedit 0.6.0:
060
Michael Aufreiter @michaelaufreiter.com · 27/11/2025
Svedit 0.6.0 is out! 🥳 - All new Command API - Keyboard shortcuts - Batching of history entries - Immutable data structures (each change yields a new doc) - API docs!!! (in README) - much more... Enjoy! (Let me know which parts of the docs were hard to read, so I can improve them) svedit.dev
1111
Michael Aufreiter @michaelaufreiter.com · 26/11/2025
I think the "Small Web" is a great idea, and I believe it was the original idea of the internet. Hope that svedit.dev and the upcoming editable.website v2 can contribute to making the web smaller. :)
051
Michael Aufreiter @michaelaufreiter.com · 25/11/2025
Ah I actually missed this. :D Here's like attempt #4
131
Michael Aufreiter @michaelaufreiter.com · 25/11/2025
Excellent execution of generative visuals in combination with minimalist webdesign by @raphaelameaume.com. Love it!
240
Michael Aufreiter @michaelaufreiter.com · 13/11/2025
Now part of the W3C Web Editing Working Group. Gave a presentation on "What is stopping developers from creating editors based only on input events?" at todays TPAC Meeting in Japan. Web-editing ftw! :)
5212
Michael Aufreiter @michaelaufreiter.com · 12/11/2025
Here's how the implementation of a command looks like:
130