How I Developed This Blog

Dev

A Journey of Automation and Code Reuse

Introduction

I have always believed in the power of automation and the efficiency that well-structured processes can bring to project development. I decided to create this blog not only as a platform to share knowledge but also as a case study of my skills as a full stack developer. In this post, I will detail the development process, the technologies used, and the strategic decisions that allowed me to build a robust, scalable, and easy-to-maintain blog.

Choosing the Right Tools

To start, I opted to use Laravel, a PHP framework known for its elegance and simplicity. Its MVC (Model-View-Controller) architecture facilitated code organization and project maintenance. Additionally, I utilized Tailwind CSS for styling, which offers a highly customizable utility-first approach, allowing me to create modern and responsive interfaces quickly.

Integrating Notion as a CMS

One of my main innovations was integrating Notion as a content management system (CMS). Notion provides an intuitive interface for creating and organizing content, which streamlines the process of publishing new posts. To synchronize Notion's content with my blog, I developed a synchronization script that uses Notion's API to fetch and update posts automatically.

Synchronization Process

Authentication and Data Fetching: I used authentication tokens to access Notion's API and fetch the content blocks from the blog's main page.

Filtering by Language and Category: I organized posts by languages (pt_BR and en) and categories (News, Tutorials, etc.), making navigation and content maintenance easier.

Parsing and Conversion to HTML: I developed functions to convert Notion's blocks into HTML, applying Tailwind CSS classes to maintain visual consistency.

Image Management: I implemented logic to download images locally and avoid duplication. Each image is saved with the corresponding block ID, ensuring there is no redundant storage and that images are served efficiently.

Automating Image Management

One of the challenges faced was handling the ephemeral URLs of images provided by Notion's API. To address this, I developed a local storage function that downloads images and stores them on the server, referencing them reliably within the blog's content. This not only improves site performance but also ensures that images remain accessible after the URL expiration time.

Enhancing User Experience

Beyond automation, I focused on the user experience. I utilized Tailwind CSS to ensure the blog is responsive and visually appealing on any device. I also implemented a category and tag system, facilitating navigation and the discovery of relevant content.

Team Management and Agile Methodologies

In developing this project, I adopted team management practices and agile methodologies like Scrum. This allowed for better task organization, efficient communication among team members, and incremental deliveries that continuously improved the blog based on received feedback.

Achievements

Efficient Automation: Significant reduction in the time required to publish new posts, eliminating the need for repetitive manual interventions.

Code Reuse: Development of reusable components in Laravel and Tailwind, increasing productivity and project consistency.

Scalability: A structure prepared to support an increase in content volume and traffic, ensuring the blog continues to perform well as it grows.

Professional Visibility: This project served as a solid portfolio piece to demonstrate my technical skills and commitment to quality and efficiency in software development.

Conclusion

Developing this blog was an enriching experience that allowed me to apply and expand my knowledge in full stack development, process automation, and system integration. The combination of Laravel, Tailwind CSS, and Notion as a CMS resulted in a powerful and easy-to-maintain platform, aligned with best development practices.

I am excited about the future possibilities to continue enhancing this blog, integrating new technologies and functionalities that can benefit both myself and the readers. If you are a recruiter or a technology professional, I hope this project showcases my capabilities and my passion for creating efficient and innovative solutions.

Tags: Laravel, Tailwind CSS, Notion, Automation, Web Development, Full Stack, CMS, PHP, JavaScript, Scrum

Feb 13

Projects

Finance AI

Project made in the Felipe Rocha course

Read More
Feb 03

Personal

Pokémon Guessing App

Reliving childhood with an interactive platform

Read More
Jan 15

Personal

App Tic Tac Toe

My ‘first’ game in the new language

Read More