{"id":"df191246-6da7-4625-aa4b-62d0f073a13a","timestamp":1793748915939,"matcher":{"static":{"/cfp/laravel-serbia":{"redirect":"/talks"},"/lwm":{"redirect":"/laravel-worldwide-meetup"},"/blog/10-efficient-and-fun-ways-to-seed-your-database":{"redirect":"https://tighten.com/insights/10-efficient-and-fun-ways-to-seed-your-database/"},"/blog/build-an-ai-powered-drawing-guessing-game-with-laravel-prism-and-html-canvas":{"redirect":"https://tighten.com/insights/build-an-ai-powered-drawing-guessing-game-with-laravel-prism-and-html-canvas/"},"/blog/build-private-self-hosted-ai-applications-with-ollama-and-laravel":{"redirect":"https://tighten.com/insights/build-private-self-hosted-ai-applications-with-ollama-and-laravel/"},"/blog/build-your-own-ai-powered-slack-bot-with-the-laravel-ai-sdk":{"redirect":"https://tighten.com/insights/build-your-own-ai-powered-slack-bot-with-the-laravel-ai-sdk/"},"/blog/chat-with-your-documents-a-practical-guide-to-rag-using-the-new-laravel-ai-sdk":{"redirect":"https://tighten.com/insights/chat-with-your-documents-a-practical-guide-to-rag-using-the-new-laravel-ai-sdk/"},"/blog/filament-crash-course-create-a-customizable-admin-panel-in-minutes":{"redirect":"https://tighten.com/insights/filament-crash-course-create-a-customizable-admin-panel-in-minutes/"},"/blog/five-practical-tips-to-improve-search-in-laravel-apps-with-typesense":{"redirect":"https://tighten.com/insights/five-practical-tips-to-improve-search-in-laravel-apps-with-typesense"},"/blog/form-validation-with-type-inference-made-easy-with-zod-the-best-sidekick-for-typescript":{"redirect":"https://tighten.com/insights/form-validation-with-type-inference-made-easy-with-zod-the-best-sidekick-for-typescript/"},"/blog/from-mysql-to-typesense-blazing-fast-full-text-search-in-laravel":{"redirect":"https://tighten.com/insights/blazing-fast-full-text-search-in-laravel-from-mysql-to-typesense/"},"/blog/how-to-automatically-generate-dynamic-opengraph-images-for-all-your-site-pages":{"redirect":"https://tighten.com/insights/how-to-automatically-generate-dynamic-opengraph-images-for-all-your-site-pages/"},"/blog/husky-how-to-automatically-format-lint-and-test-before-you-commit-or-push":{"redirect":"https://tighten.com/insights/husky-how-to-automatically-format-lint-and-test-before-you-commit-or-push/"},"/blog/i-broke-production-what-now":{"redirect":"https://tighten.com/insights/i-broke-production-what-now/"},"/blog/new-ish-vanilla-javascript-features-you-might-have-missed":{"redirect":"https://tighten.com/insights/new-ish-vanilla-javascript-features-you-might-have-missed/"},"/blog/nuxt-superpowers-for-your-vue-3-application":{"redirect":"https://tighten.com/insights/nuxt-superpowers-for-your-vue-3-application/"},"/blog/run-ai-in-the-browser-a-practical-guide-to-transformers-js":{"redirect":"https://tighten.com/insights/run-ai-in-the-browser-a-practical-guide-to-transformers-js/"},"/blog/sql-generated-columns-and-views-how-to-use-them-in-your-laravel-app":{"redirect":"https://tighten.com/insights/sql-generated-columns-and-views-how-to-use-them-in-your-laravel-app/"},"/blog/state-management-in-vue-3-why-you-should-try-out-pinia":{"redirect":"https://tighten.com/insights/state-management-in-vue-3-why-you-should-try-out-pinia/"},"/blog/use-htmx-to-create-laravel-single-page-apps-without-writing-javascript":{"redirect":"https://tighten.com/insights/use-htmx-to-create-laravel-single-page-apps-without-writing-javascript/"},"/blog/web-workers-a-second-thread-for-your-javascript":{"redirect":"https://tighten.com/insights/web-workers-a-second-thread-for-your-javascript/"},"/__nuxt_content/pages/sql_dump.txt":{"prerender":true},"/__nuxt_content/blog/sql_dump.txt":{"prerender":true},"/__nuxt_content/jobs/sql_dump.txt":{"prerender":true},"/__nuxt_content/cfpIntros/sql_dump.txt":{"prerender":true},"/__nuxt_content/cfpEvents/sql_dump.txt":{"prerender":true},"/__nuxt_content/cfpProposals/sql_dump.txt":{"prerender":true},"/__nuxt_content/topics/sql_dump.txt":{"prerender":true},"/__nuxt_content/talks/sql_dump.txt":{"prerender":true}},"wildcard":{},"dynamic":{}},"prerendered":["/cfp/vueverse","/cfp/laravelday","/cfp/laravel-live-denmark","/cfp/zurich-js","/cfp/laracon-au","/cfp/laravelday-it","/cfp/frontend-nation","/cfp/laravel-live-uk","/cfp/laravel-worldwide-meetup","/cfp/phptek","/","/laravel-serbia","/vueverse","/vue-sri-lanka","/laravel-worldwide-meetup","/madvue","/about-me","/talks","/contact","/blog","/blog/build-command-line-tools-in-typescript-a-step-by-step-guide","/blog/advanced-agentic-workflows-with-stacked-skills","/blog/climail-the-email-client-for-your-agent","/blog/skills-i-know-kung-fu","/blog/did-webmasters-go-extinct","/blog/real-time-vue-apps-part-3-webrtc-and-peerjs","/blog/real-time-vue-apps-part-1-polling-and-server-sent-events","/blog/real-time-vue-apps-part-2-websockets-and-real-time-databases","/blog/building-a-platformer-game-with-vue-and-pixijs","/blog/vue-vapor-goodbye-virtual-dom","/blog/run-multiple-node-js-apps-on-one-server-with-pm2","/blog/automatically-deploy-your-nuxt-static-site-to-digitalocean-with-github-actions","/blog/a-step-by-step-guide-to-setting-up-permissions-on-your-linux-web-server","/frontendnation"]}