This is my personal portfolio developed in a combination of modern technologies, designed to showcase my skills and experience as a developer.
This portfolio demonstrates skills related to web development and delivery, highlighting features such as:
Portfolio features content originally created with the goal of improving visibility in search engines. This is achieved through the use of:
The site is fully responsive, ensuring that the user experience is equally good on any device. This is achieved through the use of techniques such as:
To ensure good performance and a satisfactory user experience, the site has been subjected to quality testing tools, including:
The use of Server-Side Rendering (SSR) allows content to be rendered dynamically, improving the user experience. This is achieved by prioritizing the delivery of static content and using techniques such as:
To keep the code organized and easy to understand, the site was developed based on SOLID practices (SOLID is an acronym for Single responsibility, Open closed, Liskov substitution, Interface segregation and Dependency inversion), which include:
The contact form has been integrated with the GCP Gmail API, allowing users to send messages directly from the site. This is achieved by utilizing GCP APIs to create a secure and reliable connection.
The project was developed using Next.js, a popular framework for creating static web applications, along with Tailwind CSS for styling. The content part is generated dynamically using MDX and the Content Layer library, and the artwork was built in Photoshop.
To run the project, follow the steps below:
git clone https://github.com/andresinho20049/my-portfolio
npm install
npm run dev
or npm run start
If you don't have Node.js and npm installed, you can use Docker
To run the project using Docker, follow the steps below:
git clone https://github.com/andresinho20049/my-portfolio
docker-compose up
docker-compose --profile development up
)Using Next.js with SSR features offers several Benefits include:
The not-found.tsx
, manifest.ts
, robots.ts
and sitemap.ts
files are important components of a website powered by Next. They offer significant benefits in terms of SEO, efficiency and customization.
The not-found.tsx
file is a custom page that returns a 404 error page when a user tries to access a non-existent URL. This provides benefits such as:
Improved user experience: By displaying a clear and beneficial message, the user can be directed to the correct website more easily.
Reduced loading time: The 404 error page does not cause unnecessary loading time and reduces frustration.
The manifest.ts
file is used to create a manifest file that contains information about the site, such as the title, main URL, and icons. Dynamically generating this file can improve:
Improved user experience: By including information about layout and design for different devices, you can create a more pleasant experience for users.
Efficient indexing: By using dynamic generation methods, you can automatically update the list of main links, and by providing the necessary information, search engines can index the site more efficiently.
Customization: You can customize the settings of the manifest.ts file to suit your specific needs.
The robots.txt
file is a text file that defines how search engines should interact with your site. Settings include:
Sitemaps: By allowing HTML files to be indexed, you can improve the efficiency of content retrieval.
User-agent: By defining which search engine software is allowed to access your site, you can reduce overhead.
The sitemap.ts
file automatically generates Sitemap files for search engines. This can improve:
Visibility indicators: Search engines can easily find and index new resources on your site, increasing your visibility.
Indexing time: By automatically generating your Sitemap, you can reduce the time it takes for search engines to index new content.
Advantages of being generated dynamically during site construction
These files can significantly improve your SEO results when they are automatically updated during site construction. This means you can:
Maintain data consistency and accuracy.
Schedule updates for search engines, avoiding unnecessary waiting times.
Improve the efficiency of indexing new resources.
Benefits of using TypeScript
Using TypeScript provides several benefits, including:
Improved safety: Static typing and compilation help prevent type errors and ensure that your code is safe.
Improved readability: TypeScript helps improve code readability by adding static types, making it easier for other developers to understand your code.
Improved scalability: Static typing and compilation allow you to write more robust and scalable code.
JavaScript and TypeScript are two distinct languages with different characteristics.
JavaScript
JavaScript is a script interpreted by the browser engine, Node.js or another. It is a dynamic language that allows you to create dynamic interactions on the web. JavaScript is interpreted directly by the browser or the server, which means that it does not need to be compiled before executing it.
TypeScript
TypeScript, on the other hand, is a typed language. It adds a set of features and characteristics to JavaScript to make it more secure and scalable. TypeScript compiles your code into an intermediate format called smart (ECMAScript), which is executed by the browser engine or the server.
Main Differences
Here are some of the main differences between JavaScript and TypeScript:
Typing: TypeScript is a typed language, while JavaScript is not. This means that TypeScript requires static types to be defined for variables, functions, and properties, while JavaScript is typeless.
Compilation: TypeScript is compiled before it is executed, while JavaScript is interpreted directly by the browser engine or server.
Disadvantages of JavaScript
There are some disadvantages to using only JavaScript for development:
Insecurity: JavaScript can contain typographical errors and may not guarantee the security of all programs.
Scalability: JavaScript can be slow due to the lack of predictability about the behavior of the code.
One of the specific features that caught my attention the most in my portfolio is the integration of the GMail API service with Google Cloud Platform (GCP). Here is how it works:
Contact Form: The form was developed using Unform and YUP for field validation, allowing for a more efficient user experience.
Sending Messages: When filling out the form, the message is sent to my email address and a copy is forwarded to the email provided in the form.
Developed by Andresinho20049
Project: My Portfolio
A responsive website showcasing some of my skills, development and journey as a developer