neo.mjs 7.12.0 → 7.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,782 +1,733 @@
|
|
1
|
-
[
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
"id" : 4,
|
735
|
-
"image" : "how-to-create-your-first-neo-mjs-app.png",
|
736
|
-
"name" : "How to create your first neo.mjs App",
|
737
|
-
"provider" : "Medium",
|
738
|
-
"publisher" : "",
|
739
|
-
"selectedInto": [],
|
740
|
-
"type" : "Tutorial",
|
741
|
-
"url" : "https://medium.com/@tobiasuhlig/how-to-create-your-first-neo-mjs-app-e68b49c960c7?source=friends_link&sk=30cc526190399c2e875e87bb5359824d"
|
742
|
-
},
|
743
|
-
{
|
744
|
-
"author" : "Tobias Uhlig",
|
745
|
-
"authorImage" : "author_TobiasUhlig.jpeg",
|
746
|
-
"date" : "Jan 3, 2020",
|
747
|
-
"id" : 3,
|
748
|
-
"image" : "release-announcement-npx-neo-app.png",
|
749
|
-
"name" : "Release announcement:</br>npx neo-app",
|
750
|
-
"provider" : "Medium",
|
751
|
-
"publisher" : "",
|
752
|
-
"selectedInto": [],
|
753
|
-
"type" : "Release Announcement",
|
754
|
-
"url" : "https://medium.com/@tobiasuhlig/release-announcement-npx-neo-app-190f114e73df?source=friends_link&sk=4f2d1b9d2d08a0e109ffc943f650f58b"
|
755
|
-
},
|
756
|
-
{
|
757
|
-
"author" : "Tobias Uhlig",
|
758
|
-
"authorImage" : "author_TobiasUhlig.jpeg",
|
759
|
-
"date" : "Nov 23, 2019",
|
760
|
-
"id" : 2,
|
761
|
-
"image" : "neo-mjs-the-public-release-announcement.png",
|
762
|
-
"name" : "neo.mjs → The public release announcement",
|
763
|
-
"provider" : "Medium",
|
764
|
-
"publisher" : "codeburst.io",
|
765
|
-
"selectedInto": [],
|
766
|
-
"type" : "Release Announcement",
|
767
|
-
"url" : "https://codeburst.io/neo-mjs-the-public-release-announcement-1519255bc8f9?source=friends_link&sk=c7d11dd49bf74463d68cf4ef62a0cb07"
|
768
|
-
},
|
769
|
-
{
|
770
|
-
"author" : "Tobias Uhlig",
|
771
|
-
"authorImage" : "author_TobiasUhlig.jpeg",
|
772
|
-
"date" : "Nov 13, 2019",
|
773
|
-
"id" : 1,
|
774
|
-
"image" : "neo-mjs-documentation-for-your-ui.png",
|
775
|
-
"name" : "neo.mjs: Documentation for your UI",
|
776
|
-
"provider" : "Medium",
|
777
|
-
"publisher" : "",
|
778
|
-
"selectedInto": [],
|
779
|
-
"type" : "Blog Post",
|
780
|
-
"url" : "https://medium.com/@tobiasuhlig/neo-mjs-documentation-for-your-ui-77abf9fe8bbe?source=friends_link&sk=f27a4e8b133a02e98a0b01dca8f0cae9"
|
781
|
-
}
|
782
|
-
]
|
1
|
+
[{
|
2
|
+
"author" : "Nikhilesh Joshi",
|
3
|
+
"authorImage" : "author_hashnj.jpg",
|
4
|
+
"date" : "Oct 01, 2024",
|
5
|
+
"id" : 61,
|
6
|
+
"image" : "neo.jpg",
|
7
|
+
"name" : "Neo.mjs: A novel framework for high-performance web applications.",
|
8
|
+
"provider" : "Dev.to",
|
9
|
+
"publisher" : "",
|
10
|
+
"selectedInto": [],
|
11
|
+
"type" : "Blog Post",
|
12
|
+
"url" : "https://dev.to/hashnj/neomjs-a-novel-framework-for-high-performance-web-applications-ia"
|
13
|
+
}, {
|
14
|
+
"author" : "Tobias Uhlig",
|
15
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
16
|
+
"date" : "Aug 20, 2024",
|
17
|
+
"id" : 60,
|
18
|
+
"image" : "frontend-performance.png",
|
19
|
+
"name" : "Frontend Performance Love Story",
|
20
|
+
"provider" : "Medium",
|
21
|
+
"publisher" : "ITNEXT",
|
22
|
+
"selectedInto": [],
|
23
|
+
"type" : "Blog Post",
|
24
|
+
"url" : "https://itnext.io/frontend-performance-love-story-ce92302fea5f?source=friends_link&sk=ec69e9461cee5b80adb06214ebbf36b4"
|
25
|
+
}, {
|
26
|
+
"author" : "Tobias Uhlig",
|
27
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
28
|
+
"date" : "Jul 12, 2024",
|
29
|
+
"id" : 59,
|
30
|
+
"image" : "transform_dom_tree.png",
|
31
|
+
"name" : "A blazing-fast algorithm to transform one DOM tree into another",
|
32
|
+
"provider" : "Medium",
|
33
|
+
"publisher" : "ITNEXT",
|
34
|
+
"selectedInto": [],
|
35
|
+
"type" : "Blog Post",
|
36
|
+
"url" : "https://itnext.io/a-blazing-fast-algorithm-to-transform-one-dom-tree-into-another-4ff9c934bc49?source=friends_link&sk=f1de46dbd464095b8d0b0a271644cb75"
|
37
|
+
}, {
|
38
|
+
"author" : "Tobias Uhlig",
|
39
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
40
|
+
"date" : "Jun 17, 2024",
|
41
|
+
"id" : 58,
|
42
|
+
"image" : "Sharing_real_time_data.png",
|
43
|
+
"name" : "Sharing real-time WebSocket data across multiple browser windows",
|
44
|
+
"provider" : "Medium",
|
45
|
+
"publisher" : "ITNEXT",
|
46
|
+
"selectedInto": [],
|
47
|
+
"type" : "Blog Post",
|
48
|
+
"url" : "https://itnext.io/sharing-real-time-websocket-data-across-multiple-browser-windows-4e0538dd7563?source=friends_link&sk=9efb3e4f38c82fb3e04899c61bb5fcb8"
|
49
|
+
}, {
|
50
|
+
"author" : "Torsten Dinkheller",
|
51
|
+
"authorImage" : "author_TorstenDinkheller.jpg",
|
52
|
+
"date" : "Feb 03, 2023",
|
53
|
+
"id" : 57,
|
54
|
+
"image" : "overrides-medium.jpg",
|
55
|
+
"name" : "Leveraging Overrides for Resilient Customizations and Effective Bugfixes in JavaScript Frameworks",
|
56
|
+
"provider" : "Medium",
|
57
|
+
"publisher" : "ITNEXT",
|
58
|
+
"selectedInto": [],
|
59
|
+
"type" : "Blog Post",
|
60
|
+
"url" : "https://itnext.io/leveraging-overrides-for-resilient-customizations-and-effective-bugfixes-in-javascript-frameworks-5b8ccfec0f8?source=friends_link&sk=790e868aac8b8570f0eee093adc30c00"
|
61
|
+
}, {
|
62
|
+
"author" : "Torsten Dinkheller",
|
63
|
+
"authorImage" : "author_TorstenDinkheller.jpg",
|
64
|
+
"date" : "Jan 28, 2023",
|
65
|
+
"id" : 56,
|
66
|
+
"image" : "toast-tutorial-medium.jpg",
|
67
|
+
"name" : "Reusable Next Gen Toast — to Industry Standard",
|
68
|
+
"provider" : "Medium",
|
69
|
+
"publisher" : "ITNEXT",
|
70
|
+
"selectedInto": [],
|
71
|
+
"type" : "Blog Post",
|
72
|
+
"url" : "https://itnext.io/reusable-next-gen-toast-to-industry-standard-502d2950701f?source=friends_link&sk=f74ba5b5161986d9d8dec6e91ba11a5b"
|
73
|
+
}, {
|
74
|
+
"author" : "Tobias Uhlig",
|
75
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
76
|
+
"date" : "Jan 25, 2023",
|
77
|
+
"id" : 55,
|
78
|
+
"image" : "the-next-generation-of-front-end-development.png",
|
79
|
+
"name" : "The Next Generation of Front-end Development",
|
80
|
+
"provider" : "Medium",
|
81
|
+
"publisher" : "ITNEXT",
|
82
|
+
"selectedInto": [],
|
83
|
+
"type" : "Blog Post",
|
84
|
+
"url" : "https://itnext.io/the-next-generation-of-front-end-development-65887c59b173?source=friends_link&sk=51654f60033120e84454791015d8d205"
|
85
|
+
}, {
|
86
|
+
"author" : "Tobias Uhlig",
|
87
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
88
|
+
"date" : "Jan 18, 2023",
|
89
|
+
"id" : 54,
|
90
|
+
"image" : "changing-scoped-css-variables-using-javascript.png",
|
91
|
+
"name" : "Changing scoped CSS variables using JavaScript",
|
92
|
+
"provider" : "Medium",
|
93
|
+
"publisher" : "ITNEXT",
|
94
|
+
"selectedInto": [],
|
95
|
+
"type" : "Blog Post",
|
96
|
+
"url" : "https://itnext.io/changing-scoped-css-variables-using-javascript-96b26dfa43b1?source=friends_link&sk=2be526c9917418b21fe42bd66c40ea87"
|
97
|
+
}, {
|
98
|
+
"author" : "Tobias Uhlig",
|
99
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
100
|
+
"date" : "Sep 07, 2022",
|
101
|
+
"id" : 53,
|
102
|
+
"image" : "the-secret-of-successfully-using-multi-window-webgl-canvas.png",
|
103
|
+
"name" : "The secret of successfully using multi window WebGL Canvas",
|
104
|
+
"provider" : "Medium",
|
105
|
+
"publisher" : "ITNEXT",
|
106
|
+
"selectedInto": [],
|
107
|
+
"type" : "Blog Post",
|
108
|
+
"url" : "https://itnext.io/the-secret-of-successfully-using-multi-window-webgl-canvas-5a2d05555ad1?source=friends_link&sk=d24ec0ec25aa6678d5fd1f59aaf09007"
|
109
|
+
}, {
|
110
|
+
"author" : "Tobias Uhlig",
|
111
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
112
|
+
"date" : "Apr 13, 2022",
|
113
|
+
"id" : 52,
|
114
|
+
"image" : "safari-now-fully-supports-sharedworkers.png",
|
115
|
+
"name" : "Safari now fully supports SharedWorkers",
|
116
|
+
"provider" : "Medium",
|
117
|
+
"publisher" : "ITNEXT",
|
118
|
+
"selectedInto": [],
|
119
|
+
"type" : "Blog Post",
|
120
|
+
"url" : "https://itnext.io/safari-now-fully-supports-sharedworkers-534733b56b4c?source=friends_link&sk=97b83b39629cf79dbe8feff0042c19b3"
|
121
|
+
}, {
|
122
|
+
"author" : "Tobias Uhlig",
|
123
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
124
|
+
"date" : "Mar 28, 2022",
|
125
|
+
"id" : 51,
|
126
|
+
"image" : "predictive-offline-support-for-assets-you-have-not-used-yet.png",
|
127
|
+
"name" : "Predictive offline support for assets you have not used yet",
|
128
|
+
"provider" : "Medium",
|
129
|
+
"publisher" : "ITNEXT",
|
130
|
+
"selectedInto": [],
|
131
|
+
"type" : "Blog Post",
|
132
|
+
"url" : "https://itnext.io/predictive-offline-support-for-assets-you-have-not-used-yet-aeeccccd3754?source=friends_link&sk=e946e0f25f508e6a8cec4136400291a3"
|
133
|
+
}, {
|
134
|
+
"author" : "Tobias Uhlig",
|
135
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
136
|
+
"date" : "Jan 31, 2022",
|
137
|
+
"id" : 50,
|
138
|
+
"image" : "clean-architectures-your-benefits-of-using-view-controllers.png",
|
139
|
+
"name" : "Clean architectures: Your benefits of using view controllers",
|
140
|
+
"provider" : "Medium",
|
141
|
+
"publisher" : "ITNEXT",
|
142
|
+
"selectedInto": [],
|
143
|
+
"type" : "Blog Post",
|
144
|
+
"url" : "https://itnext.io/clean-architectures-your-benefits-of-using-view-controllers-7ce6b00f0ad5?source=friends_link&sk=ebef34d36d5d307c7985ba4dedb261f9"
|
145
|
+
}, {
|
146
|
+
"author" : "Tobias Uhlig",
|
147
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
148
|
+
"date" : "Jan 17, 2022",
|
149
|
+
"id" : 49,
|
150
|
+
"image" : "scaling-your-micro-frontends-off-the-main-thread.png",
|
151
|
+
"name" : "Scaling your micro-frontends off the main thread",
|
152
|
+
"provider" : "Medium",
|
153
|
+
"publisher" : "ITNEXT",
|
154
|
+
"selectedInto": [],
|
155
|
+
"type" : "Blog Post",
|
156
|
+
"url" : "https://itnext.io/scaling-your-micro-frontends-off-the-main-thread-36dedf54c5bf?source=friends_link&sk=04620ee92b04adb4dba22c8ec98d1ef6"
|
157
|
+
}, {
|
158
|
+
"author" : "Tobias Uhlig",
|
159
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
160
|
+
"date" : "Jan 10, 2022",
|
161
|
+
"id" : 48,
|
162
|
+
"image" : "intercepting-component-state-to-ensure-smooth-animated-transitions.png",
|
163
|
+
"name" : "Intercepting component state to ensure smooth animated transitions",
|
164
|
+
"provider" : "Medium",
|
165
|
+
"publisher" : "ITNEXT",
|
166
|
+
"selectedInto": [],
|
167
|
+
"type" : "Blog Post",
|
168
|
+
"url" : "https://itnext.io/intercepting-component-state-to-ensure-smooth-animated-transitions-4facd46414dd?source=friends_link&sk=95a0eaef0e0b15dfc12ddd071479c61c"
|
169
|
+
}, {
|
170
|
+
"author" : "Tobias Uhlig",
|
171
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
172
|
+
"date" : "Dec 15, 2021",
|
173
|
+
"id" : 47,
|
174
|
+
"image" : "resolving-pitfalls-of-the-ecmascript-class-system.png",
|
175
|
+
"name" : "Resolving pitfalls of the ECMAScript class system",
|
176
|
+
"provider" : "Medium",
|
177
|
+
"publisher" : "ITNEXT",
|
178
|
+
"selectedInto": [],
|
179
|
+
"type" : "Blog Post",
|
180
|
+
"url" : "https://itnext.io/resolving-pitfalls-of-the-ecmascript-class-system-856024218399?source=friends_link&sk=9733342654c50d8d618671b754089e1d"
|
181
|
+
}, {
|
182
|
+
"author" : "Tobias Uhlig",
|
183
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
184
|
+
"date" : "Sep 23, 2021",
|
185
|
+
"id" : 46,
|
186
|
+
"image" : "safari-just-released-support-for-js-modules-inside-the-worker-scope.png",
|
187
|
+
"name" : "Safari (Webkit) just released support for JS modules inside the worker scope",
|
188
|
+
"provider" : "Medium",
|
189
|
+
"publisher" : "ITNEXT",
|
190
|
+
"selectedInto": [],
|
191
|
+
"type" : "Blog Post",
|
192
|
+
"url" : "https://itnext.io/safari-webkit-just-released-support-for-js-modules-inside-the-worker-scope-b2d29e67178?source=friends_link&sk=dfabc5dd91430f11e2c49dd10b698544"
|
193
|
+
}, {
|
194
|
+
"author" : "Tobias Uhlig",
|
195
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
196
|
+
"date" : "Aug 25, 2021",
|
197
|
+
"id" : 45,
|
198
|
+
"image" : "define-a-web-4.0-app-to-be-multi-threaded.png",
|
199
|
+
"name" : "Tutorial: Create your first app in neo v2",
|
200
|
+
"provider" : "Medium",
|
201
|
+
"publisher" : "ITNEXT",
|
202
|
+
"selectedInto": [],
|
203
|
+
"type" : "Tutorial",
|
204
|
+
"url" : "https://itnext.io/define-a-web-4-0-app-to-be-multi-threaded-9c495c0d0ef9?source=friends_link&sk=4d143ace05f0e9bbe82babd9433cc822"
|
205
|
+
}, {
|
206
|
+
"author" : "Tobias Uhlig",
|
207
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
208
|
+
"date" : "Aug 20, 2021",
|
209
|
+
"id" : 44,
|
210
|
+
"image" : "the-best-frontend-development-strategies-in-2022.png",
|
211
|
+
"name" : "The best frontend development strategies in 2022",
|
212
|
+
"provider" : "Medium",
|
213
|
+
"publisher" : "ITNEXT",
|
214
|
+
"selectedInto": [],
|
215
|
+
"type" : "Blog Post",
|
216
|
+
"url" : "https://itnext.io/the-best-frontend-development-strategies-in-2022-cb02dd7aa48b?source=friends_link&sk=70ae630fa553df54bdd2acaa531f1767"
|
217
|
+
}, {
|
218
|
+
"author" : "Tobias Uhlig",
|
219
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
220
|
+
"date" : "Aug 13, 2021",
|
221
|
+
"id" : 43,
|
222
|
+
"image" : "using-material-web-components-within-the-neomjs-application-worker.png",
|
223
|
+
"name" : "Using Material Web Components within the neo.mjs application worker",
|
224
|
+
"provider" : "Medium",
|
225
|
+
"publisher" : "ITNEXT",
|
226
|
+
"selectedInto": [],
|
227
|
+
"type" : "Blog Post",
|
228
|
+
"url" : "https://itnext.io/using-material-web-components-within-the-neo-mjs-application-worker-50d3790ea48?source=friends_link&sk=2bca9de4a3ba98b693e7582dcc55a990"
|
229
|
+
}, {
|
230
|
+
"author" : "Tobias Uhlig",
|
231
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
232
|
+
"date" : "Aug 9, 2021",
|
233
|
+
"id" : 42,
|
234
|
+
"image" : "javascript-development-making-a-web-worker-optional.png",
|
235
|
+
"name" : "JavaScript Development: Making a Web Worker optional",
|
236
|
+
"provider" : "Medium",
|
237
|
+
"publisher" : "ITNEXT",
|
238
|
+
"selectedInto": [],
|
239
|
+
"type" : "Blog Post",
|
240
|
+
"url" : "https://itnext.io/javascript-development-making-a-web-worker-optional-f23a13490b28?source=friends_link&sk=63c267c70f36865378a750c772e0a253"
|
241
|
+
}, {
|
242
|
+
"author" : "Tobias Uhlig",
|
243
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
244
|
+
"date" : "Aug 6, 2021",
|
245
|
+
"id" : 41,
|
246
|
+
"image" : "rendering-3d-offscreen-getting-max-performance-using-canvas-workers.png",
|
247
|
+
"name" : "Rendering 3d offscreen: Getting max performance using canvas workers",
|
248
|
+
"provider" : "Medium",
|
249
|
+
"publisher" : "ITNEXT",
|
250
|
+
"selectedInto": [],
|
251
|
+
"type" : "Blog Post",
|
252
|
+
"url" : "https://itnext.io/rendering-3d-offscreen-getting-max-performance-using-canvas-workers-88c207cbcdc2?source=friends_link&sk=7ee0851ff6043c4a79248ff5a20a23fc"
|
253
|
+
}, {
|
254
|
+
"author" : "Tobias Uhlig",
|
255
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
256
|
+
"date" : "Jun 27, 2021",
|
257
|
+
"id" : 40,
|
258
|
+
"image" : "how-to-create-a-list-containing-checkbox-fields-and-keynav-in-125-lines-of-code.png",
|
259
|
+
"name" : "How to create a List containing CheckBox fields and KeyNav in 125 lines of code",
|
260
|
+
"provider" : "Medium",
|
261
|
+
"publisher" : "ITNEXT",
|
262
|
+
"selectedInto": [],
|
263
|
+
"type" : "Blog Post",
|
264
|
+
"url" : "https://itnext.io/how-to-create-a-list-containing-checkbox-fields-and-keynav-in-125-lines-of-code-88b440de2951?source=friends_link&sk=b2d39365dd33f0dd4d3d2715828416cb"
|
265
|
+
}, {
|
266
|
+
"author" : "Tobias Uhlig",
|
267
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
268
|
+
"date" : "Jun 16, 2021",
|
269
|
+
"id" : 39,
|
270
|
+
"image" : "state-management-two-way-bindings-and-enhanced-binding-formatters.png",
|
271
|
+
"name" : "State management: Two-way bindings and enhanced binding formatters",
|
272
|
+
"provider" : "Medium",
|
273
|
+
"publisher" : "ITNEXT",
|
274
|
+
"selectedInto": [],
|
275
|
+
"type" : "Blog Post",
|
276
|
+
"url" : "https://itnext.io/state-management-two-way-bindings-and-enhanced-binding-formatters-f0e9419b7c6b?source=friends_link&sk=6c71c63fcc4df45935418eafa6053978"
|
277
|
+
}, {
|
278
|
+
"author" : "Tobias Uhlig",
|
279
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
280
|
+
"date" : "Jun 2, 2021",
|
281
|
+
"id" : 38,
|
282
|
+
"image" : "component-development-how-to-create-a-collapsible-fieldset.png",
|
283
|
+
"name" : "Component development: How to create a collapsible Fieldset in neo.mjs",
|
284
|
+
"provider" : "Medium",
|
285
|
+
"publisher" : "ITNEXT",
|
286
|
+
"selectedInto": [],
|
287
|
+
"type" : "Blog Post",
|
288
|
+
"url" : "https://itnext.io/component-development-how-to-create-a-collapsible-fieldset-in-neo-mjs-311bf465d829?source=friends_link&sk=48566d3445432f96941132b47737dac0"
|
289
|
+
}, {
|
290
|
+
"author" : "Tobias Uhlig",
|
291
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
292
|
+
"date" : "May 28, 2021",
|
293
|
+
"id" : 37,
|
294
|
+
"image" : "neo.mjs-v2.2.png",
|
295
|
+
"name" : "neo.mjs v2.2: Main thread MicroLoaders for your Apps",
|
296
|
+
"provider" : "Medium",
|
297
|
+
"publisher" : "ITNEXT",
|
298
|
+
"selectedInto": [],
|
299
|
+
"type" : "Blog Post",
|
300
|
+
"url" : "https://itnext.io/neo-mjs-v2-2-main-thread-microloaders-for-your-apps-a8722e32335e?source=friends_link&sk=466312cdeb92ed813be59a1d14d5778c"
|
301
|
+
}, {
|
302
|
+
"author" : "Tobias Uhlig",
|
303
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
304
|
+
"date" : "May 24, 2021",
|
305
|
+
"id" : 36,
|
306
|
+
"image" : "neo.mjs-nomination.png",
|
307
|
+
"name" : "neo.mjs nominated for “The most exciting Use of Technology”",
|
308
|
+
"provider" : "Medium",
|
309
|
+
"publisher" : "ITNEXT",
|
310
|
+
"selectedInto": [],
|
311
|
+
"type" : "Blog Post",
|
312
|
+
"url" : "https://itnext.io/neo-mjs-nominated-for-the-most-exciting-use-of-technology-cd5983debc7b?source=friends_link&sk=6e296e991d09fb7ec98285e90fd50b35"
|
313
|
+
}, {
|
314
|
+
"author" : "Tobias Uhlig",
|
315
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
316
|
+
"date" : "May 20, 2021",
|
317
|
+
"id" : 35,
|
318
|
+
"image" : "application-based-themed-styling-for-your-components.png",
|
319
|
+
"name" : "Application based themed styling for your components",
|
320
|
+
"provider" : "Medium",
|
321
|
+
"publisher" : "ITNEXT",
|
322
|
+
"selectedInto": [],
|
323
|
+
"type" : "Blog Post",
|
324
|
+
"url" : "https://itnext.io/application-based-themed-styling-for-your-components-d8becd1217a9?source=friends_link&sk=3f8304f0ca7f67e6cdc0e3e9a8db6e03"
|
325
|
+
}, {
|
326
|
+
"author" : "Tobias Uhlig",
|
327
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
328
|
+
"date" : "May 10, 2021",
|
329
|
+
"id" : 34,
|
330
|
+
"image" : "rendering-performance-demo.png",
|
331
|
+
"name" : "Rendering performance demo: 20.000 delta updates per second",
|
332
|
+
"provider" : "Medium",
|
333
|
+
"publisher" : "ITNEXT",
|
334
|
+
"selectedInto": [],
|
335
|
+
"type" : "Blog Post",
|
336
|
+
"url" : "https://itnext.io/rendering-performance-demo-20-000-delta-updates-per-second-6f527d8eb8f5?source=friends_link&sk=1261189e91e812659ba6e38819fffe2d"
|
337
|
+
}, {
|
338
|
+
"author" : "Tobias Uhlig",
|
339
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
340
|
+
"date" : "May 7, 2021",
|
341
|
+
"id" : 33,
|
342
|
+
"image" : "expanding-single-page-apps-into-multiple-browser-windows-part-2.png",
|
343
|
+
"name" : "Expanding Single Page Apps into multiple Browser Windows - Part 2",
|
344
|
+
"provider" : "Medium",
|
345
|
+
"publisher" : "ITNEXT",
|
346
|
+
"selectedInto": [],
|
347
|
+
"type" : "Blog Post",
|
348
|
+
"url" : "https://itnext.io/expanding-single-page-apps-into-multiple-browser-windows-part-2-2619ab40361d?source=friends_link&sk=c0b82c4b9ab86633f4e1b950adaff49b"
|
349
|
+
}, {
|
350
|
+
"author" : "Tobias Uhlig",
|
351
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
352
|
+
"date" : "May 4, 2021",
|
353
|
+
"id" : 32,
|
354
|
+
"image" : "how-to-create-a-file-by-file-custom-scss-build.png",
|
355
|
+
"name" : "How to create a file by file custom SCSS build including dependencies, using postcss and optional css vars",
|
356
|
+
"provider" : "Medium",
|
357
|
+
"publisher" : "ITNEXT",
|
358
|
+
"selectedInto": [],
|
359
|
+
"type" : "Blog Post",
|
360
|
+
"url" : "https://itnext.io/how-to-create-a-file-by-file-custom-scss-build-including-dependencies-using-postcss-and-optional-c83f8e5677d8?source=friends_link&sk=1ff756725825df82936b0edb9022c536"
|
361
|
+
}, {
|
362
|
+
"author" : "Tobias Uhlig",
|
363
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
364
|
+
"date" : "May 1, 2021",
|
365
|
+
"id" : 31,
|
366
|
+
"image" : "new-formatting-concept-for-json-based-virtual-dom.png",
|
367
|
+
"name" : "New formatting concept for JSON based virtual DOM",
|
368
|
+
"provider" : "Medium",
|
369
|
+
"publisher" : "ITNEXT",
|
370
|
+
"selectedInto": [],
|
371
|
+
"type" : "Blog Post",
|
372
|
+
"url" : "https://itnext.io/new-formatting-concept-for-json-based-virtual-dom-ee52acc5e04a?source=friends_link&sk=94f69dc71f662e0027118052ceb2db38"
|
373
|
+
}, {
|
374
|
+
"author" : "Tobias Uhlig",
|
375
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
376
|
+
"date" : "Apr 29, 2021",
|
377
|
+
"id" : 30,
|
378
|
+
"image" : "lazy-loading-for-card-layout-items-and-tabs.png",
|
379
|
+
"name" : "Lazy loading for card layout items and tabs → neo.mjs v2.0.10",
|
380
|
+
"provider" : "Medium",
|
381
|
+
"publisher" : "ITNEXT",
|
382
|
+
"selectedInto": [],
|
383
|
+
"type" : "Blog Post",
|
384
|
+
"url" : "https://itnext.io/lazy-loading-for-card-layout-items-and-tabs-neo-mjs-v2-0-10-2bd1c16cd458?source=friends_link&sk=c4651bfff3026ea7fe29f9589bde15b6"
|
385
|
+
}, {
|
386
|
+
"author" : "Tobias Uhlig",
|
387
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
388
|
+
"date" : "Apr 26, 2021",
|
389
|
+
"id" : 29,
|
390
|
+
"image" : "cross-browser-window-state-management.png",
|
391
|
+
"name" : "Cross browser window state management",
|
392
|
+
"provider" : "Medium",
|
393
|
+
"publisher" : "ITNEXT",
|
394
|
+
"selectedInto": [],
|
395
|
+
"type" : "Blog Post",
|
396
|
+
"url" : "https://itnext.io/cross-browser-window-state-management-77bf837b6574?source=friends_link&sk=c164f00034976283f28fd8a0ad361ba2"
|
397
|
+
}, {
|
398
|
+
"author" : "Tobias Uhlig",
|
399
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
400
|
+
"date" : "Apr 24, 2021",
|
401
|
+
"id" : 28,
|
402
|
+
"image" : "safari-about-to-release-support-for-js-modules-inside-the-worker-scope.png",
|
403
|
+
"name" : "Safari (Webkit) about to release support for JS modules inside the worker scope",
|
404
|
+
"provider" : "Medium",
|
405
|
+
"publisher" : "Level Up Coding",
|
406
|
+
"selectedInto": [],
|
407
|
+
"type" : "Blog Post",
|
408
|
+
"url" : "https://levelup.gitconnected.com/safari-webkit-about-to-release-support-for-js-modules-inside-the-worker-scope-9dd33fc20190?source=friends_link&sk=db61a01446ca5a51ee2f932aad9ca890"
|
409
|
+
}, {
|
410
|
+
"author" : "Tobias Uhlig",
|
411
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
412
|
+
"date" : "Apr 23, 2021",
|
413
|
+
"id" : 27,
|
414
|
+
"image" : "the-webworkers-driven-ui-framework-neomjs-version-2-release-announcement.png",
|
415
|
+
"name" : "The webworkers driven UI framework neo.mjs version 2 release announcement",
|
416
|
+
"provider" : "Medium",
|
417
|
+
"publisher" : "ITNEXT",
|
418
|
+
"selectedInto": [],
|
419
|
+
"type" : "Blog Post",
|
420
|
+
"url" : "https://itnext.io/the-webworkers-driven-ui-framework-neo-mjs-version-2-release-announcement-b91b476d6f16?source=friends_link&sk=e6eb21f75475f431ad9215d63a44fb53"
|
421
|
+
}, {
|
422
|
+
"author" : "Tobias Uhlig",
|
423
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
424
|
+
"date" : "Apr 22, 2021",
|
425
|
+
"id" : 26,
|
426
|
+
"image" : "using-template-literals-to-create-a-binding-engine.png",
|
427
|
+
"name" : "Enhance your frontend state management with view models — Part2",
|
428
|
+
"provider" : "Medium",
|
429
|
+
"publisher" : "JavaScript in Plain English",
|
430
|
+
"selectedInto": [],
|
431
|
+
"type" : "Blog Post",
|
432
|
+
"url" : "https://tobiasuhlig.medium.com/enhance-your-frontend-state-management-with-view-models-part2-5a9384bd863c?source=friends_link&sk=e63a577e4118c767de0d289af266482c"
|
433
|
+
}, {
|
434
|
+
"author" : "Tobias Uhlig",
|
435
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
436
|
+
"date" : "Apr 21, 2021",
|
437
|
+
"id" : 25,
|
438
|
+
"image" : "enhance-your-frontend-state-management-with-view-models.png",
|
439
|
+
"name" : "Enhance your frontend state management with view models",
|
440
|
+
"provider" : "Medium",
|
441
|
+
"publisher" : "ITNEXT",
|
442
|
+
"selectedInto": [],
|
443
|
+
"type" : "Blog Post",
|
444
|
+
"url" : "https://itnext.io/enhance-your-frontend-state-management-with-view-models-7bf49e1a0991?source=friends_link&sk=ac04c44c7cd7af4c34068a87b1207c7e"
|
445
|
+
}, {
|
446
|
+
"author" : "Tobias Uhlig",
|
447
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
448
|
+
"date" : "Mar 22, 2021",
|
449
|
+
"id" : 24,
|
450
|
+
"image" : "web-based-multi-screen-apps-including-drag-drop.png",
|
451
|
+
"name" : "Web based multi-screen apps including drag & drop",
|
452
|
+
"provider" : "Medium",
|
453
|
+
"publisher" : "Geek Culture",
|
454
|
+
"selectedInto": [],
|
455
|
+
"type" : "Blog Post",
|
456
|
+
"url" : "https://medium.com/geekculture/web-based-multi-screen-apps-including-drag-drop-5e161da6507b?source=friends_link&sk=3c53f7b9cf882a93fb2929c726bd7721"
|
457
|
+
}, {
|
458
|
+
"author" : "Tobias Uhlig",
|
459
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
460
|
+
"date" : "Oct 25, 2020",
|
461
|
+
"id" : 23,
|
462
|
+
"image" : "re-sorting-web-based-tabs.png",
|
463
|
+
"name" : "Re-sorting Web-based Tabs like it works in Google Chrome",
|
464
|
+
"provider" : "Medium",
|
465
|
+
"publisher" : "ITNEXT",
|
466
|
+
"selectedInto": [],
|
467
|
+
"type" : "Blog Post",
|
468
|
+
"url" : "https://tobiasuhlig.medium.com/re-sorting-web-based-tabs-like-it-works-in-google-chrome-38d749fc8ede?source=friends_link&sk=b01b22b15e68f0671f1a8122dc006274"
|
469
|
+
}, {
|
470
|
+
"author" : "Tobias Uhlig",
|
471
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
472
|
+
"date" : "Sep 9, 2020",
|
473
|
+
"id" : 22,
|
474
|
+
"image" : "cross-app-bundling-a-different-approach-for-micro-frontends.png",
|
475
|
+
"name" : "Cross App Bundling — A different approach for Micro Frontends",
|
476
|
+
"provider" : "Medium",
|
477
|
+
"publisher" : "The Startup",
|
478
|
+
"selectedInto": ["Javascript"],
|
479
|
+
"type" : "Blog Post",
|
480
|
+
"url" : "https://medium.com/@tobiasuhlig/cross-app-bundling-a-different-approach-for-micro-frontends-e4f212b6a9a?source=friends_link&sk=a0b098b4ac792f05348b20cdc007d83c"
|
481
|
+
}, {
|
482
|
+
"author" : "Tom",
|
483
|
+
"authorImage" : "author_Tom.jpg",
|
484
|
+
"date" : "Aug 15, 2020",
|
485
|
+
"id" : 21,
|
486
|
+
"image" : "multithreaded-web-apps-beyond-web-worker-by-neo.mjs.jpg",
|
487
|
+
"name" : "Multithreaded Web Apps beyond Web Worker by Neo.mjs",
|
488
|
+
"provider" : "expressFlow",
|
489
|
+
"publisher" : "expressFlow",
|
490
|
+
"selectedInto": [],
|
491
|
+
"type" : "Blog Post",
|
492
|
+
"url" : "https://www.expressflow.com/blog/posts/multithreaded-web-app-neo-mjs-pwa-performance"
|
493
|
+
}, {
|
494
|
+
"author" : "Tobias Uhlig",
|
495
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
496
|
+
"date" : "Aug 7, 2020",
|
497
|
+
"id" : 20,
|
498
|
+
"image" : "your-benefits-of-working-with-json-based-virtual-dom.png",
|
499
|
+
"name" : "Your benefits of working with JSON based virtual DOM",
|
500
|
+
"provider" : "Medium",
|
501
|
+
"publisher" : "DataSeries",
|
502
|
+
"selectedInto": ["Javascript"],
|
503
|
+
"type" : "Tutorial",
|
504
|
+
"url" : "https://medium.com/dataseries/your-benefits-of-working-with-json-based-virtual-dom-7318a983da9e?source=friends_link&sk=e513e83c36f05337810e62ab8e5df8e8"
|
505
|
+
}, {
|
506
|
+
"author" : "Tobias Uhlig",
|
507
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
508
|
+
"date" : "Aug 5, 2020",
|
509
|
+
"id" : 19,
|
510
|
+
"image" : "create-blazing-fast-multithreading-user-interfaces-outside-of-nodejs.png",
|
511
|
+
"name" : "Create blazing fast multithreading User Interfaces outside of nodejs",
|
512
|
+
"provider" : "Medium",
|
513
|
+
"publisher" : "Better Programming",
|
514
|
+
"selectedInto": [],
|
515
|
+
"type" : "Blog Post",
|
516
|
+
"url" : "https://medium.com/better-programming/create-blazing-fast-multithreading-user-interfaces-outside-of-nodejs-c4199b0023ec?source=friends_link&sk=f89dcd629317c1ff1f9eed0ac650d86b"
|
517
|
+
}, {
|
518
|
+
"author" : "Tobias Uhlig",
|
519
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
520
|
+
"date" : "Jul 31, 2020",
|
521
|
+
"id" : 18,
|
522
|
+
"image" : "removing-non-visible-views-from-the-dom.png",
|
523
|
+
"name" : "Removing non visible views from the DOM while still being able to alter their state",
|
524
|
+
"provider" : "Medium",
|
525
|
+
"publisher" : "ITNEXT",
|
526
|
+
"selectedInto": ["Javascript"],
|
527
|
+
"type" : "Blog Post",
|
528
|
+
"url" : "https://itnext.io/removing-non-visible-views-from-the-dom-while-still-being-able-to-alter-their-state-dd366ed185ec?source=friends_link&sk=35e7f0bdd65c611b189a47672a398ac1"
|
529
|
+
}, {
|
530
|
+
"author" : "Tobias Uhlig",
|
531
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
532
|
+
"date" : "Jul 15, 2020",
|
533
|
+
"id" : 17,
|
534
|
+
"image" : "creating-a-responsive-multithreading-website-for-desktop-mobile.png",
|
535
|
+
"name" : "Creating a responsive multithreading Website for Desktop & Mobile",
|
536
|
+
"provider" : "Medium",
|
537
|
+
"publisher" : "ITNEXT",
|
538
|
+
"selectedInto": [],
|
539
|
+
"type" : "Release Announcement",
|
540
|
+
"url" : "https://itnext.io/creating-a-responsive-multithreading-website-for-desktop-mobile-8da990ae5bf3?source=friends_link&sk=91bf4b80d62944d54ac28d23d0ca9be3"
|
541
|
+
}, {
|
542
|
+
"author" : "Tobias Uhlig",
|
543
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
544
|
+
"date" : "Jun 24, 2020",
|
545
|
+
"id" : 16,
|
546
|
+
"image" : "how-to-create-a-webworkers-driven-multithreading-app-part-2.png",
|
547
|
+
"name" : "How to create a webworkers driven multithreading App - Part 2",
|
548
|
+
"provider" : "Medium",
|
549
|
+
"publisher" : "The Startup",
|
550
|
+
"selectedInto": ["Javascript"],
|
551
|
+
"type" : "Tutorial",
|
552
|
+
"url" : "https://medium.com/swlh/how-to-create-a-webworkers-driven-multithreading-app-part-2-3c5b3c2d1adb?source=friends_link&sk=cf4b5c0e014fcfd6fc1d9845f4eb3097"
|
553
|
+
}, {
|
554
|
+
"author" : "Tobias Uhlig",
|
555
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
556
|
+
"date" : "Jun 17, 2020",
|
557
|
+
"id" : 15,
|
558
|
+
"image" : "expanding-single-page-apps-into-multiple-browser-windows.png",
|
559
|
+
"name" : "Expanding Single Page Apps into multiple Browser Windows",
|
560
|
+
"provider" : "Medium",
|
561
|
+
"publisher" : "The Startup",
|
562
|
+
"selectedInto": ["Javascript", "Programming", "Software Engineering"],
|
563
|
+
"type" : "Blog Post",
|
564
|
+
"url" : "https://medium.com/swlh/expanding-single-page-apps-into-multiple-browser-windows-e6d9bd155d59?source=friends_link&sk=bbfe1dada95c5674669e463f93360822"
|
565
|
+
}, {
|
566
|
+
"author" : "Tobias Uhlig",
|
567
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
568
|
+
"date" : "Jun 6, 2020",
|
569
|
+
"id" : 14,
|
570
|
+
"image" : "neo-mjs-v1-2-5-support-for-sharedworkers-including-firefox.png",
|
571
|
+
"name" : "neo.mjs v1.2.5 → Support for SharedWorkers including Firefox",
|
572
|
+
"provider" : "Medium",
|
573
|
+
"publisher" : "The Startup",
|
574
|
+
"selectedInto": ["Javascript", "Programming", "Software Engineering"],
|
575
|
+
"type" : "Release Announcement",
|
576
|
+
"url" : "https://medium.com/swlh/neo-mjs-v1-2-5-support-for-sharedworkers-including-firefox-b31f144cea3f?source=friends_link&sk=6bd4d0beb0e095c388153ce8f06aa76f"
|
577
|
+
}, {
|
578
|
+
"author" : "Tobias Uhlig",
|
579
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
580
|
+
"date" : "Jun 4, 2020",
|
581
|
+
"id" : 13,
|
582
|
+
"image" : "chrome-v83-enables-js-module-support-for-sharedworkers-starting-a-new-era-for-multi-browser.png",
|
583
|
+
"name" : "Chrome v83 enables JS module support for SharedWorkers → Starting a new era for multi Browser Window Apps with neo.mjs",
|
584
|
+
"provider" : "Medium",
|
585
|
+
"publisher" : "The Startup",
|
586
|
+
"selectedInto": ["Javascript", "Programming", "Software Engineering"],
|
587
|
+
"type" : "Blog Post",
|
588
|
+
"url" : "https://medium.com/swlh/chrome-v83-enables-js-module-support-for-sharedworkers-starting-a-new-era-for-multi-browser-dbb20366bddf?source=friends_link&sk=5fb6a90658d292a6af5bd30c24cb239d"
|
589
|
+
}, {
|
590
|
+
"author" : "Tobias Uhlig",
|
591
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
592
|
+
"date" : "May 30, 2020",
|
593
|
+
"id" : 12,
|
594
|
+
"image" : "how-to-create-a-webworkers-driven-multithreading-app-part-1.png",
|
595
|
+
"name" : "How to create a webworkers driven multithreading App — Part 1",
|
596
|
+
"provider" : "Medium",
|
597
|
+
"publisher" : "The Startup",
|
598
|
+
"selectedInto": ["Javascript"],
|
599
|
+
"type" : "Tutorial",
|
600
|
+
"url" : "https://medium.com/swlh/how-to-create-a-webworkers-driven-multithreading-app-part-1-fa0cc78a4237?source=friends_link&sk=a10ca85002f5f9c3ee8c69f53c79d95f"
|
601
|
+
}, {
|
602
|
+
"author" : "Tobias Uhlig",
|
603
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
604
|
+
"date" : "May 28, 2020",
|
605
|
+
"id" : 11,
|
606
|
+
"image" : "the-webworkers-driven-ui-framework-neo-mjs-v1-2-0-release-announcement.png",
|
607
|
+
"name" : "The webworkers driven UI framework: neo.mjs v1.2.0 release announcement",
|
608
|
+
"provider" : "Medium",
|
609
|
+
"publisher" : "Dev Genius",
|
610
|
+
"selectedInto": [],
|
611
|
+
"type" : "Release Announcement",
|
612
|
+
"url" : "https://medium.com/dev-genius/the-webworkers-driven-ui-framework-neo-mjs-v1-2-0-release-announcement-a811ebe47252?source=friends_link&sk=8578383b7664e8a2456cbe7726c98aac"
|
613
|
+
}, {
|
614
|
+
"author" : "Tobias Uhlig",
|
615
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
616
|
+
"date" : "May 24, 2020",
|
617
|
+
"id" : 10,
|
618
|
+
"image" : "bundling-your-webpack-based-build-processes-performance-improvements.png",
|
619
|
+
"name" : "Bundling your Webpack based build processes & performance improvements",
|
620
|
+
"provider" : "Medium",
|
621
|
+
"publisher" : "The Startup",
|
622
|
+
"selectedInto": ["Javascript", "Programming"],
|
623
|
+
"type" : "Blog Post",
|
624
|
+
"url" : "https://medium.com/swlh/bundling-your-webpack-based-build-processes-performance-improvements-dd7d0ffdd788?source=friends_link&sk=6b7ae4abdf227ecee6c046b5bc9b14b6"
|
625
|
+
}, {
|
626
|
+
"author" : "Tobias Uhlig",
|
627
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
628
|
+
"date" : "May 16, 2020",
|
629
|
+
"id" : 9,
|
630
|
+
"image" : "using-js-libraries-inside-a-multithreading-environment.png",
|
631
|
+
"name" : "Using JS libraries inside a multithreading environment",
|
632
|
+
"provider" : "Medium",
|
633
|
+
"publisher" : "codeburst.io",
|
634
|
+
"selectedInto": [],
|
635
|
+
"type" : "Blog Post",
|
636
|
+
"url" : "https://codeburst.io/using-js-libraries-inside-a-multithreading-environment-835cd8cbc30b?source=friends_link&sk=39450bea5b2c1812a9adb741d7f9e3af"
|
637
|
+
}, {
|
638
|
+
"author" : "Tobias Uhlig",
|
639
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
640
|
+
"date" : "Mar 21, 2020",
|
641
|
+
"id" : 8,
|
642
|
+
"image" : "introduction-guide-for-neo-mjs-the-webworkers-driven-ui-framework.png",
|
643
|
+
"name" : "Introduction Guide for neo.mjs — The webworkers driven UI framework",
|
644
|
+
"provider" : "Medium",
|
645
|
+
"publisher" : "codeburst.io",
|
646
|
+
"selectedInto": [],
|
647
|
+
"type" : "Blog Post",
|
648
|
+
"url" : "https://codeburst.io/introduction-guide-for-neo-mjs-the-webworkers-driven-ui-framework-c78471715f9d?source=friends_link&sk=b5c818935edaa783c1ec61b76cdc146a"
|
649
|
+
}, {
|
650
|
+
"author" : "Tobias Uhlig",
|
651
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
652
|
+
"date" : "Mar 11, 2020",
|
653
|
+
"id" : 7,
|
654
|
+
"image" : "javascript-classes-state-management-v2.png",
|
655
|
+
"name" : "Javascript classes:</br>state management v2",
|
656
|
+
"provider" : "Medium",
|
657
|
+
"publisher" : "codeburst.io",
|
658
|
+
"selectedInto": [],
|
659
|
+
"type" : "Blog Post",
|
660
|
+
"url" : "https://codeburst.io/javascript-classes-state-management-v2-2df7663de580?source=friends_link&sk=a190aa7e5a2ead4a215a6e5a2de562c6"
|
661
|
+
}, {
|
662
|
+
"author" : "Tobias Uhlig",
|
663
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
664
|
+
"date" : "Feb 20, 2020",
|
665
|
+
"id" : 6,
|
666
|
+
"image" : "javascript-classes-state-management.png",
|
667
|
+
"name" : "Javascript classes:</br>state management",
|
668
|
+
"provider" : "Medium",
|
669
|
+
"publisher" : "The Startup",
|
670
|
+
"selectedInto": ["Javascript"],
|
671
|
+
"type" : "Blog Post",
|
672
|
+
"url" : "https://medium.com/swlh/javascript-classes-state-management-87d66874ac8a?source=friends_link&sk=edd58364135a5848de3e10ac5b2a44d1"
|
673
|
+
}, {
|
674
|
+
"author" : "Tobias Uhlig",
|
675
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
676
|
+
"date" : "Feb 5, 2020",
|
677
|
+
"id" : 5,
|
678
|
+
"image" : "chrome-v80-release-js-module-support-for-workers.png",
|
679
|
+
"name" : "Chrome v80 release:</br>JS module support for workers",
|
680
|
+
"provider" : "Medium",
|
681
|
+
"publisher" : "codeburst.io",
|
682
|
+
"selectedInto": [],
|
683
|
+
"type" : "Blog Post",
|
684
|
+
"url" : "https://codeburst.io/chrome-v80-release-js-module-support-for-workers-a4a9397d194b?source=friends_link&sk=168145da560f59555ccb1f4aaf96298f"
|
685
|
+
}, {
|
686
|
+
"author" : "Tobias Uhlig",
|
687
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
688
|
+
"date" : "Jan 6, 2020",
|
689
|
+
"id" : 4,
|
690
|
+
"image" : "how-to-create-your-first-neo-mjs-app.png",
|
691
|
+
"name" : "How to create your first neo.mjs App",
|
692
|
+
"provider" : "Medium",
|
693
|
+
"publisher" : "",
|
694
|
+
"selectedInto": [],
|
695
|
+
"type" : "Tutorial",
|
696
|
+
"url" : "https://medium.com/@tobiasuhlig/how-to-create-your-first-neo-mjs-app-e68b49c960c7?source=friends_link&sk=30cc526190399c2e875e87bb5359824d"
|
697
|
+
}, {
|
698
|
+
"author" : "Tobias Uhlig",
|
699
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
700
|
+
"date" : "Jan 3, 2020",
|
701
|
+
"id" : 3,
|
702
|
+
"image" : "release-announcement-npx-neo-app.png",
|
703
|
+
"name" : "Release announcement:</br>npx neo-app",
|
704
|
+
"provider" : "Medium",
|
705
|
+
"publisher" : "",
|
706
|
+
"selectedInto": [],
|
707
|
+
"type" : "Release Announcement",
|
708
|
+
"url" : "https://medium.com/@tobiasuhlig/release-announcement-npx-neo-app-190f114e73df?source=friends_link&sk=4f2d1b9d2d08a0e109ffc943f650f58b"
|
709
|
+
}, {
|
710
|
+
"author" : "Tobias Uhlig",
|
711
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
712
|
+
"date" : "Nov 23, 2019",
|
713
|
+
"id" : 2,
|
714
|
+
"image" : "neo-mjs-the-public-release-announcement.png",
|
715
|
+
"name" : "neo.mjs → The public release announcement",
|
716
|
+
"provider" : "Medium",
|
717
|
+
"publisher" : "codeburst.io",
|
718
|
+
"selectedInto": [],
|
719
|
+
"type" : "Release Announcement",
|
720
|
+
"url" : "https://codeburst.io/neo-mjs-the-public-release-announcement-1519255bc8f9?source=friends_link&sk=c7d11dd49bf74463d68cf4ef62a0cb07"
|
721
|
+
}, {
|
722
|
+
"author" : "Tobias Uhlig",
|
723
|
+
"authorImage" : "author_TobiasUhlig.jpeg",
|
724
|
+
"date" : "Nov 13, 2019",
|
725
|
+
"id" : 1,
|
726
|
+
"image" : "neo-mjs-documentation-for-your-ui.png",
|
727
|
+
"name" : "neo.mjs: Documentation for your UI",
|
728
|
+
"provider" : "Medium",
|
729
|
+
"publisher" : "",
|
730
|
+
"selectedInto": [],
|
731
|
+
"type" : "Blog Post",
|
732
|
+
"url" : "https://medium.com/@tobiasuhlig/neo-mjs-documentation-for-your-ui-77abf9fe8bbe?source=friends_link&sk=f27a4e8b133a02e98a0b01dca8f0cae9"
|
733
|
+
}]
|