<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>React &#8211; Joshua Min | Workflow Automations &amp; Systems Integrations</title>
	<atom:link href="https://joshuacmin.com/category/react/feed/" rel="self" type="application/rss+xml" />
	<link>https://joshuacmin.com</link>
	<description>I help businesses save time and money by automating workflows and integrating systems.</description>
	<lastBuildDate>Tue, 21 Jan 2025 21:02:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>
	<item>
		<title>How I Built saveandcompound.com, a Budget-Friendly React App Hosted on AWS</title>
		<link>https://joshuacmin.com/2025/01/21/how-i-built-saveandcompound-com-a-budget-friendly-react-app-hosted-on-aws/</link>
					<comments>https://joshuacmin.com/2025/01/21/how-i-built-saveandcompound-com-a-budget-friendly-react-app-hosted-on-aws/#respond</comments>
		
		<dc:creator><![CDATA[jmin]]></dc:creator>
		<pubDate>Tue, 21 Jan 2025 21:02:35 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[React]]></category>
		<category><![CDATA[App]]></category>
		<category><![CDATA[Personal Finance]]></category>
		<guid isPermaLink="false">https://joshuacmin.com/?p=71</guid>

					<description><![CDATA[If you noticed a common theme in my posts, I am interested in personal finance and investing. One concept I&#8217;ve been particularly fascinated about is the power of compounding. Therefore, I created a simple app to show the powerful effects of how compounded returns over time can turn small savings into big money. You can [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">If you noticed a common theme in my posts, I am interested in personal finance and investing. One concept I&#8217;ve been particularly fascinated about is the power of compounding. Therefore, I created a simple app to show the powerful effects of how compounded returns over time can turn small savings into big money. You can view it here at <a href="https://www.saveandcompound.com">https://saveandcompound.com</a>.</p>



<p class="wp-block-paragraph">The great thing about this app is that since the files are hosted on AWS S3, I am spending next to nothing (other than for the domain) to host this website. The savings in not provisioning a web server is sure to compound over time! If only I had an app to calculate that&#8230;</p>



<h3 class="wp-block-heading">How I Built This App</h3>



<p class="wp-block-paragraph">I was inspired by the Spend Bill Gates Money website and found that the code was open-sourced. The repository can be <a href="https://github.com/muratceng/Spend-Bill-Gates--money">found here</a>. I cloned the repository and modified the code so that instead of calculating how much of Bill Gates&#8217; money you spent, it calculates how much you can save over X amount of years if you cut out certain expenses and invested the savings at a Y% ROI.</p>



<p class="wp-block-paragraph">After testing out the app on my local computer, I set up github actions to:</p>



<ol class="wp-block-list">
<li>Deploy AWS Infrastructure via Terraform</li>



<li>Build the react app from the source code and upload it to AWS S3</li>
</ol>



<h3 class="wp-block-heading">Architecture</h3>



<p class="wp-block-paragraph">Overall, the architecture looks like below:</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="753" height="670" src="https://joshuacmin.com/wp-content/uploads/2025/01/save-and-compound.png" alt="" class="wp-image-80" srcset="https://joshuacmin.com/wp-content/uploads/2025/01/save-and-compound.png 753w, https://joshuacmin.com/wp-content/uploads/2025/01/save-and-compound-300x267.png 300w" sizes="(max-width: 753px) 100vw, 753px" /></figure>



<p class="wp-block-paragraph">Just like my previous <a href="https://valuepilotai.com" data-type="link" data-id="https://valuepilotai.com">valuepilotai.com</a> project, code and infrastructure changes are deployed by github actions and Terraform. Here is a breakdown of the infrastructure set up within AWS:</p>



<ul class="wp-block-list">
<li><strong>Route 53:</strong> The saveandcompound.com domain name was registered within Route 53. Additionally, the hosted zone contains the DNS entries required to resolve saveandcompound.com to the CloudFront distribution.</li>



<li><strong>Certificate Manager:</strong> The TLS certificate is provisioned within Certificate Manager. This is used by the CloudFront distribution to secure connections between clients and the CloudFront distribution.</li>



<li><strong>CloudFront: </strong>CloudFront serves the build files to the web clients. The reasons for using CloudFront instead of having S3 serve files are to allow for a secure TLS connection with web clients, reduce latency of serving files, and reduce the number of requests to S3 (although this point is negligible for low-volume apps).</li>



<li><strong>S3: </strong>S3 hosts all the build files for the React app.</li>
</ul>



<p class="wp-block-paragraph">If you are interested in learning more about the simple app I created, feel free to email me at connect@joshuacmin.com. Thanks for reading!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://joshuacmin.com/2025/01/21/how-i-built-saveandcompound-com-a-budget-friendly-react-app-hosted-on-aws/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
