41554 blogs · [ { "id": "01a087e0-f0fb-7243-9975-58980a341637", "title": "The unique position of Vite in our ecosystem", "url": "https://silvenon.com/https:/silvenon.com/blog/vite-and-frameworks", "published_at": "2025-01-05T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58980a3f46fa", "title": "Cypress vs. Playwright: end-to-end testing showdown", "url": "https://silvenon.com/https:/silvenon.com/blog/e2e-testing-with-cypress-vs-playwright", "published_at": "2022-06-17T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58980b31b832", "title": "What Tailwind taught me about the separation of concerns", "url": "https://silvenon.com/https:/silvenon.com/blog/tailwind-and-separation-of-concerns", "published_at": "2021-04-13T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58980c224431", "title": "Make your JavaScript project accessible to newcomers", "url": "https://silvenon.com/https:/silvenon.com/blog/improving-developer-experience", "published_at": "2021-04-06T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58980cbfe038", "title": "Checking your static site for dead URLs", "url": "https://silvenon.com/https:/silvenon.com/blog/checking-for-dead-urls", "published_at": "2020-07-26T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58980d4b6011", "title": "Managing complex tasks with gulp v4", "url": "https://silvenon.com/https:/silvenon.com/blog/npm-scripts-vs-gulp-v4", "published_at": "2020-07-20T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58980e3aa601", "title": "Migrating from Gatsby to Next.js", "url": "https://blog.logrocket.com/migrating-from-gatsby-to-next-js/", "published_at": "2020-06-16T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58980ea79a73", "title": "Taking Control of Your Git History: The Importance of Git History", "url": "https://silvenon.com/https:/silvenon.com/blog/better-git-history/introduction", "published_at": "2019-10-03T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58980ed63217", "title": "Taking Control of Your Git History: Staging Accurately", "url": "https://silvenon.com/https:/silvenon.com/blog/better-git-history/staging", "published_at": "2019-10-03T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58980edd359d", "title": "Taking Control of Your Git History: Editing History", "url": "https://silvenon.com/https:/silvenon.com/blog/better-git-history/rebasing", "published_at": "2019-10-03T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58980ef40c05", "title": "Taking Control of Your Git History: Resolving Conflicts", "url": "https://silvenon.com/https:/silvenon.com/blog/better-git-history/resolving-conflicts", "published_at": "2019-10-03T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58980f6b1674", "title": "A Built-in Alternative to Redux with React Context and Hooks", "url": "https://silvenon.com/https:/silvenon.com/blog/replacing-redux-with-context-and-hooks", "published_at": "2019-08-02T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-5898100b38a1", "title": "Mocking with Jest: Spying on Functions and Changing Implementation", "url": "https://silvenon.com/https:/silvenon.com/blog/mocking-with-jest/functions", "published_at": "2019-05-21T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-589810f6fd50", "title": "Mocking with Jest: Taking Advantage of the Module System", "url": "https://silvenon.com/https:/silvenon.com/blog/mocking-with-jest/modules", "published_at": "2019-05-21T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-5898113e6e26", "title": "Integrating and Enforcing Prettier & ESLint", "url": "https://silvenon.com/https:/silvenon.com/blog/integrating-and-enforcing-prettier-and-eslint", "published_at": "2019-03-25T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-5898127a1ff2", "title": "Bridging the Gap Between CSS and JavaScript: CSS Modules, PostCSS and the Future of CSS", "url": "https://css-tricks.com/bridging-the-gap-between-css-and-javascript-css-modules-postcss-and-the-future-of-css/", "published_at": "2018-12-04T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-589811c99a95", "title": "Bridging the Gap Between CSS and JavaScript: CSS-in-JS", "url": "https://css-tricks.com/bridging-the-gap-between-css-and-javascript-css-in-js/", "published_at": "2018-12-03T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58981285aa22", "title": "Why I Migrated Away from Medium", "url": "https://silvenon.com/https:/silvenon.com/blog/why-i-migrated-away-from-medium", "published_at": "2018-09-13T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-589812afe12e", "title": "On Code Folding and Minimaps", "url": "https://silvenon.com/https:/silvenon.com/blog/code-folding-and-minimaps", "published_at": "2018-04-03T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-589812b899a1", "title": "The Nuances of React Transition Group", "url": "https://silvenon.com/https:/silvenon.com/blog/the-nuances-of-react-transition-group", "published_at": "2018-03-16T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58981356c9f2", "title": "Writing codemods with jscodeshfit", "url": "https://silvenon.com/https:/silvenon.com/blog/writing-codemods-with-jscodeshift", "published_at": "2018-02-21T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-5898142730dd", "title": "Custom Project-Based ESLint Rules", "url": "https://silvenon.com/https:/silvenon.com/blog/custom-project-based-eslint-rules", "published_at": "2017-12-02T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-589814e60486", "title": "Don't Split render() into Functions", "url": "https://silvenon.com/https:/silvenon.com/blog/dont-split-render-into-functions", "published_at": "2017-08-29T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-589815900e83", "title": "dependencies or devDependencies", "url": "https://silvenon.com/https:/silvenon.com/blog/dependencies-or-devdependencies", "published_at": "2017-08-20T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-589817f6f585", "title": "Testing with AVA: React Components", "url": "https://semaphoreci.com/community/tutorials/testing-react-components-with-ava", "published_at": "2017-02-01T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-5898171cbeac", "title": "Testing with AVA: Common Redux Patterns", "url": "https://semaphoreci.com/community/tutorials/testing-common-redux-patterns-in-react-using-ava", "published_at": "2016-11-30T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-5898167a04ea", "title": "Testing with AVA: Getting Started", "url": "https://semaphoreci.com/community/tutorials/getting-started-with-create-react-app-and-ava", "published_at": "2016-10-25T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-5898187aa0b7", "title": "Downvoting Comments on YouTube Does Nothing", "url": "https://silvenon.com/https:/silvenon.com/blog/downvoting-comments-on-youtube", "published_at": "2016-09-01T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-5898191e1546", "title": "Intro to ESLint (ft. Daft Punk)", "url": "https://silvenon.com/https:/silvenon.com/blog/intro-to-eslint", "published_at": "2016-06-01T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-589819a61d12", "title": "Setting Up an End-to-End Testing Workflow with Gulp, Mocha, and WebdriverIO", "url": "https://semaphoreci.com/community/tutorials/setting-up-an-end-to-end-testing-workflow-with-gulp-mocha-and-webdriverio", "published_at": "2015-10-21T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58981a5084a7", "title": "CSS preprocessing drama", "url": "https://silvenon.com/https:/silvenon.com/blog/css-preprocessing-drama", "published_at": "2015-07-22T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58981ab1e6f3", "title": "Getting the most out of Bower", "url": "https://silvenon.com/https:/silvenon.com/blog/getting-the-most-out-of-bower", "published_at": "2015-01-25T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58981b878bed", "title": "Simple layouting with Gulp", "url": "https://silvenon.com/https:/silvenon.com/blog/simple-layouting-with-gulp", "published_at": "2014-09-10T00:00:00+00:00" }, { "id": "01a087e0-f0fb-7243-9975-58981c0c7e05", "title": "CSS pre- vs. post-processing", "url": "https://silvenon.com/https:/silvenon.com/blog/css-pre-vs-post-processing", "published_at": "2014-09-07T00:00:00+00:00" } ] posts Claim your blog
Back to silvenon.com
Blog · corpus.blog/blogs/silvenon.com/posts

silvenon.com

silvenon.com

2025

2022

2021

2020

2019

2018

2017

2016

2015

2014