Series "Developing My Own Blog Website" is generated by ChatGPT.
Welcome to the first post in my blog series where I'll document my journey of building a dynamic blog website from scratch. As a software engineer with a background in Java and Spring, I want to leverage my existing skills while exploring new technologies and frameworks to create a blog site.
Tech Stack Decisions
After some consideration, I’ve decided on the following tech stack for my project:
Backend:
- Java & Spring Boot: I’m already familiar with Java and Spring, so Spring Boot is the natural choice for building a production-ready RESTful web service quickly.
- SQLite: Since this is a small-scale project with no advanced database requirements for now, SQLite is an ideal lightweight and file-based database option. It's simple, easy to set up, and integrates well with Spring Data JPA.
Frontend:
- Thymeleaf: I chose Thymeleaf for server-side rendering of HTML content. It’s tightly integrated with Spring Boot, easy to use, and allows embedding dynamic content into templates.
- HTML/CSS/JavaScript: For styling and layout, I’ll stick with the basics, using CSS and JavaScript for a responsive and interactive design.
Security:
- Spring Security: To secure the application, Spring Security will be used for handling authentication and role-based access. Initially, I’ll set up simple login/logout functionality and ensure the content creation, update, and deletion processes are protected.
Rendering Rich Content in Blog Posts
One of the challenges I identified early on was the need to support rich text formatting (like headers, lists, and code snippets) in blog posts. To enable this, I decided to use Markdown as the format for creating blog content. Markdown is simple, developer-friendly, and allows writing with minimal effort while supporting a wide range of formatting features.
To achieve this:
- I plan to write my blog posts in Markdown, which provides a clean way to include formatting.
- On the server side, Markdown content will be converted to HTML before being rendered in the frontend. This way, I can enjoy the flexibility of writing in Markdown while ensuring the blog content looks well-structured and formatted.
Next Steps
This post marks the beginning of the development journey. In the next part, I’ll start implementing the core features of the blog, such as:
- Post creation and editing (secured by user authentication).
- Dynamic content rendering using Thymeleaf templates.
- Securing the blog application with Spring Security.
Stay tuned for more updates as I dive deeper into building the core functionalities of this blog site.