<?xml version="1.0" encoding="UTF-8"?><feed
	xmlns="http://www.w3.org/2005/Atom"
	xmlns:thr="http://purl.org/syndication/thread/1.0"
	xml:lang="en-US"
	>
	<title type="text">Danny Herran</title>
	<subtitle type="text">Coding is fun</subtitle>

	<updated>2025-06-02T20:18:24Z</updated>

	<link rel="alternate" type="text/html" href="https://dannyherran.com/" />
	<id>https://dannyherran.com/feed/atom/</id>
	<link rel="self" type="application/atom+xml" href="https://dannyherran.com/feed/atom/" />

	<generator uri="https://wordpress.org/" version="6.9.4">WordPress</generator>
<icon>https://dannyherran.com/wp-content/uploads/2025/05/favicon.png</icon>
	<entry>
		<author>
			<name>Danny Herran</name>
							<uri>https://dannyherran.com</uri>
						</author>

		<title type="html"><![CDATA[I made a simple web app entirely with AI and this is what I learned]]></title>
		<link rel="alternate" type="text/html" href="https://dannyherran.com/2025/05/i-made-a-simple-web-app-entirely-with-ai-and-this-is-what-i-learned/" />

		<id>https://dannyherran.com/?p=1102</id>
		<updated>2025-06-02T20:18:24Z</updated>
		<published>2025-05-30T18:50:00Z</published>
		<category scheme="https://dannyherran.com/" term="Other Stuff" /><category scheme="https://dannyherran.com/" term="ai" /><category scheme="https://dannyherran.com/" term="claude" /><category scheme="https://dannyherran.com/" term="cloudflare" /><category scheme="https://dannyherran.com/" term="gemini" /><category scheme="https://dannyherran.com/" term="llm" /><category scheme="https://dannyherran.com/" term="react" /><category scheme="https://dannyherran.com/" term="typescript" />
		<summary type="html"><![CDATA[<p>I wanted to turn the following quest flowchart for Cyberpunk 2077 that I found on Reddit (kudos to /u/rolux for designing this) into a simple web tracker with local storage. Due to the complexity of the quest tree, I already knew building this would be a challenge for any model. So I put them to [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2025/05/i-made-a-simple-web-app-entirely-with-ai-and-this-is-what-i-learned/">I made a simple web app entirely with AI and this is what I learned</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></summary>

		
					<link rel="replies" type="text/html" href="https://dannyherran.com/2025/05/i-made-a-simple-web-app-entirely-with-ai-and-this-is-what-i-learned/#comments" thr:count="0" />
			<link rel="replies" type="application/atom+xml" href="https://dannyherran.com/2025/05/i-made-a-simple-web-app-entirely-with-ai-and-this-is-what-i-learned/feed/atom/" thr:count="0" />
			<thr:total>0</thr:total>
			</entry>
		<entry>
		<author>
			<name>Danny Herran</name>
							<uri>https://dannyherran.com</uri>
						</author>

		<title type="html"><![CDATA[Cooler Master NCORE 100 MAX Fan Swap Mod]]></title>
		<link rel="alternate" type="text/html" href="https://dannyherran.com/2025/05/cooler-master-ncore-100-max-fan-swap-mod/" />

		<id>https://dannyherran.com/?p=1065</id>
		<updated>2025-05-18T17:21:33Z</updated>
		<published>2025-05-18T17:21:32Z</published>
		<category scheme="https://dannyherran.com/" term="Other Stuff" /><category scheme="https://dannyherran.com/" term="coolermaster" /><category scheme="https://dannyherran.com/" term="gaming" /><category scheme="https://dannyherran.com/" term="modding" /><category scheme="https://dannyherran.com/" term="noctua" /><category scheme="https://dannyherran.com/" term="pc" />
		<summary type="html"><![CDATA[<p>The NCORE 100 is a small form factor (SFF) case that looks absolutely fantastic. However, the stock fans from Cooler Master are quite noisy. If you’re considering getting the NCORE 100 MAX, setting aside some extra budget to replace the stock fans with Noctuas will make the case roughly 50% quieter. With the stock fans, [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2025/05/cooler-master-ncore-100-max-fan-swap-mod/">Cooler Master NCORE 100 MAX Fan Swap Mod</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></summary>

		
					<link rel="replies" type="text/html" href="https://dannyherran.com/2025/05/cooler-master-ncore-100-max-fan-swap-mod/#comments" thr:count="0" />
			<link rel="replies" type="application/atom+xml" href="https://dannyherran.com/2025/05/cooler-master-ncore-100-max-fan-swap-mod/feed/atom/" thr:count="0" />
			<thr:total>0</thr:total>
			</entry>
		<entry>
		<author>
			<name>Danny Herran</name>
							<uri>https://dannyherran.com</uri>
						</author>

		<title type="html"><![CDATA[Laravel Sanctum optional route authentication and guard selection]]></title>
		<link rel="alternate" type="text/html" href="https://dannyherran.com/2022/01/laravel-sanctum-optional-route-authentication-guard/" />

		<id>https://dannyherran.com/?p=925</id>
		<updated>2025-05-17T19:39:22Z</updated>
		<published>2022-01-18T22:25:05Z</published>
		<category scheme="https://dannyherran.com/" term="Backend" /><category scheme="https://dannyherran.com/" term="laravel" /><category scheme="https://dannyherran.com/" term="php" />
		<summary type="html"><![CDATA[<p>By default, Laravel Sanctum token authentication will either completely block access to protected routes or allow it at the expense of not being able to detect if the user is logged in. However, there are valid scenarios whereby a route should be accessible to guests and at the same time allow bearer token authentication. One [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2022/01/laravel-sanctum-optional-route-authentication-guard/">Laravel Sanctum optional route authentication and guard selection</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></summary>

		
					<link rel="replies" type="text/html" href="https://dannyherran.com/2022/01/laravel-sanctum-optional-route-authentication-guard/#comments" thr:count="0" />
			<link rel="replies" type="application/atom+xml" href="https://dannyherran.com/2022/01/laravel-sanctum-optional-route-authentication-guard/feed/atom/" thr:count="0" />
			<thr:total>0</thr:total>
			</entry>
		<entry>
		<author>
			<name>Danny Herran</name>
							<uri>https://dannyherran.com</uri>
						</author>

		<title type="html"><![CDATA[Tailwind CSS with Parcel v2]]></title>
		<link rel="alternate" type="text/html" href="https://dannyherran.com/2021/08/tailwind-css-with-parcel-v2/" />

		<id>https://dannyherran.com/?p=917</id>
		<updated>2025-05-17T19:41:14Z</updated>
		<published>2021-08-28T20:19:11Z</published>
		<category scheme="https://dannyherran.com/" term="Frontend" /><category scheme="https://dannyherran.com/" term="css" /><category scheme="https://dannyherran.com/" term="parcel" /><category scheme="https://dannyherran.com/" term="tailwind" />
		<summary type="html"><![CDATA[<p>Getting Tailwind to compile with Parcel v2 is easier than ever. We will leverage the Parcel v2 PostCSS support to automatically compile Tailwind assets with little configuration. I assume that you use yarn for all node packages. If you use npm please use the equivalent commands. Start by initializing your project with: yarn init Then [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2021/08/tailwind-css-with-parcel-v2/">Tailwind CSS with Parcel v2</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></summary>

		
					<link rel="replies" type="text/html" href="https://dannyherran.com/2021/08/tailwind-css-with-parcel-v2/#comments" thr:count="0" />
			<link rel="replies" type="application/atom+xml" href="https://dannyherran.com/2021/08/tailwind-css-with-parcel-v2/feed/atom/" thr:count="0" />
			<thr:total>0</thr:total>
			</entry>
		<entry>
		<author>
			<name>Danny Herran</name>
							<uri>https://dannyherran.com</uri>
						</author>

		<title type="html"><![CDATA[Stay Meta &#8211; a social platform for gamers]]></title>
		<link rel="alternate" type="text/html" href="https://dannyherran.com/2021/07/stay-meta-a-social-platform-for-gamers/" />

		<id>https://dannyherran.com/?p=902</id>
		<updated>2025-05-17T19:46:58Z</updated>
		<published>2021-07-30T16:24:54Z</published>
		<category scheme="https://dannyherran.com/" term="Social Networking" /><category scheme="https://dannyherran.com/" term="gaming" />
		<summary type="html"><![CDATA[<p>Reddit, Twitter, Twitch, and YouTube. Gamers and content creators alike use social media platforms to upload their content and stay in touch with their followers. But what if there was another way to condense them into a single, centralized location where all gaming content could converge? This is where Stay Meta comes in. I and [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2021/07/stay-meta-a-social-platform-for-gamers/">Stay Meta &#8211; a social platform for gamers</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></summary>

		
					<link rel="replies" type="text/html" href="https://dannyherran.com/2021/07/stay-meta-a-social-platform-for-gamers/#comments" thr:count="0" />
			<link rel="replies" type="application/atom+xml" href="https://dannyherran.com/2021/07/stay-meta-a-social-platform-for-gamers/feed/atom/" thr:count="0" />
			<thr:total>0</thr:total>
			</entry>
		<entry>
		<author>
			<name>Danny Herran</name>
							<uri>https://dannyherran.com</uri>
						</author>

		<title type="html"><![CDATA[Laravel reCAPTCHA v2 Middleware in 3 minutes]]></title>
		<link rel="alternate" type="text/html" href="https://dannyherran.com/2020/11/laravel-recaptcha-v2-middleware/" />

		<id>https://dannyherran.com/?p=879</id>
		<updated>2025-05-17T19:48:15Z</updated>
		<published>2020-11-05T17:43:50Z</published>
		<category scheme="https://dannyherran.com/" term="Backend" /><category scheme="https://dannyherran.com/" term="laravel" /><category scheme="https://dannyherran.com/" term="php" />
		<summary type="html"><![CDATA[<p>I needed to add reCAPTCHA v2 to a couple of forms and most of the results on Google pointed to these large Composer packages that were simply too much. This article will cover how to do create a new Laravel Middleware to validate reCAPTCHA v2 requests with just a few lines of code. Time to [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2020/11/laravel-recaptcha-v2-middleware/">Laravel reCAPTCHA v2 Middleware in 3 minutes</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></summary>

		
					<link rel="replies" type="text/html" href="https://dannyherran.com/2020/11/laravel-recaptcha-v2-middleware/#comments" thr:count="0" />
			<link rel="replies" type="application/atom+xml" href="https://dannyherran.com/2020/11/laravel-recaptcha-v2-middleware/feed/atom/" thr:count="0" />
			<thr:total>0</thr:total>
			</entry>
		<entry>
		<author>
			<name>Danny Herran</name>
							<uri>https://dannyherran.com</uri>
						</author>

		<title type="html"><![CDATA[Git squash commits in VS Code]]></title>
		<link rel="alternate" type="text/html" href="https://dannyherran.com/2020/06/git-squash-commit-vs-code/" />

		<id>https://dannyherran.com/?p=863</id>
		<updated>2025-05-17T19:48:40Z</updated>
		<published>2020-06-18T16:37:49Z</published>
		<category scheme="https://dannyherran.com/" term="Other Stuff" /><category scheme="https://dannyherran.com/" term="git" /><category scheme="https://dannyherran.com/" term="vscode" />
		<summary type="html"><![CDATA[<p>If you are looking to squash several commits into one in VS Code without having to use the console, I have a solution for you. First off you need the GitGraph plugin, which simply allows you to see the full git log history of your branches. This is handy when having to interact with specific [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2020/06/git-squash-commit-vs-code/">Git squash commits in VS Code</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></summary>

		
					<link rel="replies" type="text/html" href="https://dannyherran.com/2020/06/git-squash-commit-vs-code/#comments" thr:count="0" />
			<link rel="replies" type="application/atom+xml" href="https://dannyherran.com/2020/06/git-squash-commit-vs-code/feed/atom/" thr:count="0" />
			<thr:total>0</thr:total>
			</entry>
		<entry>
		<author>
			<name>Danny Herran</name>
							<uri>https://dannyherran.com</uri>
						</author>

		<title type="html"><![CDATA[Laravel Fractal pagination with simplePaginate]]></title>
		<link rel="alternate" type="text/html" href="https://dannyherran.com/2019/03/laravel-fractal-simplepaginate/" />

		<id>https://dannyherran.com/?p=845</id>
		<updated>2025-05-17T22:28:35Z</updated>
		<published>2019-03-08T18:29:30Z</published>
		<category scheme="https://dannyherran.com/" term="Backend" /><category scheme="https://dannyherran.com/" term="api" /><category scheme="https://dannyherran.com/" term="fractal" /><category scheme="https://dannyherran.com/" term="json" /><category scheme="https://dannyherran.com/" term="laravel" /><category scheme="https://dannyherran.com/" term="php" />
		<summary type="html"><![CDATA[<p>By default Fractal has native support for Laravel::paginate. Those using simplePaginate() have to resort to either using Fractal Cursors or build their own adapter. In this post, we are going to quickly build an adapter that fully supports Laravel::simplePaginate. This tutorial assumes you are using the amazing Laravel Fractal wrapper provided by the guys at [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2019/03/laravel-fractal-simplepaginate/">Laravel Fractal pagination with simplePaginate</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></summary>

		
					<link rel="replies" type="text/html" href="https://dannyherran.com/2019/03/laravel-fractal-simplepaginate/#comments" thr:count="0" />
			<link rel="replies" type="application/atom+xml" href="https://dannyherran.com/2019/03/laravel-fractal-simplepaginate/feed/atom/" thr:count="0" />
			<thr:total>0</thr:total>
			</entry>
		<entry>
		<author>
			<name>Danny Herran</name>
							<uri>https://dannyherran.com</uri>
						</author>

		<title type="html"><![CDATA[Importing Foundation 6.4 ES2016 JS files with your favourite module bundler]]></title>
		<link rel="alternate" type="text/html" href="https://dannyherran.com/2017/11/foundation-6-4-es2016-module-javascript/" />

		<id>https://dannyherran.com/?p=828</id>
		<updated>2025-05-17T22:29:46Z</updated>
		<published>2017-11-01T18:51:05Z</published>
		<category scheme="https://dannyherran.com/" term="Frontend" /><category scheme="https://dannyherran.com/" term="es2016" /><category scheme="https://dannyherran.com/" term="es6" /><category scheme="https://dannyherran.com/" term="foundation" /><category scheme="https://dannyherran.com/" term="javascript" />
		<summary type="html"><![CDATA[<p>With the release of Foundation 6.4, they have moved to a module-based JavaScript architecture. This is great and definitely the way to go. Documentation is a bit lacking in this regard, however. I&#8217;ll quickly demonstrate in this article how to set up Foundation with your favourite module-bundler. Lets cut to the chase. Your JavaScript file [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2017/11/foundation-6-4-es2016-module-javascript/">Importing Foundation 6.4 ES2016 JS files with your favourite module bundler</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></summary>

		
					<link rel="replies" type="text/html" href="https://dannyherran.com/2017/11/foundation-6-4-es2016-module-javascript/#comments" thr:count="3" />
			<link rel="replies" type="application/atom+xml" href="https://dannyherran.com/2017/11/foundation-6-4-es2016-module-javascript/feed/atom/" thr:count="3" />
			<thr:total>3</thr:total>
			</entry>
		<entry>
		<author>
			<name>Danny Herran</name>
							<uri>https://dannyherran.com</uri>
						</author>

		<title type="html"><![CDATA[Redux or MobX: What I learned after refactoring a medium-sized React app]]></title>
		<link rel="alternate" type="text/html" href="https://dannyherran.com/2017/03/react-redux-mobx-takeaways/" />

		<id>https://dannyherran.com/?p=796</id>
		<updated>2025-05-17T19:38:24Z</updated>
		<published>2017-03-17T16:15:43Z</published>
		<category scheme="https://dannyherran.com/" term="Frontend" /><category scheme="https://dannyherran.com/" term="flux" /><category scheme="https://dannyherran.com/" term="javascript" /><category scheme="https://dannyherran.com/" term="mobx" /><category scheme="https://dannyherran.com/" term="react" /><category scheme="https://dannyherran.com/" term="redux" />
		<summary type="html"><![CDATA[<p>State containers are a must for medium to large-sized React applications. The basic idea is to keep the state abstracted from your components and manage it somewhere else. Using a state container like Redux or MobX allows you to share a global centralised state across all your components. This article is not a tutorial per [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2017/03/react-redux-mobx-takeaways/">Redux or MobX: What I learned after refactoring a medium-sized React app</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></summary>

		
					<link rel="replies" type="text/html" href="https://dannyherran.com/2017/03/react-redux-mobx-takeaways/#comments" thr:count="6" />
			<link rel="replies" type="application/atom+xml" href="https://dannyherran.com/2017/03/react-redux-mobx-takeaways/feed/atom/" thr:count="6" />
			<thr:total>6</thr:total>
			</entry>
	</feed>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Database Caching using Disk

Served from: dannyherran.com @ 2026-04-09 09:50:07 by W3 Total Cache
-->