<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Dejan Vasic - Blog</title><description>Thoughts on software engineering, leadership, and technology.</description><link>https://dejan.vasic.com.au/</link><language>en-us</language><item><title>Solving Optimistic Update Race Conditions in SvelteKit</title><link>https://dejan.vasic.com.au/blog/2025/11/solving-optimistic-update-race-conditions-in-sveltekit/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2025/11/solving-optimistic-update-race-conditions-in-sveltekit/</guid><description>How I fixed race conditions in my notes app by implementing a request queue at the network layer instead of managing state-level complexity.</description><pubDate>Sun, 02 Nov 2025 00:00:00 GMT</pubDate><category>svelte</category><category>sveltekit</category><category>typescript</category><category>optimistic updates</category></item><item><title>Claude instructions for Svelte developers</title><link>https://dejan.vasic.com.au/blog/2025/10/my-svelte-claude-md-instructions/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2025/10/my-svelte-claude-md-instructions/</guid><description>A basic CLAUDE.md file can go a long way in improving your Svelte project.</description><pubDate>Mon, 20 Oct 2025 00:00:00 GMT</pubDate><category>svelete</category><category>claude</category><category>developer tooling</category></item><item><title>My honest take on AI developer tooling</title><link>https://dejan.vasic.com.au/blog/2025/07/my-honest-take-on-AI-developer-tooling/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2025/07/my-honest-take-on-AI-developer-tooling/</guid><description>Anthropic is hitting the notes and leading the race when it comes to developer tooling. Since the beginning of this year I found myself using AI more frequently in different forms and so I decided to write a short opinion piece about it.</description><pubDate>Wed, 09 Jul 2025 00:00:00 GMT</pubDate><category>ai</category><category>claude</category><category>sonnet</category><category>github copilot</category></item><item><title>Avoiding the any keyword in Typescript tests</title><link>https://dejan.vasic.com.au/blog/2025/06/avoidoing-any-keyword-in-typescript/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2025/06/avoidoing-any-keyword-in-typescript/</guid><description>Using the any type in TypeScript tests can lead to less maintainable and error-prone code. Let&apos;s explore how to avoid it and improve our test quality.</description><pubDate>Wed, 04 Jun 2025 00:00:00 GMT</pubDate><category>typescript</category><category>testing</category><category>zod</category><category>zod-mock</category><category>faker</category></item><item><title>Displaying toast messages in Svelte 5</title><link>https://dejan.vasic.com.au/blog/2025/04/displaying-toast-messages-in-svelte-5/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2025/04/displaying-toast-messages-in-svelte-5/</guid><description>Toast messages are a lovely addition to any interface whether it&apos;s your Operating System, mobile or web application.</description><pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate><category>svelte</category><category>svelte-kit</category><category>front-end</category><category>typescript</category><category>melt-ui</category></item><item><title>Creating Custom Svelte Component with Children Props in Typescript</title><link>https://dejan.vasic.com.au/blog/2024/12/creating-custom-svelte-component-with-children-props-in-typescript/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2024/12/creating-custom-svelte-component-with-children-props-in-typescript/</guid><description>Typing children props in Svelte 5</description><pubDate>Sat, 14 Dec 2024 00:00:00 GMT</pubDate><category>svelte</category><category>typescript</category><category>front-end</category></item><item><title>SvelteKit with Auth0 integration</title><link>https://dejan.vasic.com.au/blog/2024/03/sveltekit-with-auth0-integration/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2024/03/sveltekit-with-auth0-integration/</guid><description>A guide to integrating Auth0 with SvelteKit for authentication.</description><pubDate>Sun, 03 Mar 2024 00:00:00 GMT</pubDate><category>svelte</category><category>svelte-kit</category><category>auth0</category><category>oauth2</category><category>typescript</category></item><item><title>React Hook Form with Nextjs server actions causing Not Found</title><link>https://dejan.vasic.com.au/blog/2024/02/nextjs-ssr-with-react-hook-form-not-found-issue/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2024/02/nextjs-ssr-with-react-hook-form-not-found-issue/</guid><description>A deep dive into the &apos;Form Not Found&apos; issue in Next.js applications using React Hook Form, and how to resolve it effectively.</description><pubDate>Thu, 29 Feb 2024 00:00:00 GMT</pubDate><category>nextjs</category><category>react</category><category>react-hook-form</category><category>server-actions</category></item><item><title>My Journey into Functional Programming with Kotlin and Svelte Kit</title><link>https://dejan.vasic.com.au/blog/2023/12/my-journey-into-functional-programming-with-kotlin-and-svelte-kit/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2023/12/my-journey-into-functional-programming-with-kotlin-and-svelte-kit/</guid><description>Functional programming in Typescript with fp-ts and Svelte Kit.</description><pubDate>Sun, 10 Dec 2023 00:00:00 GMT</pubDate><category>svelte</category><category>typescript</category><category>fp-ts</category><category>functional programming</category></item><item><title>Asserting Either in Vitest</title><link>https://dejan.vasic.com.au/blog/2023/11/asserting-either-in-vitest/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2023/11/asserting-either-in-vitest/</guid><description>&quot;Enhancing TypeScript testing with custom matchers for FP-TS Either objects in Vitest.&quot;</description><pubDate>Sat, 11 Nov 2023 00:00:00 GMT</pubDate><category>vitest</category><category>typescript</category><category>fp-ts</category><category>functional programming</category></item><item><title>Next Images in Storybook</title><link>https://dejan.vasic.com.au/blog/2022/05/next-images-in-storybook/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2022/05/next-images-in-storybook/</guid><description>Displaying Nextjs Image component in Storybook</description><pubDate>Sun, 08 May 2022 00:00:00 GMT</pubDate><category>nextjs</category><category>storybook</category><category>react</category></item><item><title>Query GraphQL in Nextjs and SSR Rehydration</title><link>https://dejan.vasic.com.au/blog/2022/02/query-graphql-in-nextjs-and-ssr-rehydration/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2022/02/query-graphql-in-nextjs-and-ssr-rehydration/</guid><description>SSR Data hydration and Querying GraphQL in Nextjs with Apollo</description><pubDate>Mon, 28 Feb 2022 00:00:00 GMT</pubDate><category>graphql</category><category>apollo</category><category>nextjs</category><category>ssr</category></item><item><title>Next getServerSideProps High Order function in Typescript</title><link>https://dejan.vasic.com.au/blog/2021/10/next-getserversideprops-high-order-function-in-typescript/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2021/10/next-getserversideprops-high-order-function-in-typescript/</guid><description>Have you needed to reuse some code for Next pages in particular within the server side function getServerSideProps?</description><pubDate>Wed, 27 Oct 2021 00:00:00 GMT</pubDate><category>hoc</category><category>nextjs</category><category>react</category></item><item><title>Epic react course key takeaways - useState lazy load and react hook flow</title><link>https://dejan.vasic.com.au/blog/2021/08/epic-react-course-key-takeaways/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2021/08/epic-react-course-key-takeaways/</guid><description>Learning react hooks and patterns from Kent C Dodds Epic React course</description><pubDate>Mon, 23 Aug 2021 00:00:00 GMT</pubDate><category>react</category><category>react-hooks</category><category>education</category></item><item><title>Auth0 and Apollo GraphQL handling token expiry</title><link>https://dejan.vasic.com.au/blog/2021/04/auth0-and-apollo-graphql-handling-token-expiry/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2021/04/auth0-and-apollo-graphql-handling-token-expiry/</guid><description>Handling token expiry with Auth0 and Apollo GraphQL</description><pubDate>Sun, 18 Apr 2021 00:00:00 GMT</pubDate><category>apollo</category><category>auth0</category><category>graphql</category><category>jwt</category><category>react</category></item><item><title>Ant Design Async Input Validation</title><link>https://dejan.vasic.com.au/blog/2020/12/ant-design-async-validation/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2020/12/ant-design-async-validation/</guid><description>How to perform async server-side validation for unique phone/email fields in Ant Design forms using Apollo GraphQL.</description><pubDate>Mon, 21 Dec 2020 00:00:00 GMT</pubDate><category>ant-design</category><category>forms</category><category>graphql</category><category>react</category><category>server-side-validation</category><category>validation</category></item><item><title>Ant Design Upload to S3 Bucket and GraphQL</title><link>https://dejan.vasic.com.au/blog/2020/09/ant-design-upload-to-s3-bucket-and-graphql/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2020/09/ant-design-upload-to-s3-bucket-and-graphql/</guid><description>How to use Ant Design&apos;s Upload component to upload files to AWS S3 with GraphQL and signed URLs.</description><pubDate>Thu, 10 Sep 2020 00:00:00 GMT</pubDate><category>ant-design</category><category>aws</category><category>graphql</category><category>react</category><category>s3</category></item><item><title>Serving React SPA in Koa</title><link>https://dejan.vasic.com.au/blog/2020/08/serving-react-spa-in-koa/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2020/08/serving-react-spa-in-koa/</guid><description>Serving a React SPA and static sites with Koa and handling client-side routing.</description><pubDate>Sat, 22 Aug 2020 00:00:00 GMT</pubDate><category>react</category><category>koa</category><category>spa</category><category>graphql</category></item><item><title>CircleCi and Heroku Orb</title><link>https://dejan.vasic.com.au/blog/2020/06/circleci-and-heroku-orb/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2020/06/circleci-and-heroku-orb/</guid><description>How to use the Heroku Orb in CircleCI to deploy and set build numbers as environment variables.</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate><category>circleci</category><category>heroku</category></item><item><title>React Typescript and Ant Design</title><link>https://dejan.vasic.com.au/blog/2020/06/react-typescript-and-ant-design/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2020/06/react-typescript-and-ant-design/</guid><description>A lean React + TypeScript + Ant Design boilerplate with theming and modern tooling.</description><pubDate>Fri, 05 Jun 2020 00:00:00 GMT</pubDate><category>ant-design</category><category>antdesign</category><category>boilerplate</category><category>react</category><category>template</category><category>theming</category><category>typescript</category><category>webpack</category></item><item><title>Sequelize 5 with Typescript</title><link>https://dejan.vasic.com.au/blog/2020/04/sequelize-5-with-typescript/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2020/04/sequelize-5-with-typescript/</guid><description>Using Sequelize v5 with TypeScript for Postgres, including model setup and type safety tips.</description><pubDate>Sun, 05 Apr 2020 00:00:00 GMT</pubDate><category>JavaScript</category><category>Postgres</category><category>Sequelize</category><category>typescript</category></item><item><title>YNAB You really do need a budget</title><link>https://dejan.vasic.com.au/blog/2020/01/ynab-you-really-do-need-a-budget/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2020/01/ynab-you-really-do-need-a-budget/</guid><description>Personal budgeting lessons and strategies using the YNAB app.</description><pubDate>Wed, 15 Jan 2020 00:00:00 GMT</pubDate><category>API</category><category>Banks</category><category>Budgeting</category><category>Finance</category><category>software</category><category>YNAB</category></item><item><title>Unit of work with node mssql and typescript</title><link>https://dejan.vasic.com.au/blog/2020/01/unit-of-work-with-node-mssql-and-typescript/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2020/01/unit-of-work-with-node-mssql-and-typescript/</guid><description>Implementing a unit of work pattern for atomic transactions in Node.js with TypeScript and MSSQL.</description><pubDate>Fri, 03 Jan 2020 00:00:00 GMT</pubDate><category>javascript</category><category>lambda</category><category>node</category><category>typescript</category></item><item><title>Managing Postgres database locally with Docker</title><link>https://dejan.vasic.com.au/blog/2019/11/managing-postgres-database-locally-with-docker/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2019/11/managing-postgres-database-locally-with-docker/</guid><description>How to use Docker to run and manage a local Postgres database for development.</description><pubDate>Thu, 07 Nov 2019 00:00:00 GMT</pubDate><category>development</category><category>docker</category><category>Postgres</category></item><item><title>GoLang api logging with correlation ID</title><link>https://dejan.vasic.com.au/blog/2019/11/golang-logging-with-correlation-id/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2019/11/golang-logging-with-correlation-id/</guid><description>Correlating API logs in Go using correlation/request IDs for better traceability.</description><pubDate>Fri, 01 Nov 2019 00:00:00 GMT</pubDate><category>API</category><category>BestPractices</category><category>CorrelationID</category><category>Golang</category><category>Logging</category><category>Microservicea</category><category>RequestID</category></item><item><title>Paging in Postgres and Java</title><link>https://dejan.vasic.com.au/blog/2019/01/paging-in-postgres-and-java/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2019/01/paging-in-postgres-and-java/</guid><description>Paging is a common problem in large datasets. Here is a simple solution using Postgres and Java.</description><pubDate>Thu, 03 Jan 2019 00:00:00 GMT</pubDate><category>postgres</category><category>paging</category><category>java</category></item><item><title>AngularJs Password Strength Indicator with Bootstrap</title><link>https://dejan.vasic.com.au/blog/2015/02/angularjs-password-strength-with-bootstrap/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2015/02/angularjs-password-strength-with-bootstrap/</guid><description>Building a password strength indicator using AngularJS and Bootstrap</description><pubDate>Sat, 07 Feb 2015 00:00:00 GMT</pubDate><category>angularjs</category><category>password</category><category>bootstrap</category></item><item><title>Javascript file upload chunking using JQuery and Bootstrap progress bar</title><link>https://dejan.vasic.com.au/blog/2013/12/javascript-file-upload-chunking-with-jquery/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2013/12/javascript-file-upload-chunking-with-jquery/</guid><description>Uploading is not easy and chunking is even harder. Here is a simple solution using JQuery and Bootstrap progress bar.</description><pubDate>Tue, 03 Dec 2013 00:00:00 GMT</pubDate><category>jquery</category><category>javascript</category><category>upload</category><category>chunking</category><category>progress bar</category><category>bootstrap</category></item><item><title>Generating full Content URL in ASP.MVC</title><link>https://dejan.vasic.com.au/blog/2013/03/generating-full-content-url-in-asp-mvc/</link><guid isPermaLink="true">https://dejan.vasic.com.au/blog/2013/03/generating-full-content-url-in-asp-mvc/</guid><description>Absolute URL generation in ASP.NET MVC</description><pubDate>Tue, 26 Mar 2013 00:00:00 GMT</pubDate><category>asp.net</category><category>mvc</category><category>url</category></item></channel></rss>