C# Developer dives into React and Next.js - Blog Update 10/19/2024
Much work has been put into this blog to make content creation easier. All this work was mostly background code with Sanity and configuring Next.js to make the schema, data types, and components I wanted. Of course, there is still a lot of work to do! At this point, I would still consider this website to be in beta as an extremely barebones blog. This blog post will go through what I have accomplished and what is next.
Why Next.js?
I chose to do this site with React and Next.js for a couple of reasons:
- Sanity had a simple template to build off of content management.
- I want to build my resume and broaden my horizons with something new.
- React is very powerful and is used widely on the internet.
I plan to take you down this journey in a future blog post! It will take some time to fully understand how I need to do everything, especially for search engine optimization (SEO), but this site feels promising and has been a ton of fun to put together.
A Challenging Task
It should not surprise you that the challenging task that cost me the most time was the research on how React and Next.js work. I come from a world of C# and .Net development with web development with Blazor for business applications being what I use most. The overall mindset that I need to have for a business that only cares about functionality rather than SEO and looks is quite different and still something that I am wrapping my brain around.
What have I accomplished?
There are a couple of things I did not like about the template and I had to change.
CSS
The template I started with uses TailwindCSS, but I prefer Bootstrap and I also am very comfortable with Bootstrap since I use it for my job. To make it all work, I had to configure TailwindCSS with a prefix. I have a blog post here about it.
Sanity Configuration
Sanity is the content management service (CMS) that I selected for this blog. I selected it because it gave me more control over the content. I know that you have a lot of control over WordPress websites, but the costs to host are much more than I am willing to pay at this point.
The template website came with only 'author' and 'post' types in the Sanity schema. I added 'category', 'tag', and 'page' types. I added categories and tags so that the blog posts can be separated out and searched in the future. I also added a page type to allow for more flexibility with the CMS. That way I can create pages outside blog posts for general-purpose use, like my contact page.
What needs to be done?
Where do I start?! There is so much more to do and many of these things will lead to blog posts. I plan on making the user experience for this website as seamless as possible. That will include the following:
- Adding an 'About' page as well as making my author page available in an 'About Me' page.
- Adding 'Contact' page
- email list
- I want to let people know when I have a new post!
- MailChimp seems like the way I will go for now. I plan on sending an email only once a month of all the posts that I did that month. A welcome email has already been put together.
- Adding a page for searching/browsing blog posts
- Adjusting the front page to not be giant pictures and include more content.
- Create a page for each Category. I may do the same thing for tags, though the tags will probably be used in the searching functionality.
- Add a checklist of all of the tasks I want to do and show the progress on the home page. It would be near the bottom, but it also would be satisfying to see the progress!
- MUCH MUCH MORE!
- I plan on doing more tasks once I gain more knowledge and grow my capabilities. I might also lazy load some Blazor libraries into this site for testing/ease of development.
- I plan on adding a status page that has all of the tasks I want to get done on it and tick them off as I go. With only an hour here and and hour there, this process might be very slow to start. At least until winter starts...
In the future, I plan on sharing any code that I think will be useful. That means I will need to have a GitHub account for the website so that I can share the code examples and maybe even an open-source library or 2 for React or Blazor. I do have some MAUI tricks up my sleeve as well.
I hope you enjoyed this read! I also hope that my passion for moving this project along gives you motivation to try something out on your own as well. I am definitely outside of my comfort zone and the amount of knowledge I have gained from this is actually crazy.
Happy coding!