Topics: Putting yourself in the shoes of the person reviewing your application Crafting a high quality application tailored to a specific position Standing out in a more traditional hiring process by doing something a little extra Showcasing very specific examples of your work instead of asking the person reviewing your application to go hunting for it Having good questions for the person interviewing you Sharing your ideas and what you think the company should be focused on Creating a job for y...
Jan 28, 2021•48 min•Ep 152•Transcript available on Metacast Links: Hotwire HEY Supporting the show: I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them. If you do want to support the show, the best way to do it is to purchase one of my products: Tailwind UI , a collection of professionally designed, fully responsive HTML components built with Tailwind CSS. Refactoring UI , a book and video series I put together with Steve Schoger on designing beautiful user interfaces, without rely...
Dec 28, 2020•1 hr 14 min•Ep 151•Transcript available on Metacast Supporting the show: I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them. If you do want to support the show, the best way to do it is to check out our products: Tailwind UI , a collection of professionally designed, fully responsive HTML components built with Tailwind CSS. Statamic 3 , Jack's full-featured flat-file CMS, designed for developers and clients alike. Refactoring UI , a book and video series I put together wit...
Oct 21, 2020•59 min•Ep 150•Transcript available on Metacast Links: Changes to Gumroad's PayPal support Radical icons Jack's hand-drawn avatars W3C's CMS Selection Report Supporting the show: I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them. If you do want to support the show, the best way to do it is to check out our products: Tailwind UI , a collection of professionally designed, fully responsive HTML components built with Tailwind CSS. Statamic 3 , Jack's full-featured flat-fi...
Oct 07, 2020•57 min•Ep 149•Transcript available on Metacast Supporting the show: I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them. If you do want to support the show, the best way to do it is to check out our products: Tailwind UI , a collection of professionally designed, fully responsive HTML components built with Tailwind CSS. Statamic 3 , Jack's full-featured flat-file CMS, designed for developers and clients alike. Refactoring UI , a book and video series I put together wit...
Sep 29, 2020•1 hr•Ep 148•Transcript available on Metacast Supporting the show: I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them. If you do want to support the show, the best way to do it is to check out our products: Tailwind UI , a collection of professionally designed, fully responsive HTML components built with Tailwind CSS. Statamic 3 , Jack's full-featured flat-file CMS, designed for developers and clients alike. Refactoring UI , a book and video series I put together wit...
Sep 23, 2020•1 hr 20 min•Ep 147•Transcript available on Metacast Adam and Jack talk about how the Statamic 3 launch went, and adding GitHub Sponsor tiers to the Statamic GitHub organization and what to give people in exchange for sponsoring. They also talk about the new Tailwind CSS v1.7 release, and the new features like gradient support. Finally, they work through some ideas Adam is preparing for his Laracon talk on “Building component libraries with Tailwind CSS”.
Sep 04, 2020•1 hr 21 min•Ep 146•Transcript available on Metacast Links Statamic 3.0 Tailwind CSS v1.7.0 @90sWWE on Twitter
Aug 20, 2020•1 hr 16 min•Ep 145•Transcript available on Metacast Topics include: Why Gary decided to write Execute Program as a full-stack TypeScript application instead of using a Ruby or Python backend like he may have traditionally Do you actually have to write less tests if you have a good type system? What does a good type system give you that tests can't give you? Using io-ts to type check incoming data How to think about structuring your code to best take advantage of the benefits your type system gives you and minimize the need to write tests Pushing ...
Aug 05, 2020•1 hr 25 min•Ep 144•Transcript available on Metacast Topics include: What is Svelte and how is it different than other JS frameworks in the space? What special behavior does the Svelte compiler layer on top of vanilla JS syntax and why? Why the lack of render functions in Svelte isn't a real problem in practice What are you giving up when you choose to build your application with something like Rails instead of JavaScript? Why should we be trying to write our applications in a single language, and why should it be JS? What's wrong with striving to...
Jul 22, 2020•1 hr 16 min•Ep 143•Transcript available on Metacast Topics include: How do you decide what role to hire for? Why it's so important to figure out exactly what your biggest struggle is before hiring How to decide what the most important thing to focus on is when it feels like there's too much to do Why it's important to consider the impact of hiring for a specific role on your own happiness vs. just the company's bottom line Coming to terms with the fact that you can't do everything, and why it's important to focus on something instead of spreading...
Jul 01, 2020•55 min•Ep 142•Transcript available on Metacast Topics include: How did Basecamp evolve from being a team/client communication tool to focusing on keeping your whole company organized, and is it really even that different? How exactly should we set up Basecamp on day one to support a small 3-5 person remote software team? What tools should we use and which ones should we ignore for now? Finding the balance between being organized enough and splitting things up too much How big should projects be? Is "HEY v1" a project, or is a project somethi...
Jun 10, 2020•1 hr 7 min•Ep 141•Transcript available on Metacast Topics include: What is Vite and what makes it different than existing tools like Webpack? How do ES Modules actually work in the browser and what are the limitations? Will we ever be able to use ES Modules in production for large complex projects? How does Vite work under the hood, and how does it support non-JS files like Vue files, or CSS files? How hot module replacement is implemented under the hood in Vite Optimizing modules with many dependencies to keep the development experience fast Wh...
May 28, 2020•48 min•Ep 140•Transcript available on Metacast Topics include: Does DynamoDB only make sense for things like your cache, or is it a good choice for a primary data store? An overview of the terminology used in DynamoDB and how the terminology compares to a relational database How primary keys work in DynamoDB What data types are available in DynamoDB How DynamoDB is a schemaless database Why it's important to understand your access patterns in advance with DynamoDB, unlike in a relational database Understanding why and how you usually have mu...
May 08, 2020•59 min•Ep 139•Transcript available on Metacast Topics include: What does it mean for Redwood to be a JAMStack framework? What does the React layer look like? What’s new, and what’s leveraging existing community tools? Why Redwood ships with it’s own routing layer What “cells” are in Redwood, and how they aim to provide a declarative abstraction on top of data fetching How Redwood tries to provide clear decoupling behind the front-end and back-end, even though it is providing a full-stack solution What “services” are in Redwood Using Prisma 2...
Apr 22, 2020•1 hr 13 min•Ep 138•Transcript available on Metacast Topics include: An overview of the new getStaticProps, getStaticPaths, and getServerSideProps APIs How Next.js helps you serve static pages from an edge CDN automatically, without affecting the actual authoring experience Using getStaticPaths to statically pregenerate dynamic routes How the fallback feature of getStaticPaths works and lets you statically render pages on-demand to avoid long build times How the upcoming incremental static generation feature will work in Next.js Deploying Next.js ...
Apr 08, 2020•1 hr 23 min•Ep 137•Transcript available on Metacast Topics include: What do people actually mean when they say "I used to use Rails, but now I use React"? Why back-end development is still a crucial part of building any web application What third-party services people are using to try and replace custom back-end code Would you default to building a Rails back-end for a React side project, or is your instinct to try and use third-party services only? How far do you think front-end-first frameworks like Next.js are going to get their hands dirty in...
Mar 25, 2020•1 hr 8 min•Ep 136•Transcript available on Metacast Topics include: What Tailwind UI is and why we decided to build it How odd numbers can wreak havoc on a user interface, and how to avoid them Crafting the perfect form control Unexpected benefits of working with CSS Grid Abusing single column grids just to use gap, and why we desperately need gap support in Flexbox Links: Tailwind UI Supporting the show: I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them. If you do want t...
Mar 04, 2020•2 hr 38 min•Ep 135•Transcript available on Metacast Topics include: What problems you run into when baking white space into components, and why your components should never contain any surrounding white space at all Layout challenges you run into due to the way the browser includes line-height in the size of text elements The trick Mark's team uses to remove surrounding white space from text elements, without removing the space between wrapping lines Using a "stack" component to specify the space between sibling elements Issues with naively just ...
Feb 12, 2020•57 min•Ep 134•Transcript available on Metacast Topics What is Mirage and how does it work? What makes Mirage better than a dummy JSON server you run on another port? What makes Mirage better than running your actual API locally? Using Mirage for actual development, and not just for your test suite How Mirage's internal ORM works, and how it can help you mirror your API's behavior more quickly Managing the risks of maintaining a complex stub of your real API with Mirage and keeping them in sync What's next for Mirage Links Mirage.js Mirage.js...
Jan 29, 2020•1 hr 3 min•Ep 133•Transcript available on Metacast Topics include: What is Alpine and what does it replace? How does Alpine compare to Vue? How does Alpine compare to Stimulus? “Why not just use vanilla JavaScript you dummy?” How Alpine works internally Patterns for extracting reusable behaviours with Alpine The Alpine roadmap Sponsors: Tuple , try the best pair programming app out there for free for two weeks Links: Alpine.js on GitHub The template tag The with statement Proxy objects...
Jan 15, 2020•1 hr 26 min•Ep 132•Transcript available on Metacast Topics include: Why "fixed time, variable scope" is so important for actually getting things done Integrating development and design into a single process instead of design first, develop later What it means to "shape" work before deciding to work on it What it means to "bet" on a project, and why Basecamp would rather trash a project than extend the deadline by an extra week Taking deadlines seriously, and how it empowers teams to make their own decisions about scope to avoid having to trash th...
Jan 01, 2020•1 hr 13 min•Ep 131•Transcript available on Metacast Topics include: What exactly is a finite state machine? Why trying to keep track of a component's status using boolean flags is leads to bugs and complex code Why it makes so much more sense to keep track of a component's state using some sort of label How simple it can actually be to implement UI component logic with a state machine and why you shouldn't think of it as complex or over-engineering How you can think of using state machines in UI programming to be like an inversion of the typical ...
Dec 11, 2019•54 min•Ep 130•Transcript available on Metacast Topics include: What were the first feature/change ideas that got the wheels turning for Vue 3 How Vue's underlying VNode data structure is changing and how that affects users who work directly with render functions How the h function works in Vue 3 and how it helps you write code that's more composable How many breaking changes are just removing deprecations vs. hard breaks and how a compatibility build is going to ease the upgrade process The new template compiler and how it will drastically i...
Nov 27, 2019•1 hr 18 min•Ep 129•Transcript available on Metacast Topics include: Why Heroku introduced BEM to try and solve their CSS issues and why it didn't work How custom tooling and Ember's component system alleviated any maintainability concerns about littering the HTML with presentational classes Why Heroku still uses some component classes like "btn" and "input" even though they could encapsulate those in an Ember component Why simply introducing any sort of rigid CSS architecture wasn't enough and why switching to a utility CSS approach specifically ...
Nov 20, 2019•1 hr 1 min•Ep 128•Transcript available on Metacast Topics include: What Inertia.js is and what problem it solves Why Inertia is more like a protocol than a framework How navigation works in Inertia How form submissions work in Inertia How Inertia automatically updates your assets for visitors when you update your code Handling flash messages and validation errors work Building applications with persistent layouts Showing placeholder screens with Inertia while data is loading Sponsors: Cloudinary , sign up and get 300,000 images/videos, 10GB of s...
Nov 06, 2019•2 hr 36 min•Ep 127•Transcript available on Metacast Topics include: How do you keep data synchronized between two different clients when all of the data is stored locally instead of in the cloud? Understanding conflict-free replicated data types and how they help when building distributed applications Diving deep into how messages are replayed across clients when network access becomes available to achieve consistent state Using a Merkle tree to efficiently compare the message store from two clients to know which messages need to be synchronized ...
Oct 23, 2019•1 hr 1 min•Ep 126•Transcript available on Metacast Topics include: Brainstorming ideas vs. paying attention to your own problems Why it's smart to start with a product that might never make a million dollars a year Should you avoid markets with competition? Why it's a good idea to build something for fewer people Strategies for figuring out how many people have the problem you're trying to solve Why you should start marketing before you start building When should you start charging money for your product? Why getting 1,000 customers is extremely...
Oct 09, 2019•55 min•Ep 125•Transcript available on Metacast Topics include: Creating pixel-perfect mockups in advance vs. designing and implementing in tandem Working with existing JS libraries for interactive UI features vs. hand-rolling a custom implementation from scratch How design systems play into the design process at Netlify, and how mockups aren't meant to implemented pixel-for-pixel What tools Netlify uses to design new features and manage the design process What technologies Netlify uses to keep their UI consistent Using modern CSS features li...
Sep 25, 2019•56 min•Ep 124•Transcript available on Metacast Topics include: Building website templates vs. a UI kit Should the product be positioned as a UI library or an educational resource? One-time purchase pricing vs. subscription pricing vs. some combination of the two Why marketing features can sometimes be better than marketing benefits "Dribbble but with code" Sponsors: Cloudinary , sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for free DigitalOcean , get your free $50 credit at do.co/fullstack Links: Tailw...
Sep 11, 2019•1 hr 6 min•Ep 123•Transcript available on Metacast