I finished building this site today to a point where I’m comfortable pushing it live. I started on April 18th and have mostly worked on it during weekends, with a few late nights squeezed in after work.
I decided to build everything from scratch instead of using an existing blog platform because I wanted the portfolio tracking to be built right into the blog. Most platforms didn’t offer the flexibility I needed without adding third-party tools. Here’s what I ended up building:
Key Features
-
Simple blog engine
Supports drafts, scheduled posts, and a WYSIWYG editor with image embedding. It’s lightweight and easy to use.
-
Authenticated post comments
If someone wants to comment, they need to create an account and verify their email first. This is intentionally a bit of a hurdle to avoid spam and to encourage only real, engaged users to participate.
-
Categories and tags
Posts can be grouped and filtered to make browsing easier as content grows.
-
Portfolio tracker
This was the main reason I wanted to build the site myself. I wanted a daily log where I could enter my buys with screenshots of trade confirmations, and have a summary view that shows:
-
Total shares held
-
Projected annual dividends
-
Current yield
-
Historical performance
The tracker uses historical stock data, including dividend history and daily prices, to track my portfolio’s growth over time. A background job runs nightly to pull in closing prices for logged investments and update portfolio totals.
-
-
Contact form
A simple way for anyone to reach out if they have questions or want to connect.
What It’s Built On
-
.NET 9 Razor Pages with EF Core
-
Tailwind CSS for styling
-
Deployed on Render
-
Uses their Postgres database and persistent disk storage for images
-
-
Email setup via GoDaddy and Office 365
-
MailKit handles account creation, password resets, and contact messages
-
-
Financial Modeling Prep API
-
Used for dividend history and daily stock prices
-
Final Thoughts
That’s it. The site is live and does what I need it to do. I was really happy with Render overall. The deployment process was simple and hosting was very fairly priced.
Now that the foundation is done, I’m looking forward to using the site regularly and continuing to improve it as I go.