889: Planning A Build

889: Planning A Build

Update: 2025-03-31
Share

Digest

This podcast episode documents the Syntax team's process of redesigning their website (version 3). The discussion covers the entire project lifecycle, from initial brainstorming and planning to implementation details and ongoing maintenance. Key decisions included retaining the existing SvelteKit codebase, focusing instead on CSS refactoring and improvements. They opted for GitHub's built-in project management features over dedicated tools, emphasizing a collaborative decision-making process fueled by open-ended questions. The team adopted a component-based development approach using Storybook, leveraging container queries for responsiveness and prioritizing runtime-agnostic libraries for future flexibility. Their CSS strategy involves scoped component styling with a global CSS base, utilizing CSS variables and consistent naming conventions. A transition from ESLint to Biome for linting and formatting is also detailed, along with the adoption of a homegrown CMS for content management, replacing markdown files. The episode also touches upon the challenges of integrating AI coding assistance while maintaining consistent code style (snake_case for variables, camelCase for classes).

Outlines

00:00:00
Planning & Website Redesign (v3)

The Syntax team discusses their website redesign (v3), covering planning, technology choices (SvelteKit, Biome, container queries), collaborative decision-making, and the transition to a homegrown CMS. Key challenges and solutions related to project management, CSS styling, and code maintainability are explored.

00:02:48
Design and Architectural Decisions

This section details the evolution of the website's design, emphasizing the shift to a more complex, feature-rich structure accommodating diverse content types. The importance of user experience and the choice of a component-based architecture are highlighted.

00:08:10
Development Process & Tooling

The team's development process, including their use of Storybook for component development, container queries for responsiveness, and the transition from ESLint to Biome for linting, is discussed. The decision to prioritize runtime-agnostic libraries is also explained.

00:20:53
AI Assistance & Code Style

This section focuses on the team's approach to integrating AI coding assistance and maintaining consistent code style, including naming conventions and the use of linting tools to enforce standards.

Keywords

SvelteKit


A framework for building web applications using Svelte. It offers features like server-side rendering and routing, making it suitable for complex projects.

Biome


A JavaScript linter and formatter that aims to replace ESLint and Prettier. It offers fast performance and good Svelte support.

Container Queries


A CSS feature that allows elements to respond to the size of their parent container, improving responsiveness in component-based development.

CSS Variables (Custom Properties)


Variables defined in CSS using `--variable-name` syntax, allowing for centralized styling and easier theme management.

Project Management


The process of planning, organizing, and controlling resources to achieve specific goals within a project.

Runtime Agnostic


Code that can run on different JavaScript runtimes (e.g., Node.js, Deno, Bun) without modification, enhancing portability and flexibility.

Homegrown CMS


A custom-built content management system, offering tailored functionality and integration with existing systems.

Storybook


A tool for developing and documenting UI components in isolation.

Component-based Development


A software development approach where the UI is built from reusable components.

Code Style


Consistent formatting and naming conventions in code for improved readability and maintainability.

Q&A

  • What were the key factors influencing the decision to retain the existing SvelteKit codebase instead of starting from scratch?

    The team valued preserving the existing routing structure and Git history, deeming the effort of a complete rewrite too significant, especially considering the majority of the changes were stylistic.

  • Why did the Syntax team choose to use GitHub's project features instead of dedicated project management software like Jira?

    As a small team of developers already heavily reliant on GitHub, they found the built-in project features sufficient and avoided the overhead of learning and managing a separate tool.

  • How did the team approach the decision-making process regarding technology choices and design elements?

    They employed a collaborative approach, encouraging open-ended questions and discussions to ensure everyone's input was considered, leading to a shared understanding and consensus on key decisions.

  • What are the benefits of using container queries over traditional media queries for responsive design?

    Container queries offer more granular control over responsiveness, allowing components to adapt to their parent container's size, leading to more predictable and maintainable layouts, especially in component-based architectures.

  • What strategies did the team implement to ensure consistent coding styles and maintainability in the long term?

    They established clear naming conventions for CSS variables and code structure, adopted snake_case for variables, and plan to utilize linting tools like Biome and Stylelint to enforce these standards. They also plan to include recommended VS Code extensions in the repo.

Show Notes

Scott and Wes talk about the planning process for a major redesign of the Syntax.fm website. They share their thoughts on organizing tasks, choosing tech, handling styling, and the debates that come with deciding what to keep and what to change.

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

Comments 
00:00
00:00
x

0.5x

0.8x

1.0x

1.25x

1.5x

2.0x

3.0x

Sleep Timer

Off

End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

889: Planning A Build

889: Planning A Build

Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers