Blog posts
-
2024
-
2023
- How to link a local npm dependency with pnpm
- How you properly test your React hook methods
- Am I learning design or Figma?
- Composition vs props in React
- June 2023 update
- Git cherry-pick range of commits
- May 2023 update
- Polymorphic components in React
- Sharing configs between Storybook and Vite
- Auto update readme on GitHub with Deno
- Site search in Raycast
- Read later with Feedbin via iOS shortcut
- Migrating blog to Astro
- January 2023 update
- Polymorphic react component with vanilla-extract
- What tools & apps I'm using - 2022 edition
-
2022
- Eslint rule to restrict imports
- Executing scripts when docker starts
- October 2022 update
- How to type Next.js env variables in TypeScript
- Custom font on GitHub
- Migrating Next.js plugins from next-compose-plugins
- HTML table sticky header with borders
- Compiling Tailwind CSS components in monorepo
- Run script on files changes using nodemon
- PNPM and monorepo fun
- Hiding SEO spam from Google using uBlock filters
- HOC for React Query
- Generating TypeScript types from Swagger schema
- Raycast script - copy foremost Safari window as markdown link
- Enable spell check on mac
- Font smoothing after Big Sur
-
2021
- How to enable cmd+tab switcher on all monitors
- On setting up Next.js with Docker on Google Cloud
- How to open custom URL with Next.js dev command
- How to use Deno in Raycast scripts commands
- How to open man in Mac OS Preview
- How to add shebang to deno script
- Amazon Glacier + Arq backup
- Migrating blog to Eleventy
- On reading paper magazines
- New version of writer mode
- On generating social images for this blog
- Alfred Snippet workflow
- HTML has a base tag
- Distractions tips & tricks
-
2020
- TIL - Chrome has emulate focused page
- TIL - how height:auto works
- Tooling overload in JS
- Stack & Column in CSS-in-JS
- Intl Collator in JavaScript
- How to split antd theme into smaller components
- Setting up webpack for chrome extension development
- RxJS and auth token expiration timers
- How to setup emotion css prop to work with Parcel & TypeScript
- Cron under MacOS
- Placeholder shown CSS selector
- Firefox has copy url button
- Ramda clamp
- How to read TypeScript errors and not get mad?
- Interesting links that I found - vol.4
- Lowering selectors in react/redux
- What I learned by adding webmentions to my blog
- Formik - useFormikContext and useField hooks
- Wrocław TypeScript meetup online
- Interesting links that I found - vol.3
- cssgrid.io course review
- Interesting links that I found - vol. 2
- What I learned from redesigning my blog
- Interesting links that I found - vol. 1
- Testing gatsby blog with cypress.io
- Query string library have stringifyUrl
- Yup validation - one field required but not both at the same time
- Customizing Gatsby Graphql schema
- UX/UI Space Wrocław vol.8
- CSS in JS patterns
- Photo Grid Codepen challenge
-
2019
- Implementing stripe card for fun & profit
- Career change - developer + designer
- Using Xstate with inputs in React
- IE11 text overflow in flex container
- Explain TypeScript to me
- Side project with svelte
- Safari scrolling error
- TypeScript abstract classes
- My first interviews for software developer
- TypeScript function overloads
- Side project - CSS on blog
- Hiding elements with opacity
- Multiple stow directories
- Open sourcing tsconfig
- I build a thing - writer mode for VSCode
- TypeScript classes, interfaces and all between
- On React Render props vs HOC
- Setting up simple React & TypeScript project
-
2018
- How to find blog ideas
- Dependency injection in redux-observable
- switchMap in redux-observable
- How to update progress of long request with redux-observable
- How to dispatch multiple actions based on api call in redux-observable
- Lessons learned from coding TM Conference website
- Lessons learned from writing pet project in React with Redux
- How design of your API can affect others
- You dont know promises
- Debouncing forms in React with Redux
- Python Belgrade
- Legacy projects
- Mutations in Relay Modern
-
2017
- Summary of 2017
- 100 days of code
- Fragments and queries in Relay Modern
- Setting up Relay Modern on frontend
- Javascript Conference Budapest 2017
- On moving blog to Gatsby.js
- Debugging python code with wdb
- Python imports validation
- Moving to Relay in Django backend
- Monorepo structure for Django & React Applications
- Solutions reviews
- Lessons learned from being a mentor
- Django, GraphQL & React
- Testing React form components
- Building python packages for debian
- Chaining promises in JavaScript
- Django and nginx file proxy
- Dont use defaults
- Testing django template tags
- Testing django mixins
- Callbacks & promises in JS for newbies
- All roads lead to
- Pomodoro timer
- Gunicorn & LRU cache pitfall
- Provisioning django application using ansible
- Review of 2016
-
2016
- Transcoding with AWS
- Docker.py - python API for Docker
- Django Girls- Kraków
- Django Under The Hood 2016 recap
- PyConPL 2016
- Microservices in Flask
- JSON Web Tokens in django application
- Archives from memory- libarchive
- Python & WebDAV
- Makefiles in python projects
- My thoughts on blogging
- Factory pattern in python
- Design by contract in python
- Django application with puppet
- Two forms one view in django
- Ports and Adapters in python
- My first personal project
- Mocks and monkeypatching in python
- My first workshop experience
- Automatic blog deployment with TravisCI
- Moving blog to pelican
- Django + Celery & Rabbit
- Django cookiecutter
- Django Haystack and Elasticsearch
- Python class @decorators
- Python __slots__
- Http and websockets logging handlers
- GeoDjango and Leaflet.js