41554 blogs · [ { "id": "01a08796-f7ff-717b-8a0c-d637de4cdc62", "title": "The naked truth about AI-assisted coding", "url": "https://krasimirtsonev.com/blog/article/the-naked-truth-about-ai-assisted-coding", "published_at": null }, { "id": "01a08796-f7ff-717b-8a0c-d637df31bad2", "title": "Nice try dear AI. Now let's talk about production.", "url": "https://krasimirtsonev.com/blog/article/nice-try-dear-ai-now-lets-talk-production", "published_at": null }, { "id": "01a08796-f7ff-717b-8a0c-d637dfdf07ce", "title": "CSS-only animated accordion with dynamic content height", "url": "https://krasimirtsonev.com/blog/article/css-only-animated-accordion-with-dynamic-content-height", "published_at": null }, { "id": "01a08796-f7ff-717b-8a0c-d637e0a98b37", "title": "Streaming JSON in just 200 lines of JavaScript", "url": "https://krasimirtsonev.com/blog/article/streaming-json-in-just-200-lines-of-javascript", "published_at": null }, { "id": "01a08796-f7ff-717b-8a0c-d637e0d8760e", "title": "Azbuka: Treating CSS Like a Real Programming Language (Finally)", "url": "https://krasimirtsonev.com/blog/article/azbuka-treating-css-like-a-real-programming-language-finally", "published_at": null }, { "id": "01a08796-f7ff-717b-8a0c-d637e1ac8b1f", "title": "React Server Components support without a framework", "url": "https://krasimirtsonev.com/blog/article/vanilla-react-server-components-with-no-framework", "published_at": null }, { "id": "01a08796-f7ff-717b-8a0c-d637e1be6556", "title": "Speaking at WebExpo #2", "url": "https://krasimirtsonev.com/blog/article/speaking-at-webexpo", "published_at": null }, { "id": "01a08796-f7ff-717b-8a0c-d637e1c1c3fe", "title": "How I wrote a watch face for my Garmin Fēnix 8+", "url": "https://krasimirtsonev.com/blog/article/how-to-create-garmin-fenix-8-watch-face", "published_at": null }, { "id": "01a08796-f7ff-717b-8a0c-d637e2a25698", "title": "Generate QR code on your machine using Node.js", "url": "https://krasimirtsonev.com/blog/article/generate-qr-code-with-node", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e006e2742", "title": "Reactive UI in 10 lines of code", "url": "https://krasimirtsonev.com/blog/article/reactive-ui-in-10-lines-of-code", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e00da4f90", "title": "Write your own progress indicator with vanilla JavaScript", "url": "https://krasimirtsonev.com/blog/article/progress-indicator-with-vanilla-javascript", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e0125fde2", "title": "A short introduction to CSS nesting", "url": "https://krasimirtsonev.com/blog/article/short-intro-to-css-nesting", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e01dd1a70", "title": "I've made an Express.js based source viewer", "url": "https://krasimirtsonev.com/blog/article/expressjs-source-viewer", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e020c9723", "title": "q2m - a library for translating URL params to MongoDB query", "url": "https://krasimirtsonev.com/blog/article/url-query-string-to-mongodb-query", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e02deacea", "title": "AI driven open source library for measuring your web page carbon footprint", "url": "https://krasimirtsonev.com/blog/article/ai-driven-open-source", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e033e92df", "title": "Anchor links pointing to a fragment fires History API's \"popstate\" event", "url": "https://krasimirtsonev.com/blog/article/anchor-links-and-popstate", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e03588789", "title": "Using web dev skills to test web dev skills", "url": "https://krasimirtsonev.com/blog/article/using-web-dev-skills-to-test-web-dev-skills", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e03e3c6b1", "title": "Taking Wordle to the next level (case study)", "url": "https://krasimirtsonev.com/blog/article/taking-wordle-to-the-next-level", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e049dd686", "title": "The tiniest presentation framework", "url": "https://krasimirtsonev.com/blog/article/the-tiniest-presentation-framework", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e04de4068", "title": "13 Years of Blogging", "url": "https://krasimirtsonev.com/blog/article/13-years-of-blogging", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e050c6901", "title": "How I wrote and published my 5th technical book", "url": "https://krasimirtsonev.com/blog/article/how-to-write-a-book-on-amazon", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e054b0575", "title": "TAMO JUNTO - Animated Short Film", "url": "https://krasimirtsonev.com/blog/article/tamo-junto", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e05886dfb", "title": "Here is how call-to-action widgets probably work", "url": "https://krasimirtsonev.com/blog/article/how-widgets-probably-work", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e062862fc", "title": "Get to know Kent C. Dodds", "url": "https://krasimirtsonev.com/blog/article/get-to-know-kent-c-dodds", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e06b91cbd", "title": "White-labeling React apps", "url": "https://krasimirtsonev.com/blog/article/whitelabel-react-apps", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e070d5c49", "title": "Firebase/GCP: save money by cleaning up your artifacts", "url": "https://krasimirtsonev.com/blog/article/firebase-gcp-saving-money", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e07a78d60", "title": "Using JavaScript module system for state management", "url": "https://krasimirtsonev.com/blog/article/javascript-module-system-for-state-management", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e0802ec51", "title": "Miss Piggy - a test runner for Puppeteer", "url": "https://krasimirtsonev.com/blog/article/miss-piggy-puppeteer-test-runner", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e08361beb", "title": "Configure Google domain email in Vercel with ImprovMX", "url": "https://krasimirtsonev.com/blog/article/configure-google-domain-email-in-vercel-with-improvmx", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e08ebaed5", "title": "Reinventing the routing in React apps", "url": "https://krasimirtsonev.com/blog/article/reinventing-routing-in-react-apps", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e09994022", "title": "Transpile to ES modules with Babel", "url": "https://krasimirtsonev.com/blog/article/transpile-to-esm-with-babel", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e0a931064", "title": "Mocking console methods with Jest", "url": "https://krasimirtsonev.com/blog/article/jest-mock-console-methods", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e0b518a7e", "title": "Copy files and directories from and to Kubernetes pods", "url": "https://krasimirtsonev.com/blog/article/copy-from-and-to-k8s-pods", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e0bff798d", "title": "Replacing code for production with Babel transformation", "url": "https://krasimirtsonev.com/blog/article/replacing-code-for-production-with-babel-transformation", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e0cc74c89", "title": "iPhone stuck on the Apple logo", "url": "https://krasimirtsonev.com/blog/article/iphone-wont-start", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e0d235377", "title": "Transfer MP3 file from Mac OS Catalina to iPhone iOS 14.0", "url": "https://krasimirtsonev.com/blog/article/mp3-mac-catalina-to-iphone-ios14", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e0dcfd1b9", "title": "What the heck is Google Tag Manager and what it has to do with Google Analytics", "url": "https://krasimirtsonev.com/blog/article/google-tag-manager-and-google-analytics", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e0ec214e3", "title": "You Really Don't Need All That JavaScript, I Promise by Stuart Langridge", "url": "https://krasimirtsonev.com/blog/article/you-really-dont-need-all-that-javascript", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e0f8b86f4", "title": "ReactNative: using SVG as a button", "url": "https://krasimirtsonev.com/blog/article/react-native-svg-as-button", "published_at": null }, { "id": "01a08796-f800-7352-ad57-c45e101a8372", "title": "React: 50 shades of state", "url": "https://krasimirtsonev.com/blog/article/react-50-shades-of-state", "published_at": null } ] posts Claim your blog
Back to krasimirtsonev.com
Blog · corpus.blog/blogs/krasimirtsonev.com/posts

krasimirtsonev.com

krasimirtsonev.com

Undated