41554 blogs · [ { "id": "01a087af-958a-70b1-b028-f43abf36ff24", "title": "Validate HTTP request with Zod", "url": "https://www.nico.fyi/blog/validate-http-request-with-zod", "published_at": "2025-11-10T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43abfc4645a", "title": "Quick look into the useEffectEvent", "url": "https://www.nico.fyi/blog/quick-look-use-effect-event", "published_at": "2025-10-02T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac05f8274", "title": "Cancel action or modify payload before useActionState", "url": "https://www.nico.fyi/blog/new-feature-for-use-resettable-action-state", "published_at": "2025-08-24T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac15422ae", "title": "Taming React Component", "url": "https://www.nico.fyi/blog/taming-react-component", "published_at": "2025-08-17T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac15ff8cb", "title": "How to use multiple Prisma schemas in a Next.js monorepo", "url": "https://www.nico.fyi/blog/how-to-use-multiple-prisma-schema-in-nextjs-monorepo", "published_at": "2025-07-21T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac1fc4fcf", "title": "Introducing DataQueue", "url": "https://www.nico.fyi/blog/dataqueue-dev-background-job-queue-postgresql-typescript", "published_at": "2025-07-15T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac25edc40", "title": "How to test React Server Component", "url": "https://www.nico.fyi/blog/how-to-test-react-server-component", "published_at": "2025-07-06T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac276a4cc", "title": "How to take screenshots of your statically exported Next.js site in GitHub Actions workflow", "url": "https://www.nico.fyi/blog/how-to-take-screenshots-in-github-actions-workflow", "published_at": "2025-06-17T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac2d3bedd", "title": "Stop mocking Prisma in tests - Part 1", "url": "https://www.nico.fyi/blog/stop-mocking-prisma-in-tests", "published_at": "2025-06-16T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac35a8ca1", "title": "Multiple Async Local Storage", "url": "https://www.nico.fyi/blog/multiple-async-local-storage", "published_at": "2025-06-15T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac3b16f5a", "title": "Use Async Local Storage to prevent props drilling in Next.js Route handlers", "url": "https://www.nico.fyi/blog/async-local-storage-to-prevent-props-drilling", "published_at": "2025-06-09T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac4778ba3", "title": "How to handle date and time correctly in your fullstack JS web app", "url": "https://www.nico.fyi/blog/handle-date-time-correctly-in-your-fullstack-js-web-app", "published_at": "2025-06-07T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac52f53d4", "title": "Is Vibe Coding the Future?", "url": "https://www.nico.fyi/blog/is-vibe-coding-the-future", "published_at": "2025-05-05T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac591f646", "title": "How to deploy Bluesky Later to DigitalOcean Droplet", "url": "https://www.nico.fyi/blog/how-to-deploy-blueskylater-to-digitalocean-droplet", "published_at": "2025-02-18T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac5e6f023", "title": "How to automatically update GitHub project on new release", "url": "https://www.nico.fyi/blog/automatically-update-github-project-on-new-release", "published_at": "2025-02-13T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac6254f4e", "title": "How to deploy Bluesky Later on your own server using Coolify", "url": "https://www.nico.fyi/blog/how-to-deploy-blueskylater-using-coolify", "published_at": "2025-02-12T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac629c316", "title": "Send E-mail after Creating a New Release in GitHub", "url": "https://www.nico.fyi/blog/send-email-after-github-release", "published_at": "2025-01-28T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac69f228d", "title": "Be careful with useSyncExternalStore", "url": "https://www.nico.fyi/blog/be-careful-with-usesyncexternalstore", "published_at": "2024-11-17T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac6fcfc06", "title": "How to generate subtitles from video using LLM in a single command", "url": "https://www.nico.fyi/blog/generate-subtitles-from-video-using-llm-ai-in-a-single-command", "published_at": "2024-11-14T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac7e264e6", "title": "Bluesky later: Schedule Bluesky post in the future for FREE", "url": "https://www.nico.fyi/blog/bluesky-later-schedule-bluesky-post-in-the-future", "published_at": "2024-11-12T00:00:00+00:00" }, { "id": "01a087af-958a-70b1-b028-f43ac87db4e4", "title": "Implementing Exclusive Relationships in PostgreSQL and Prisma", "url": "https://www.nico.fyi/blog/exclusive-relationships-in-postgresql", "published_at": "2024-11-02T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf1611b8b71", "title": "Instructions for v0 and GPT to generate high quality React code", "url": "https://www.nico.fyi/blog/llm-instructions-for-v0-and-gpt", "published_at": "2024-10-31T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf161df34ed", "title": "On-the-fly feature flag in Next.js with Google Sheets", "url": "https://www.nico.fyi/blog/on-the-fly-feature-flag-with-google-sheets", "published_at": "2024-10-16T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf162b6dca5", "title": "Running Long Jobs with Queues in Next.js using Bull and Redis", "url": "https://www.nico.fyi/blog/long-running-jobs-nextjs-redis-bull", "published_at": "2024-10-11T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf163259bb1", "title": "How to prevent re-render in React with Tailwind CSS", "url": "https://www.nico.fyi/blog/tailwind-css-group-modifier-to-prevent-react-rerender", "published_at": "2024-10-10T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf1634b2998", "title": "Code based routing in Next.js", "url": "https://www.nico.fyi/blog/next-js-code-config-based-routing", "published_at": "2024-10-06T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf163e7bb19", "title": "SSR-friendly Custom React Hook for Local Storage Read and Write", "url": "https://www.nico.fyi/blog/ssr-friendly-local-storage-react-custom-hook", "published_at": "2024-09-29T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf164dc5e06", "title": "How to manipulate search params in Next.js easily", "url": "https://www.nico.fyi/blog/how-to-manipulate-search-params-in-next-js", "published_at": "2024-09-28T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf16558287a", "title": "How to reset the state of useActionState in React", "url": "https://www.nico.fyi/blog/reset-state-from-react-useactionstate", "published_at": "2024-09-24T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf166471564", "title": "How to protect Next.js App Router's page with authorization check", "url": "https://www.nico.fyi/blog/protect-nextjs-page-with-authorization-check", "published_at": "2024-09-23T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf166d36f98", "title": "How to create infinite scroll with server action and useActionState in Next.js", "url": "https://www.nico.fyi/blog/infinite-scroll-with-server-action-and-use-action-state", "published_at": "2024-09-22T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf167375dfd", "title": "How to deploy a single file website to Vercel", "url": "https://www.nico.fyi/blog/how-to-deploy-single-file-website-to-vercel", "published_at": "2024-09-15T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf167384b7d", "title": "Interesting behaviour of useTransition in Next.js", "url": "https://www.nico.fyi/blog/react-usetransition-in-next-js", "published_at": "2024-09-10T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf167c66ecd", "title": "How to Show Task Sequence Progress with React Suspense and RSC in Next.js", "url": "https://www.nico.fyi/blog/next-js-sequential-tasks-progress-stepper-with-rsc-and-suspense", "published_at": "2024-09-04T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf168068886", "title": "The new TypedSQL in Prisma: Raw query with type safety", "url": "https://www.nico.fyi/blog/prisma-typed-sql", "published_at": "2024-08-28T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf168b859a6", "title": "How to deploy App Store and Beta versions of React Native iOS app from Azure DevOps pipeline", "url": "https://www.nico.fyi/blog/how-to-deploy-multiple-versions-react-native-ios-to-testflight-from-azure-devops-pipeline", "published_at": "2024-08-27T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf168bd8909", "title": "How to add comment on table and column in Postgres", "url": "https://www.nico.fyi/blog/add-comment-on-table-and-column-in-postgres", "published_at": "2024-08-17T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf168c09fe0", "title": "Quickly generate Postgres database in a single command", "url": "https://www.nico.fyi/blog/quickly-generate-postgres-database-in-a-single-command", "published_at": "2024-08-15T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf169aa18f2", "title": "How to deploy React Native iOS app to TestFlight from Azure DevOps pipeline", "url": "https://www.nico.fyi/blog/how-to-deploy-react-native-ios-to-testflight-from-azure-devops-pipeline", "published_at": "2024-08-10T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf169f114bd", "title": "Closure vs Function in JavaScript", "url": "https://www.nico.fyi/blog/the-subtle-difference-between-capture-closure-and-pass-arg-func", "published_at": "2024-08-07T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf16ad2030a", "title": "Subtle memory issues in JavaScript thanks to closures", "url": "https://www.nico.fyi/blog/memory-issue-in-javascript-and-closures", "published_at": "2024-08-04T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf16ad9ebe4", "title": "How to generate fake data in Postgres with faker_fdw", "url": "https://www.nico.fyi/blog/dockerfile-for-faker-postgres-to-generate-fake-realistic-data", "published_at": "2024-07-29T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf16b7198d5", "title": "How to run pg_cron via Dockerfile", "url": "https://www.nico.fyi/blog/dockerfile-for-pgcron-postgres-cron-job", "published_at": "2024-07-23T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf16beceec7", "title": "How to install and run pg-boss via Coolify", "url": "https://www.nico.fyi/blog/how-to-install-run-pgboss-via-coolify", "published_at": "2024-07-18T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf16cb64d66", "title": "How to install and run PgBouncer via Coolify", "url": "https://www.nico.fyi/blog/how-to-install-run-pgbouncer-via-coolify", "published_at": "2024-07-17T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf16cf78114", "title": "What every developer needs to do", "url": "https://www.nico.fyi/blog/what-every-developer-needs-to-do", "published_at": "2024-07-10T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf16d1a3a7b", "title": "Demistifying cache in Next.js", "url": "https://www.nico.fyi/blog/demistifying-cache-in-nextjs", "published_at": "2024-07-07T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf16dba1e4b", "title": "Pull Request Best Practices: Name Nitpicking is OK", "url": "https://www.nico.fyi/blog/pull-request-best-practices-names-nitpicking-is-ok", "published_at": "2024-07-02T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf16e74a886", "title": "The unintuitive default behaviors in Next.js 14 App Router", "url": "https://www.nico.fyi/blog/the-unintuitive-next-js-defaults", "published_at": "2024-07-01T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf16ecd6d50", "title": "How to create SFTP-only user in Ubuntu Server", "url": "https://www.nico.fyi/blog/create-sftp-only-user-in-ubuntu-server", "published_at": "2024-06-24T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf16f5ed139", "title": "Why Ignoring Sunk Costs Leads to Better Decision Making", "url": "https://www.nico.fyi/blog/why-ignoring-sunk-cost-leads-to-better-decision-making", "published_at": "2024-06-20T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf16fc62e99", "title": "How to deploy a Next.js app with Prisma and Postgres using Coolify", "url": "https://www.nico.fyi/blog/deploy-next-js-prisma-postgres-using-coolify", "published_at": "2024-06-19T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17000e77f", "title": "Simplify data fetching with RSC, Suspense, and use API in Next.js", "url": "https://www.nico.fyi/blog/simplify-data-fetching-with-rsc-suspense-and-use-api-in-next-js", "published_at": "2024-06-18T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf170abdc54", "title": "How to fix invalid login in Minio deployed via Coolify", "url": "https://www.nico.fyi/blog/how-to-fix-invalid-login-in-minio-deployed-via-coolify", "published_at": "2024-06-17T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17198d1d2", "title": "Blocking External Access to PostgreSQL in Docker with UFW on Ubuntu", "url": "https://www.nico.fyi/blog/blocking-external-access-to-postgres-in-docker-with-ufw-in-ubuntu", "published_at": "2024-06-14T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf1720cedc6", "title": "How to render zoomable image with Shadcn UI and Tailwind CSS in Next.js", "url": "https://www.nico.fyi/blog/easy-zoomable-image-with-shadcn-tailwind", "published_at": "2024-06-12T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf172fdedc0", "title": "Making a User-Friendly, Smart, and Secure AI Assistant Chatbot", "url": "https://www.nico.fyi/blog/user-friendly-ai-chatbot-with-vercel-ai-sdk-and-gpt", "published_at": "2024-06-10T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17346938e", "title": "How to correctly display a list of languages", "url": "https://www.nico.fyi/blog/how-to-correctly-display-list-of-languages", "published_at": "2024-06-07T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17425c44e", "title": "Nesktop: Make an offline desktop app with Next.js", "url": "https://www.nico.fyi/blog/nesktop-make-desktop-app-with-next-js", "published_at": "2024-06-04T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf174318006", "title": "The new maxAutomaticRoundtrips in Vercel AI SDK", "url": "https://www.nico.fyi/blog/max-automatic-roundtrips-vercel-ai-sdk-simplify-tool-calling", "published_at": "2024-06-03T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf174fe8a47", "title": "Simple i18n for Next.js is smarter now", "url": "https://www.nico.fyi/blog/simple-i18n-next-update", "published_at": "2024-05-27T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf175d79fbf", "title": "Simple Internationalization for Next.js with Plurals Support", "url": "https://www.nico.fyi/blog/simple-i18n-next-with-plurals-support", "published_at": "2024-05-22T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf175fa25b4", "title": "How to easily secure Next.js projects", "url": "https://www.nico.fyi/blog/how-to-easily-secure-next-js-projects", "published_at": "2024-05-20T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf1768e8108", "title": "How to correctly split a string into words in JavaScript", "url": "https://www.nico.fyi/blog/how-to-correctly-split-string-into-words-in-javascript", "published_at": "2024-05-16T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf177122681", "title": "Internationalization for Next.js Without Hassle", "url": "https://www.nico.fyi/blog/internationalization-for-next-js", "published_at": "2024-05-14T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf177a617e8", "title": "Stop using environment variable directly in your TypeScript code", "url": "https://www.nico.fyi/blog/stop-using-environment-variable-directly", "published_at": "2024-05-13T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17872ab0a", "title": "How to unit test Next.js API route", "url": "https://www.nico.fyi/blog/how-to-unit-test-nextjs-api-route", "published_at": "2024-05-09T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf1790363e5", "title": "How to show popular posts using PostHog", "url": "https://www.nico.fyi/blog/how-to-show-popular-posts-using-posthog", "published_at": "2024-05-08T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17963b3f2", "title": "How to use a page or website screenshot as an Open Graph image", "url": "https://www.nico.fyi/blog/how-to-use-page-screenshot-as-open-graph-image", "published_at": "2024-05-07T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf179f1c62c", "title": "How to have animated nav tabs with React and Tailwind CSS", "url": "https://www.nico.fyi/blog/animated-nav-link-tabs-like-vercel", "published_at": "2024-05-06T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17a3da7df", "title": "How to Feed the Function Call Result Back to the Model with Vercel AI SDK", "url": "https://www.nico.fyi/blog/vercel-ai-function-call-tool-example", "published_at": "2024-05-03T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17b25c320", "title": "How to stop rejections from bringing you down", "url": "https://www.nico.fyi/blog/how-to-stop-rejections-from-bringing-you-down-by-reframing", "published_at": "2024-05-02T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17bfc4808", "title": "How to clone only specific folder in Git repo", "url": "https://www.nico.fyi/blog/how-to-clone-only-specific-folder-in-git-repo", "published_at": "2024-04-30T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17c8d112c", "title": "How I accidentally increase Vercel usage", "url": "https://www.nico.fyi/blog/how-i-accidentally-increase-vercel-usage", "published_at": "2024-04-29T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17c96a828", "title": "React Strict Mode and Race Condition", "url": "https://www.nico.fyi/blog/react-strict-mode-and-race-condition", "published_at": "2024-04-25T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17cf57971", "title": "How to cancel fetch on demand OR with timeout", "url": "https://www.nico.fyi/blog/cancel-fetch-js-correctly", "published_at": "2024-04-24T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17d910d13", "title": "You don't need useState in React", "url": "https://www.nico.fyi/blog/you-dont-need-usestate-in-react", "published_at": "2024-04-23T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17e11e059", "title": "server-only package is empty?!", "url": "https://www.nico.fyi/blog/server-only-package", "published_at": "2024-04-17T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17e5d2244", "title": "Understanding Layout and Template Next.js App Router", "url": "https://www.nico.fyi/blog/understanding-layout-and-template-next-app-router", "published_at": "2024-04-16T00:00:00+00:00" }, { "id": "01a087af-958b-72ea-9c97-adf17ed9df63", "title": "Overcoming Next.js' Search Params Limitation in Layouts", "url": "https://www.nico.fyi/blog/workaround-layout-has-no-search-params", "published_at": "2024-04-15T00:00:00+00:00" }, { "id": "01a087af-958c-703b-8170-dbc926aaec2d", "title": "Should you use Vercel?", "url": "https://www.nico.fyi/blog/should-you-use-vercel", "published_at": "2024-04-09T00:00:00+00:00" }, { "id": "01a087af-958d-72a3-811d-e3a063fb86a8", "title": "A Simple Guide to Using section-* in HTML Forms for Autocomplete", "url": "https://www.nico.fyi/blog/html-input-autocomplete-section", "published_at": "2024-03-29T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b1d8144ea", "title": "How to have multiple root layouts in Next.js with App Router", "url": "https://www.nico.fyi/blog/next-js-multiple-root-layout", "published_at": "2024-03-28T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b1e01907a", "title": "Simple guide to Monty Hall problem", "url": "https://www.nico.fyi/blog/monty-hall-problem", "published_at": "2024-03-27T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b1e3342c0", "title": "Temporal Dead Zone in Javascript", "url": "https://www.nico.fyi/blog/temporal-dead-zone-javascript", "published_at": "2024-03-26T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b1e90595c", "title": "Technocentrism Caused Me to Falsely Assume About the Deaf", "url": "https://www.nico.fyi/blog/technocentrism-caused-falsely-assume-deaf", "published_at": "2024-03-25T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b1eee7508", "title": "How to report bugs to developers", "url": "https://www.nico.fyi/blog/how-to-report-bug", "published_at": "2024-03-22T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b1fbd9f6b", "title": "JavaScript Tag Functions", "url": "https://www.nico.fyi/blog/javascript-tag-function", "published_at": "2024-03-21T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b201c112a", "title": "Populate Postgres database with fake data", "url": "https://www.nico.fyi/blog/populate-postgres-fake-data", "published_at": "2024-03-20T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b20f0c74b", "title": "A few words on \"A few words on testing\"", "url": "https://www.nico.fyi/blog/a-few-words-on-a-few-words-on-testing", "published_at": "2024-03-19T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b21e59c61", "title": "Will humans still have the edge over AI?", "url": "https://www.nico.fyi/blog/will-humans-still-have-the-edge-over-ai", "published_at": "2024-03-18T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b221b6980", "title": "How to scale luck", "url": "https://www.nico.fyi/blog/how-to-scale-luck", "published_at": "2024-03-11T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b22c02a1c", "title": "Using generator function in React", "url": "https://www.nico.fyi/blog/using-generator-function-in-react", "published_at": "2024-03-08T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b23a35159", "title": "The main problem with Next.js 14 now", "url": "https://www.nico.fyi/blog/the-problem-with-next-js-14", "published_at": "2024-03-07T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b246e7b62", "title": "The Quality That Delights: OTP auto fill input", "url": "https://www.nico.fyi/blog/the-quality-that-delights-otp-auto-fill", "published_at": "2024-03-06T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b255c9a4c", "title": "The new join relation in Prisma", "url": "https://www.nico.fyi/blog/prisma-join-relation", "published_at": "2024-03-05T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b258b0f37", "title": "useSyncExternalStore is awesome", "url": "https://www.nico.fyi/blog/use-sync-external-store-in-react", "published_at": "2024-03-04T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b261d0129", "title": "The Locksmith Paradox", "url": "https://www.nico.fyi/blog/the-locksmith-paradox", "published_at": "2024-03-01T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b2706e56c", "title": "The power of two random choices", "url": "https://www.nico.fyi/blog/the-power-of-two-random-choices", "published_at": "2024-02-29T00:00:00+00:00" }, { "id": "01a087af-9590-718b-869f-222b27c6f4fc", "title": "You should start using with and at methods in Javascript", "url": "https://www.nico.fyi/blog/array-with-and-at-in-javascript", "published_at": "2024-02-28T00:00:00+00:00" } ] posts Claim your blog
Back to nico.fyi
Blog · corpus.blog/blogs/nico.fyi/posts

nico.fyi

nico.fyi

2025

2024