Gutenberg Projects WordPress

Launch: Havhø – ren Gutenberg

Min mangeårige flirt med Joachim Hjerl har resulteret i endnu et website – Joachims hjertebarn – som jeg også lavede, er nemlig vokset sig stor og landsdækkende. Derfor skifter organisationen nu navn til Havhøst, da både fokus og rækkevidde har vokset sig større end de oprindelige tanker.

Havhøst er en sammenslutning af maritime nyttehaver, NGO’er, skoler, virksomheder og ganske almindelige mennesker, der deler en kærlighed til det store blå, og som ønsker at fremme en bæredygtig udvikling ved at bringe mennesker tættere på de 70% af jordens overflade, der er dækket af hav.

Vi kultiverer, høster og spiser af havets ressourcer uden at naturen lider overlast. Tang, blåmuslinger og østers optager næringsstoffer fra havet, reducerer iltsvind og åbner op til en verden af gastronomiske oplevelser, der er ukendt for mange. Det på trods af, at Danmark har mere end 7.000 km kystlinje og intet punkt ligger mere end 50 km fra havet.

Fra havhø

Design elementer frem for pixelperfekt design

Designlinjen er leveret af super dygtige som efter en introduktion til Gutenberg og det ekstremt flydende layout som her er muligt, har udarbejdet grafiske elementer og farveplette mv.

Netop fokus på design elementer, frem for et helt formfast design af enkelte sider, er en vigtig erkendelse når vi i fremtiden lader contentcreators (altså dem der arbejder med selve indholdet), styrer layoutet på de enkelte sider. Her er det vigtigt at designet kan se godt ud i mange kombinationer af elementer som tekster, knapper, billeder, kasser osv.

Gutenberg + plugins = pagebuilder

Som jeg blandt andet var inde på til WordCamp Europe i Berlin (se video her under), så er Gutenberg ikke en pagebuilder (endnu), men en content editor som har visse layout muligheder.

Pagebuilders har et fokus på layout frem for indhold – hvor Gutenberg har et fokus på indhold, frem for layout. Jeg spår Gutenbergs layoutmuligheder hurtigt udkonkurrerer de fleste pagebuilders.

Installerede plugins

For at opnå samme layoutmæssige muligheder som div. pagebuilders giver, har jeg installeret følgende plugins (selvforklarende titler I hope, ellers skal du være velkommen til at tage fat i mig!)

Det er vigtigt at understrege at udviklingen med Gutenberg har fart på. F.eks. er der allerede nu, blocks på vej i Gutenberg – altså nogle man ikke selv skal ud og finde og installere, som giver mulighed for at stacke blocks oven på hinanden. Dermed kan Stackable plugin’et her over måske udelades.

Se iøvrigt mit oplæg om Gutenberg på WordCamp Europe 2019 i Berlin

Off topic WordPress

WordCamp: about being a speaker

At WordCamp Europe in Berlin I was interviewed by about being a speaker at such an event. Go see or read the interview


Gutenberg: FINALLY we see some page builder functionality

I LOVE Gutenberg, don’t get me wrong, but a real pagebuilder competitor, it has not been – so far.

With the newest release of Gutenberg features that makes page building a breez might change all that. There is of course much more to page builders, but a good mastering of nested blocks and the ability to group blocks is a big step in the right direction.


Gutenberg: Spreading like wildfire

It’s great to see Gutenberg spread to other Content Management Systems – it strengthens the editing experience but of course also puts a thick line under one of the WordPress goals for 2019 “Building a directory for discovering blocks, and a way to seamlessly install them”.

That directory might very soon need to be cross CMS capable.

GDPR WordPress

Core-privacy: I desided to help shape the component roadmap


WP 5 o

In the same year I turned 4 o, WordPress finally went and did something slightly out of character – and for its age, something that it perhaps should have been clever enough to do a few years back… Just like the tattoo I finally got, at the age of 40, where most settle into the comfort of knowing who you are, and how you will look and dress for the many years to come – WordPress went and got itself a page-builder.

Was it worth the wait?

WordPress, with its 16 internet years (at least 50 human years), started a project some 2 years back and named it after an old guy… The result; as time-tested as a tattoo, a block editing experience as seen in the most popular themes and frameworks out there. 

So what is this new thing, and did WordPress only now, come to a conclusion, that most of us already knew… Tattoos are cool, and so are block-based editing? 

No.. I think the many page builder setups had run its course, causing WordPress to handle all sorts of data in its options tables, and markup data within content fields, to such an extent that sites became too hard to work with, and well… just plain slow. The expandability we love from plugins, custom post types and custom fields has for years now, put a strain on the table structures of the WordPress database.

It was time to take charge and regain control of what is most important to WordPress

Me, in this blog post

The most important to WordPress has always been to democratize publishing. Sometimes democratizing means putting all the great ideas others had already put into plugins and feature packed themes, into the core of a system. And so they did… 

Gutenberg: the future of publishing

In core, Gutenberg lay the cornerstone for a future with no widgets no, one page – one layout, and perhaps most important, no reason to store content into only one database field for a page or post. Blocks themselves could, in theory, do away with custom fields, and enable WP to change how data is stored, in much smaller chunks of data. Data that we can pull in, when and if needed in a given view. 

All of this is speculation, some closely related to ideas already alive in the WordPress community. Others just imaginations by me. 

Short term

We already see the effects of putting blocks with layout capabilities into the hands of the content owners, instead of UX and design people. Blocks and their layouts and functions are now put in place, in context – or removed, if not needed in context.

Long term

Context is king, and blocks make it easier than ever to put the right blocks of content in the right context. I can’t wait to see conditional logic in blocks – based on device, surrounding blocks, geo, time or even personal information (if GDPR will allow it).


Happy GDPR day WordPress – now let’s get back to work ;)

WOW what a ride! Some 200 days has passed since I first started reading EU General Data Protection Regulation, finding GDPR friends in the WordPress COmmunity, and seeing the project take form inside WordPress core.

The day has arrived – 25th of May – I’ve said that date quite a few times now, and although it’s an important data as the deadline has kept us focused in our work – the work is not at all “done”.

Our work continues, and updates to the current GDPR hooks and filters you will find in WordPress code as well as backend tools for site administrators, are first versions of the central tools. Many more to come I suspect.

One such tools is a logging feature which we started working on at Peytz when we where still had about 50 days to go before the 25th…

Although you see a logging feature as part of the current GDPR tools in admin, these do not meet the requirements of logging, in terms of the regulation.

Therefore we’ve set out to define an logging feature that can hook into WordPress actions allowing developers log actions performed in code
– anonymosly
– separated from the database
– re-actionable

Wait – what: re-actionable and separated from the database. That sounds messy!
Well, yes, and it’s not strictly WordPress but let me explain.

To make a log compliant with GDPR, we need to make sure that it does not hold any information that can identify a natural beeing.

We also need to maintain a log that is not part of the data it’s logging.

This makes for an external logging mechanism you can put data into, and also query to fetch previous actions performed on certain data.

A unique but non-personal hashed value will serve as an ID. One that only make sense if a user provides the personal data on which the hashed value has been created.

Make sense?

Stay tuned for more information after today 🙂


GDPR: We’re in BETA – 21 days before the deadline

Am I poud? Hell ya. Did i code a single line – nope 😉

But nonetheless, my team has spend roughly 125hours to help out on this project that we gave birth to. The project was adpoted by the WordPress community and the result is now in Beta for the upcoming WordPress 4.9.6 version:


GDPR going into WordPress Core

I’m quite sure, by know, you know that I’m heavily invested in GDPR. Specifically when it comes to looking past the law texts surrounding the regulation, focusing on providing the actual tools needed to comply with the new lives of a website administrator after May 25th, 2018.

One thing is to spend piles of money on privacy policy texts on your website – you should – of course…

Another thing is how to handle the request your users are now permitted to bring before you because of the General Data Protection Regulation.

Yes yes yes – I’m STILL talking about:

  • What data do you have on me?
  • Can you provide me with a copy of the data you have on me(readable, and machine-readable?)
  • Can you allow me to make changes to the data?
  • Can you please delete or otherwise anonymize the data you have on me so that it is no longer data that points to me as a human being?
  • Do you have means of notifying me and the appropriate authority within your country if a data breach occurs?
  • Can I retract consent previously given to you partly or in full?
  • Do you have a log in place that collects any interaction I might have on your system when it concerns personal data and given content on my part?
  • How do you handle if a backup with my data is re-introduced after I’ve asked for deletion?
  • How do you handle if a 3rd party element of your website changes it’s compliance texts and ways they use any data your website might share with them ?

Soo many questions – many are possibly easy to answer from a technical standpoint, and some might not even require a technical solution – a simple written Todo might be sufficient in some cases.

For WordPress at least, we’re making real headway with since the project has been adopted by the community and now lives inside WordPress Trac tickets – being actively developed by the community – something I’m quite happy with 🙂

Interested in GDPR in relation to your website?
Please don’t hesitate – reach out

Kåre Mulvad Steffensen


Meetup Porto: Interview about GDPR for WP

In December 2017 together with Peter Suhm from, we’d just launched the basic idea of a PHP object Interface to tackle the upcoming GDPR challenges. Our Ideá was that a common interface adopted and implemented by the general community of WordPress would ensure a unified way of identifying Personal Data, and this makes it possible for the ecosystem to create plugins utilizing this interface to provide the needed tools for Website administrators to uphold the law of the regulation. was live and a GitHub repository to go with it, with a basic readme file to explain the idea. With the help of Peters contacts, we got a few articles on WPTavern which lead to this interview for the monthly Meetup in Porto, Portugal.

This is the full article about the meetup:

Since then, the GDPR for WP project has moved forward, and to focus more on how WordPress is doing things, it’s not a strict PHP interface anymore.