Auf bestimmten Webseiten wird gefilmt, was man/frau dort macht.

Mit frei verfügbaren Javascript-Dateien kann jede Webseite in einen Kiebitz-Modus versetzt werden: man wird gefilmt, was man auf der Seite macht. Auch z.B. Daten, die man in Eingabefelder schreibt, ohne das Formular abzusenden, gelangen so zum Seitenanbieter und evtl. darüber hinaus. Zu den Firmen mit .de-Domains gehören:,,,,,,,,,,,,,
Hier im Film mal dargestellt. Ob das legal ist, müssen andere entscheiden. Quelle:

Over 400 of the World's Most Popular Websites Record Your Every Keystroke, Princeton Researchers Find

“Session replay scripts” can be used to log (and then playback) everything you typed or clicked on a website.

Louise Matsakis

Louise Matsakis

Image: Shutterstock / Composition: Louise Matsakis

Most people who’ve spent time on the internet have some understanding that many websites log their visits and keep record of what pages they’ve looked at. When you search for a pair of shoes on a retailer’s site for example, it records that you were interested in them. The next day, you see an advertisement for the same pair on Instagram or another social media site.

The idea of websites tracking users isn’t new, but research from Princeton University released last week indicates that online tracking is far more invasive than most users understand. In the first installment of a series titled “No Boundaries,” three researchers from Princeton’s Center for Information Technology Policy (CITP) explain how third-party scripts that run on many of the world’s most popular websites track your every keystroke and then send that information to a third-party server.

Some highly-trafficked sites run software that records every time you click and every word you type. If you go to a website, begin to fill out a form, and then abandon it, every letter you entered in is still recorded, according to the researchers’ findings. If you accidentally paste something into a form that was copied to your clipboard, it’s also recorded. Facebook users were outraged in 2013 when it was discovered that the social network was doing something similar with status updates—it recorded what users they typed, even if they never ended up posting it.

These scripts, or bits of code that websites run, are called “session replay” scripts. Session replay scripts are used by companies to gain insight into how their customers are using their sites and to identify confusing webpages. But the scripts don’t just aggregate general statistics, they record and are capable of playing back individual browsing sessions. The scripts don’t run on every page, but are often placed on pages where users input sensitive information, like passwords and medical conditions.

It’s difficult for the user to understand what’s happening “unless you dug deep into the privacy policy,” Steve Englehardt, one of the researchers behind the study, told me over the phone. “I’m just happy that users will be made aware of it."

In the video below, you can see what a session replay script from the company FullStory can record:

Most troubling is that the information session replay scripts collect can’t “reasonably be expected to be kept anonymous,” according to the researchers. Some of the companies that provide this software, like FullStory, design tracking scripts that even allow website owners to link the recordings they gather to a user’s real identity. On the backend, companies can see that a user is connected to a specific email or name. FullStory did not return a request for comment.

To conduct their study, Englehardt, Gunes Acar, and Arvind Narayanan looked at seven of the most popular session replay companies including FullStory, SessionCam, Clicktale, Smartlook, UserReplay, Hotjar, and Russia’s most popular search engine Yandex. They set up test pages and installed session replay scripts on them from six of the seven companies. Their findings indicated that at least one of these company’s scripts is being used by 482 of the world’s top 50,000 sites, according to their Alexa ranking.

Prominent companies who use the scripts include men’s retailer,, and the financial investment firm It’s also worth noting that 482 might be a low estimate. It’s likely that the scripts don’t record every user that visits a site, the researchers told me. So when they were testing, they likely did not detect some scripts because they were not activated. You can see all the popular websites that utilize session replay scripts documented by the researchers here.

Since the Princeton researchers released their research, both Bonobos and Walgreens said they would stop using session replay scripts. “We take the protection of our customers’ data very seriously and are investigating the claims made in the study that was published yesterday. As we look into the concerns that were raised, and out of an abundance of caution, we have stopped sharing data with FullStory,” a spokesperson from Walgreens told me in an email last Thursday.

Bonobos did not return a request for comment, but the company told Wired that it “eliminated data sharing with FullStory in order to evaluate our protocols and operations with respect to their service. We are continually assessing and strengthening systems and processes in order to protect our customers’ data."

Fidelity did not say it would stop using session replay scripts. “We don’t comment on relationship (sic) we have with vendors or companies but one of our highest priorities is the protection of customer information,” a spokesperson said in a statement.

Companies that sell replay scripts do offer a number of redaction tools that allow websites to exclude sensitive content from recordings, and some even explicitly forbid the collection of user data. Still, the use of session replay scripts by so many of the world’s most popular websites has serious privacy implications.

“Collection of page content by third-party replay scripts may cause sensitive information such as medical conditions, credit card details, and other personal information displayed on a page to leak to the third-party as part of the recording,” the researchers wrote in their post.

Passwords are often accidentally included in recordings, despite that the scripts are designed to exclude them. The researchers found that other personal information was also often not redacted, or only redacted partially, at least with some of the scripts. Two of the companies, UserReplay and SessionCam, block all user inputs by default (they just track where users are clicking), which is a far safer approach.

It’s not just what users input that matters, however. When you log into a website, what’s displayed on the screen can also be sensitive. The researchers found that “none of the companies appear to provide automated redaction of displayed content by default; all displayed content ends up leaking.”

For example, the researchers tested, which used to run a script from the company FullStory. Despite the fact that Walgreens does use a number of redaction features offered by FullStory, they found that information like medical conditions and prescriptions still are being collected by the session replay script, along with users’ real names.

Finally, the study’s authors are worried that session script companies could be vulnerable to targeted hacks, especially because they’re likely high-value targets. For example, many of these companies have dashboards where clients can playback the recordings they collect. But Yandex, Hotjar, and Smartlook’s dashboards run non-encrypted HTTP pages, rather than much more secure, encrypted HTTPS pages.

“This allows an active man-in-the-middle to inject a script into the playback page and extract all of the recording data,” the study authors wrote.

In an emailed statement, a spokesperson for Yandex told me the company tries to use HTTPS wherever it can, and said it is going to update its product soon to no longer use HTTP. "HTTP is used intentionally, as session recordings load websites using iframe. Unfortunately, loading http content from https websites is prohibited on the browser level so http player is required to support http websites for this feature," the statement read.

A spokesperson for SmartLook said something similar in an emailed statement: "Our product team is already aware of this and they are already working on fixing the issue."

HotJar and UserReplay did not issue a statement in time for publication. SessionCam CEO Kevin Goodings wrote in a blog post that “Everyone at SessionCam can get behind the CITP’s conclusion: ‘Improving user experience is a critical task for publishers. However, it shouldn’t come at the expense of user privacy.’ The whole team at SessionCam lives these values every day. The privacy of your website visitors and the security of your data is of paramount importance to us.” A spokesperson from Clicktale said in an email that the company "takes both customer and end-user privacy extremely seriously, using multiple layers of security and technologies to ensure that data is kept private and secure."

It’s not just session scripts that are following you around the internet. A study published earlier this year found that nearly half of the world’s 1,000 most popular websites use the same tracking software to monitor your behavior in various ways.

If you want to block session replay scripts, popular ad-blocking tool AdBlock Plus will now protect you against all of the ones documented in the Princeton study. AdBlock Plus formerly only protected against some, but has now been updated to block all as a result of the researchers’ work.

Update 11/20/17 10:30 AM: This story has been updated with comment from Yandex.

Update 11/21/17 9:33 AM: This story has been updated with comment from SmartLook.

Update 11/21/17 3:45 PM: This story has been updated with comment from Clicktale.

Got a tip? You can contact this reporter securely on Signal at +1 201-316-6981, or by email at

Get six of our favorite Motherboard stories every day by signing up for our newsletter.

Liste mit Domains, die ihre Kunden bei der Benutzung „filmen“


29 	evidence of session recording
35 	analytics script exists
45 	analytics script exists
74 	analytics script exists
88 	evidence of session recording
102 	analytics script exists
124 	analytics script exists
136 	analytics script exists
140 	analytics script exists
151 	analytics script exists
164 	analytics script exists
177 	analytics script exists
196 	analytics script exists
202 	analytics script exists
209 	analytics script exists
211 	analytics script exists
228 	analytics script exists
245 	analytics script exists
247 	analytics script exists
255 	analytics script exists
266 	analytics script exists
279 	analytics script exists
282 	analytics script exists
284 	analytics script exists
288 	analytics script exists
289 	analytics script exists
309 	analytics script exists
310 	analytics script exists
316 	analytics script exists
318 	analytics script exists
329 	analytics script exists
335 	evidence of session recording
345 	analytics script exists
348 	analytics script exists
359 	analytics script exists
370 	analytics script exists
375 	analytics script exists
383 	analytics script exists
387 	evidence of session recording
392 	analytics script exists
398 	evidence of session recording
403 	analytics script exists
416 	analytics script exists
421 	analytics script exists
436 	analytics script exists
437 	analytics script exists
439 	analytics script exists
456 	analytics script exists
464 	analytics script exists
474 	analytics script exists
485 	analytics script exists
485 	analytics script exists
494 	analytics script exists
496 	analytics script exists
505 	analytics script exists
511 	analytics script exists
513 	analytics script exists
516 	analytics script exists
520 	analytics script exists
522 	analytics script exists
545 	analytics script exists
558 	evidence of session recording
560 	analytics script exists
583 	analytics script exists
590 	analytics script exists
593 	analytics script exists
597 	analytics script exists
602 	analytics script exists
609 	analytics script exists
610 	analytics script exists
631 	analytics script exists
643 	analytics script exists
644 	analytics script exists
659 	analytics script exists
660 	analytics script exists
663 	analytics script exists
677 	analytics script exists
681 	analytics script exists
683 	evidence of session recording
685 	evidence of session recording
686 	analytics script exists
692 	analytics script exists
727 	analytics script exists
743 	analytics script exists
751 	evidence of session recording
776 	analytics script exists
778 	analytics script exists
783 	analytics script exists
795 	analytics script exists
813 	analytics script exists
817 	analytics script exists
821 	evidence of session recording
825 	evidence of session recording
830 	analytics script exists
842 	analytics script exists
851 	analytics script exists
883 	evidence of session recording
885 	analytics script exists
890 	analytics script exists
901 	analytics script exists
908 	analytics script exists
910 	analytics script exists
913 	analytics script exists
915 	analytics script exists
923 	analytics script exists
925 	evidence of session recording
926 	analytics script exists
933 	analytics script exists
934 	analytics script exists
936 	analytics script exists
942 	analytics script exists
954 	analytics script exists
958 	analytics script exists
962 	analytics script exists
965 	analytics script exists
966 	analytics script exists
972 	analytics script exists
976 	evidence of session recording
980 	analytics script exists
980 	analytics script exists
982 	analytics script exists
983 	analytics script exists
984 	analytics script exists
986 	analytics script exists
989 	analytics script exists
992 	analytics script exists
993 	analytics script exists
996 	evidence of session recording
1003 	analytics script exists
1029 	analytics script exists
1030 	evidence of session recording
1040 	evidence of session recording
1056 	analytics script exists
1060 	analytics script exists
1073 	analytics script exists
1092 	analytics script exists
1094 	analytics script exists
1099 	analytics script exists
1102 	analytics script exists
1105 	analytics script exists
1111 	analytics script exists
1115 	analytics script exists
1123 	analytics script exists
1132 	analytics script exists
1150 	analytics script exists
1155 	analytics script exists
1157 	analytics script exists
1160 	analytics script exists
1167 	analytics script exists
1185 	analytics script exists
1185 	analytics script exists
1195 	analytics script exists
1196 	analytics script exists
1197 	analytics script exists
1204 	analytics script exists
1206 	analytics script exists
1206 	analytics script exists
1209 	analytics script exists
1210 	analytics script exists
1211 	analytics script exists
1219 	evidence of session recording
1225 	evidence of session recording
1235 	analytics script exists
1236 	analytics script exists
1245 	analytics script exists
1251 	analytics script exists
1267 	analytics script exists
1273 	analytics script exists
1278 	analytics script exists
1280 	analytics script exists
1284 	analytics script exists
1289 	analytics script exists
1311 	analytics script exists
1343 	analytics script exists
1345 	analytics script exists
1348 	analytics script exists
1351 	analytics script exists
1354 	analytics script exists
1361 	analytics script exists
1362 	evidence of session recording
1362 	evidence of session recording
1364 	analytics script exists
1381 	analytics script exists
1385 	analytics script exists
1398 	analytics script exists
1412 	analytics script exists
1416 	analytics script exists
1417 	analytics script exists
1419 	analytics script exists
1419 	analytics script exists
1421 	evidence of session recording
1429 	analytics script exists
1435 	evidence of session recording
1438 	analytics script exists
1450 	analytics script exists
1451 	analytics script exists
1456 	analytics script exists
1484 	analytics script exists
1494 	analytics script exists
1498 	analytics script exists
1501 	analytics script exists
1501 	analytics script exists
1507 	analytics script exists
1528 	analytics script exists
1535 	analytics script exists
1537 	analytics script exists
1540 	analytics script exists
1547 	analytics script exists
1549 	analytics script exists
1559 	evidence of session recording
1576 	evidence of session recording
1579 	analytics script exists
1586 	analytics script exists
1602 	analytics script exists
1629 	analytics script exists
1642 	analytics script exists
1647 	evidence of session recording
1656 	analytics script exists
1657 	analytics script exists
1689 	analytics script exists
1690 	analytics script exists
1707 	analytics script exists
1709 	analytics script exists
1718 	analytics script exists
1725 	evidence of session recording
1728 	analytics script exists
1729 	analytics script exists
1730 	analytics script exists
1740 	analytics script exists
1741 	analytics script exists
1747 	analytics script exists
1748 	analytics script exists
1755 	analytics script exists
1774 	analytics script exists
1777 	analytics script exists
1780 	evidence of session recording
1795 	analytics script exists
1797 	evidence of session recording
1808 	analytics script exists
1809 	analytics script exists
1811 	analytics script exists
1814 	analytics script exists
1821 	analytics script exists
1831 	analytics script exists
1835 	analytics script exists
1836 	analytics script exists
1845 	analytics script exists
1867 	analytics script exists
1872 	analytics script exists
1885 	analytics script exists
1896 	evidence of session recording
1902 	evidence of session recording
1936 	analytics script exists
1936 	analytics script exists
1955 	analytics script exists
1959 	analytics script exists
1960 	analytics script exists
1962 	analytics script exists
1975 	analytics script exists
1980 	evidence of session recording
1983 	analytics script exists
2003 	analytics script exists
2009 	analytics script exists
2013 	analytics script exists
2036 	analytics script exists
2043 	evidence of session recording
2055 	analytics script exists
2059 	evidence of session recording
2060 	analytics script exists
2062 	evidence of session recording
2067 	analytics script exists
2068 	analytics script exists
2086 	evidence of session recording
2088 	analytics script exists
2090 	analytics script exists
2098 	analytics script exists
2102 	analytics script exists
2103 	analytics script exists
2117 	analytics script exists
2136 	analytics script exists
2143 	analytics script exists
2151 	analytics script exists
2161 	analytics script exists
2165 	evidence of session recording
2179 	analytics script exists
2181 	analytics script exists
2185 	evidence of session recording
2193 	analytics script exists
2193 	analytics script exists
2199 	analytics script exists
2206 	analytics script exists
2207 	analytics script exists
2209 	evidence of session recording
2211 	analytics script exists
2243 	analytics script exists
2282 	analytics script exists
2287 	analytics script exists
2300 	analytics script exists
2313 	analytics script exists
2323 	analytics script exists
2335 	analytics script exists
2338 	analytics script exists
2340 	analytics script exists
2353 	analytics script exists
2356 	analytics script exists
2360 	analytics script exists
2366 	analytics script exists
2377 	analytics script exists
2382 	analytics script exists
2401 	evidence of session recording
2406 	analytics script exists
2414 	evidence of session recording
2415 	analytics script exists
2417 	analytics script exists
2423 	evidence of session recording
2440 	analytics script exists
2442 	analytics script exists
2448 	evidence of session recording
2484 	analytics script exists
2498 	analytics script exists
2513 	evidence of session recording
2526 	analytics script exists
2527 	evidence of session recording
2527 	analytics script exists
2533 	analytics script exists
2556 	analytics script exists
2557 	analytics script exists
2572 	analytics script exists
2574 	analytics script exists
2575 	analytics script exists
2578 	evidence of session recording
2583 	analytics script exists
2586 	analytics script exists
2592 	analytics script exists
2595 	evidence of session recording
2598 	analytics script exists
2604 	analytics script exists
2605 	analytics script exists
2626 	analytics script exists
2647 	analytics script exists
2649 	analytics script exists
2666 	analytics script exists
2671 	analytics script exists
2672 	analytics script exists
2688 	evidence of session recording
2713 	analytics script exists
2720 	analytics script exists
2743 	analytics script exists
2753 	analytics script exists
2754 	analytics script exists
2759 	analytics script exists
2762 	analytics script exists
2768 	analytics script exists
2776 	analytics script exists
2778 	analytics script exists
2787 	analytics script exists
2795 	analytics script exists
2811 	analytics script exists
2818 	analytics script exists
2824 	analytics script exists
2849 	analytics script exists
2850 	analytics script exists
2854 	analytics script exists
2864 	analytics script exists
2867 	analytics script exists
2868 	analytics script exists
2878 	evidence of session recording
2891 	analytics script exists
2892 	analytics script exists
2901 	analytics script exists
2902 	analytics script exists
2902 	analytics script exists
2904 	analytics script exists
2908 	analytics script exists
2926 	analytics script exists
2929 	analytics script exists
2931 	analytics script exists
2941 	analytics script exists
2942 	analytics script exists
2945 	analytics script exists
2954 	analytics script exists
2957 	analytics script exists
2965 	analytics script exists
2973 	analytics script exists
2975 	analytics script exists
2987 	analytics script exists
2988 	analytics script exists
2989 	analytics script exists
3015 	analytics script exists
3027 	analytics script exists
3033 	analytics script exists
3037 	analytics script exists
3046 	analytics script exists
3052 	analytics script exists
3059 	analytics script exists
3061 	analytics script exists
3063 	analytics script exists
3064 	analytics script exists
3067 	analytics script exists
3070 	analytics script exists
3073 	analytics script exists
3080 	analytics script exists
3086 	evidence of session recording
3091 	analytics script exists
3091 	analytics script exists
3092 	analytics script exists
3095 	analytics script exists
3099 	evidence of session recording
3112 	evidence of session recording
3112 	analytics script exists
3113 	analytics script exists
3142 	analytics script exists
3143 	analytics script exists
3144 	analytics script exists
3150 	analytics script exists
3150 	analytics script exists
3168 	analytics script exists
3174 	analytics script exists
3187 	evidence of session recording
3203 	analytics script exists
3209 	analytics script exists
3217 	evidence of session recording
3219 	analytics script exists
3240 	evidence of session recording
3241 	analytics script exists
3251 	analytics script exists
3257 	analytics script exists
3269 	analytics script exists
3270 	analytics script exists
3273 	analytics script exists
3274 	analytics script exists
3277 	analytics script exists
3280 	analytics script exists
3288 	analytics script exists
3293 	evidence of session recording
3300 	evidence of session recording
3314 	evidence of session recording
3317 	analytics script exists
3332 	analytics script exists
3344 	analytics script exists
3344 	analytics script exists
3357 	analytics script exists
3364 	analytics script exists
3369 	analytics script exists
3373 	analytics script exists
3374 	analytics script exists
3379 	analytics script exists
3394 	analytics script exists
3400 	analytics script exists
3407 	evidence of session recording
3411 	analytics script exists
3441 	analytics script exists
3444 	analytics script exists
3450 	analytics script exists
3450 	analytics script exists
3455 	analytics script exists
3457 	analytics script exists
3459 	analytics script exists
3466 	analytics script exists
3466 	analytics script exists
3473 	analytics script exists
3477 	analytics script exists
3478 	analytics script exists
3483 	evidence of session recording
3489 	analytics script exists
3490 	analytics script exists
3491 	analytics script exists
3498 	analytics script exists
3503 	analytics script exists
3515 	evidence of session recording
3517 	evidence of session recording
3521 	analytics script exists
3544 	analytics script exists
3554 	analytics script exists
3560 	analytics script exists
3565 	analytics script exists
3569 	analytics script exists
3590 	analytics script exists
3595 	analytics script exists
3598 	analytics script exists
3607 	analytics script exists
3628 	analytics script exists
3635 	analytics script exists
3638 	analytics script exists
3650 	analytics script exists
3661 	analytics script exists
3665 	analytics script exists
3694 	analytics script exists
3697 	evidence of session recording
3714 	evidence of session recording
3715 	analytics script exists
3731 	evidence of session recording
3732 	analytics script exists
3735 	analytics script exists
3745 	analytics script exists
3760 	analytics script exists
3777 	analytics script exists
3786 	analytics script exists
3800 	analytics script exists
3822 	analytics script exists
3826 	analytics script exists
3834 	evidence of session recording
3834 	evidence of session recording
3845 	evidence of session recording
3854 	analytics script exists
3861 	analytics script exists
3865 	analytics script exists
3882 	analytics script exists
3887 	analytics script exists
3892 	analytics script exists
3897 	analytics script exists
3912 	analytics script exists
3922 	analytics script exists
3926 	analytics script exists
3963 	analytics script exists
3977 	analytics script exists
3983 	analytics script exists
3989 	analytics script exists
3994 	analytics script exists
4004 	analytics script exists
4029 	evidence of session recording
4037 	analytics script exists
4050 	analytics script exists
4056 	analytics script exists
4066 	analytics script exists
4069 	analytics script exists
4072 	analytics script exists
4077 	evidence of session recording
4095 	analytics script exists
4103 	analytics script exists
4104 	analytics script exists
4113 	analytics script exists
4160 	analytics script exists
4179 	analytics script exists
4180 	analytics script exists
4185 	analytics script exists
4188 	analytics script exists
4189 	analytics script exists
4190 	analytics script exists
4196 	analytics script exists
4198 	analytics script exists
4201 	analytics script exists
4208 	analytics script exists
4219 	analytics script exists
4220 	analytics script exists
4243 	analytics script exists
4248 	analytics script exists
4250 	analytics script exists
4252 	analytics script exists
4265 	analytics script exists
4270 	analytics script exists
4280 	analytics script exists
4297 	analytics script exists
4304 	analytics script exists
4308 	analytics script exists
4319 	analytics script exists
4353 	analytics script exists
4361 	analytics script exists
4369 	analytics script exists
4382 	analytics script exists
4385 	analytics script exists
4386 	evidence of session recording
4390 	analytics script exists
4393 	analytics script exists
4400 	analytics script exists
4408 	analytics script exists
4412 	analytics script exists
4424 	analytics script exists
4437 	analytics script exists
4438 	evidence of session recording
4441 	analytics script exists
4449 	analytics script exists
4450 	analytics script exists
4459 	evidence of session recording
4464 	analytics script exists
4468 	analytics script exists
4477 	analytics script exists
4480 	analytics script exists
4486 	analytics script exists
4488 	analytics script exists
4490 	evidence of session recording
4529 	analytics script exists
4534 	analytics script exists
4556 	analytics script exists
4568 	analytics script exists
4574 	analytics script exists
4580 	analytics script exists
4581 	analytics script exists
4582 	analytics script exists
4591 	analytics script exists
4607 	analytics script exists
4610 	analytics script exists
4629 	analytics script exists
4630 	analytics script exists
4633 	analytics script exists
4634 	analytics script exists
4638 	analytics script exists
4638 	analytics script exists
4641 	analytics script exists
4643 	evidence of session recording
4643 	analytics script exists
4654 	analytics script exists
4658 	analytics script exists
4666 	analytics script exists
4682 	analytics script exists
4687 	analytics script exists
4696 	analytics script exists
4706 	analytics script exists
4707 	analytics script exists
4766 	analytics script exists
4777 	analytics script exists
4788 	evidence of session recording
4791 	analytics script exists
4802 	analytics script exists
4803 	analytics script exists
4803 	analytics script exists
4806 	analytics script exists
4817 	analytics script exists
4820 	analytics script exists
4824 	analytics script exists
4828 	analytics script exists
4829 	analytics script exists
4870 	analytics script exists
4870 	evidence of session recording
4871 	evidence of session recording
4875 	analytics script exists
4881 	analytics script exists
4889 	analytics script exists
4891 	analytics script exists
4911 	analytics script exists
4911 	analytics script exists
4918 	analytics script exists
4920 	analytics script exists
4952 	analytics script exists
4962 	analytics script exists
4970 	analytics script exists
4972 	analytics script exists
4974 	analytics script exists
5003 	analytics script exists
5005 	analytics script exists
5010 	analytics script exists
5013 	analytics script exists
5016 	analytics script exists
5023 	analytics script exists
5041 	analytics script exists
5043 	analytics script exists
5043 	analytics script exists
5053 	analytics script exists
5063 	analytics script exists
5103 	analytics script exists
5111 	analytics script exists
5127 	analytics script exists
5132 	analytics script exists
5145 	analytics script exists
5147 	analytics script exists
5152 	analytics script exists
5155 	analytics script exists
5170 	analytics script exists
5206 	analytics script exists
5213 	analytics script exists
5218 	analytics script exists
5245 	analytics script exists
5250 	analytics script exists
5279 	analytics script exists
5294 	evidence of session recording
5302 	analytics script exists
5311 	analytics script exists
5313 	analytics script exists
5314 	analytics script exists
5315 	analytics script exists
5336 	analytics script exists
5341 	analytics script exists
5347 	analytics script exists
5349 	analytics script exists
5356 	analytics script exists
5358 	analytics script exists
5371 	analytics script exists
5381 	analytics script exists
5387 	analytics script exists
5389 	analytics script exists
5425 	analytics script exists
5434 	analytics script exists
5441 	analytics script exists
5452 	evidence of session recording
5458 	analytics script exists
5465 	analytics script exists
5467 	analytics script exists
5470 	analytics script exists
5471 	analytics script exists
5473 	evidence of session recording
5496 	analytics script exists
5517 	analytics script exists
5538 	analytics script exists
5539 	analytics script exists
5543 	analytics script exists
5544 	analytics script exists
5562 	analytics script exists
5564 	analytics script exists
5569 	analytics script exists
5580 	analytics script exists
5586 	analytics script exists
5596 	analytics script exists
5606 	analytics script exists
5645 	analytics script exists
5647 	analytics script exists
5655 	analytics script exists
5657 	analytics script exists
5660 	analytics script exists
5663 	analytics script exists
5680 	evidence of session recording
5680 	evidence of session recording
5684 	analytics script exists
5690 	analytics script exists
5701 	analytics script exists
5714 	evidence of session recording
5720 	analytics script exists
5730 	analytics script exists
5748 	analytics script exists
5749 	analytics script exists
5762 	analytics script exists
5766 	evidence of session recording
5771 	analytics script exists
5787 	analytics script exists
5796 	analytics script exists
5805 	analytics script exists
5825 	analytics script exists
5828 	analytics script exists
5835 	analytics script exists
5845 	analytics script exists
5891 	evidence of session recording
5895 	analytics script exists
5900 	analytics script exists
5905 	analytics script exists
5914 	analytics script exists
5928 	analytics script exists
5940 	analytics script exists
5940 	analytics script exists
5957 	analytics script exists
5970 	analytics script exists
5980 	analytics script exists
5988 	analytics script exists
5991 	analytics script exists
6031 	analytics script exists
6036 	analytics script exists
6060 	analytics script exists
6064 	analytics script exists
6069 	analytics script exists
6080 	analytics script exists
6081 	analytics script exists
6084 	evidence of session recording
6091 	analytics script exists
6097 	analytics script exists
6129 	analytics script exists
6153 	analytics script exists
6154 	analytics script exists
6155 	analytics script exists
6173 	analytics script exists
6185 	analytics script exists
6189 	analytics script exists
6197 	analytics script exists
6213 	analytics script exists
6219 	analytics script exists
6223 	analytics script exists
6235 	analytics script exists
6238 	analytics script exists
6241 	analytics script exists
6247 	analytics script exists
6248 	analytics script exists
6250 	analytics script exists
6253 	analytics script exists
6261 	analytics script exists
6280 	analytics script exists
6290 	evidence of session recording
6290 	analytics script exists
6303 	analytics script exists
6307 	analytics script exists
6311 	analytics script exists
6347 	analytics script exists
6354 	analytics script exists
6362 	analytics script exists
6364 	analytics script exists
6366 	analytics script exists
6371 	analytics script exists
6372 	analytics script exists
6373 	analytics script exists
6379 	analytics script exists
6380 	analytics script exists
6384 	analytics script exists
6386 	evidence of session recording
6415 	analytics script exists
6417 	analytics script exists
6425 	analytics script exists
6432 	analytics script exists
6442 	analytics script exists
6446 	analytics script exists
6448 	analytics script exists
6457 	analytics script exists
6469 	analytics script exists
6473 	analytics script exists
6514 	analytics script exists
6525 	evidence of session recording
6539 	analytics script exists
6548 	analytics script exists
6563 	analytics script exists
6564 	analytics script exists
6575 	analytics script exists
6576 	evidence of session recording
6584 	analytics script exists
6594 	analytics script exists
6596 	analytics script exists
6599 	analytics script exists
6611 	analytics script exists
6617 	analytics script exists
6619 	analytics script exists
6620 	analytics script exists
6622 	evidence of session recording
6630 	analytics script exists
6675 	analytics script exists
6678 	analytics script exists
6686 	analytics script exists
6692 	analytics script exists
6693 	evidence of session recording
6699 	analytics script exists
6706 	analytics script exists
6713 	analytics script exists
6727 	analytics script exists
6730 	analytics script exists
6738 	analytics script exists
6741 	evidence of session recording
6747 	evidence of session recording
6761 	analytics script exists
6762 	analytics script exists
6771 	evidence of session recording
6771 	evidence of session recording
6772 	evidence of session recording
6773 	analytics script exists
6774 	analytics script exists
6775 	analytics script exists
6779 	analytics script exists
6789 	analytics script exists
6794 	analytics script exists
6803 	analytics script exists
6813 	analytics script exists
6826 	evidence of session recording
6832 	analytics script exists
6842 	analytics script exists
6844 	analytics script exists
6861 	evidence of session recording
6862 	analytics script exists
6864 	analytics script exists
6885 	analytics script exists
6891 	analytics script exists
6893 	analytics script exists
6901 	analytics script exists
6901 	analytics script exists
6914 	analytics script exists
6916 	analytics script exists
6923 	analytics script exists
6923 	analytics script exists
6924 	analytics script exists
6931 	analytics script exists
6947 	evidence of session recording
6950 	analytics script exists
6950 	analytics script exists
6953 	analytics script exists
6960 	analytics script exists
6961 	analytics script exists
6962 	evidence of session recording
6977 	analytics script exists
7004 	analytics script exists
7005 	analytics script exists
7007 	analytics script exists
7009 	analytics script exists
7018 	analytics script exists
7036 	analytics script exists
7037 	evidence of session recording
7050 	analytics script exists
7057 	analytics script exists
7058 	evidence of session recording
7078 	analytics script exists
7085 	analytics script exists
7086 	analytics script exists
7111 	analytics script exists
7115 	evidence of session recording
7115 	analytics script exists
7133 	analytics script exists
7161 	analytics script exists
7166 	analytics script exists
7169 	analytics script exists
7170 	analytics script exists
7185 	analytics script exists
7193 	analytics script exists
7196 	analytics script exists
7209 	analytics script exists
7209 	analytics script exists
7212 	analytics script exists
7214 	analytics script exists
7224 	analytics script exists
7226 	analytics script exists
7240 	analytics script exists
7242 	analytics script exists
7248 	analytics script exists
7279 	analytics script exists
7297 	analytics script exists
7298 	evidence of session recording
7319 	analytics script exists
7340 	analytics script exists
7345 	analytics script exists
7349 	analytics script exists
7360 	analytics script exists
7377 	analytics script exists
7382 	analytics script exists
7387 	analytics script exists
7394 	analytics script exists
7395 	analytics script exists
7399 	analytics script exists
7400 	evidence of session recording
7413 	analytics script exists
7421 	evidence of session recording
7444 	evidence of session recording
7460 	analytics script exists
7462 	evidence of session recording
7467 	analytics script exists
7485 	analytics script exists
7491 	analytics script exists
7492 	analytics script exists
7493 	analytics script exists
7497 	analytics script exists
7498 	analytics script exists
7509 	analytics script exists
7509 	analytics script exists
7520 	analytics script exists
7531 	analytics script exists
7557 	evidence of session recording
7569 	evidence of session recording
7581 	analytics script exists
7591 	analytics script exists
7597 	analytics script exists
7599 	analytics script exists
7615 	analytics script exists
7630 	analytics script exists
7631 	analytics script exists
7643 	analytics script exists
7648 	analytics script exists
7660 	analytics script exists
7665 	analytics script exists
7666 	analytics script exists
7670 	analytics script exists
7691 	analytics script exists
7697 	analytics script exists
7712 	analytics script exists
7727 	analytics script exists
7728 	analytics script exists
7730 	analytics script exists
7749 	analytics script exists
7753 	analytics script exists
7753 	evidence of session recording
7761 	analytics script exists
7767 	evidence of session recording
7773 	analytics script exists
7776 	evidence of session recording
7789 	analytics script exists
7793 	analytics script exists
7795 	analytics script exists
7802 	evidence of session recording
7805 	analytics script exists
7811 	analytics script exists
7813 	analytics script exists
7828 	analytics script exists
7858 	analytics script exists
7863 	analytics script exists
7866 	analytics script exists
7868 	analytics script exists
7873 	analytics script exists
7881 	analytics script exists
7888 	analytics script exists
7899 	analytics script exists
7902 	analytics script exists
7905 	analytics script exists
7920 	analytics script exists
7922 	analytics script exists
7926 	analytics script exists
7928 	analytics script exists
7931 	analytics script exists
7934 	analytics script exists
7936 	analytics script exists
7940 	analytics script exists
7943 	analytics script exists
7955 	analytics script exists
7965 	analytics script exists
7967 	analytics script exists
7985 	analytics script exists
8005 	analytics script exists
8007 	analytics script exists
8022 	analytics script exists
8053 	analytics script exists
8059 	analytics script exists
8060 	analytics script exists
8061 	analytics script exists
8070 	analytics script exists
8081 	evidence of session 	analytics script exists
8095 	evidence of session recording
8097 	evidence of session recording
8100 	analytics script exists
8105 	analytics script exists
8110 	analytics script exists
8111 	analytics script exists
8117 	analytics script exists
8133 	analytics script exists
8139 	analytics script exists
8142 	analytics script exists
8144 	evidence of session recording
8145 	evidence of session recording
8152 	analytics script exists
8161 	analytics script exists
8192 	analytics script exists
8196 	analytics script exists
8198 	analytics script exists
8211 	analytics script exists
8215 	analytics script exists
8228 	analytics script exists
8237 	analytics script exists
8248 	analytics script exists
8260 	analytics script exists
8276 	analytics script exists
8278 	analytics script exists
8299 	analytics script exists
8301 	evidence of session recording
8313 	analytics script exists
8319 	analytics script exists
8326 	analytics script exists
8326 	analytics script exists
8328 	analytics script exists
8330 	analytics script exists
8346 	evidence of session recording
8346 	analytics script exists
8346 	analytics script exists
8348 	analytics script exists
8349 	analytics script exists
8360 	evidence of session recording
8361 	analytics script exists
8364 	analytics script exists
8367 	evidence of session recording
8372 	analytics script exists
8374 	analytics script exists
8387 	evidence of session recording
8391 	analytics script exists
8423 	evidence of session recording
8426 	analytics script exists
8430 	analytics script exists
8442 	analytics script exists
8443 	analytics script exists
8450 	analytics script exists
8451 	analytics script exists
8461 	analytics script exists
8471 	analytics script exists
8484 	analytics script exists
8492 	analytics script exists
8493 	analytics script exists
8509 	analytics script exists
8511 	evidence of session recording
8513 	analytics script exists
8514 	analytics script exists
8515 	evidence of session recording
8531 	analytics script exists
8538 	evidence of session recording
8539 	analytics script exists
8548 	analytics script exists
8549 	analytics script exists
8572 	evidence of session recording
8575 	analytics script exists
8575 	analytics script exists
8575 	analytics script exists
8576 	analytics script exists
8589 	analytics script exists
8594 	analytics script exists
8598 	analytics script exists
8600 	analytics script exists
8601 	analytics script exists
8611 	analytics script exists
8616 	analytics script exists
8621 	analytics script exists
8624 	analytics script exists
8624 	analytics script exists
8633 	evidence of session recording
8637 	analytics script exists
8646 	analytics script exists
8652 	analytics script exists
8655 	analytics script exists
8659 	analytics script exists
8662 	analytics script exists
8663 	analytics script exists
8689 	analytics script exists
8706 	analytics script exists
8717 	analytics script exists
8718 	analytics script exists
8720 	evidence of session recording
8726 	analytics script exists
8743 	analytics script exists
8758 	analytics script exists
8759 	analytics script exists
8766 	analytics script exists
8767 	analytics script exists
8769 	evidence of session recording
8776 	analytics script exists
8778 	analytics script exists
8783 	analytics script exists
8804 	analytics script exists
8804 	analytics script exists
8809 	analytics script exists
8817 	analytics script exists
8830 	evidence of session recording
8834 	analytics script exists
8850 	analytics script exists
8851 	analytics script exists
8872 	analytics script exists
8880 	analytics script exists
8888 	analytics script exists
8892 	analytics script exists
8905 	analytics script exists
8910 	analytics script exists
8911 	analytics script exists
8912 	analytics script exists
8920 	evidence of session recording
8933 	analytics script exists
8934 	analytics script exists
8943 	analytics script exists
8945 	analytics script exists
8970 	analytics script exists
8979 	analytics script exists
8979 	analytics script exists
8996 	analytics script exists
9001 	analytics script exists
9002 	analytics script exists
9007 	analytics script exists
9014 	analytics script exists
9016 	analytics script exists
9030 	analytics script exists
9045 	analytics script exists
9058 	evidence of session recording
9076 	analytics script exists
9078 	evidence of session recording
9079 	analytics script exists
9080 	analytics script exists
9095 	analytics script exists
9104 	analytics script exists
9107 	analytics script exists
9121 	analytics script exists
9122 	analytics script exists
9156 	analytics script exists
9164 	analytics script exists
9167 	analytics script exists
9177 	analytics script exists
9184 	analytics script exists
9188 	analytics script exists
9192 	evidence of session recording
9207 	analytics script exists
9223 	analytics script exists
9223 	analytics script exists
9237 	analytics script exists
9244 	analytics script exists
9259 	analytics script exists
9261 	evidence of session recording
9265 	analytics script exists
9266 	evidence of session recording
9286 	analytics script exists
9328 	analytics script exists
9337 	analytics script exists
9351 	analytics script exists
9360 	evidence of session recording
9363 	analytics script exists
9377 	evidence of session recording
9390 	analytics script exists
9397 	analytics script exists
9417 	analytics script exists
9426 	analytics script exists
9427 	analytics script exists
9428 	analytics script exists
9441 	analytics script exists
9451 	analytics script exists
9461 	analytics script exists
9478 	analytics script exists
9480 	analytics script exists
9487 	analytics script exists
9491 	analytics script exists
9492 	analytics script exists
9496 	analytics script exists
9501 	analytics script exists
9507 	analytics script exists
9513 	analytics script exists
9521 	analytics script exists
9545 	analytics script exists
9546 	analytics script exists
9553 	analytics script exists
9554 	analytics script exists
9560 	evidence of session recording
9560 	evidence of session recording
9569 	analytics script exists
9600 	evidence of session recording
9611 	analytics script exists
9612 	analytics script exists
9618 	analytics script exists
9651 	analytics script exists
9657 	evidence of session recording
9658 	analytics script exists
9666 	analytics script exists
9670 	analytics script exists
9679 	analytics script exists
9681 	evidence of session recording
9713 	analytics script exists
9725 	analytics script exists
9734 	analytics script exists
9738 	evidence of session recording
9741 	analytics script exists
9753 	analytics script exists
9755 	analytics script exists
9765 	evidence of session recording
9767 	analytics script exists
9775 	analytics script exists
9791 	analytics script exists
9799 	analytics script exists
9803 	analytics script exists
9807 	evidence of session recording
9809 	analytics script exists
9829 	analytics script exists
9832 	analytics script exists
9845 	analytics script exists
9859 	evidence of session recording
9860 	analytics script exists
9873 	evidence of session recording
9880 	analytics script exists
9888 	analytics script exists
9908 	analytics script exists
9908 	analytics script exists
9969 	evidence of session recording
9972 	analytics script exists
9975 	analytics script exists
9987 	analytics script exists
9996 	evidence of session recording

Kultur-Hackathon Coding da Vinci mit spannenden Datasets

Coding da Vinci oder worauf ich mich schon freue

Am 21. Oktober startet zum vierten Mal Coding da Vinci. In diesem Jahr in der Hochschule für Technik und Wirtschaft in Berlin-Schönweide (HTW). Gemeinsam mit unseren Partnern, Deutsche Digitale Bibliothek, Servicestelle Digitalisierung, Open Knowledge Foundation Deutschland, Deutsches Nationalkomitee für Denkmalpflege, HTW, Jüdisches Museum Berlin und den Unterstützern Museum für Naturkunde sowie Anynines, freue ich mich auf den Kultur-Hackathon Coding da Vinci, der schon jetzt ein offizieller Beitrag zum Europäischen Kulturerbejahr 2018 in Deutschland ist.

Ich freue mich auf den Spaß

Der Austausch macht Spaß. Bild von Heiko Marquardt, Coding da Vinci 2015 – Auftakt CC-BY 2.0 via Flickr Commons

Über die Grenzen des beruflichen Alltags hinweg treffen sich bei Coding da Vinci Menschen, die aus ganz unterschiedlichen Zusammenhängen kommen. Die Welt des bewahrenden Kulturerbes trifft auf die Community der Informationstechnologie.  Mitarbeiter/innen aus Museen, Archiven und Bibliotheken stellen ihre Kulturdaten vor. Coder/innen, Designer/innen und Kulturerbefans kommen neugierig aus den Hörsälen, aus der Schule und aus ihren IT-Jobs in ihrer Freizeit nach Schöneweide, um das digitalisierte Kulturgut zu entdecken. Alle reden von der notwendigen digitalen Transformation. Bei Coding da Vinci hat sie schon angefangen. Denn es geht nicht nur um Technik, nicht allein um urheberrechtliche Schranken, nicht nur um Formate und Schnittstellen. Vor allem geht es darum sich gegenseitig kennen zu lernen. Zu verstehen, welche Perspektiven für den jeweils anderen anregend und wichtig sind. Im Austausch gemeinsame Ideen wachsen zu lassen. Die Digitalisierung der Museumswelt ist kein einmaliger Vorgang, der mit dem Digitalfoto des Artefaktes abgeschlossen ist. Eine App allein reicht nicht, um dauerhaft Türen zwischen den Welten des Kulturerbes und der Informationstechnologie offen zu halten. Es braucht Menschen, die Spaß daran haben, miteinander zu arbeiten. Genau dafür bieten wir bei Coding da Vinci einen Raum. An zwei Tagen, auf geschätzt 500 Quadratmetern gestärkt durch insgesamt ca. 500 Essensportionen werden 200 Teilnehmende aufeinander zugehen und sich austauschen. Ich freue mich darauf, diesen Spaß am kommenden Samstag miterleben zu dürfen.

Ich freue mich auf ungewöhnliche Nullen und Einsen

Eines von 31 Datensets für Coding da Vinci 2017 kommt von der Berlin-Brandenburgischen Akademie der Wissenschaften: die aufgearbeiteten Mitschriften von Alexander v Humboldts “Kosmos”- Vorträgen. Bild von BBAW CC BY

2017 legen wir den Schwerpunkt auf das in Nullen und Einsen digitalisierte Kulturgut der Region Berlin-Brandenburg. Ich freue mich, dass 19 Kultureinrichtungen, vom Wegemuseum in Wusterhausen-Dosse bis zur Berliner Staatsbibliothek unserem Aufruf im Frühjahr gefolgt sind. Sie stellen 31 Datensets bereit. Das Förderprogramm Digitalisierung des Landes Berlin unterstützte 9 Einrichtungen bei der Bereitstellung der Daten. Ich bin gespannt, wie die Mitarbeiter/innen der Daten gebenden Institutionen, ihre Faszination für zum Beispiel zehn Jahre Konzertprogramme des Konzerthauses deutlich machen. Wo liegt der Reiz von ca. 50.000 historischen Fahrscheinen aus aller Welt, die ein Opernsänger über Jahrzehnte sammelte und die heute vom Deutschen Technikmuseum bewahrt werden?  Die Berlinische Galerie und das Stadtmuseum Berlin lenken unseren Blick auf die hundert Jahre alten Fotos und Zeichnungen des Berliners Heinrich Zille oder auf historische Ansichten von Berlin auf Gemälden. Das Museum für Naturkunde lockt mit 3D-Schlangen, Tierstimmen und Fotos. Warum man doch Zeitungen von Vorvorgestern lesen sollte, enthüllt uns der Kollege der Berliner Staatsbibliothek. Welche Münzen fanden sich unter dem Fußboden des alten Berliner Rathauses und was erzählen sie über die Menschen, die sie dort verloren haben, verrät uns das Landesdenkmalamt Berlin. Und wieso dokumentiert das Wegemuseum alte Schusterwerkzeuge, wenn doch heute Schuhe ganz anders aussehen? Wer das wissen will, macht bei Coding da Vinci mit. Hier kann ich nur eine willkürliche Auswahl für die 31 Datensets von Wikidata bis zum Letteverein aufführen. Zusammen laden sie uns ein, die spannenden Geschichten hinter den Daten zu entdecken. Ich freue mich darauf.

Ich freue mich auf das Staunen

Die Selfieapp Zeitblick von Bastian Clausdorff et al. eine der Gewinnerinnen von Coding da Vinci Nord 2016, CCBYSA

Das eigentlich Wunderbare am Kultur-Hackathon Coding da Vinci, neben den Menschen, die sich einbringen, und den Daten, die sie mitbringen, sind die Ideen und Projekte, die in den zwei Tagen des Kick-Offs in Schöneweide entstehen werden. Ich bin da ganz zuversichtlich. Ich werde wieder viel Anlass haben zu staunen. Denn in den letzten drei Jahren sind schon 54 Projekte im Rahmen von Coding da Vinci entstanden, die jedes für sich genommen, beweisen, welches kreative Potenzial das digitalisierte Kulturerbe birgt. Ein Rahmen wie Coding da Vinci, der eine Vielfalt von Daten mit einer Vielfalt von Menschen verknüpft, bietet offenbar einen fruchtbaren Boden für neue Kunstobjekte wie “Klang der Sterne” von Sandra Trostel oder die Selfieapp “Zeitblick” , die schon über 500 Menschen auf ihrem Smartphone haben, um sich zu amüsieren, welches historische Portrait aus der Sammlung des Museums für Kunst und Gewerbe (Hamburg) mit ihrem aktuellen Gesichtsausdruck korrespondiert. Was wird den Coder/innen und Kulturfans zu den Daten aus dem jüdischen Adressbuch der Zentral und Landesbibliothek Berlin oder den Karteikarten des International Tracing Service einfallen? Ich habe keine Ahnung, daher bin ich ja so gespannt. Ca. 120 Coder/innen und Designer/innen stellen sich dem Coding da Vinci Wettbewerb in 5 Herausforderungen. Wir als Veranstalter sorgen nur dafür, dass in den ersten zwei Tagen von Coding da Vinci hoffentliche ideale Bedingungen für außergewöhnliche Kreativität bestehen. Die Ideen vom Kick-Off sammeln wir auf dem Coding da Vinci “hackdash”. Danach liegt es an den Teams der ehrenamtlich Teilnehmenden, in sechs Wochen Entwicklungs-Sprint ihre Ideen so weit zu Projekten und Produkten zu verdichten, dass sie diese am 02. Dezember im Jüdischen Museum dem Publikum und der Jury vorstellen können. Dann wird es wirklich spannend. Wer von den Teams wird einen der fünf ausgelobten Preise gewinnen? Ich freue mich auf das Staunen ab Samstagabend. Freuen Sie sich mit uns. Folgen Sie der Veranstaltung auf Twitter unter dem Hashtag #codingdavinci und natürlich hier im Blog.

Tags: , , , , , , ,

Dieser Eintrag wurde geschrieben von am Samstag, Oktober 14th, 2017 um 15:05 Uhr und ist zu finden unter Kultur. Sie können diesen Beitrag mit RSS 2.0 Feed abonnieren. Sowohl Kommentare als auch Pings sind derzeit geschlossen.
1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (1 Bewertungen, Durchschnitt: 5,00 von 5)

ein Kommentar to “Coding da Vinci oder worauf ich mich schon freue”

  1. Kultur-Hackathon Coding da Vinci mit spannenden Datasets | Bene Homann sagt:

    […] Coding da Vinci oder worauf ich mich schon freue […]

Empfiehl diesen Beitrag

Vortrag am Donnerstag in der Digital Eatery: der Gutenberg-Editor

Digital Eatery, Unter den Linden 17, Donnerstag 19 Uhr im Rahmen des WordPress Meetup Berlin gibts nen Vortrag von Maja Benke über den neuen Editor für WordPress: Gutenberg.



Gutenberg is more than an editor. While the editor is the focus right now, the project will ultimately impact the entire publishing experience including customization (the next focus area).

Discover more about the project.

Editing focus

The editor will create a new page- and post-building experience that makes writing rich posts effortless, and has “blocks” to make it easy what today might take shortcodes, custom HTML, or “mystery meat” embed discovery. — Matt Mullenweg

One thing that sets WordPress apart from other systems is that it allows you to create as rich a post layout as you can imagine — but only if you know HTML and CSS and build your own custom theme. By thinking of the editor as a tool to let you write rich posts and create beautiful layouts, we can transform WordPress into something users love WordPress, as opposed something they pick it because it’s what everyone else uses.

Gutenberg looks at the editor as more than a content field, revisiting a layout that has been largely unchanged for almost a decade.This allows us to holistically design a modern editing experience and build a foundation for things to come.

Here’s why we’re looking at the whole editing screen, as opposed to just the content field:

  1. The block unifies multiple interfaces. If we add that on top of the existing interface, it would add complexity, as opposed to remove it.
  2. By revisiting the interface, we can modernize the writing, editing, and publishing experience, with usability and simplicity in mind, benefitting both new and casual users.
  3. When singular block interface takes center stage, it demonstrates a clear path forward for developers to create premium blocks, superior to both shortcodes and widgets.
  4. Considering the whole interface lays a solid foundation for the next focus, full site customization.
  5. Looking at the full editor screen also gives us the opportunity to drastically modernize the foundation, and take steps towards a more fluid and JavaScript powered future that fully leverages the WordPress REST API.


Blocks are the unifying evolution of what is now covered, in different ways, by shortcodes, embeds, widgets, post formats, custom post types, theme options, meta-boxes, and other formatting elements. They embrace the breadth of functionality WordPress is capable of, with the clarity of a consistent user experience.

Imagine a custom “employee” block that a client can drag to an About page to automatically display a picture, name, and bio. A whole universe of plugins that all extend WordPress in the same way. Simplified menus and widgets. Users who can instantly understand and use WordPress — and 90% of plugins. This will allow you to easily compose beautiful posts like this example.

Check out the FAQ for answers to the most common questions about the project.


Posts are backwards compatible, and shortcodes will still work. We are continuously exploring how highly-tailored metaboxes can be accommodated, and are looking at solutions ranging from a plugin to disable Gutenberg to automatically detecting whether to load Gutenberg or not. While we want to make sure the new editing experience from writing to publishing is user-friendly, we’re committed to finding a good solution for highly-tailored existing sites.

The stages of Gutenberg

Gutenberg has three planned stages. The first, aimed for inclusion in WordPress 5.0, focuses on the post editing experience and the implementation of blocks. This initial phase focuses on a content-first approach. The use of blocks, as detailed above, allows you to focus on how your content will look without the distraction of other configuration options. This ultimately will help all users present their content in a way that is engaging, direct, and visual.

These foundational elements will pave the way for stages two and three, planned for the next year, to go beyond the post into page templates and ultimately, full site customization.

Gutenberg is a big change, and there will be ways to ensure that existing functionality (like shortcodes and meta-boxes) continue to work while allowing developers the time and paths to transition effectively. Ultimately, it will open new opportunities for plugin and theme developers to better serve users through a more engaging and visual experience that takes advantage of a toolset supported by core.


Gutenberg is built by many contributors and volunteers. Please see the full list in


How can I send feedback or get help with a bug?

We’d love to hear your bug reports, feature suggestions and any other feedback! Please head over to the GitHub issues page to search for existing issues or open a new one. While we’ll try to triage issues reported here on the plugin forum, you’ll get a faster response (and reduce duplication of effort) by keeping everything centralized in the GitHub repository.

How can I contribute?

We’re calling this editor project “Gutenberg” because it’s a big undertaking. We are working on it every day in GitHub, and we’d love your help building it.You’re also welcome to give feedback, the easiest is to join us in our Slack channel, #core-editor.

See also

Where can I read more about Gutenberg?


Exciting editor

So unlike many reviews I am a fan of this editor, there seems to be a lot of backlash towards it mostly from the developers which is a shame, as they are not really who it is for. I would count myself as an end user, and they editor makes it possible for me to do many things like columns and other nifty things that it is nice not having to code directly into a post.

I am quite disappointed by the disappointing responses at the beginning most new things struggle to get accepted but it really feels like it is time to stop being so negative, Gutenberg is a step in the right direction for updating a editor that has been very generic for far to long.

The other thing about most of the negative reviews is the lack of detail about what people don’t like, if you ‘don’t like something’ leave constructive feedback after all how after the editors authors meant to alleviate your worries and fix whatever it is you don’t like. So far I have seen this editor improve month on month as I have used it. It seems a shame that people can not be bothered to be helpful, instead just choosing to leave a negative response.

So I feel I need to justify my comment a bit about developers, mostly because this editor really does feel like it is for the end user, it will make WordPress easier to edit, and update and will finally make blogposts more interesting without the need to knowledge of html, css or in fact any other coding, it is time to accept this changes as they are not for you they are for us the end users.

Please, do not put this in core

Don’t get me wrong, the Gutenberg editor is lovely, slick and a step in the right direction.

BUT… As a full-time web developer working in an agency, while running my own WordPress-focused studio, this is a huge burden for me and every other developer I know.

I love WordPress and would hate to see the struggle for all developers, particularly Plugin developers, and users like myself who use and love ACF and others tools that heavily rely on meta-boxes/data.

[ link redacted ]


A work in progress

Thanks to the development team for seeking to improve the underlying architecture of WordPress, giving freely of their time, and working to make something excellent.

Using Gutenberg at this time is similar to trying to drive a car that is not completed on the assembly line. At this point it’s rough, but WordPress is being rebuilt from the inside out, which is a positive thing. I look forward to the future stages of this product, where I think we will see it become more polished and mature.

The entire team has my best wishes moving forward!

The Editor is Incredibly Awkward to Use

I’ve been testing the latest version of Gutenberg (1.9.1) and while some improvements are happening and bugs are being squashed, the editor itself – the actual concept of the editor – is not changing. And it needs to.

I’m not griping about blocks or whatnot – that’s fine. I actually like the block concept. I’m talking about the mechanics of the editor itself. Which is, to be perfectly frank, absolutely abysmal. It is confusing, difficult, ugly, and unnecessarily complex.

Bottom line: There is a reason no word processor on Earth is block based.

The current text editor with WordPress (TinyMCE based) is no prize, but it is functional. I feel like Gutenberg should have expanded and corrected this editor, not completely thrown it out.

The key issue with writing content in WordPress is not drag and drop or an ugly editor – it is that the editor itself is made for web users and not for actual users. WordPress should be focusing not on an entirely new interface but on making the interface easy, familiar, and comfortable to use.

The gold standard for writing documents online is Google Docs. Everyone on earth knows how to use this program. They are familiar with its layout and its functions. It intuitively makes sense. My third grade children use it (Google Docs) at school. Everyone knows the basics of this program and layout. It is incredibly familiar and anyone who sees anything like it will instinctively know what to do and how it works.

When writing in Google Docs, you see everything in real time, just as it would appear when published. It is actual WYSIWYG – back end or front end doesn’t matter, when you are creating a document in Google Docs you are seeing the finished product unfold.

In Google Docs you simply type you document. No blocks, no choices, no weirdness – you just type. Paragraphs are paragraphs. It’s natural and instinctive. It is what we all do – practically every day of our lives.

When we want to insert something into the document (image or whatnot) we do so. And, once done, the user can drag it around and reshape it in the document. No special blocks, just go to the “Insert” tab at the top and select “image” (or whatever) and voila.

Metaboxes and specialty items should be via a menu item, same as “Page Options” in Google Docs. They do not need to be all over the editing screen. They have been always placed there because the basic WordPress editor has no other organization or structure – they are a relic of past poor design, nothing more.

Gutenberg needs to be like Google Docs and not like Medium.

I like the “blocks” concept, but blocks should just be things (images, form, table, etc) that get inserted into text, not a structural element of composing the text. The current iteration of Gutenberg is incredibly unnatural and confusing to type in. It’s really terrible and I completely dread the experience. There is a reason MS Word/Google Docs are not “block” based editors. In fact, there is a reason there are NO block based document systems in existence anywhere. Because no one writes that way, and no one wants to start writing that way.

I completely realize this review and my comments will likely have no impact whatsoever on the freight train that is Gutenberg. You all are going to move forward however you want – it’s obvious the team has little regard for the WordPress community at this point.

But, if there is some room in the development cycle to alter the approach to the Gutenberg Editor, it should be taken. I’m not saying get rid of blocks or whatnot – that’s fine. I’m referring to the specific editor itself. The actual interface and methodology of composing pages and posts.

Please steer away from the Medium-Like “Block Based Editor” and instead consider Google Docs as your guide. A full screen editor, menu bar and options at the top, native and natural typing, and an actual live view of the page as its created (pulling styles from the theme).

That is where the WordPress editor needs to be heading. Blocks should not be the basis of content creation, they should just be items that get inserted.

Read all 304 reviews

Contributors & Developers

“Gutenberg” is open source software. The following people have contributed to this plugin.


“Gutenberg” has been translated into 24 locales. Thank you to the translators for their contributions.

Translate “Gutenberg” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Replace publish dropdown menu with a sidebar panel.
  • Expand latest post blocks with more querying options — order by and category.
  • Allow dragging multiple images to create a gallery.
  • Improve markdown pasting (allows lists to be interpreted).
  • Allow pasting copied images directly.
  • Pasting within lists and headings.
  • Improve handling of inline spans.
  • Allow copying a single block.
  • Make sure inline pasting mechanism does not take place if pasting shortcodes.
  • Preserve alignment classes during raw transformations (like pasting an old WordPress post).
  • Support shortcode synonyms.
  • Allow continued writing when pressing down arrow at the end of a post.
  • Mobile design: move block controls to the bottom of a block.
  • Allow deleting reusable blocks globally.
  • Display description and type on the sidebar. (Also replace BlockDescription component with a property.)
  • New table of contents and document counts design.
  • Add button to copy the full document quickly.
  • Expand inserter to three columns and a wider container.
  • Allow using down-arrow keys directly to navigate when searching a block in the inserter.
  • Deselect images in Gallery block when losing focus.
  • Include post title in document outline feature.
  • Rework display of notices and address various issues with overlaps.
  • Added keyboard shortcut to toggle editor mode. Also displays the relevant keyboard combination next to the menu item.
  • Improve deleting empty paragraphs when backspacing into a block that has no merge function (example, deleting a paragraph after an image).
  • Improve the way scroll-position is updated when moving a block.
  • Show block transformations in ellipsis menu.
  • Add drag and drop support for cover image.
  • Allow transforming operations between Heading and Cover Image blocks.
  • Add focus outline for blocks that don’t have focusable fields.
  • Allow both navigation orientations in NavigableContainer.
  • Improve the behavior of focusing embed blocks.
  • Unify UI of audio and video blocks.
  • Show message on the inserter when no blocks are found.
  • Show message when no saved blocks are available.
  • Do not show the publish panel when updating / scheduling / submitting a post.
  • Update quote style in front-end.
  • Convert text columns to a div using grid layout.
  • Update button block CSS and add class to link.
  • Allow text in Button block to wrap.
  • Prevent useOnce blocks from being inserted using the convenient blocks shortcut menu.
  • Show correct symbol (⌘ or Ctrl) depending on system context.
  • Rename “insert” to “add” in the UI.
  • Clear block selection when opening sibling or bottom inserter.
  • Always show the insertion point when the inserter is opened.
  • Increase padding on “more options” block toggle.
  • Rename “Classic Text” to “Classic”.
  • Improve display of dotted outline around reusable blocks.
  • Updated messages around reusable blocks interactions.
  • Align both the quote and the citation in the visual editor.
  • Exit edit mode when unfocusing a reusable block.
  • Set floated image width (when unresized) in % value.
  • Add withState higher-order component.
  • Initial introduction of module.
  • Restrict the state access to the module registering the reducer only.
  • Refactor PostSchedule to make Calendar and Clock available as reusable components.
  • Allow overwriting colors (defaults and theme provided) when consuming ColorPalette component.
  • Switch orientation of popover component only if there is more space for the new position.
  • New ImagePlaceholder reusable component that handles upload buttons and draggable areas for the block author.
  • Add speak message when a category is added.
  • Announce notices to assertive technologies with speak.
  • Add aria-labels to Code and HTML blocks.
  • Warn if multiple h1 headings are being used.
  • Add speak message and make “block settings” button label dynamic.
  • Make excerpt functionality more accessible.
  • Add various headings around editor areas for screen-readers.
  • Improve accessibility of menu items in the main ellipsis menu.
  • Add missing tooltips to icon buttons.
  • Render toolbar always by the block on mobile.
  • Improve performance of responsive calculations using matchMedia.
  • Avoid shifts around toolbar and scrolling issues on mobile.
  • Improve how the fixed-to-block toolbar looks on mobile. Change how the fixed position toolbars behave, making them sticky.
  • Prevent Mobile Safari from zooming the entire page when you open the inserter.
  • Initial explorations to migrate to server-registered blocks as part of raising awareness of available blocks.
  • Move supportHTML property into the general “support” object.
  • Replace getLatestPosts usage with withAPIData HOC.
  • Convert all filters for components to behave like HOCs (withFilters).
  • Replace flowRight usage with compose for HOCs.
  • Apply filters without function wrappers.
  • Improve Tags/Categories response size by limiting the requested fields.
  • Limit requested fields in category feature of “latest posts”.
  • Request only required post fields in latest posts.
  • Replace getCategories usage with withAPIData component.
  • Don’t show fields that are not used in media modal when adding a featured image.
  • Polish inserter tabs so the focus style isn’t clipped.
  • Make inspector controls available when categories are loading.
  • Improve overlay over meta-boxes during save operations.
  • Hide excerpts panel if not supported by the CPT.
  • Hide Taxonomies panel if no taxonomy is available for the current CPT.
  • Hide several other panels when the CPT doesn’t support them.
  • Use _.includes to find available taxonomies. Mitigates non-schema-conforming taxonomy registrations.
  • Defer applying filters for component until it is about to be mounted.
  • Prevent “Add New” dropdown from overriding other plugin functionality.
  • Improve paragraph block description.
  • Refactor to simplify block toolbar rendering.
  • Add missing aligment classes to cover image.
  • Add parent page dropdown to page attributes panel.
  • Allow pressing ENTER to change Reusable Block name.
  • Disable HTML mode for reusable blocks.
  • Add support for the “advanced” meta-box location.
  • Make sure super admins can publish in any site of the network.
  • Rename theme support for wide images to align-wide.
  • Move selectors and actions files to the store folder.
  • Center arrows of popovers relative to their parent.
  • Use fainter disabled state.
  • Add breakpoint grid to latest posts block and update color of date.
  • Move logic for auto-generating the block class name to BlockEdit.
  • Respect the “enter_title_here” hook.
  • Prevent meta-box hooks from running multiple times.
  • Don’t set font-family on pullquotes.
  • Remove superfluous parentheses from include statements.
  • Remove redundant CSS property updates.
  • Use “columns-x” class only for grid layout in latest posts.
  • Use flatMap for mapping toolbar controls for a small performance gain.
  • Introduce jest matchers for console object.
  • Updated various npm packages; update Jest. Update node-sass. Update WordPress packages.
  • Switch TinyMCE to unpkg.
  • Reorganize handbook docs navigation.
  • Added FAQ section for meta-boxes compatibility.
  • Added initial “templates” document.
  • Add documentation about dynamic blocks.
  • Updated “outreach” docs.
  • Improve block-controls document.
  • Display a hint that files need to be built.
  • Add WordPress JSDoc ESLint configuration.
  • Update licenses in package.json & composer.json to adhere to SPDX v3.0 specification.
  • Add tests to cover REQUEST_POST_UPDATE_SUCCESS effect.
  • Add tests for color palette component.
  • Add tests for Editable.getSettings and adaptFormatter.
  • Use newly published jest-console package in test setup.
  • Update info about test fixtures generation.
  • Also style footer in quote blocks to ensure backwards compatibility.
  • Add a PHPUnit Docker Container.
  • Fix wrong “return to editor” link when comparing revisions.
  • Fix error when pressing enter from a heading block.
  • Fix error with merging lists into paragraphs.
  • Fix revisions button target area.
  • Remove duplicated styles.
  • Fix z-index rebase issues.
  • Fix tag name warning ordering in validation.
  • Fix text encoding of titles in url-input.
  • Fix endless loop in reusable blocks code.
  • Fix edit button in Audio block using invalid buttonProps attribute.
  • Fix block creation with falsey default attribute.
  • Fix radio control checked property.
  • Fix styling issues of blocks when they are used as part of a reusable block.
  • Fix list wrapping issues.
  • Fix problem when converting shortcodes due to sorting.
  • Fix issue with time-picker not working.
  • Fix hide advanced settings interaction in block menu.
  • Fix issue with url input on images.
  • Fix style regression in textual placeholder on cover image.
  • Fix return type hint in gutenberg_get_rest_link().
  • Fix bug when changing number of Latests Posts rapidly was leading to some numbers being defunct.
  • Fix isInputField check and add tests.
  • Fix unsetting block alignment flagging block as invalid.
  • Fix CSS bleed from admin-specific gallery styles.
  • Fix image handlers at the top from being unclickable.
  • Fix unexpected keyboard navigations behaviour on some nodes.
  • Fix inserter position for floated blocks.
  • Fix bug on empty cover image placeholder used on a saved block.
  • Fix errors when adding duplicate categories.
  • Fix broken custom color bubble in ColorPalette.


  • Fix error in Safari when loading Gutenberg with meta boxes present.
  • Fix error / incompatibility with Yoast SEO Premium terms display.
  • Resolve incorrect modal and tooltip layering.
  • Remove unintended commas from Page Options content.


  • Introducing reusable global blocks. (Stored in a wp_blocks post type.)
  • Add ability to lock down the editor when using templates so edits can happen but blocks can’t be removed, moved, nor added.
  • Handle and upgrade deprecated blocks. This allows to migrate attributes without invalidating blocks and an important part of the block API.
  • Drag and drop upload support to gallery block.
  • Extensibility:
  • Expose packages/hooks public API under wp.hooks.
  • Introduces withFilters higher-order component to make component filtering easier.
  • Introduces getWrapperDisplayName helper function to make debugging React tree easier.
  • Introduces compose function to unify composing higher-order components.
  • Exposes hook for Block component.
  • Updated demo post with a nicer presentation for people to test with.
  • Added automated RTL support.
  • Convert unknown shortcodes to Shortcode block when pasting.
  • Avoid splitting blocks during rich text pasting.
  • Disable block selection when resizing image.
  • Prefetch meta-boxes and don’t reload them on save.
  • Support for all admin color schemes.
  • Close sidebar when resizing from non mobile breakpoints to mobile sizes.
  • Apply content autop disabling filter before do_blocks. Also fixes case where server-side rendered blocks produce extraneous whitespace in output.
  • Use cite element instead of footer for quote and pull-quote source markup.
  • Respect recency order when displaying Recent blocks.
  • Update the behavior of notices reducer to respect ID as a unique identifier, removing duplicate entries.
  • Improve quote to paragraph transformations. Fixes cases where quote would be split into two.
  • Use two flex rows instead of one wrapped row in Url modal for cleaner and more consistent display.
  • Avoid restricting endpoints to /wp/v2 in withApiData.
  • Remove duplicated and simplify inserter between blocks styles.
  • Remove unnecessary padding on top of editor when fixed toolbar is off.
  • Avoid intercepting rendering of removed meta boxes.
  • Replace redux-responsive with a simpler custom alternative, fixing a bug with IE11.
  • Fix issues with bullet-point positioning affecting block display.
  • Fix meta attributes selector not returning the correct value if edited.
  • Fix inconsistent animation on settings button.
  • Fix style issues on Custom HTML block’s toolbar.
  • Fix broken styles in “edit as HTML” mode.
  • Fix image block description when no image is set.
  • Fix horizontal overflow for selects with long names in sidebar.
  • Fix case where link modal closes upon typing into UrlInput when toolbar is docked to the paragraph.
  • Fix webpack config issue on Node 6.
  • Fix issue with vertical arrow keys leaking to horizontal menu when toolbar is fixed to block.
  • Fix keyboard trap in the form token component and improve accessibility.
  • Fix React warning when saving reusable blocks.
  • Fix issue with horizontal arrow key closing link dialog in fixed toolbar mode.
  • Fix image resize handlers in RTL mode.
  • Prevent “Add New” dropdown from overriding other plugin functionality.
  • Split Sass variables file into multiple files.
  • Updated blue links for better contrast.
  • Resolve notice when template variable is not set.
  • Added unit tests for row panel, color panel (snapshot), and warning components.
  • Add unit tests for editor actions (with further cleanup).
  • Added snapshots tests for BlockControls.
  • Added documentation for Editable component.
  • Avoid caching vendor directory in Travis.
  • Add document on snapshot testing.
  • Add node and npm version check before build gets started.
  • Update cypress and use the newly introduced Cypress.platform functionality.
  • Improve composer.json setup.
  • Improve testing overview document.


  • Add ability to switch published post back to draft.
  • Fix issue with when changing column count in “text columns” block.
  • Prioritize common items in the autocomplete inserter.
  • Avoid changing publish/update button label when saving draft.
  • Add bottom padding to the editor container to improve experience of writing long posts.
  • Adjust the Classic block toolbar so it’s doesn’t jump.
  • Colorize the little arrow on the left of the admin menu to white to match body content.
  • Abort focus update when editor is not yet initialized.
  • Update autocomplete suggestions colors to have a sufficient color contrast ratio.


  • Introduce block-templates as a list of blocks specification. Allows a custom post type to define a pre-configured set of blocks to be render upon creation of a new item.
  • New tools menu design, preparing the way for more extensibility options.
  • Block API change: use simpler JS object notation for declaring attribute sources.
  • Add function to allow filtering allowed block types.
  • Show popovers full screen on mobile, improving several mobile interactions.
  • Began work on publishing flow improvements with an indication of publishing (or updating a published post) action by introducing a button state and label updates.
  • Made docked-toolbar the default after different rounds of feedback and testing. Both options are still present.
  • Provide mechanism for plugin authors to fallback to classic editor when registering meta-boxes. Also includes the ability to disable a specific meta-box in the context of Gutenberg alone.
  • Updated color pickers with color indications and collapsible panels.
  • Update icon and tooltip for table of contents menu.
  • Added contrast checker for paragraph color options.
  • Improve pasting plaintext and shortcode data.
  • Convert unknown shortcode into shortcode block when pasting.
  • Updated notices design and positioning.
  • Move the URL handler when pasting to the raw handler mechanism.
  • Define custom classNames support for blocks using the new extensibility hooks with opt-out behaviour.
  • Add reusable blocks state effects.
  • Remove sibling inserter from inside multi-selection blocks.
  • Image block alt text enhancements.
  • Increase minimum width and height of resized images.
  • Allow using escape key to deselect a multi-selection.
  • Preserve settings when rebooting from crash.
  • Improve structure of store persist mechanism.
  • Extract reusable BlockList component to allow nesting compositions.
  • Extract BlockToolbar, BlockMover, BlockSwitcher, PostTitle, WritingFlow, TableOfContents, Undo/Redo Buttons, MultiBlockSwitcher, PostPublishWithDropdown, KeyboardShortcuts, DocumentOutlineCheck, PostTrashCheck, Notices, as reusable components.
  • Consolidate block naming requirements.
  • Avoid persisting sidebar state on mobile devices.
  • Ensure backwards compatibility to matchers syntax.
  • Show untitled posts as (no title) in url auto-complete.
  • Extract fixedToolbar as a prop of BlockList.
  • Restore insertion point blue line.
  • Display outline tree even if only one heading is used.
  • Allow media upload button to specify a custom title (and fix grammar issue).
  • Fix issue with block mover showing on top of url input.
  • Fix case where tooltips would get stuck on buttons.
  • Fix transformations between quote and list blocks.
  • Fix issue with converting empty classic text to multiple blocks.
  • Fix issue with audio block not updating the toolbar area.
  • Fix contrast issues in button block.
  • Fix change detection to maintain multiple instances of state.
  • Fix text columns focus style.
  • Fix embed category example in docs.
  • Fix button link modal not closing.
  • Fix styling issue with sibling inserter.
  • Fix alignment of block toolbar in wide and full-width.
  • Fix issue when inserting image with empty caption.
  • Fix issue with sibling inserter not appearing in IE11.
  • Fix issue when inserting pullquotes.
  • Fix horizontal scrollbar when floating images to the left.
  • Fix alignment issue with embed videos.
  • Drop withContext optional mapSettingsToProps and fix issue when inserting new image.
  • Require @wordpress import path for application entry points.
  • Resolve errors in IE11 when using the inserter.
  • Added tests for Notice and UrlInput components.
  • Added tests for DefaultBlockAppender.
  • Log debugging messages for invalid blocks.
  • Reduce build size significantly by fixing import statements.
  • Update re-resizeable dependency.
  • Initial document page for extensibility purposes.
  • Added documentation for Editable component.
  • Move all components related to the specific post-edit page into its own folder.
  • Introduce snapshots for testing.


  • Add toggle to switch between top-level toolbar and toolbars attached to each block. We have gotten great feedback on the benefits of both approaches and want to expand testing of each.
  • Ability to transform multiple-selected blocks at once — multiple images into a gallery, multiple paragraphs into lists.
  • Add @-mention autocomplete for users in a site.
  • Add data layer for reusable blocks and wp_blocks post type name.
  • Allow pasting standalone images and uploading them (also supports pasting base64 encoded images).
  • Allow block nesting from a parser point of view. This is the foundation for handling nested blocks in the UI.
  • Full design update to focus styles around the UI.
  • Block Extensibility (Hooks): filters may inspect and mutate block settings before the block is registered using hooks available at wp.blocks.addFilter. Testing with internal functionality first.
  • Moved docs to
  • Refactor “changed post” functionality into higher order component and fix issue with wrongly reporting unsaved changes.
  • Refactor meta-boxes to render inline, without iframes.
  • Disable auto-p for block based posts, solving various issues around conflicting paragraph structures, freeform content, and text blocks.
  • Placed “table of contents” button in the header area and disable when there are no blocks in the content.
  • Redesigned the button block with inline URL field.
  • Improve performance by refactoring block-multi-controls out of VisualEditorBlock.
  • Replace react-slot-fill with our own first-party implementation. Part one, and part two for better handling of event bubbling within portals.
  • Improve autocomplete behaviour by using focus outside utility. This solves an issue with selecting items on mobile.
  • Capture and recover from application errors, offering the option to copy the existing contents to the clipboard.
  • Expose editor reusable components. These will allow editor variations to be constructed with more ease.
  • Add polyfill for permalink_structure option to wp-json. (Corresponding trac ticket.) Several REST API compat issues are going to be addressed like this. This allows Gutenberg to implement permalink editing.
  • Unslash post content before parsing during save, fixing bugs with block attributes.
  • Keyboard navigation overhaul of the inserter with accessibility improvements (accessing tabs, etc).
  • Add paragraph count to table of contents element.
  • General Navigable family of components.
  • Add contrast checker message when color combinations are hard to read.
  • Add “no posts found” message to latest posts block.
  • Improve color highlight selection and browser consistency.
  • Add aria-expanded attribute to settings button.
  • Add loading message to preview window.
  • Extract PostFeaturedImage, PostLastRevision, PostComments, PostTaxonomies, PageAttributes, PostTextEditor, BlockInspector, into reusable modules.
  • Collapse advanced block controls by default.
  • Update max number of columns when removing an image from a gallery.
  • Prevent the post schedule component from having invalid dates.
  • Make sure the inspector for a gallery block is shown when it has just one image.
  • Accessibility improvements for inline autocomplete components.
  • Update caption color for contrast.
  • Update visual display of the “remove x” button on gallery-items.
  • Improve classic block toolbar display and behaviour.
  • Dismiss tooltip when clicking a button or when wrapper node becomes disabled.
  • Restore block movers on floated items.
  • Add spacing around date and label.
  • Adjust raw handler “mode” option for readability.
  • Improve e2e testing performance.
  • Add fixture for undelimited freeform block.
  • Hold jQuery ready only when there are metaboxes and ignore advanced ones.
  • Make sure image size values are integers.
  • Fix floated gallery styles in the front-end.
  • Fix issue with image block not loading properly.
  • Fix issue with missing function in IE11.
  • Fix transformation of empty images into gallery and back.
  • Fix overflow issues on mobile.
  • Fix accidental block hover on iOS.
  • Fix toolbar state issue with slot-fill utility.
  • Fix case of too many undo levels building up.
  • Fix stylesheet load ordering issue.
  • Prevent input events from URLInput from being captured by Editable.
  • Force onChange to be updated with TinyMCE content before merge.
  • Polish heading toolbar buttons.
  • Remove image resizing on mobile.
  • Remove findDOMNode usage from Autocomplete component.
  • Rename references of rawContent as innerHTML.
  • Add tests and handle empty fills in slot-fill.
  • Add tests for block mover.
  • Add multi-select e2e test and fix issue with escape key.
  • Bump node version to active LTS.
  • Update TinyMCE to 4.7.2, fixing several bugs like toolbar flickering, visible placeholders when there is text, navigation breaks when encountering format boundaries, typing in FF after starting a bullet-list.


  • Handle pasting shortcodes and converting to blocks.
  • Show loading message when opening preview.
  • Fix inline pasting (auto-link feature).
  • Fix undoing multi-selection delete operation.
  • Remove focus state after a selection is finished during multi-select.
  • Remove the “command” shortcut to navigate to the editor toolbar.


  • Move the block toolbar to the editor’s top header. This experiment seeks to reduce the presence of UI obscuring content.
  • Alternate style for block boundaries and multi-selection. Also engages “edit” mode when using arrow keys (hides UI).
  • Complete rework of arrow keys navigation between blocks—faster, clearer, and respects caret position while traversing text blocks.
  • Added keyboard shortcuts to navigate regions.
  • Implement multi-selection mode using just arrow with shift keys and support horizontal arrows.
  • Suggest a post format for additional blocks (embeds, gallery, audio, video) and expand on the heuristics to include case of one format-block at the top plus a paragraph of text below as valid.
  • Allow converting a classic block (post) into several Gutenblocks.
  • Several performance improvements 🎉
    • Avoid re-rendering all blocks on selection changes.
    • Add memoization for multi-select selectors.
    • Rework implementation of blockRef to avoid render cascade from block list.
    • Use flatMap when allocating the block list for rendering.
    • Reorganize logic to determine when a post can be saved to be less expensive.
  • Refactor handling of revisions to avoid loading them up-front, significantly reducing load time on long posts with many revisions.
  • Further memoization on selectors based on specific state keys.
  • Render meta-boxes as part of the main column, not as a collapsible box.
  • Improve handling of undo action stack by resetting only on setup. This makes undo a lot more usable in general.
  • Changes to block inserter design positioning tabs at the top. (1.5.1)
  • Remove multi-select buffer zone and throttle delay for a faster response.
  • API for handling custom formats/tokens in Editable.
  • Improve withApiData component to be able to serve cached data (if available) during an initial render.
  • Show block toolbar in HTML mode for mobile.
  • Update Shortcode block to use a textarea instead of single line input.
  • Increase width of invalid block message.
  • Avoid redirecting to Gutenberg when saving on classic editor. (1.5.2)
  • Don’t show “edit as HTML” for the Code and Shortcode blocks.
  • Refactor notices state reducer as array optimizing performance.
  • Disable front-end styles for basic quote block.
  • Reorganize the meta-boxes components for code clarity.
  • Extract reusable PostSticky, PostFormat, PostPendingStatus, PostAuthor, PostTrash, PostExcerpt components.
  • Resolve issue with having to tab twice on the toolbar due to focusReturn utility interfering with button tooltips.
  • Reset min-width of Tooltip component.
  • Avoid function instantiation in render of WritingFlow component.
  • Add the gutenberg_can_edit_post_type filter for plugins to add or remove support for custom post types.
  • Update header toolbar keyboard navigation to include undo and redo buttons.
  • Don’t show the classic editor dropdown on unsupported post types.
  • Drop resizable-box in favor of re-resizable to use in the image block resize handlers.
  • Correct placement of link-dialog after moving toolbar to the top.
  • Adjust revisions logic to link to latest entry.
  • Allow editable to accept aria attributes.
  • Add generic focus effect to popovers.
  • Remove unused focus prop from Button component.
  • Remove core namespace from demo content.
  • Enable iOS smooth scrolling within scroll containers.
  • Make sure link menu appears above sibling inserter.
  • Improve layout paneling for short-height viewports.
  • Fix problem with multi-select not working again after a group of blocks has been moved.
  • Fix problem with deleting a block in HTML mode.
  • Fix issue with keyboard navigation entering textareas (non contentEditable) and losing caret position.
  • Fix issue where clicking on an item within autocomplete would dismiss the popover and not select anything.
  • Fix visual issue with the document info popover. (1.5.2)
  • Fix bug with deleting featured image on a post.
  • Fix error with removing a block placeholder.
  • Fix problem with FF and meta-boxes.
  • Fix issue with Classic Text description showing all the time.
  • Fix issue with the color picker width.
  • Fix quick inserter display of custom block icons.
  • Fix missing node check when blurring a paragraph block.
  • Warn about misuses of z-index mappings.
  • Make use of the “build stages” feature in the travis config file.
  • Upgrade ESLint dependencies.
  • Move test configuration files to test/unit.
  • Add easy local environment setup and Cypress e2e tests.


  • Add the gutenberg_can_edit_post_type filter for plugins to add or remove support for custom post types.
  • Fix Classic Editor redirecting to Gutenberg when saving a post.
  • Fix Classic Editor dropdown showing on post types that don’t support Gutenberg.
  • Fix Classic Editor dropdown hiding behind notices.
  • Fix an issue with collapsing popover content.


  • New design for the inserter with tabs at the top and more space for text.
  • Fix problem with Firefox and the meta-boxes resize script.
  • Fix issue with Classic Text description showing without focus.


  • Set Gutenberg as the default editor (still allow creating new posts in Classic Editor).
  • Add metabox support—this is an initial pass at supporting existing meta-boxes without intervention.
  • Display inserter button between blocks.
  • Improve block navigation performance.
  • Hide core namespace in comment serialization. wp:core/gallery becomes wp:gallery.
  • Implement a dropdown for Publish flow.
  • Allow multiselect to work on shift-click.
  • Insert new block from title on enter.
  • Use a dropdown for the block menu (settings, delete, edit as HTML).
  • Add expandable panel for post visibility.
  • Add expandable panel for post scheduling.
  • Implement more inline formatting boundaries.
  • Better clearing of block selection.
  • Show placeholder hint for slash autocomplete on new text blocks.
  • Remove multi-selection header in favor of default block controls (mover and menu).
  • Allow blocks to disable HTML edit mode.
  • Adjust transition and delay of inserter between blocks.
  • Added text color option for button block.
  • Hide extended settings if sidebar is closed.
  • New embed icons.
  • Move the store initialization to a dedicated component.
  • Improve scroll position of scrollable elements.
  • Drop undefined blocks from recent blocks.
  • Update HTML block description.
  • Update embed block description.
  • Add description for classic block.
  • PHPCS-specific improvements.
  • Add a default block icon.
  • Adjust line height of classic text to match paragraph blocks.
  • Adjust filter order in classic block so plugins that extend it can work properly.
  • Set textarea value as prop and not children.
  • Fix mobile issues with block setting menu.
  • Fix undefined colors warning.
  • Fix broken upload button on image placeholder.
  • Fix post edit URL when saving a post/page/CPT.
  • Fix conflict with new TinyMCE version and heading blocks.
  • Tweak block sibling element for better target surface.
  • Avoid loading Gutenberg assets on non-Gutenberg pages.
  • Adjust Jest configuration.
  • Document supportAnchor in block API.
  • Updated TinyMCE to latest.
  • Document block name usage in serialization and add example of serialized block.
  • Updated FAQ section.
  • Upgrade React and Enzyme dependencies.


  • Redesigned the header area of the editor for clarity—groups content actions in the left, and post action in the right.
  • Initial REST API infrastructure for reusable global blocks.
  • Group block settings (delete, inspector, edit HTML) on an ellipsis button.
  • Added new reusable Dropdown component.
  • Show frequently used blocks in the inserter shortcuts (at the bottom of the post).
  • Offer option for the button block to clear content.
  • Refactor block toolbar component in preparation for some iterations (docked toolbar, for example).
  • Allow partial URLs in link input.
  • Avoid using state for tracking arrow key navigation in WritingFlow to prevent re-renders.
  • Improve mobile header after design cleanup.
  • Add focusReturn for Dropdown component.
  • Updated Audio block markup to use figure element.
  • Removed transition on multi-select affecting the perception of speed of the interaction.
  • Show Gallery block description even if there are no images.
  • Persist custom class names.
  • Merge initialization actions into a single action.
  • Fix scroll position when reordering blocks.
  • Fix case where the responsive treatment of the header area was hiding valuable actions.
  • Fix focus styles on the inserter.
  • Fix submenu visibility issue for certain users.
  • Cleanup no longer used code.
  • Document useOnce block API feature.


  • Add an opacity range slider to the cover image block.
  • Offer the option to convert a single block to an HTML block when conflicting content is detected.
  • Persist recently used blocks through sessions.
  • Added support for pasting plain text markdown content and converting to blocks.
  • The block inspector groups features and settings in expandable panels.
  • Accessibility improvements to the color palette component.
  • Added a “feedback” link in the Gutenberg side menu.
  • Use expandable panels for advanced block features (class name and anchor).
  • Removed touch listeners from multi select.
  • Added block descriptions to blocks that didn’t have them.
  • Allow stored values to be updated with new defaults.
  • Refactor image block to use withApiData and fix issues with .tiff images.
  • Clean up non inline elements when pasting inline content.
  • Remove unused code in BlockList component.
  • Added “transform into” text to block switcher.
  • Fixed sidebar overflow causing extra scrollbars.
  • Fixed multi-select inside new scroll container.
  • Fixed image block error with .tiff image.
  • Fixed the content overflowing outside the verse block container.
  • Fixed issues with sticky quick toolbar position.
  • Fixed hitting enter when a block is selected creating a default block after selected block.
  • Fixed teaser markup in demo content.
  • Clean working directory before packaging plugin.
  • Updated Webpack dependencies.
  • Updated Jest and React.


  • Fix issue where invalid block resolution options were not clickable.


  • Resolve block conflicts when editing a block post in the classic editor. Gutenberg’s strict content validation has helped identify formatting incompatibilities, and continued improvements are planned for future releases.
  • Add word and block count to table of contents.
  • Add support for meta attributes (custom fields) in block attributes. This allows block authors to specify attributes to live outside of post_content entirely.
  • Allow Gutenberg to be the default editor for posts with blocks and add links to classic editor.
  • Accessibility: add landmark regions.
  • Add metabox placeholder shell.
  • Add crash recovery for blocks which error while saving.
  • Hide Sidebar panels if the user doesn’t have the right capabilities.
  • Refactor PostTaxonomies to use ‘withApiData’.
  • Create ‘withApiData’ higher order component for managing API data.
  • Make casing consistent.
  • Allow toolbar wrapper to be clicked through.
  • Support and bootstrap server-registered block attribute schemas.
  • Shift focus into popover when opened.
  • Reuse the tabbable utility to retrieve the tabbables elements in WritingFlow.
  • Change placeholder text on button.
  • Persist the sate of the sidebar across refresh.
  • Use a small multiselect buffer zone, improving multiple block selection.
  • Close popover by escape keypress.
  • Improve dropzone contrast ratio.
  • Improve search message to add context.
  • Improve string extraction for localized strings.
  • Fixed z-index issue of gallery image inline menu.
  • Fixed image block resizing to set the figure wrapper.
  • Fixed column widths in gallery block.
  • Fixed parsing in do_blocks() and rendering of blocks on frontend in the_content.
  • Fixed position of upload svg on mobile.


  • Add blocks “slash” autocomplete—shortcut to continue adding new block without leaving the keyboard.
  • Add ability to remove an image from a gallery from within the block (selecting image).
  • Add option to open a created link in a new window.
  • Support and bootstrap server-registered block attribute schemas.
  • Improve accessibility of add-new-category form.
  • Documentation gets an updated design and content improvements.
  • Adjust column width calculation in gallery block to properly respect column count.
  • Move pending review control together with sticky toggle at the bottom.
  • Add caption styling for video block.
  • Allow removing a “classic text” block with backspaces.
  • Allow Button block to show placeholder text.
  • Drop the deprecated button-secondary class name.
  • Fix link dialog not showing in Safari when caret is in the middle of the word.
  • Fix adding new categories and position newly added term at the top.
  • Fix the resetting of drop-zone states after dropping a file.
  • Fix embed saving “undefined” text when URL is not set.
  • Fix placeholder styling on Text when background color is set.
  • Update Composer + PHPCS.
  • Rename default block handlers.
  • Update code syntax tabs in docutron.
  • Link to plugin download and github repo from docutron.
  • Added block API document.
  • Add “Edit and Save” document.


  • Restored keyboard navigation with more robust implementation, addressing previous browser issues.
  • Added drag and drop for media with pointer to create new blocks.
  • Merged paragraph and cover text blocks (includes the colors and font size options).
  • Reworked color palette picker with a “clear” and a “custom color” option.
  • Further improvements to inline pasting and fixing errant empty blocks.
  • Added thumbnail size selector to image blocks.
  • Added support for url input and align and edit buttons to audio block.
  • Persist the state of the sidebar across page refresh.
  • Persist state of sidebar panels on page refresh.
  • Persist editor mode on page refresh.
  • New withAPIData higher-order component for making it easier to manage data needs.
  • Preserve unknown block and remove “freeform” comment delimiters (unrecognized HTML is handled without comment delimiters).
  • Show “add new term” in hierarchical taxonomies (including categories).
  • Show tooltip only after mouseover delay.
  • Show post formats only if the post type supports them.
  • Added align and edit buttons to video block.
  • Preload data in withApiData to improve perceived performance.
  • Improve accessibility of sidebar modes.
  • Allow changing cover-image settings before uploading an image.
  • Improve validation leniency around non-meaningful differences.
  • Take into account capabilities for publishing action.
  • Update author selector to show only users capable of authoring posts.
  • Normalize pasted blockquote contents.
  • Refactored featured image, page attributes to use withApiData
  • Added a fix to avoid cloning nodes by passing pasted HTML string.
  • Added a fix to avoid re-encoding on encoded posts.
  • Fixed resetting the focus config when block already selected.
  • Allowing adding of plain text after insert link at the end of a paragraph.
  • Update to latest TinyMCE version.
  • Show only users capable of authoring posts.
  • Add submit for review to publish for contributor.
  • Delete or backspace in an empty “classic text” block now removes it.
  • Check for type in block transformations logic.
  • Fixed drop-down menu issue on classic text.
  • Added filter to allow post types to disable “edit in gutenberg” links.
  • Made UrlInput and UrlInputButton available as reusable components.
  • Use wordpress/a11y package instead of global.
  • Added npm5 package-lock.
  • We welcome all your feedback and contributions on the project repository, or ping us in #core-editor. Follow the “gutenberg” tag for past updates.


  • Added ability to change font-size in cover text using slider and number input.
  • Added support for custom anchors (ids) on blocks, allowing to link directly to a section of the post.
  • Updated pull-quote design.
  • Created custom color palette component with “clear” option and “custom color” option. (And better markup and accessibility.)
  • Improve pasting: recognizing more elements, adding tests, stripping non-semantic markup, etc.
  • Improve gallery visual design and fix cropping in Safari.
  • Allow selecting a heading block from the table-of-contents panel directly.
  • Make toolbar slide horizontally for mobile.
  • Improve range-input control with a number input.
  • Fix pasting problems (handling of block attributes).
  • More stripping of unhandled elements during paste.
  • Show post format selector only for posts.
  • Display nicer URLs when editing links.
  • More compact save indicator.
  • Disabled arrow key navigation between blocks as we refine implementation.
  • Removed blank target from “view post” in notices.
  • Fix empty links still rendering ont he front-end.
  • Fix shadow on inline toolbars.
  • Fix problem with inserting pull-quotes.
  • Fix drag and drop on image block.
  • Removed warning when publishing.
  • Don’t provide version for vendor scripts.
  • Clean category code in block registration.
  • Added history and resources docs.


  • New Categories Block (based on existing widget).
  • New Text Columns Block (initial exploration of text-only multiple columns).
  • New Video Block.
  • New Shortcode Block.
  • New Audio Block.
  • Added resizing handlers to Image Block.
  • Added direct image upload button to Image Block and Gallery Block.
  • Give option to transform a block to Classic when it encounters problems.
  • Give option to Overwrite changes on a block detected as invalid.
  • Added “link to” option in galleries.
  • Added support for custom taxonomies.
  • Added post formats selector to post settings.
  • Added keywords support (aliases) to various blocks to improve search discovery.
  • Significant improvements to the way attributes are specified in the Block API and its clarity (handles defaults and types).
  • Added Tooltip component displaying aria-labels from buttons.
  • Removed stats tracking code.
  • Updated design document.
  • Capture and recover from block rendering runtime errors.
  • Handle enter when focusing on outer boundary of a block.
  • Reduce galleries json attributes data to a minimum.
  • Added caption styles to the front-end for images and embeds.
  • Added missing front-end alignment classes for table and cover-text blocks.
  • Only reset blocks on initial load to prevent state fluctuations.
  • Improve calculation of dirty state by making a diff against saved post.
  • Improve visual weight of toolbar by reducing its silhouette.
  • Improve rendering of galleries on the front-end.
  • Improve Cover Image placeholder visual presentation.
  • Improve front-end display of quotes.
  • Improve responsive design of galleries on the front-end.
  • Allow previewing new posts that are yet to be saved.
  • Reset scrolling position within inserter when switching tabs.
  • Refactor popover to render at root of document.
  • Refactor withFocusReturn to handle accessibility better in more contexts.
  • Prevent overlap between multi-selection and within-block selection.
  • Clear save notices when triggering a new save.
  • Disable “preview” button if post is not saveable.
  • Renamed blocks.query to blocks.source for clarity and updated documentation.
  • Rearrange block stylesheets to reflect display and editor styles.
  • Use @wordpress dependencies consistently.
  • Added validation checks for specifying a block’s category.
  • Fix problems with quote initialization and list transformation.
  • Fix issue where Cover Image was being considered invalid after edits.
  • Fix errors in editable coming from Table block commands.
  • Fix error in latest posts block when date is not set for a post.
  • Fix issue with active color in ColorPalette component.
  • Prevent class=false serialization issue in covert-text.
  • Treat range control value as numeric.
  • Added warning when using Editable and passing non-array values.
  • Show block switcher above link input.
  • Updated rememo dependency.
  • Start consuming from separate @wordpress dependencies.
  • Fix problem with inserting new galleries.
  • Fix issue with embeds and missing captions.
  • Added outreach section to docs.


  • Address problem with the freeform block and Jetpack’s contact form.


  • Hide placeholders on focus—reduces visual distractions while writing.
  • Add PostAuthor dropdown to the UI.
  • Add theme support for customized color palettes and a shared component (applies to cover text and button blocks).
  • Add theme support for wide images.
  • Report on missing headings in the document outline feature.
  • Update block validation to make it less prone to over-eagerness with trivial changes (like whitespace and new lines).
  • Attempt to create an embed block automatically when pasting URL on a single line.
  • Save post before previewing.
  • Improve operations with “lists”, enter on empty item creates new paragraph block, handling backspace, etc.
  • Don’t serialize attributes that match default attributes.
  • Order link suggestions by relevance.
  • Order embeds for easier discoverability.
  • Added “keywords” property for searching blocks with aliases.
  • Added responsive styles for Table block in the front end.
  • Set default list type to be unordered list.
  • Improve accessibility of UrlInput component.
  • Improve accessibility and keyboard interaction of DropdownMenu.
  • Improve Popover component and use for PostVisibility.
  • Added higher order component for managing spoken messages.
  • Localize schema for WP API, avoiding initialization delay if schema is present.
  • Do not expose editor.settings to block authors.
  • Do not remove tables on pasting.
  • Consolidate block server-side files with client ones in the same directory.
  • Removed array of paragraphs structure from text block.
  • Trim whitespace when searching for blocks.
  • Document, test, and refactor DropdownMenu component.
  • Use separate mousetrap instance per component instance.
  • Add npm organization scope to WordPress dependencies.
  • Expand utilities around fixture regeneration.
  • Renamed “Text” to “Paragraph”.
  • Fix multi-selection “delete” functionality.
  • Fix text color inline style.
  • Fix issue caused by changes with React build process.
  • Fix splitting editable without child nodes.
  • Use addQueryArgs in oEmbed proxy url.
  • Update dashicons with new icons.
  • Clarify enqueuing block assets functions.
  • Added code coverage information to docs.
  • Document how to create new docs.
  • Add example of add_theme_support in docs.
  • Added opt-in mechanism for learning what blocks are being added to the content.


  • Split paragraphs on enter—we have been exploring different behaviours here.
  • Added grid layout option for latest posts with columns slider control.
  • Show internal posts / pages results when creating links.
  • Added “Cover Text” block with background, text color, and full-width options.
  • Autosaving drafts.
  • Added “Read More” block.
  • Added color options to the button block.
  • Added mechanism for validating and protecting blocks that may have suffered unrecognized edits.
  • Add patterns plugin for text formatting shortcuts: create lists by adding * at the beginning of a text line, use # to create headings, and backticks for code.
  • Implement initial support for Cmd/Ctrl+Z (undo) and Cmd/Ctrl+Shift+Z (redo).
  • Improve pasting experience from outside editors by transforming content before converting to blocks.
  • Improve gallery creation flow by opening into “gallery” mode from placeholder.
  • Added page attributes with menu order setting.
  • Use two distinct icons for quote style variations.
  • Created KeyboardShortcuts component to handle keyboard events.
  • Add support for custom icons (non dashicons) on blocks.
  • Initialize new posts with auto-draft to match behaviour of existing editor.
  • Don’t display “save” button for published posts.
  • Added ability to set a block as “use once” only (example: “read more” block).
  • Hide gallery display settings in media modal.
  • Simplify “cover image” markup and resolve conflict state in demo.
  • Introduce PHP classes for interacting with block types.
  • Announce block search results to assistive technologies.
  • Reveal “continue writing” shortcuts on focus.
  • Update document.title when the post title changes.
  • Added focus styles to several elements in the UI.
  • Added external-link component to handle links opening in new tabs or windows.
  • Improve responsive video on embed previews.
  • Improve “speak” messages for tag suggestions.
  • Make sure newly created blocks are marked as valid.
  • Preserve valid state during transformations.
  • Allow tabbing away from table.
  • Improve display of focused panel titles.
  • Adjust padding and margins across various design elements for consistency and normalization.
  • Fix pasting freeform content.
  • Fix proper propagation of updated block attributes.
  • Fix parsing and serialization of multi-paragraph pullquotes.
  • Fix a case where toggling pending preview would consider post as saved.
  • Fix positioning of block mover on full-width blocks.
  • Fix line height regression in quote styles.
  • Fix IE11 with polyfill for fetch method.
  • Fix case where blocks are created with isTyping and it never clears.
  • Fix block warning display in IE11.
  • Polish inspector visual design.
  • Prevent unhandled actions from returning new state reference.
  • Prevent unintentionally clearing link input value.
  • Added focus styles to switch toggle components.
  • Avoid navigating outside the editor with arrow keys.
  • Add short description to Verse block.
  • Initialize demo content only for new demo posts.
  • Improve insert link accessibility.
  • Improve version compare checks for plugin compatibility.
  • Clean up obsolete poststoshowattribute in LatestPosts block.
  • Consolidate addQueryArgs usage.
  • Add unit tests to inserter.
  • Update fixtures with latest modifications and ensure all end in newlines.
  • Added codecov for code coverage.
  • Clean up JSDoc comments.
  • Link to new docs within main readme.


  • New tabs mode for the sidebar to switch between post settings and block inspector.
  • Implement recent blocks display.
  • Mobile implementation of block mover, settings, and delete actions.
  • Search through all tabs on the inserter and hide tabs.
  • New documentation app to serve all tutorials, faqs, docs, etc.
  • Enable ability to add custom classes to blocks (via inspector).
  • Add ability to drag-and-drop on image block placeholders to upload images.
  • Add “table of contents” document outline for headings (with empty heading validation).
  • Refactor tests to use Jest API.
  • New block: Verse (intended for poetry, respecting whitespace).
  • Avoid showing UI when typing and starting a new paragraph (text block).
  • Display warning message when navigating away from the editor with unsaved changes.
  • Use old editor as “freeform”.
  • Improve PHP parser compatibility with different server configurations (“mbstring” extension and PCRE settings).
  • Improve PostVisibility markup and accessibility.
  • Add shortcuts to manage indents and levels in List block.
  • Add alignment options to latest posts block.
  • Add focus styles for quick tags buttons in text mode.
  • Add way to report PHP parsing performance.
  • Add labels and roles to UrlInput.
  • Add ability to set custom placeholders for text and headings as attributes.
  • Show error message when trashing action fails.
  • Pass content to dynamic block render functions in PHP.
  • Fix various z-index issues and clarify reasonings.
  • Fix DropdownMenu arrows navigation and add missing aria-label.
  • Update sandboxed iframe size calculations.
  • Export inspector controls component under wp.blocks.
  • Adjust Travis JS builds to improve task allocation.
  • Fix warnings during tests.
  • Fix caret jumping when switching formatting in Editable.
  • Explicitly define prop-types as dependency.
  • Update list of supported browsers for consistency with core.


  • Initial FAQ (in progress).
  • API for handling pasted content. (Aim is to have specific handling for converting Word, Markdown, Google Docs to native WordPress blocks.)
  • Added support for linking to a url on image blocks.
  • Navigation between blocks using arrow keys.
  • Added alternate Table block with TinyMCE functionality for adding/removing rows/cells, etc. Retired previous one.
  • Parse more/noteaser comment tokens from core.
  • Re-engineer the approach for rendering embed frames.
  • First pass at adding aria-labels to blocks list.
  • Setting up Jest for better testing environment.
  • Improve performance of server-side parsing.
  • Update blocks documentation with latest API functions and clearer examples.
  • Use fixed position for notices.
  • Make inline mode the default for Editable.
  • Add actions for plugins to register frontend and editor assets.
  • Supress gallery settings sidebar on media library when editing gallery.
  • Validate save and edit render when registering a block.
  • Prevent media library modal from opening when loading placeholders.
  • Update to sidebar design and behaviour on mobile.
  • Improve font-size in inserter and latest posts block.
  • Improve rendering of button block in the front end.
  • Add aria-label to edit image button.
  • Add aria-label to embed input url input.
  • Use pointer cursor for tabs in inserter.
  • Update design docs with regard to selected/unselected states.
  • Improve generation of wp-block-* classes for consistency.
  • Select first cell of table block when initializing.
  • Fix wide and full alignment on the front-end when images have no caption.
  • Fix initial state of freeform block.
  • Fix ability to navigate to resource on link viewer.
  • Fix clearing floats on inserter.
  • Fix loading of images in library.
  • Fix auto-focusing on table block being too agressive.
  • Clean double reference to pegjs in dependencies.
  • Include messages to ease debugging parser.
  • Check for exact match for serialized content in parser tests.
  • Add allow-presentation to fix issue with sandboxed iframe in Chrome.
  • Declare use of classnames module consistently.
  • Add translation to embed title.
  • Add missing text domains and adjust PHPCS to warn about them.
  • Added template for creating new issues including mentions of version number.


  • Added framework for notices and implemented publishing and saving ones.
  • Implemented tabs on the inserter.
  • Added text and image quick inserts next to inserter icon at the end of the post.
  • Generate front-end styles for core blocks and enqueue them.
  • Include generated block classname in edit environment.
  • Added “edit image” button to image and cover image blocks.
  • Added option to visually crop images in galleries for nicer alignment.
  • Added option to disable dimming the background in cover images.
  • Added buffer for multi-select flows.
  • Added option to display date and to configure number of posts in LatestPosts block.
  • Added PHP parser based on PEG.js to unify grammars.
  • Split block styles for display so they can be loaded on the theme.
  • Auto-focusing for inserter search field.
  • Added text formatting to CoverImage block.
  • Added toggle option for fixed background in CoverImage.
  • Switched to store attributes in unescaped JSON format within the comments.
  • Added placeholder for all text blocks.
  • Added placeholder text for headings, quotes, etc.
  • Added BlockDescription component and applied it to several blocks.
  • Implemented sandboxing iframe for embeds.
  • Include alignment classes on embeds with wrappers.
  • Changed the block name declaration for embeds to be “core-embed/name-of-embed”.
  • Simplified and made more robust the rendering of embeds.
  • Different fixes for quote blocks (parsing and transformations).
  • Improve display of text within cover image.
  • Fixed placeholder positioning in several blocks.
  • Fixed parsing of HTML block.
  • Fixed toolbar calculations on blocks without toolbars.
  • Added heading alignments and levels to inspector.
  • Added sticky post setting and toggle.
  • Added focus styles to inserter search.
  • Add design blueprints and principles to the storybook.
  • Enhance FormTokenField with accessibility improvements.
  • Load word-count module.
  • Updated icons for trash button, and Custom HTML.
  • Design tweaks for inserter, placeholders, and responsiveness.
  • Improvements to sidebar headings and gallery margins.
  • Allow deleting selected blocks with “delete” key.
  • Return more than 10 categories/tags in post settings.
  • Accessibility improvements with FormToggle.
  • Fix media button in gallery placeholder.
  • Fix sidebar breadcrumb.
  • Fix for block-mover when blocks are floated.
  • Fixed inserting Freeform block (now classic text).
  • Fixed missing keys on inserter.
  • Updated drop-cap class implementation.
  • Showcasing full-width cover image in demo content.
  • Copy fixes on demo content.
  • Hide meta-boxes icons for screen readers.
  • Handle null values in link attributes.


  • Include “paste” as default plugin in Editable.
  • Extract block alignment controls as a reusable component.
  • Added button to delete a block.
  • Added button to open block settings in the inspector.
  • New block: Custom HTML (to write your own HTML and preview it).
  • New block: Cover Image (with text over image support).
  • Rename “Freeform” block to “Classic Text”.
  • Added support for pages and custom post types.
  • Improve display of “saving” label while saving.
  • Drop usage of controls property in favor of components in render.
  • Add ability to select all blocks with ctrl/command+A.
  • Automatically generate wrapper class for styling blocks.
  • Avoid triggering multi-select on right click.
  • Improve target of post previewing.
  • Use imports instead of accessing the wp global.
  • Add block alignment and proper placeholders to pullquote block.
  • Wait for wp.api before loading the editor. (Interim solution.)
  • Adding several reusable inspector controls.
  • Design improvements to floats, switcher, and headings.
  • Add width classes on figure wrapper when using captions in images.
  • Add image alt attributes.
  • Added html generation for photo type embeds.
  • Make sure plugin is run on WP 4.8.
  • Update revisions button to only show when there are revisions.
  • Parsing fixes on do_blocks.
  • Avoid being keyboard trapped on editor content.
  • Don’t show block toolbars when pressing modifier keys.
  • Fix overlapping controls in Button block.
  • Fix post-title line height.
  • Fix parsing void blocks.
  • Fix splitting inline Editable instances with shift+enter.
  • Fix transformation between text and list, and quote and list.
  • Fix saving new posts by making post-type mandatory.
  • Render popovers above all elements.
  • Improvements to block deletion using backspace.
  • Changing the way block outlines are rendered on hover.
  • Updated PHP parser to handle shorthand block syntax, and fix newlines.
  • Ability to cancel adding a link from link menu.


  • First release of the plugin.

Die lockere Schraube im Kapitalismus hat einen Namen: Koch


Trump Rules

How G.O.P. Leaders Came to View Climate Change as Fake Science

A coal-fired power station in Mount Storm, W.Va., in January. The coal industry played an instrumental role in efforts to unwind the Obama administration’s climate policies.CreditLuke Sharrett/Bloomberg

WASHINGTON — The campaign ad appeared during the presidential contest of 2008. Rapid-fire images of belching smokestacks and melting ice sheets were followed by a soothing narrator who praised a candidate who had stood up to President George W. Bush and “sounded the alarm on global warming.”

It was not made for a Democrat, but for Senator John McCain, who had just secured the Republican nomination.

It is difficult to reconcile the Republican Party of 2008 with the party of 2017, whose leader, President Trump, has called global warming a hoax, reversed environmental policies that Mr. McCain advocated on his run for the White House, and this past week announced that he would take the nation out of the Paris climate accord, which was to bind the globe in an effort to halt the planet’s warming.

GlobalCreditVideo by John McCain

The Republican Party’s fast journey from debating how to combat human-caused climate change to arguing that it does not exist is a story of big political money, Democratic hubris in the Obama years and a partisan chasm that grew over nine years like a crack in the Antarctic shelf, favoring extreme positions and uncompromising rhetoric over cooperation and conciliation.

“Most Republicans still do not regard climate change as a hoax,” said Whit Ayres, a Republican strategist who worked for Senator Marco Rubio’s presidential campaign. “But the entire climate change debate has now been caught up in the broader polarization of American politics.”

“In some ways,” he added, “it’s become yet another of the long list of litmus test issues that determine whether or not you’re a good Republican.”

Since Mr. McCain ran for president on climate credentials that were stronger than his opponent Barack Obama’s, the scientific evidence linking greenhouse gases from fossil fuels to the dangerous warming of the planet has grown stronger. Scientists have for the first time drawn concrete links between the planet’s warming atmosphere and changes that affect Americans’ daily lives and pocketbooks, from tidal flooding in Miami to prolonged water shortages in the Southwest to decreasing snow cover at ski resorts.

That scientific consensus was enough to pull virtually all of the major nations along. Conservative-leaning governments in Britain, France, Germany and Japan all signed on to successive climate change agreements.

Yet when Mr. Trump pulled the United States from the Paris accord, the Senate majority leader, the speaker of the House and every member of the elected Republican leadership were united in their praise.

Those divisions did not happen by themselves. Republican lawmakers were moved along by a campaign carefully crafted by fossil fuel industry players, most notably Charles D. and David H. Koch, the Kansas-based billionaires who run a chain of refineries (which can process 600,000 barrels of crude oil per day) as well as a subsidiary that owns or operates 4,000 miles of pipelines that move crude oil.

Government rules intended to slow climate change are “making people’s lives worse rather than better,” Charles Koch explained in a rare interview last year with Fortune, arguing that despite the costs, these efforts would make “very little difference in the future on what the temperature or the weather will be.”

Republican leadership has also been dominated by lawmakers whose constituents were genuinely threatened by policies that would raise the cost of burning fossil fuels, especially coal. Senator Mitch McConnell of Kentucky, always sensitive to the coal fields in his state, rose through the ranks to become majority leader. Senator John Barrasso of Wyoming also climbed into leadership, then the chairmanship of the Committee on Environment and Public Works, as a champion of his coal state.

Mr. Trump has staffed his White House and cabinet with officials who have denied, or at least questioned, the existence of global warming. And he has adopted the Koch language, almost to the word. On Thursday, as Mr. Trump announced the United States’ withdrawal, he at once claimed that the Paris accord would cost the nation millions of jobs and that it would do next to nothing for the climate.

Beyond the White House, Representative Lamar Smith of Texas, chairman of the House Science Committee, held a hearing this spring aimed at debunking climate science, calling the global scientific consensus “exaggerations, personal agendas and questionable predictions.”

A small core of Republican lawmakers — most of whom are from swing districts and are at risk of losing their seats next year — are taking modest steps like introducing a nonbinding resolution in the House in March urging Congress to accept the risks presented by climate change.

But in Republican political circles, speaking out on the issue, let alone pushing climate policy, is politically dangerous. So for the most part, these moderate Republicans are biding their time, until it once again becomes safe for Republicans to talk more forcefully about climate change. The question is how long that will take.

“With 40 percent of Florida’s population at risk from sea-level rise, my state is on the front lines of climate change,” said Representative Carlos Curbelo, Republican of Florida. “South Florida residents are already beginning to feel the effects of climate change in their daily lives.”

‘The Turning Point’

It was called the “No Climate Tax” pledge, drafted by a new group called Americans for Prosperity that was funded by the Koch brothers. Its single sentence read: “I will oppose any legislation relating to climate change that includes a net increase in government revenue.” Representative Jim Jordan, Republican of Ohio, was the first member of Congress to sign it in July 2008.

The “No Climate Tax” pledge signed by Representative Jim Jordan, an Ohio Republican.

The effort picked up steam the next year after the House of Representatives passed what is known as cap-and-trade legislation, a concept invented by conservative Reagan-era economists.

The idea was to create a statutory limit, or cap, on the overall amount of a certain type of pollution that could be emitted. Businesses could then buy and sell permits to pollute, choosing whether to invest more in pollution permits, or in cleaner technology that would then save them money and allow them to sell their allotted permits. The administration of the first President George Bush successfully deployed the first national cap-and-trade system in 1990 to lower emissions of the pollutants that cause acid rain. Mr. McCain pushed a cap-and-trade proposal to fight climate change.

“I thought we could get it done,” recalled Henry A. Waxman, a retired House Democrat who led the cap-and-trade push in 2009. “We just had two candidates from the Republican and Democratic parties who had run for president and agreed that climate change was a real threat.”

Conservative activists saw the legislative effort as an opportunity to transform the climate debate.

With the help of a small army of oil-industry-funded academics like Wei-Hock Soon of Harvard Smithsonian and think tanks like the Competitive Enterprise Institute, they had been working to discredit academics and government climate change scientists. The lawyer and conservative activist Chris Horner, whose legal clients have included the coal industry, gathered documents through the Freedom of Information Act to try to embarrass and further undermine the climate change research.

Myron Ebell, a senior fellow with the Competitive Enterprise Institute, worked behind the scenes to make sure Republican offices in Congress knew about Mr. Horner’s work — although at the time, many viewed Mr. Ebell skeptically, as an extremist pushing out-of-touch views.

In 2009, hackers broke into a climate research program at the University of East Anglia in England, then released the emails that conservatives said raised doubts about the validity of the research. In one email, a scientist talked of using a statistical “trick” in a chart illustrating a recent sharp warming trend. The research was ultimately validated, but damage was done.

As Congress moved toward actually passing climate change legislation, a fringe issue had become a part of the political mainstream.

“That was the turning point,” Mr. Horner said.

The House passed the cap-and-trade bill by seven votes, but it went nowhere in the Senate — Mr. Obama’s first major legislative defeat.

Senator John McCain, Republican of Arizona, speaking about his plan to fight global warming during a presidential campaign stop in Portland, Ore., in 2008.CreditCraig Mitchelldyer/Getty Images

Unshackled by the Supreme Court’s Citizens United decision and other related rulings, which ended corporate campaign finance restrictions, Koch Industries and Americans for Prosperity started an all-fronts campaign with television advertising, social media and cross-country events aimed at electing lawmakers who would ensure that the fossil fuel industry would not have to worry about new pollution regulations.

Their first target: unseating Democratic lawmakers such as Representatives Rick Boucher and Tom Perriello of Virginia, who had voted for the House cap-and-trade bill, and replacing them with Republicans who were seen as more in step with struggling Appalachia, and who pledged never to push climate change measures.

But Americans for Prosperity also wanted to send a message to Republicans.

Until 2010, some Republicans ran ads in House and Senate races showing their support for green energy.

“After that, it disappeared from Republican ads,” said Tim Phillips, the president of Americans for Prosperity. “Part of that was the polling, and part of it was the visceral example of what happened to their colleagues who had done that.”

What happened was clear. Republicans who asserted support for climate change legislation or the seriousness of the climate threat saw their money dry up or, worse, a primary challenger arise.

“It told Republicans that we were serious,” Mr. Phillips said, “that we would spend some serious money against them.”

By the time Election Day 2010 arrived, 165 congressional members and candidates had signed Americans for Prosperity’s “No Climate Tax” pledge.

Most were victorious.

“The midterm election was a clear rejection of policies like the cap-and-trade energy taxes that threaten our still-fragile economy,” said James Valvo, then Americans for Prosperity’s government affairs director, in a statement issued the day after the November 2010 election. Eighty-three of the 92 new members of Congress had signed the pledge.

Even for congressional veterans, that message was not missed. Representative Fred Upton, a Michigan Republican who once called climate change “a serious problem” and co-sponsored a bill to promote energy-efficient light bulbs, tacked right after the 2010 elections as he battled to be chairman of the powerful House Energy and Commerce Committee against Joe Barton, a Texan who mocked human-caused climate change.

Mr. Upton deleted references to climate change from his website. “If you look, the last year was the warmest year on record, the warmest decade on record. I accept that,” he offered that fall. “I do not say that it’s man-made.”

Mr. Upton, who has received more than $2 million in campaign donations from oil and gas companies and electric utilities over the course of his career, won the chairmanship and has coasted comfortably to re-election since.

Two years later, conservative “super PACs” took aim at Senator Richard G. Lugar of Indiana, a senior Republican who publicly voiced climate concerns, backed the creation of a Midwestern cap-and-trade program and drove a Prius. After six Senate terms, Mr. Lugar lost his primary to a Tea Party challenger, Richard E. Mourdock. Although Mr. Lugar says other reasons contributed, he and his opponents say his public views on climate change played a crucial role.

“In my own campaign, there were people who felt strongly enough about my views on climate change to use it to help defeat me, and other Republicans are very sensitive to that possibility,” Mr. Lugar said in an interview. “So even if they privately believe we ought to do something about it, they’re reticent, especially with the Republican president taking the views he is now taking.”

Obama Feeds the Movement

After winning re-election in 2012, Mr. Obama understood his second-term agenda would have to rely on executive authority, not legislation that would go nowhere in the Republican-majority Congress. And climate change was the great unfinished business of his first term.

“If Congress won’t act soon to protect future generations, I will,” President Barack Obama declared in a section of his 2013 State of the Union address on climate change.CreditDoug Mills/The New York Times

To finish it, he would deploy a rarely used provision in the Clean Air Act of 1970, which gave the Environmental Protection Agency the authority to issue regulations on carbon dioxide.

“If Congress won’t act soon to protect future generations, I will,” he declared in his 2013 State of the Union address.

The result was the Clean Power Plan, which would significantly cut planet-warming emissions by forcing the closing of hundreds of heavy-polluting coal-fired power plants.

The end run around Congress had consequences of its own. To Republican (and some Democratic) critics, the Clean Power Plan exemplified everything they opposed about Mr. Obama: He seemed to them imperious, heavy-handed, pleasing to the elites on the East and West Coasts and in the capitals of Europe, but callous to the blue-collar workers of coal and oil country.

“It fed into this notion of executive overreach,” said Heather Zichal, who advised Mr. Obama on climate policy. “I don’t think there was a good enough job on managing the narrative.”

Republicans who had supported the climate change agenda began to defect and have since stayed away.

“On the issue of climate change, I think it’s happening,” Mr. McCain said in a CNN podcast interview last April. But, he said, “The president decided, at least in the last couple years if not more, to rule by edict.”

Mr. Obama’s political opponents saw the climate rules as a ripe opportunity. “When the president went the regulatory route, it gave our side more confidence,” Mr. Phillips said. “It hardened and broadened Republican opposition to this agenda.”

Starting in early 2014, the opponents of the rule — including powerful lawyers and lobbyists representing many of America’s largest manufacturing and industrial interests — regularly gathered in a large conference room at the national headquarters of the U.S. Chamber of Commerce, overlooking the White House. They drafted a long-game legal strategy to undermine Mr. Obama’s climate regulations in a coordinated campaign that brought together 28 state attorneys general and major corporations to form an argument that they expected to eventually take to the Supreme Court.

They presented it not as an environmental fight but an economic one, against a government that was trying to vastly and illegally expand its authority.

“This is the most significant wholesale regulation of energy that the United States has ever seen, by any agency,” Roger R. Martella Jr., a former E.P.A. lawyer who then represented energy companies, said at a gathering of industry advocates, making an assertion that has not been tested.

Attorneys General Step In

Republican attorneys general gathered at the Greenbrier resort in West Virginia in August 2015 for their annual summer retreat, with some special guests: four executives from Murray Energy, one of the nation’s largest coal mining companies.

Murray was struggling to avoid bankruptcy — a fate that had befallen several other coal mining companies already, given the slump in demand for their product and the rise of natural gas, solar and wind energy.

The coal industry came to discuss a new part of the campaign to reverse the country’s course on climate change. Litigation was going to be needed, the industry executives and the Republican attorneys general agreed, to block the Obama administration’s climate agenda — at least until a new president could be elected.

West Virginia’s attorney general, Patrick Morrisey, led the session, “The Dangerous Consequences of the Clean Power Plan & Other E.P.A. Rules,” which included, according to the agenda, Scott Pruitt, then the attorney general of Oklahoma; Ken Paxton, Texas’ attorney general; and Geoffrey Barnes, a corporate lawyer for Murray, which had donated $250,000 to the Republican attorneys general political group.

That same day, Mr. Morrissey would step outside the hotel to announce that he and other attorneys general would sue in federal court to try to stop the Clean Power Plan, which he called “the most far-reaching energy regulation in this nation’s history, drawn up by radical bureaucrats.”

Mr. Pruitt quickly became a national point person for industry-backed groups and a magnet for millions of dollars of campaign contributions, as the fossil fuel lobby looked for a fresh face with conservative credentials and ties to the evangelical community.

“Pruitt was instrumental — he and A.G. Morrisey,” said Thomas Pyle, a former lobbyist for Koch Industries, an adviser to Mr. Trump’s transition team and the president of a pro-fossil fuel Washington research organization, the Institute for Energy Research. “They led the charge and made it easier for other states to get involved. Some states were keeping their powder dry, but Pruitt was very out front and aggressive.”

After the litigation was filed — by Mr. Morrissey and Mr. Pruitt, along with other attorneys general who attended the Greenbrier meeting — Murray Energy sued in the federal court case as well, just as had been planned.

In February 2016, the Supreme Court indicated that it would side with opponents of the rule, moving by a 5-4 vote to grant a request by the attorneys general and corporate players to block the implementation of the Clean Power Plan while the case worked its way through the federal courts.

Trump Stokes the Fires

When Donald J. Trump decided to run for president, he did not appear to have a clear understanding of the nation’s climate change policies. Nor, at the start of his campaign, did he appear to have any specific plan to prioritize a huge legal push to roll those policies back.

Mr. Trump had, in 2012, said on Twitter, “The concept of global warming was created by and for the Chinese in order to make U.S. manufacturing non-competitive.” But he had also, in 2009, joined dozens of other business leaders to sign a full-page ad in the The New York Times urging Mr. Obama to push a global climate change pact being negotiated in Copenhagen, and to “strengthen and pass United States legislation” to tackle climate change.

However, it did not go unnoticed that coal country was giving his presidential campaign a wildly enthusiastic embrace, as miners came out in full force for Mr. Trump, stoking his populist message.

And the surest way for Mr. Trump to win cheers from coal crowds was to aim at an easy target: Mr. Obama’s climate rules. Hillary Clinton did not help her cause when she said last spring that her climate policies would “put a lot of coal miners and coal companies out of business.”

In May 2016, Mr. Trump addressed one of the largest rallies of his campaign: an estimated crowd of over 10,000 in Charleston, W.Va., where the front rows were crammed with mine workers.

“I’m thinking about miners all over the country,” he said, eliciting cheers. “We’re going to put miners back to work.”

“They didn’t used to have all these rules and regulations that make it impossible to compete,” he added. “We’re going to take it all off the table.”

Then an official from the West Virginia Coal Association handed the candidate a miner’s hat.

As he put it on, giving the miners a double thumbs-up, “The place just went nuts, and he loved it,” recalled Barry Bennett, a former adviser to Mr. Trump’s presidential campaign. “And the miners started showing up at everything. They were a beaten lot, and they saw him as a savior. So he started using the ‘save coal’ portions of the speech again and again.”

Donald Trump Coal Miners Endorsed Trump in West Virginia - Coal Association Charleston Hard Hat ✔CreditVideo by PRESIDENT DONALD TRUMP NEWS & LIVE SPEECH 2017

Mr. Trump’s advisers embraced the miners as emblematic of the candidate’s broader populist appeal.

“The coal miners were the perfect case for what he was talking about,” Mr. Bennett said, “the idea that for the government in Washington, it’s all right for these people to suffer for the greater good — that federal power is more important than your little lives.”

Donald J. Trump at a campaign event in Charleston, W.Va., in May 2016. “We’re going to put miners back to work,” he said.CreditTy Wright for The New York Times

Mr. Trump took on as an informal campaign adviser Robert E. Murray — chief executive of the same coal company that had been working closely for years with the Republican attorneys general to unwind the Obama environmental legacy.

Mr. Murray, a brash and folksy populist who started working in coal mines as a teenager, is an unabashed skeptic of climate science. The coal magnate and Mr. Trump had a natural chemistry, and where Mr. Trump lacked the legal and policy background to unwind climate policy, Mr. Murray was happy to step in.

“I thank my lord, Jesus Christ, for the election of Donald Trump,” Mr. Murray said soon after his new friend won the White House.

Mr. Trump appointed Mr. Ebell, the Competitive Enterprise Institute fellow who had worked for years to undermine the legitimacy of established climate science, to head the transition team at E.P.A. Mr. Ebell immediately began pushing for an agenda of gutting the Obama climate regulations and withdrawing from the Paris Agreement.

When it came time to translate Mr. Trump’s campaign promises to coal country into policy, Mr. Murray and others helped choose the perfect candidate: Mr. Pruitt, the Oklahoma attorney general.

Mr. Trump, who had never met Mr. Pruitt before his election, offered him the job of E.P.A. administrator — putting him in a position to dismantle the environmental rules that he had long sought to fight in court.

Meanwhile, Mr. Trump wanted to be seen delivering on the promises he had made to the miners. As controversies piled up in his young administration, he sought comfort in the approval of his base.

In March, Mr. Trump signed an executive order directing Mr. Pruitt to begin unwinding the Clean Power Plan — and he did so at a large public ceremony at the E.P.A., flanked by coal miners and coal executives. Mr. Murray beamed in the audience.

Meanwhile, a battle raged at the White House over whether to withdraw the United States from the Paris agreement. Mr. Trump’s daughter Ivanka and his secretary of state, Rex W. Tillerson, urged him to remain in, cautioning that withdrawing could be devastating to the United States’ foreign policy credentials.

Murray Energy — despite its enormous clout with Mr. Trump and his top environmental official — boasts a payroll with only 6,000 employees. The coal industry nationwide is responsible for about 160,000 jobs, with just 65,000 directly in mining, according to the federal Energy Information Administration.

By comparison, General Electric alone has 104,000 employees in the United States, and Apple has 80,000. Their chief executives openly pressed Mr. Trump to stick with Paris, as did dozens of other major corporations that have continued to support regulatory efforts to combat climate change.

But these voices did not have clout in Washington, either in Congress or at the White House, when it comes to energy policy.

Mr. Trump’s senior adviser, Stephen K. Bannon, backed by Mr. Pruitt, told the president that pulling out of the deal would mean a promise kept to his base.

“It is time to put Youngstown, Ohio; Detroit, Michigan; and Pittsburgh, Pennsylvania — along with many, many other locations within our great country — before Paris, France,” Mr. Trump said in his Rose Garden speech on Thursday. “It is time to make America great again.”

Flooding in Fort Lauderdale, Fla., in November. A report produced by 14 federal agencies concluded that climate change was responsible for much of the flooding now plaguing South Florida.CreditJoe Raedle/Getty Images

The Science Gets Stronger

The recognition that human activity is influencing the climate developed slowly, but a scientific consensus can be traced to a conference in southern Austria in October 1985. Among the 100 or so attendees who gathered in the city of Villach, nestled in the mountains along the Drava River, was Bert Bolin, a Swedish meteorologist and a pioneer in using computers to model the climate.

Dr. Bolin helped steer the conference to its conclusion: “It is now believed that in the first half of the next century a rise of global mean temperature could occur which is greater than any in man’s history,” he wrote in the conference’s 500-page report.

While the politics of climate change in the United States has grown more divided since then, the scientific community has united: Global warming is having an impact, scientists say, with sea levels rising along with the extremity of weather events. Most of the debate is about the extent of those impacts — how high the seas may rise, or how intense and frequent heavy storms or heat waves may be.

In recent years, many climate scientists have also dropped their reluctance to pin significant weather events on climate change. Studies have shown that certain events — a 2015 Australian heat wave, floods in France last year and recent high temperatures in the Arctic — were made more likely because of global warming.

But in Congress, reluctance to embrace that science has had no political downsides, at least among Republicans.

“We don’t yet have an example of where someone has paid a political price being on that side of it,” said Michael Steel, who served as press secretary for the former House speaker John A. Boehner, the Republican presidential candidate Jeb Bush and the current House speaker, Paul D. Ryan, during his 2012 run as Mitt Romney’s vice-presidential choice.

Instead, the messages of Mr. Pruitt still dominate.

“This is an historic restoration of American economic independence — one that will benefit the working class, the working poor and working people of all stripes,” Mr. Pruitt said on Thursday, stepping to the Rose Garden lectern after Mr. Trump. “We owe no apologies to other nations for our environmental stewardship.”

American voters — even many Republicans — recognize that climate change is starting to affect their lives. About 70 percent think global warming is happening, and about 53 percent think it is caused by human activities, according to a recent study by the Yale Program on Climate Change Communication. About 69 percent support limiting carbon dioxide emissions from coal-fired power plants.

But most public opinion polls find that voters rank the environment last or nearly last among the issues that they vote on. And views are divided based on party affiliation. In 2001, 46 percent of Democrats said they worried “a great deal” about climate change, compared with 29 percent of Republicans, according to a Gallup tracking poll on the issue. This year, concern among Democrats has reached 66 percent. Among Republicans, it has fallen, to 18 percent.

Until people vote on the issue, Republicans will find it politically safer to question climate science and policy than to alienate moneyed groups like Americans for Prosperity.

There will be exceptions. The 2014 National Climate Assessment, a report produced by 14 federal agencies, concluded that climate change is responsible for much of the flooding now plaguing many of the Miami area’s coastal residents, soaking homes and disrupting businesses, and Representative Curbelo is talking about it.

“This is a local issue for me,” Mr. Curbelo said. “Even conservatives in my district see the impact. It’s flooding, and it’s happening now.”

Mr. Curbelo helped create the House Climate Solutions Caucus, 20 Republicans and 20 Democrats who say they are committed to tackling climate change.

Mr. Curbelo is confident that as the impact of climate change spreads, so will the willingness of his Republican colleagues to join him.

Outside of Congress, a small number of establishment conservatives, including a handful of leaders from the Reagan administration, have begun pushing Washington to act on climate change. Earlier this year, James A. Baker III, one of the Republican Party’s more eminent senior figures, met with senior White House officials to urge them to consider incorporating a carbon tax as part of a broader tax overhaul package — a way to both pay for proposed cuts to corporate tax rates and help save the planet. A Reagan White House senior economist, Art Laffer; a former secretary of state, George P. Shultz; and Henry M. Paulson Jr., George W. Bush’s final Treasury secretary, have also pushed the idea.

“There are members from deep-red districts who have approached me about figuring out how to become part of this effort,” Mr. Curbelo said. “I know we have the truth on our side. So I’m confident that we’ll win — eventually.”

An earlier version of this article misstated when the Supreme Court stayed the Obama administration’s Clean Power Plan, which regulated emissions from coal-fired power plants. It was in February 2016, not April.

Henry Fountain contributed reporting from New York.

Get politics and Washington news updates via Facebook, Twitter and in the Morning Briefing newsletter.

A version of this article appears in print on , on Page A1 of the New York edition with the headline: How G.O.P. Shifted on Climate Science. Order Reprints | Today’s Paper | Subscribe


Daten zu Surfverhalten von Millionen Deutschen als „kostenlose Probe“

Daten zu Surfverhalten von Millionen Deutschen als "kostenlose Probe"

Netzausbau - Internet

(Bild: dpa, Daniel Reinhardt)

Mehrere Firmen sammeln so viele Daten wie möglich zu deutschen Internetnutzern und bieten diese – angeblich anonymisiert – zum Verkauf. Reporter haben nun solche Daten eingesehen und ganz einfach intimste Informationen zu konkreten Personen gefunden.

Während einer Recherche sind Reportern der NDR-Magazine Panorama und Zapp umfassende Daten zum Surfverhalten von drei Millionen Deutschen übermittelt worden. Das sei nur die kostenlose Probe für ein offenbar viel umfangreicheres Datenpaket gewesen, berichten sie vor der Panorama-Sendung, in der sie ihre Rechercheergebnisse am heutigen Dienstagabend vorstellen wollen.

Demnach haben sie sich als Schein-Firma im "Big Data-Geschäft" ausgegeben, woraufhin ihnen gleich mehrere Firmen Daten zum Surfverhalten von deutschen Internetnutzern angeboten hätten. Das von ihnen ausgewertete Paket umfasste demnach mehr als zehn Milliarden Internetadressen und die darauf erfolgten Zugriffe von drei Millionen Deutschen im Monat August.

Anders als bei solchen Geschäften behauptet, sind die Daten keineswegs so anonymisiert, dass sie keinen Schaden für die betroffenen Nutzer bedeuten, fassen die Journalisten zusammen. So seien die Daten sehr einfach konkreten Personen zuzuordnen gewesen und hätten intimste Details aus deren Leben verraten. Rekonstruiert haben sie etwa Details zu laufenden polizeilichen Ermittlungen oder zu sado-masochistischen Vorlieben eines Richters, aber auch die internen Umsatzzahlen eines Medienunternehmens und Internetsuchen zu Krankheiten, Prostituierten und Drogen. Zu einem Manager aus Hamburg habe man einen Link zu einem von ihm genutzen Cloud-Speicher gefunden, über den Kontoauszüge, Lohnabrechnungen, eine Kopie des Personalausweises und mehr einsehbar waren.

Die Unternehmen, die derartige Daten zum Verkauf anbieten, sammeln sie demnach beispielsweise durch Browser-Erweiterungen, die etwa Downloads verwalten oder die Sicherheit von Internetseiten prüfen sollen. Einmal installiert übermittelten sie aber im Hintergrund alle besuchten Seiten an Server, wo diese Daten gesammelt und zu Nutzerprofilen gebündelt. Die Daten würden dann etwa an die Werbeindustrie verkauft, die damit ihre Anzeigen gezielter schalten will. Dabei würde immer wieder behauptet, dass man aus den Daten keine Rückschlüsse auf Individuen ziehen könne, aber das hätten die Recherchen entkräftet. Insgesamt sei das auch juristisch heikel, aber die Anbieter agierten oft aus dem Ausland, weswegen sich Betroffene nicht wirklich wehren könnten.

Bei ihrer Recherche haben die NDR-Reporter mit der Plattform kooperiert, die vom Bundesjustizministerium gefördert wird. Dort wurden als Begleitung zu dem Bericht Maßnahmen zusammengetragen, mit denen sich Mobilnutzer gegen derartige Ausspähungen schützen sollen. Dort werden beispielsweise Browser-Erweiterungen aufgeführt, die das Tracking unterbinden sollen. Außerdem wird erklärt, was es mit dem Tracking auf sich hat und was vor allem Google mit all dem zu tun hat. Die Sendung mit dem ganzen Bericht soll am heutigen Dienstagabend um 21:15 Uhr im NDR ausgestrahlt werden. (mho)

Handgestrickter 16Bit (!) Prozessor aus 42300 Transistoren

Megaprocessor: So sieht eine handgebaute 16-Bit-CPU aus 42.300 Transistoren aus

Peter König

(Bild: Screenshot aus dem eingebundenen Video)

Der Megaprocessor trägt seinen Namen zu Recht: Was sich sonst auf wenigen Quadratmillimetern im Computer abspielt, entfaltet das Werk eines britischen Bastlers auf 10 Metern Länge und 2 Metern Höhe zu voller Pracht.

Das Klischee sagt den Briten ja einen gewissen Hang zur Exzentrizität nach – für die Maker jenseits des Ärmelkanals scheint sich dies auch immer wieder zu bewahrheiten. Sei es die Frühstücksmaschine à la Wallace & Gromit, der mannshohe Zauberwürfel, das fliegende Motorrad oder die Flugmaschine mit 54 Rotoren – alle diese Prachtstücke skurrilen Erfindergeistes sind Made in Great Britain.

Das jüngst fertiggestellte Projekt des Bastlers James Newman aus Cambridge braucht sich hinter all den vorgenannten Werken nicht zu verstecken – das wäre auch schwierig, denn immerhin misst das fertige Objekt rund 10 Meter in der Länge und 2 Meter in der Höhe. Deshalb trägt es den Titel Megaprocessor, denn genau darum handelt es sich: Ein 16-Bit-Mikroprozessor, komplett nachgebaut aus einzelnen Transistoren (15.300 Stück für den Prozessor und 27.000 Stück für die 256 Byte(!) RAM).

Der Bau dauerte mehrere Jahre, die Gesamtkosten betrugen nach James' Schätzung rund 40.000 britische Pfund (etwa 47.000 Euro). Das System verteilt sich auf diverse aufrecht stehende Rahmen aus Aluminium-Profilen; die Platinen darin sind mit jenen der anderen Rahmen durch viele Flachbandkabel verbunden. Für den Speicher gibt es eine Visualisierung durch eine LED-Matrix in Türgröße, auf der sich durchaus auch eine Partie Tetris spielen lässt. Im Betrieb nimmt der Megaprocessor rund 500 Watt Leistung auf.
Eine Panorama-Aufnahme des Megaprocessors Vergrößern

Durch die verwendeten diskreten Bauteile misst die Platine des 8-Bit-Addierers rund einen Fuß (etwa 30 cm). Das gesamte System arbeitet mit fünf solcher Addierer.
Durch die verwendeten diskreten Bauteile misst die Platine des 8-Bit-Addierers rund einen Fuß (etwa 30 cm). Das gesamte System arbeitet mit fünf solcher Addierer. Vergrößern

Auf der ausführlichen Webseite zum Projekt gibt es unter anderem ein ZIP-Archiv zum Download, das einen Simulator für den Megaprocessor samt Beispielprogrammen enthält.

Vergrößern zwecks Einsicht

Bleibt die Frage: Warum tut man sowas? James Newman gibt auf seiner Webseite eine kurze und eine lange Antwort. Die kurze – "weil ich will" – passt wieder splendid ins Briten-Klischee (siehe oben).

Dem Megaprocessor kann man beim Rechnen zusehen.
Dem Megaprocessor kann man beim Rechnen zusehen.

Die lange lautet sinngemäß: In moderne, hoch integrierte Computer kann man nicht hineinschauen und man kann sich auch nicht selbst so sehr verkleinern, dass man die Vorgänge im Inneren sehen könnte. Deshalb ist der Tüftler den umgekehrten Weg gegangen und hat statt dessen den Mikroprozessor vergrößert. Außerdem lässt sich der Takt des Systems von rund 20 kHz bei Bedarf so stark drosseln, dass man dem Prozessor buchstäblich Zyklus für Zyklus beim Arbeiten zusehen kann.

Ähnliche Motive trieben auch Eric Schlaepfer und Windell Oskay beim Bau ihres MOnSter 6502 an, jedoch bringt es ihr 7000-fach vergrößerter Nachbau des klassischen Home-Computer-Chips nur auf eine vergleichsweise bescheidene Fläche von 30 cm × 40 cm. Der Rekord für den größten lauffähigen Mikroprozessor der Welt dürfte aktuell wieder nach Großbritannien gehen. Wer sich für dessen technische Details interessiert, findet auf YouTube eine ganze Reihe an Videos, in denen James Newman den Megaprocessor erklärt:


Das aktuelle Heft

Cover Make 6/17 mit Power Flower

Die Make 6/2017 können Sie ab sofort im Heise Shop und Zeitschriftenhandel kaufen. Auf 140 Seiten u.a. mit diesen Themen: Power Flower als Nachtlicht · Windlose Windspiele · Flexible Platinen · Der Weg zum eigenen Produkt · Glasabschneider · 3D-Videos live übertragen · LED-Sterne

Heft bestellen

Vorschau 1/18

Die Make 1/18 erscheint am 22. Februar 2018.

Call for Makers!

Ein roter Makey neben dem Logo: Maker Faire Deutschland, Österreich, Schweiz

Das Festival von Make – 2018 wieder in Berlin, Hannover, Wien und vielen weiteren Städten in Deutschland und Österreich. Die Anmeldung läuft: Zeigen Sie Ihre eigenen DIY-Projekte vor großem Publikum!