Skip to main content
Frontend Greatness

Frontend Greatness

By Ari-Pekka Koponen

A podcast that helps frontend developers go from good to great. Hosted by Ari Koponen.
Available on
Apple Podcasts Logo
Castbox Logo
Google Podcasts Logo
Overcast Logo
Pocket Casts Logo
RadioPublic Logo
Spotify Logo
Currently playing episode

DX is UX With Evyatar

Frontend GreatnessJun 16, 2021

00:00
47:03
Automated Visual Testing With Kimmo Brunfeldt

Automated Visual Testing With Kimmo Brunfeldt

Kimmo Brunfeldt a software developer and an entrepreneur joins Ari Koponen on the Frontend Greatness podcast to talk about "Automated Visual Testing."

In this episode:
- Common challenges with visual testing
- Tools for visual testing
- Discussion on if visual testing worth all the trouble

---
Episode Notes

Social
- Kimmo on Twitter: https://twitter.com/kimmobrunfeldt
- Ari on Twitter: https://twitter.com/apkoponen

Show Notes
- Swarmia: https://www.swarmia.com/
- PhantomJS: https://phantomjs.org/
- CasperJS: https://github.com/casperjs/casperjs
- SlimerJS: https://github.com/laurentj/slimerjs
- Puppeteer: https://github.com/puppeteer/puppeteer
- Playwright: https://github.com/microsoft/playwright
- Squint: https://github.com/kimmobrunfeldt/squint
- Cypress: https://www.cypress.io/
- Percy: https://percy.io/
- Chromatic: https://www.chromatic.com/

Kimmo's Recommendations
- Frontend Focus: https://frontendfoc.us/
- Dan Abramov's blog: https://overreacted.io/

Aug 30, 202147:33
Cross-Platform Frontend Development with Sallar

Cross-Platform Frontend Development with Sallar

Sallar, an independent software engineer and the co-creator of the open-source Buttercup password manager joins Ari Koponen on the Frontend Greatness podcast to talk about "Cross-Platform Frontend Development."

In this episode:
- What should every frontend developer know about cross-platform frontend development?
- Pro-tips for cross-platform frontend development
- Common cross-platform platform myths busted

---

Episode Notes

Social
- Sallar on Twitter: https://twitter.com/sallar
- Buttercup on Twitter: https://twitter.com/buttercup_pw
- Ari on Twitter: https://twitter.com/apkoponen

Show Notes
- "Building the Future of Our Desktop Apps" from Spotify Engineering: https://engineering.atspotify.com/2021/04/07/building-the-future-of-our-desktop-apps/
- Electron.js: Ehttps://www.electronjs.org/
- Expo: https://expo.dev/
- React Native: https://reactnative.dev/
- Flutter: https://flutter.dev/

Sallar's Recommendations
- Read timeless books
- Just build something all by yourself

Jul 28, 202145:26
DX is UX With Evyatar

DX is UX With Evyatar

Evyatar, a Front End Engineer at Facebook and the author of the Vest validations framework joins Ari Koponen on the Frontend Greatness podcast to talk about "DX is UX."

In this episode:
- Why developer experience and ergonomics matter?
- How you build tools and libraries that developers love to use?
- How are DX and UX principles similar.

---
Episode Notes

Social
- Evyatar's Twitter: https://twitter.com/AlushEvyatar
- Ari's Twitter: https://twitter.com/apkoponen

Show Notes
- Evyatar's blog post on DX: https://medium.com/fiverr-engineering/creating-apis-for-the-human-developer-c0f51a6d9366
- Vest: https://github.com/ealush/vest
- Yup: https://github.com/jquense/yup
- Zod: https://github.com/colinhacks/zod
- Joi: https://github.com/sideway/joi

Evyatar's Recommendations
- "The Design of Everyday Things" by Donald A. Norman: https://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/1452654123
- Christoph Nakazawa's blog: https://cpojer.net/


Jun 16, 202147:03
Better Web Typography with Oliver Schöndorfer

Better Web Typography with Oliver Schöndorfer

Oliver Schöndorfer, a UI Designer and Typographer, who helps developers improve their websites through pimped typography joins Ari Koponen on the Frontend Greatness podcast to talk about "Better Web Typography."

Oliver's YouTube Channel “Pimp my Type”: http://pimpmytype.com
Newsletter with weekly font recommendations for web and app design: https://pimpmytype.com/newsletter

In this episode:
- How can you make typography on the web better?
- Choosing fonts for your next web project
- Using variable fonts to improve typography and performance

---
Episode Notes

Social
- Oliver's Twitter: https://twitter.com/glyphe
- Pimp My Type: http://pimpmytype.com
- Ari's Twitter: https://twitter.com/apkoponen

Show Notes
- Web Almanac - Fonts: https://almanac.httparchive.org/en/2020/fonts/
- "5 steps to faster web fonts": https://iainbean.com/posts/2021/5-steps-to-faster-web-fonts/
- Prevent Faux Fonts: https://alistapart.com/article/say-no-to-faux-bold/
- Avoid Google Fonts: https://wicki.io/posts/2020-11-goodbye-google-fonts/
- Rasmus Anderssons (@rsms): https://twitter.com/rsms
- The "Il1 ag" rule.

Oliver's Recommendations
- Zack Leatherman: https://twitter.com/zachleat
- "Web Typography" by Richard Rutter: https://www.amazon.co.uk/Web-Typography-designing-typography-responsive/dp/099566420X
- Typography.guru on YouTube: https://www.youtube.com/typographyguru 

May 27, 202147:26
From Redux to XState with David Khourshid

From Redux to XState with David Khourshid

David Khourshid, the creator of XState, a pianist, and a software developer, joins Ari Koponen on the Frontend Greatness podcast to talk about "From Redux to XState."

In this episode:
- Which parts of Redux you can replace with XState?
- Can/should you manage all your state with state machines?
- How to persuade your colleagues to use state machines?

---
Episode Notes

Social
- David's Twitter: https://twitter.com/DavidKPiano
- Ari's Twitter: https://twitter.com/apkoponen

Show Notes
- XState: https://xstate.js.org/
- XState Visualizer: https://xstate.js.org/viz/
- XState Catalogue: https://xstate-catalogue.com
- "Video with Rainbow colored shirts": https://youtu.be/7erJ1DV_Tlo
- Emmet: https://emmet.io/

David's Recommendations
- Statecharts.dev: https://statecharts.dev/
- Matt Pocock: https://twitter.com/mpocock1
- XState Discord: https://discord.gg/xstate
- Keyframers Youtube: https://youtube.com/keyframers
- Constructing the User Interface with Statecharts: https://www.goodreads.com/book/show/4589003

May 05, 202139:19
Building an Online Network of Peers with Chris Bongers

Building an Online Network of Peers with Chris Bongers

Chris Bongers is a digital nomad and the author of daily-dev-tips.com joins A-P Koponen on the Frontend Greatness podcast to talk about "Building an Online Network of Peers."

In this episode:
- How Christ ended building a network of peers.
- Why a network of peer outside your current company is so valuable.
- How to find and connect with peers online.

---
This episode is sponsored by Supermetrics.
They are hiring Senior React Developers:
https://careers.supermetrics.com/jobs/1070468-senior-react-developer

---
Episode Notes

Social
- Chris' Twitter: https://twitter.com/DailyDevTips1
- A-P's Twitter: https://twitter.com/apkoponen

Show Notes
- Daily Dev Tips Blog: https://daily-dev-tips.com/
- Blogging for Devs: https://bloggingfordevs.com/
- Reactiflux: https://www.reactiflux.com/

Chris' Recommendations
- Hacktoberfest: https://hacktoberfest.digitalocean.com/
- Hackathons
- Instead of consuming, interact with content.
- daily.dev: http://daily.dev/
- Hashnode: https://hashnode.com/
- Dev.to: http://dev.to/
- freeCodeCamp: https://www.freecodecamp.org/
- The Odin Project: https://www.theodinproject.com/

Apr 21, 202140:40
Building Complex Forms with Erik Rasmussen

Building Complex Forms with Erik Rasmussen

Erik Rasmussen, the author of two popular form libraries, Redux Form and Final Form, joins A-P Koponen on the Frontend Greatness podcast to talk about "Building Complex Forms."

In this episode:
- What every frontend developer should know about building forms.
- How Redux Form led to the birth of Final Form and what issues it solves.
- Form validation and performance optimization tips.

---

Episode Notes

Social
- Erik's Twitter: https://twitter.com/erikras
- A-P's Twitter: https://twitter.com/apkoponen

Show Notes
- Erik's website: https://erikras.com/
- Erik's "Happy Hour Podcast": https://twitter.com/happyhourdotfm
- Final Form: https://final-form.org/
- Redux Form: https://redux-form.com/
- React Hook Form: https://react-hook-form.com/
- Formik: https://formik.org/
- Yup: https://github.com/jquense/yup/
- React Select: https://react-select.com/
- Final Form examples: https://final-form.org/docs/react-final-form/examples/

Erik's Recommendations
- Kent C. Dodds: https://twitter.com/kentcdodds
- Josh W. Comeau: https://twitter.com/JoshWComeau
- David K: https://twitter.com/DavidKPiano
- Harry Wolff: https://www.youtube.com/channel/UCgdeMp2ZBnovi12THmLc47g

Apr 07, 202155:25
Sharing Code using NPM Libraries with Eemeli Aro

Sharing Code using NPM Libraries with Eemeli Aro

Eemeli Aro, an open-source developer and a Software Developer at Vincit, joins A-P Koponen on the Frontend Greatness podcast to talk about "Sharing Code using NPM Libraries."

In this episode:
- How to make an impact by developing Open Source libraries
- Pro tips for sharing code within your own organization when using NPM libraries
- How to get started with building NPM libraries

---
Episode Notes

Social
- Eemeli's Twitter: https://twitter.com/Eemeli_Aro
- A-P's Twitter: https://twitter.com/apkoponen

Show Notes
- Vincit: https://www.vincit.fi/en/
- Github Packages: https://github.com/features/packages
- JFrog Artifactory: https://jfrog.com/artifactory/
- npm-pack: https://docs.npmjs.com/cli/v7/commands/npm-pack
- Conventional Commits: https://www.conventionalcommits.org/
- standard-version: https://github.com/conventional-changelog/standard-version
- Create your own NPM card: https://natterstefan.medium.com/how-to-create-your-personal-npm-business-card-816dfc66ca8
- Good First Issue: https://goodfirstissue.dev/

Eemeli's Recommendations
- Read other people's code: Pick a few libraries with great documentation and see how they're built.

Mar 24, 202150:45
Overcoming adversity using “Sisu” with Jamon Holmgren

Overcoming adversity using “Sisu” with Jamon Holmgren

Jamon Holmgren, the co-founder Infinite Red and the maintainer of mobx-state-tree, joins A-P Koponen on the Frontend Greatness podcast to talk about "Overcoming adversity using “Sisu”."

In this episode:
- What is "Sisu"?
- What kind of adversities can you face as a developer?
- How can you learn to better deal with adversity?
- Learning to know what motivates you.
- Learning to ask for help from others.

---
Episode Notes

Social
- Jamon's Twitter: https://twitter.com/jamonholmgren
- A-P's Twitter: https://twitter.com/apkoponen

Show Notes
- Infinite Red: https://infinite.red/
- Jamon's tractor: https://twitter.com/jamonholmgren/status/1366201301244149762
- Lasse Virén in Münich Olympics 1972: https://www.riemurasia.net/video/10000-metrin-finaali-Munchenin-kesaolympialaisissa-1972/208200
- 16 Basic Desires: https://psychology.wikia.org/wiki/16_basic_desires_theory_of_motivation
- Self-determination theory: https://en.wikipedia.org/wiki/Self-determination_theory

Jamon's Recommendations
- "The Culture Code" by Daniel Coyle: http://danielcoyle.com/the-culture-code/

Mar 10, 202153:55
Layouts and Spacing with Mark Dalgleish - Part 1/2

Layouts and Spacing with Mark Dalgleish - Part 1/2

Mark Dalgleish, the co-author of CSS-modules, who currently works at SEEK building Playroom and frontends with the Braid Design System, joins A-P Koponen on the Frontend Greatness podcast to talk about "Layouts and Spacing". The episode is split into two parts for easier listenability.

In part 1:
- What is the goal of a good layout and spacing system?
- Best practices for layouts and spacing.

In Part 2:
- Layout Components you should use in your everyday work.
- How to get started with layout components and consistent spacing.
- Mark's thoughts on going from good to great as a frontend developer.

---
Episode Notes

Social
- Mark's Twitter: https://twitter.com/markdalgleish
- A-P's Twitter: https://twitter.com/apkoponen

Show Notes
- Capsize: https://seek-oss.github.io/capsize/
- Braid Design System: https://seek-oss.github.io/braid-design-system/
- "Margin is like side-effect" -tweet: https://twitter.com/wongmjane/status/1242370883320049664
- Tailwind's Spacing Scale: https://tailwindcss.com/docs/customizing-spacing
- Mark's talk on design best practices: https://www.youtube.com/watch?v=xxbc3wAztl0
- Chakra UI's layout components: https://chakra-ui.com/docs/layout/aspect-ratio

Mark's Recommendations
- Build something in the open.
- Talk in a meetup or conference.

Feb 24, 202142:22
Layouts and Spacing with Mark Dalgleish - Part 2/2

Layouts and Spacing with Mark Dalgleish - Part 2/2

Mark Dalgleish, the co-author of CSS-modules, who currently works at SEEK building Playroom and frontends with the Braid Design System, joins A-P Koponen on the Frontend Greatness podcast to talk about "Layouts and Spacing". The episode is split into two parts for easier listenability.

In part 1:
- What is the goal of a good layout and spacing system?
- Best practices for layouts and spacing.

In Part 2:
- Layout Components you should use in your everyday work.
- How to get started with layout components and consistent spacing.
- Mark's thoughts on going from good to great as a frontend developer.

---
Episode Notes

Social
- Mark's Twitter: https://twitter.com/markdalgleish
- A-P's Twitter: https://twitter.com/apkoponen

Show Notes
- Capsize: https://seek-oss.github.io/capsize/
- Braid Design System: https://seek-oss.github.io/braid-design-system/
- "Margin is like side-effect" -tweet: https://twitter.com/wongmjane/status/1242370883320049664
- Tailwind's Spacing Scale: https://tailwindcss.com/docs/customizing-spacing
- Mark's talk on design best practices: https://www.youtube.com/watch?v=xxbc3wAztl0
- Chakra UI's layout components: https://chakra-ui.com/docs/layout/aspect-ratio

Mark's Recommendations
- Build something in the open.
- Talk in a meetup or conference.

Feb 24, 202139:52
Content Management with Jake Dohm

Content Management with Jake Dohm

Jake Dohm, a frontend developer at Good Work, who is building his own CMS, joins A-P Koponen on the Frontend Greatness podcast to talk about "Content Management".

In this episode:
- What should every frontend developer know about content management?
- What makes a good Content Management System (CMS) different from a basic admin panel?
- What do you need to consider, when choosing a CMS?
- How to get started with content management as a frontend developer?

---

Episode Notes

Social
- Jake's Twitter: https://twitter.com/jakedohm
- A-P's Twitter: https://twitter.com/apkoponen

Show Notes
- WordPress.org: https://wordpress.org/
- WordPress.com: https://wordpress.com/
- Wix: https://www.wix.com/
- Craft CMS: https://craftcms.com/
- Contentful: https://www.contentful.com/
- Prismic: https://prismic.io/
- Sanity: https://www.sanity.io/
- Statamic: https://statamic.com/
- KeyStoneJS: https://www.keystonejs.com/

Jake's Recommendations
- egghead.io: https://egghead.io/
- James Q Quick: https://www.youtube.com/channel/UC-T8W79DN6PBnzomelvqJYw
- Ryan Chenkie: https://www.youtube.com/c/RyanChenkie/videos
- Sanity's YouTube channel: https://www.youtube.com/channel/UCGz69JwGRptteFAaX8hSKCQ
- Sarah Kapehe Sevilleja: https://www.youtube.com/c/Kapehe

Feb 10, 202149:08
Rendering on the Server with Fredrik Höglund

Rendering on the Server with Fredrik Höglund

Fredrik Höglund, the author of two React Server-Side Rendering libraries and a Frontend Lead at PriceRunner joins A-P Koponen on the Frontend Greatness podcast to talk about "rendering on the server".

In this episode:
- What should every frontend developer know about rendering on the server?
- What approaches there are for rendering React apps on the server?
- What are React Server Components?
- How are React Server Components different from Next.js SSR?
- How can you render your SPA on the server?

---

Episode Notes

Social
- Fredrik's Twitter: https://twitter.com/ephemjs
- A-P's Twitter: https://twitter.com/apkoponen

Show Notes
- Next.js :https://nextjs.org/
- Remix: https://remix.run/features
- Gatsby: https://www.gatsbyjs.com/
- RedwoodJS: https://redwoodjs.com/
- Blitz.js: https://blitzjs.com/
- React Server Components: https://reactjs.org/blog/2020/12/21/data-fetching-with-react-server-components.html
- Razzle: https://razzlejs.org/
- PriceRunner: https://www.pricerunner.com/
- Prerender.io: https://prerender.io/
- Dynamic Rendering: https://developers.google.com/search/docs/guides/dynamic-rendering

Fredrik's Recommendations
- Great reading on different types of rendering, not React specific: https://developers.google.com/web/updates/2019/02/rendering-on-the-web
- Various resources: https://reactresources.com/topics/server-side-rendering
- Learn Next.js: https://nextjs.org/learn/basics/create-nextjs-app
- Official ReactDOMServer docs: https://reactjs.org/docs/react-dom-server.html
- Avoid XSS vulnerabilities: https://medium.com/node-security/the-most-common-xss-vulnerability-in-react-js-applications-2bdffbcc1fa0

Fredrik's SSR Challenge
Easy
- Create a Razzle app and take a look at server.js.
- Razzle docs: https://razzlejs.org/

Medium
- Add React Query or Redux, fetch data on the server, and hydrate that to the client.
- React Query docs: https://react-query.tanstack.com/guides/ssr
- Redux docs: https://redux.js.org/recipes/server-rendering

Hard
- Using react-router, add multiple pages, and a page-level abstraction for data fetching.
- React Router docs: https://reactrouter.com/web/guides/server-rendering
- How after.js does it: https://github.com/jaredpalmer/after.js/blob/master/packages/after.js/src/loadInitialProps.tsx

Jan 28, 202152:41
Automate All the Things with James Elderfield

Automate All the Things with James Elderfield

James Elderfield, Ph.D., an award-winning automation specialist™ and a Software developer at Supermetrics joins A-P Koponen on the Frontend Greatness podcast to talk about how to "automate all the things"

---

Video version: https://youtu.be/qKG0z-SH1_U

---

Episode Notes

Social
- James' Twitter: https://twitter.com/jadelderfield
- A-P's Twitter: https://twitter.com/apkoponen

Show Notes
- Prettier: https://prettier.io/
- Black: https://black.readthedocs.io/en/stable/
- ESLint: https://eslint.org/
- SonarQube: https://www.sonarqube.org/
- Betterer: https://github.com/phenomnomnominal/betterer
- Full Stack Radio "Typescript and Testing": https://fullstackradio.com/144
- jscodeshift (JavaScript or TypeScript codemods): https://github.com/facebook/jscodeshift
- XKCD "Automation": https://xkcd.com/1319/
- "Game of Life": https://refactoringui.com/book/

James' Recommendations
Use your Google-fu to find good articles and prior-art:
- “X getting started"
- “X quick start”
- “X best practices”


Jan 14, 202148:49
Folder Structure with Sergey Bekharsky
Dec 28, 202042:06