Logo
    Search

    Hasty Treat - Wes' New Personal Website

    enMay 11, 2020

    Podcast Summary

    • Wes Bos updates his website using modern technologiesWes Bos revamped his website using modern technologies like JavaScript, CSS, and Node modules to improve performance and prevent server crashes.

      Wes Bos, a developer from Denver, Colorado, recently updated his website after a long hiatus, and during the process, he shared insights into his choices and experiences. His website, located at wesboss.com, has been his online home since 2004, and despite multiple redesigns, he had been using WordPress with Advanced Custom Fields, Less for styling, and jQuery for custom JavaScript. However, the website became slow, and linking it in emails to his large email list led to server crashes due to Bluehost's auto-scaling feature. To address these issues, Wes opted for a new website built with modern technologies like JavaScript, CSS, and Node modules. He also shared his preference for the workflow and soft skills he learned during the process. The episode was sponsored by Sentry, an error handling and exception tracking tool, which Wes highly recommended for efficient bug tracking.

    • Moving from CMS to Static Site Generation with Gatsby.jsThe speaker chose Gatsby for its static site generation capabilities, React integration, and open-source community, highlighting the benefits of dynamic content and API hosting.

      The speaker decided to move his content from a traditional CMS like WordPress to a static site generated using Gatsby.js, and make it open-source for the community to edit and improve. He chose Gatsby because it generates HTML beforehand but also allows React to load for a more dynamic user experience. The speaker also discussed the benefits of static site generation versus server-side rendering, and how Gatsby allows for dynamic content but requires hosting an API outside of the platform. He mentioned the upcoming feature of hosted GraphQL for Gatsby sites, which will allow for data to be refreshed from the API and reduce the need for external hosting. Overall, the speaker's experience shows the power of open-source collaboration and the flexibility of modern static site generation tools.

    • Importance of owning and controlling contentTransferring content to personal website using Next.js led to greater control and potential growth, but challenges in migrating from WordPress and using MDX were encountered.

      The speaker discovered the importance of owning and controlling one's content after transferring his Twitter hot tips to his website using Next.js. He also shared his experience with the differences in plugin ecosystems between Gatsby and Next.js, and the challenges he faced when migrating his blog posts from WordPress to Next.js using MDX. The speaker emphasized the significance of owning one's content for full control and potential growth, a topic they had previously discussed in the context of blogging platforms. He also mentioned his personal design choices for his website, opting for a grunge texture. The speaker expressed his curiosity about exploring the pros and cons of using Gatsby instead of Next.js for a full-blown website. Overall, the discussion highlighted the importance of owning and controlling content, and the challenges and benefits of using different tools and platforms for website development.

    • Manipulating grunge PNGs for a visually appealing website designInstead of loading multiple heavy grunge images, manipulate two PNGs to create an aesthetically pleasing design. Use preferred fonts like Operator Mono and monofonts as display fonts for enhanced visual appeal.

      The speaker created an aesthetically pleasing website design by manipulating two grunge PNGs instead of loading multiple heavy grunge images. He also shared his experience with using different fonts, including Operator Mono, for which he received a free license. The speaker expressed his preference for monofonts as display fonts and used complex headings with textures to enhance the visual appeal. He also discussed the use of IDE-style ligatures as back arrows and the challenge of making these elements selectable while maintaining the design. Despite the complexity of some elements, he managed to keep the website readable and developer-friendly.

    • Applying grunge effects to text in CSSThe speaker uses CSS to creatively apply grunge effects to selected text by overlaying an image with pointer events set to none, appreciates design details like a yellow square related to font size, and values the flexibility and control of CSS in designing web components.

      The speaker discovered a creative way to apply grunge effects to selected text in CSS, using the technique of overlaying an image with pointer events set to none. They also appreciated the design detail of a yellow square in the top left corner, whose size is related to the font size of the heading tag using ems. The speaker uses a balance of global styles and component-specific styles in their CSS, utilizing both classes and tag selectors within components. They find that scoped CSS by default allows them to effectively manage the cascade and global styles as needed. The speaker does not use a naming convention like BEM for their selectors, as they find it unnecessary with the use of scope CSS. Overall, the speaker values the flexibility and control that CSS provides in designing their web components.

    • Leveraging MDX for dynamic and customizable contentMDX, a markdown variant with React and server-side capabilities, enables the creation of complex headings, multimedia content, and custom components while handling server-side functionality, simplifying development.

      MDX, a markdown variant that supports JavaScript, offers several advantages for creating dynamic and customizable content. With MDX, you can embed React components directly into markdown files, allowing for the creation of complex headings and the inclusion of multimedia content like YouTube players or graphs. Additionally, MDX enables the replacement of default components, such as headings, with custom ones, resulting in unique and visually appealing formatting. Another benefit of MDX is the ability to handle server-side functionality, like generating Open Graph images using a serverless function and Puppeteer. This eliminates the need for external tools and simplifies the development process. Furthermore, in a Gatsby-powered website, images are automatically handled with Gatsby image queries, making the process of adding images to markdown files more straightforward. Overall, MDX's combination of markdown's ease of use, React's dynamic capabilities, and server-side functionality makes it an excellent choice for creating engaging and visually impressive content.

    • Creating a visually rich website with Gatsby: server-side and client-side processing, APIs, and image optimizationUse Gatsby Image for compressing and resizing images, serverless functions for pulling in data from external APIs, and consider refreshed GraphQL API for updating client-side data. Be aware of potential build time issues with large numbers of images and explore solutions like Gatsby Parallel Build and Google Cloud Hosting.

      Building a dynamic and visually rich website using Gatsby involves a combination of server-side and client-side processing, as well as the use of external APIs and image optimization techniques. The speaker described using Gatsby Image for compressing and resizing images, and serverless functions through Netlify for pulling in data from Instagram, Twitter, and podcasts that require server-side processing. He also mentioned the challenge of updating client-side data and the potential solution of using a refreshed GraphQL API. Another significant issue was the large number of images causing build time issues, which was resolved using an experimental feature called Gatsby Parallel Build and Google Cloud Hosting. Overall, the process required a good understanding of the capabilities and limitations of the various tools and APIs involved, as well as some problem-solving and collaboration with experts in the field.

    • Faster build times and improved efficiency with Gatsby and Gatsby CloudMoving to Gatsby and Gatsby Cloud resulted in quicker build processes, reduced resource usage, and improved code formatting, making website development more productive.

      Using Gatsby and Gatsby Cloud for website development offers significant improvements in build times and efficiency, making the process faster and more productive. The speaker shared their experience of moving from a longer build time of 12 minutes with Git push to a much quicker build process with Gatsby Cloud's incremental builds, which only rebuilds the affected page instead of the entire website. This not only saves time but also reduces unnecessary resources. Additionally, the speaker mentioned using a plugin called Gatsby Plugin Prettier Build to format the outputted HTML files, making the view source more readable. Other benefits of the move to Gatsby included maintaining old links for SEO purposes and the website's inherent fast loading speed. However, there were some trade-offs, such as longer build times due to Gatsby images and the potential alternative solution of using a service like Cloudinary. Overall, the speaker expressed satisfaction with the new website and the benefits it brought to their business.

    • Maintaining self-sufficiency and reducing costs by avoiding external image processing servicesWes Bos values self-sufficiency and cost-effectiveness in his website by opting against external image processing services like Cloudinary and instead preferring static HTML and JavaScript files for images.

      The speaker, Wes Bos, values self-sufficient and offline capabilities for his website, opting against relying on external services like Cloudinary for image resizing to maintain control and reduce costs. Although his site uses Gatsby Parallel Build with Google Cloud, he prefers the site to exist as static HTML and JavaScript files once built, rather than having to rely on external services for image processing. While there are plugins like JSON Linxerf's Cloudinary Gatsby Image plugin that could be used for local image resizing, the speaker finds it more cost-effective for his traffic level to not include images at all in his site. This is a deliberate choice he made during the development of his site, which is open-source and available on GitHub. Overall, Wes Bos' approach emphasizes the importance of considering self-sufficiency and cost-effectiveness when building a website.

    Recent Episodes from Syntax - Tasty Web Development Treats

    790: State of JS 2023 Reactions

    790: State of JS 2023 Reactions

    Scott and Wes dive into the 2023 State of JavaScript survey, breaking down the latest trends and pain points in front-end frameworks, build tools, and JavaScript runtimes. Tune in for their hot takes and insights on what’s shaping the JavaScript landscape this year!

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    789: Do More With AI - LLMs With Big Token Counts

    789: Do More With AI - LLMs With Big Token Counts

    Join Scott and CJ as they dive into the fascinating world of AI, exploring topics from LLM token sizes and context windows to understanding input length. They discuss practical use cases and share insights on how web developers can leverage larger token counts to maximize the potential of AI and LLMs.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    CJ: X Instagram YouTube TwitchTV

    Randy: X Instagram YouTube Threads

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    Scott and CJ chat with Paul Copplestone, CEO and co-founder of Supabase, about the journey of building an open source alternative to Firebase. Learn about the tech stack, the story behind their excellent documentation, and how Supabase balances business goals with open-source values.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 Who is Paul Copplestone?
    • 01:17 Why ‘Supa’ and not ‘Super’?
    • 02:26 How did Supabase start?
    • 08:42 Simplicity in design.
    • 10:32 How do you take Supabase one step beyond the competition?
    • 12:35 How do you decide which libraries are officially supported vs community maintained?
      • 15:17 You don’t need a client library!
    • 16:48 Edge functions for server-side functionality.
    • 18:51 The genesis of pgvector.
    • 20:59 The product strategy.
    • 22:25 What’s the story behind Supabase’s awesome docs?
    • 25:26 The tech behind Supabase.
    • 35:46 How do you balance business goals with open source?
    • 42:01 What’s next for Supabase?
    • 44:15 Supabase’s GA + new features.
    • 48:24 Who runs the X account?
    • 50:39 Sick Picks + Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    CJ: X Instagram YouTube TwitchTV

    Randy: X Instagram YouTube Threads

    787: You Should Try Vue.js

    787: You Should Try Vue.js

    Scott and CJ dive deep into the world of Vue.js, exploring what makes this frontend framework unique and why it stands out from React and Svelte. CJ gives a comprehensive tour, covering everything from getting started to advanced features like state management and Vue’s built-in styles.

    Show Notes

    Vue.js: The Documentary.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    786: What Open Source license should you use?

    786: What Open Source license should you use?

    Scott and CJ dive into the world of open source, breaking down its meaning, benefits, and the various types of licenses you’ll encounter. From permissive licenses like MIT and Apache 2.0 to copy-left licenses such as GNU GPLv3, they’ll help you choose and apply the right license for your project.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    785: What’s Next for NextJS with Tim Neutkens

    785: What’s Next for NextJS with Tim Neutkens

    Scott and Wes dive into the world of Next.js with special guest Tim Neutkens from Vercel. They explore the latest updates, including the React Compiler and React Server Components, discussing their impact on developer workflows and the future of Next.js development.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 What does the React Compiler do?
    • 05:04 Will React Compiler help with managing Context?
    • 06:39 What happens if you’re not using a React Compiler?
    • 09:30 Will this work on any NextJS version?
    • 12:18 What are React Server Components?
    • 16:28 Shipping all the data inside an encapsulated component.
    • 20:17 Clearing up the frustrations around retrofitting server components.
    • 23:13 Handing migration.
    • 28:30 Is this just a fetch request with props?
    • 36:41 How closely are the NextJS and React teams working?
    • 41:53 Will we ever get Async Client Components?
    • 43:52 Async Local Storage API.
    • 45:31 Turbopack.
    • 57:51 Sick Picks & Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    784: Logging × Blogging × Testing × Freelancing

    784: Logging × Blogging × Testing × Freelancing

    In this Potluck episode, Scott and Wes tackle listener questions on modern blogging, website environmental impact, and using LangChain with LLMs. They also cover CSS hyphens, unit vs. integration testing, and balancing web development with new parenthood.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    Scott and Wes dive into the world of browser caching for audio files, exploring the File System API and the Cache API. They discuss size restrictions across different browsers, how tools like Riverside.fm leverage IndexedDB, and walk through code examples for creating, retrieving, and managing cached audio data.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    782: The Developer’s Guide To Fonts with Stephen Nixon

    782: The Developer’s Guide To Fonts with Stephen Nixon

    Scott and CJ are joined by Stephen Nixon of ArrowType to delve into the world of fonts and type for developers. They explore the intricacies of font creation, the utility of variable fonts, and offer tips for making visually appealing typography on the web.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    In this potluck episode of Syntax, Scott and CJ serve up a variety of community questions, from the nuances of beginner vs. advanced TypeScript to the pros and cons of SvelteKit. They also discuss falling out of love with React, shipping private packages via NPM, and the eternal struggle of always starting but never finishing projects.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    Related Episodes

    Reality Check: The Limits of View Transitions

    Reality Check: The Limits of View Transitions

    Ever wondered how to animate between two UI states without wrangling heaps of extra code? Well, get ready to unlock a new level of web development capabilities with us, as we dive into the exciting world of view transitions.

    Highlights
    00:00 Introduction
    00:44 Understanding View Transitions
    02:05 Demos & Practical Applications
    03:14 Current Reality vs. The Dream
    06:47 Potential Use Cases & WordPress Context
    07:25 View Transitions With HTMX
    08:31 Working With View Transitions in CSS
    12:54 Conclusion

    Links
    - Chrome Developers Article: https://developer.chrome.com/docs/web-platform/view-transitions/
    - Astro 3.0 View Transitions: https://astro.build/blog/astro-3/#astro-view-transitions
    - Svelte View Transitions: https://svelte.dev/blog/view-transitions
    - HTMX View Transitions: https://htmx.org/docs/#view-transitions
    - View Transitions API Overview: https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API
    - Maxi Ferrera's Demo: https://live-transitions.pages.dev/
    - Turbo: https://turbo.hotwired.dev/
    - swup: https://swup.js.org/
    - Shuffle.js: https://vestride.github.io/Shuffle/

    More from Bleech
    Blog Posts (WordPress Development)
    Flynt (WordPress Starter Theme)
    VRTs (Visual Tests for WordPress)
    Siegfried, deploy! (YouTube Channel)

    HTMX is awesome and here's why

    HTMX is awesome and here's why

    What if you could supercharge your HTML with AJAX requests, CSS transitions, and web socket capabilities directly from HTML attributes? That's what HTMX can do for you. We're discussing its benefits and drawbacks in this episode.

    Highlights
    00:00 Introduction to HTMX
    01:16 Triggers and Functionality
    02:06 Benefits and Use Cases
    03:26 Making static WordPress interactive
    04:19 Modern JavaScript Frameworks vs HTMX
    05:25 Areas for Improvement
    08:15 Final Thoughts

    Links
    - HTMX Official Website: https://htmx.org/
    - Alpine.js: https://alpinejs.dev/
    - Tailwind CSS: https://tailwindcss.com/
    - Mutation Observer: https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver

    More from Bleech
    Blog Posts (WordPress Development)
    Flynt (WordPress Starter Theme)
    VRTs (Visual Tests for WordPress)
    Siegfried, deploy! (YouTube Channel)

    27: Building Codepen

    27:  Building Codepen

    Chris Coyier (@chriscoyier), creator of CSS-Tricks & Codepen speaks with The Web Platform Podcast of buiding the Real Time Code Editor based on CodeMirror, Codepen.io. We go into what designers, educators,and developers are doing with this service and how we can best utilize codepen in our own work.

    We also focus on the UX and features of the service that have led to it’s success on various levels. Chris is a well known author, speaker and is the podcast host of ShopTalk Show.

    Resources

     

    Panelists

     

    Sponsors

    Выпуск №20 в гостях Андрей Ситник - Рождение суперзлодея, цензура и почему митапы лучше конференций

    Выпуск №20 в гостях Андрей Ситник - Рождение суперзлодея, цензура и почему митапы лучше конференций
    В гостях Андрей Ситник https://sitnik.ru/en/ Поговорили про смерть фронтенда (как без этого), цензуру, цифровой шабат, митапы, конференции и будущее.

    Выпуск №39: Привет, Svelte! Пока, moment.js!

    Выпуск №39: Привет, Svelte! Пока, moment.js!
    написал виджет на Свелт и доволен https://habr.com/ru/company/citymobil/blog/504270/ TS in Svelte https://svelte.dev/blog/svelte-and-typescript Новый пропозал про правильную дату https://tc39.es/proposal-temporal/docs/cookbook.html Добавляем https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat как и что подсвечивать https://buttondown.email/hillelwayne/archive/syntax-highlighting-is-a-waste-of-an-information/ Apple declined to implement 16 Web APIs in Safari due to privacy concerns https://css-tricks.com/apple-declined-to-implement-16-web-apis-in-safari-due-to-privacy-concerns/ Displaying the Current Step with CSS Counters https://css-tricks.com/displaying-the-current-step-with-css-counters/ Пики: Порядок отрисовки https://abandonedwig.info/blog/2020/07/03/css-painting-order.html Introduction to Node.js https://nodejs.dev/learn ШРИ 2019-2020 https://www.youtube.com/playlist?list=PLKaafC45L_SRoYnuEW5cgqHN-kpSTVfMs Хак чтобы сделать любой HTML в MD (например в ридми гитахаба) https://medium.com/@omrilotan/rich-html-in-github-readme-bfb3de791441