{"id":2562,"date":"2023-03-04T13:11:58","date_gmt":"2023-03-04T18:11:58","guid":{"rendered":"https:\/\/bitpost.com\/news\/?p=2562"},"modified":"2023-07-22T19:14:35","modified_gmt":"2023-07-22T23:14:35","slug":"2023-d3-reactive-responsive-skeleton","status":"publish","type":"post","link":"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/","title":{"rendered":"2023 D3 Reactive Responsive skeleton"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/abettertrader.com\" title=\"\">A better Trader<\/a> has been a work-in-progress project of mine for a very long time.  The web UI was done in vanilla javascript, with old school imports, and PHP-style server-generated html, then added jQuery, then bootstrap, then started removing jQuery, then moved towards more-static html with JSON payloads for the data, then pined for better node imports, then then then.  You get the point.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I went too long without a rewrite, so I recently became a weekend warrior skeletoning up the next gen web ui.  Parts include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vite due to its blazing hot-loading, tree-shaking, polyfilling goodness<\/li>\n\n\n\n<li>React because it&#8217;s good enough and gets the job done<\/li>\n\n\n\n<li>Bootstrap because I won&#8217;t have time to finish the mobile apps for a while<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For my UIs, D3 is the most important library there is.  So the skeleton is based on responsively displaying a handful of some of Mike Bostock&#8217;s greatest hits (imho).  This was quite important to me because D3 examples have been somewhat obfuscated when they were migrated to Observables notebooks.  The skeleton makes it much easier for me to quickly get working D3 examples by copying Mike&#8217;s Observables code into a cozy little container with all the bells and whistles in place.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let me know what you think of it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.reddit.com\/r\/d3js\/comments\/11iecli\/2023_d3_reactive_responsive_skeleton_oc\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Reddit<\/a> | <a href=\"https:\/\/2023-d3-reactive-responsive-skeleton.netlify.app\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Live Demo<\/a> | <a href=\"https:\/\/gitlab.com\/moodboom\/2023-d3-reactive-responsive-skeleton\" target=\"_blank\" rel=\"noopener\" title=\"\">GitLab<\/a> | <a href=\"https:\/\/github.com\/moodboom\/2023-d3-reactive-responsive-skeleton\" target=\"_blank\" rel=\"noopener\" title=\"\">GitHub<\/a> | <a href=\"https:\/\/bitpost.com\/wiki\/2023_D3_Reactive_Responsive_skeleton\" target=\"_blank\" rel=\"noopener\" title=\"\">Wiki<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/bitpost.com\/news\/wp-content\/uploads\/screenrecord-2023-03-04-1.gif?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-attachment-id=\"2576\" data-permalink=\"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/screenrecord-2023-03-04-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/bitpost.com\/news\/wp-content\/uploads\/screenrecord-2023-03-04-1.gif?fit=1280%2C720&amp;ssl=1\" data-orig-size=\"1280,720\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"screenrecord-2023-03-04-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/bitpost.com\/news\/wp-content\/uploads\/screenrecord-2023-03-04-1.gif?fit=1024%2C576&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/bitpost.com\/news\/wp-content\/uploads\/screenrecord-2023-03-04-1.gif?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-2576\" srcset=\"https:\/\/i0.wp.com\/bitpost.com\/news\/wp-content\/uploads\/screenrecord-2023-03-04-1.gif?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/bitpost.com\/news\/wp-content\/uploads\/screenrecord-2023-03-04-1.gif?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/bitpost.com\/news\/wp-content\/uploads\/screenrecord-2023-03-04-1.gif?resize=768%2C432&amp;ssl=1 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>A better Trader has been a work-in-progress project of mine for a very long time. The web UI was done in vanilla javascript, with old school imports, and PHP-style server-generated html, then added jQuery, then bootstrap, then started removing jQuery, then moved towards more-static html with JSON payloads for the data, then pined for better [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[204,268,216,19,9],"tags":[],"class_list":["post-2562","post","type-post","status-publish","format-standard","hentry","category-a-better-trader","category-d3","category-node-js","category-opensource","category-websites"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"A better Trader has been a work-in-progress project of mine for a very long time. The web UI was done in vanilla javascript, with old school imports, and PHP-style server-generated html, then added jQuery, then bootstrap, then started removing jQuery, then moved towards more-static html with JSON payloads for the data, then pined for better\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"m\"\/>\n\t<meta name=\"keywords\" content=\"a better trader,d3,node-js,open source,websites\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"bitpost.com\/news | Note to self\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"2023 D3 Reactive Responsive skeleton | bitpost.com\/news\" \/>\n\t\t<meta property=\"og:description\" content=\"A better Trader has been a work-in-progress project of mine for a very long time. The web UI was done in vanilla javascript, with old school imports, and PHP-style server-generated html, then added jQuery, then bootstrap, then started removing jQuery, then moved towards more-static html with JSON payloads for the data, then pined for better\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-03-04T18:11:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-07-22T23:14:35+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"2023 D3 Reactive Responsive skeleton | bitpost.com\/news\" \/>\n\t\t<meta name=\"twitter:description\" content=\"A better Trader has been a work-in-progress project of mine for a very long time. The web UI was done in vanilla javascript, with old school imports, and PHP-style server-generated html, then added jQuery, then bootstrap, then started removing jQuery, then moved towards more-static html with JSON payloads for the data, then pined for better\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2023\\\/2023-d3-reactive-responsive-skeleton\\\/#article\",\"name\":\"2023 D3 Reactive Responsive skeleton | bitpost.com\\\/news\",\"headline\":\"2023 D3 Reactive Responsive skeleton\",\"author\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/author\\\/m\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/bitpost.com\\\/news\\\/wp-content\\\/uploads\\\/screenrecord-2023-03-04-1.gif?fit=1280%2C720&ssl=1\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2023\\\/2023-d3-reactive-responsive-skeleton\\\/#articleImage\",\"width\":1280,\"height\":720},\"datePublished\":\"2023-03-04T13:11:58-05:00\",\"dateModified\":\"2023-07-22T19:14:35-04:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2023\\\/2023-d3-reactive-responsive-skeleton\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2023\\\/2023-d3-reactive-responsive-skeleton\\\/#webpage\"},\"articleSection\":\"A better Trader, d3, node-js, Open Source, Websites\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2023\\\/2023-d3-reactive-responsive-skeleton\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bitpost.com\\\/news\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/#listItem\",\"name\":\"Projects\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/#listItem\",\"position\":2,\"name\":\"Projects\",\"item\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/websites\\\/#listItem\",\"name\":\"Websites\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/websites\\\/#listItem\",\"position\":3,\"name\":\"Websites\",\"item\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/websites\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2023\\\/2023-d3-reactive-responsive-skeleton\\\/#listItem\",\"name\":\"2023 D3 Reactive Responsive skeleton\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/#listItem\",\"name\":\"Projects\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2023\\\/2023-d3-reactive-responsive-skeleton\\\/#listItem\",\"position\":4,\"name\":\"2023 D3 Reactive Responsive skeleton\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/websites\\\/#listItem\",\"name\":\"Websites\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/#person\",\"name\":\"m\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2023\\\/2023-d3-reactive-responsive-skeleton\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg\",\"width\":96,\"height\":96,\"caption\":\"m\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/author\\\/m\\\/#author\",\"url\":\"https:\\\/\\\/bitpost.com\\\/news\\\/author\\\/m\\\/\",\"name\":\"m\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2023\\\/2023-d3-reactive-responsive-skeleton\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg\",\"width\":96,\"height\":96,\"caption\":\"m\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2023\\\/2023-d3-reactive-responsive-skeleton\\\/#webpage\",\"url\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2023\\\/2023-d3-reactive-responsive-skeleton\\\/\",\"name\":\"2023 D3 Reactive Responsive skeleton | bitpost.com\\\/news\",\"description\":\"A better Trader has been a work-in-progress project of mine for a very long time. The web UI was done in vanilla javascript, with old school imports, and PHP-style server-generated html, then added jQuery, then bootstrap, then started removing jQuery, then moved towards more-static html with JSON payloads for the data, then pined for better\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2023\\\/2023-d3-reactive-responsive-skeleton\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/author\\\/m\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/author\\\/m\\\/#author\"},\"datePublished\":\"2023-03-04T13:11:58-05:00\",\"dateModified\":\"2023-07-22T19:14:35-04:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/#website\",\"url\":\"https:\\\/\\\/bitpost.com\\\/news\\\/\",\"name\":\"bitpost.com\\\/news\",\"description\":\"Note to self\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"2023 D3 Reactive Responsive skeleton | bitpost.com\/news","description":"A better Trader has been a work-in-progress project of mine for a very long time. The web UI was done in vanilla javascript, with old school imports, and PHP-style server-generated html, then added jQuery, then bootstrap, then started removing jQuery, then moved towards more-static html with JSON payloads for the data, then pined for better","canonical_url":"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/","robots":"max-image-preview:large","keywords":"a better trader,d3,node-js,open source,websites","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/#article","name":"2023 D3 Reactive Responsive skeleton | bitpost.com\/news","headline":"2023 D3 Reactive Responsive skeleton","author":{"@id":"https:\/\/bitpost.com\/news\/author\/m\/#author"},"publisher":{"@id":"https:\/\/bitpost.com\/news\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/bitpost.com\/news\/wp-content\/uploads\/screenrecord-2023-03-04-1.gif?fit=1280%2C720&ssl=1","@id":"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/#articleImage","width":1280,"height":720},"datePublished":"2023-03-04T13:11:58-05:00","dateModified":"2023-07-22T19:14:35-04:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/#webpage"},"isPartOf":{"@id":"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/#webpage"},"articleSection":"A better Trader, d3, node-js, Open Source, Websites"},{"@type":"BreadcrumbList","@id":"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news#listItem","position":1,"name":"Home","item":"https:\/\/bitpost.com\/news","nextItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/#listItem","name":"Projects"}},{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/#listItem","position":2,"name":"Projects","item":"https:\/\/bitpost.com\/news\/category\/projects\/","nextItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/websites\/#listItem","name":"Websites"},"previousItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/websites\/#listItem","position":3,"name":"Websites","item":"https:\/\/bitpost.com\/news\/category\/projects\/websites\/","nextItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/#listItem","name":"2023 D3 Reactive Responsive skeleton"},"previousItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/#listItem","name":"Projects"}},{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/#listItem","position":4,"name":"2023 D3 Reactive Responsive skeleton","previousItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/websites\/#listItem","name":"Websites"}}]},{"@type":"Person","@id":"https:\/\/bitpost.com\/news\/#person","name":"m","image":{"@type":"ImageObject","@id":"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg","width":96,"height":96,"caption":"m"}},{"@type":"Person","@id":"https:\/\/bitpost.com\/news\/author\/m\/#author","url":"https:\/\/bitpost.com\/news\/author\/m\/","name":"m","image":{"@type":"ImageObject","@id":"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg","width":96,"height":96,"caption":"m"}},{"@type":"WebPage","@id":"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/#webpage","url":"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/","name":"2023 D3 Reactive Responsive skeleton | bitpost.com\/news","description":"A better Trader has been a work-in-progress project of mine for a very long time. The web UI was done in vanilla javascript, with old school imports, and PHP-style server-generated html, then added jQuery, then bootstrap, then started removing jQuery, then moved towards more-static html with JSON payloads for the data, then pined for better","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/bitpost.com\/news\/#website"},"breadcrumb":{"@id":"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/#breadcrumblist"},"author":{"@id":"https:\/\/bitpost.com\/news\/author\/m\/#author"},"creator":{"@id":"https:\/\/bitpost.com\/news\/author\/m\/#author"},"datePublished":"2023-03-04T13:11:58-05:00","dateModified":"2023-07-22T19:14:35-04:00"},{"@type":"WebSite","@id":"https:\/\/bitpost.com\/news\/#website","url":"https:\/\/bitpost.com\/news\/","name":"bitpost.com\/news","description":"Note to self","inLanguage":"en-US","publisher":{"@id":"https:\/\/bitpost.com\/news\/#person"}}]},"og:locale":"en_US","og:site_name":"bitpost.com\/news | Note to self","og:type":"article","og:title":"2023 D3 Reactive Responsive skeleton | bitpost.com\/news","og:description":"A better Trader has been a work-in-progress project of mine for a very long time. The web UI was done in vanilla javascript, with old school imports, and PHP-style server-generated html, then added jQuery, then bootstrap, then started removing jQuery, then moved towards more-static html with JSON payloads for the data, then pined for better","og:url":"https:\/\/bitpost.com\/news\/2023\/2023-d3-reactive-responsive-skeleton\/","article:published_time":"2023-03-04T18:11:58+00:00","article:modified_time":"2023-07-22T23:14:35+00:00","twitter:card":"summary","twitter:title":"2023 D3 Reactive Responsive skeleton | bitpost.com\/news","twitter:description":"A better Trader has been a work-in-progress project of mine for a very long time. The web UI was done in vanilla javascript, with old school imports, and PHP-style server-generated html, then added jQuery, then bootstrap, then started removing jQuery, then moved towards more-static html with JSON payloads for the data, then pined for better"},"aioseo_meta_data":{"post_id":"2562","title":null,"description":null,"keywords":[],"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-03-04 16:39:49","updated":"2025-08-17 19:20:48","seo_analyzer_scan_date":null},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9M11L-Fk","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/posts\/2562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/comments?post=2562"}],"version-history":[{"count":7,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/posts\/2562\/revisions"}],"predecessor-version":[{"id":2609,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/posts\/2562\/revisions\/2609"}],"wp:attachment":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/media?parent=2562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/categories?post=2562"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/tags?post=2562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}