From 14d1be1ff01fb70421eb42585fdcc92bff120e07 Mon Sep 17 00:00:00 2001 From: Guilherme Biff Zarelli Date: Fri, 16 Oct 2026 19:57:13 -0300 Subject: [PATCH] feat(home): prioritize software consulting services --- .github/workflows/deploy.yml | 3 + .htaccess | 5 +- public/robots.txt | 14 - public/sitemap.xml | 352 ------------------- src/app/about/{metadata.ts => layout.tsx} | 28 +- src/app/articles/{metadata.ts => layout.tsx} | 32 +- src/app/blog/{metadata.ts => layout.tsx} | 38 +- src/app/components/Footer/index.tsx | 2 +- src/app/components/Navbar/index.tsx | 24 +- src/app/components/ServicesLanding/index.tsx | 149 ++++++++ src/app/layout.tsx | 33 +- src/app/metadata.ts | 32 -- src/app/page.tsx | 292 ++------------- src/app/projects/{metadata.ts => layout.tsx} | 32 +- src/app/services/metadata.ts | 8 - src/app/services/page.tsx | 112 +----- src/app/sitemap.ts | 5 - src/app/thanks/page.tsx | 6 + src/data/content.ts | 2 +- src/data/services.ts | 30 ++ 20 files changed, 322 insertions(+), 877 deletions(-) delete mode 100644 public/robots.txt delete mode 100644 public/sitemap.xml rename src/app/about/{metadata.ts => layout.tsx} (72%) rename src/app/articles/{metadata.ts => layout.tsx} (68%) rename src/app/blog/{metadata.ts => layout.tsx} (54%) create mode 100644 src/app/components/ServicesLanding/index.tsx delete mode 100644 src/app/metadata.ts rename src/app/projects/{metadata.ts => layout.tsx} (67%) delete mode 100644 src/app/services/metadata.ts create mode 100644 src/data/services.ts diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 0d4085d..35279b2 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -27,6 +27,9 @@ jobs: - name: Build static export run: npm run build # This will run next build which generates the 'out' directory + + - name: Copy Apache configuration + run: cp .htaccess out/.htaccess - name: Verify build output run: | diff --git a/.htaccess b/.htaccess index 778c051..e0a106d 100644 --- a/.htaccess +++ b/.htaccess @@ -4,6 +4,9 @@ RewriteBase / RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] +# Consolidar a rota antiga de serviços na landing page canônica. +RewriteRule ^services/?$ / [R=301,L] + # Redirecionar todas as URLs não encontradas para a home RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d @@ -48,4 +51,4 @@ Options -Indexes Header set X-XSS-Protection "1; mode=block" Header set X-Frame-Options "SAMEORIGIN" Header set Referrer-Policy "strict-origin-when-cross-origin" - \ No newline at end of file + diff --git a/public/robots.txt b/public/robots.txt deleted file mode 100644 index 61d3139..0000000 --- a/public/robots.txt +++ /dev/null @@ -1,14 +0,0 @@ -# Allow all crawlers -User-agent: * -Allow: / - -# Sitemap location -Sitemap: https://helpdev.com.br/sitemap.xml - -# Crawl-delay -Crawl-delay: 10 - -# Disallow admin and private areas -Disallow: /admin/ -Disallow: /private/ -Disallow: /api/ \ No newline at end of file diff --git a/public/sitemap.xml b/public/sitemap.xml deleted file mode 100644 index 7af4cae..0000000 --- a/public/sitemap.xml +++ /dev/null @@ -1,352 +0,0 @@ - - - - - https://helpdev.com.br - 2024-04-18 - weekly - 1.0 - - - https://helpdev.com.br/about - 2024-04-18 - monthly - 0.8 - - - https://helpdev.com.br/articles - 2024-04-18 - weekly - 0.9 - - - https://helpdev.com.br/projects - 2024-04-18 - monthly - 0.8 - - - - - https://medium.com/inside-picpay/otimiza%C3%A7%C3%A3o-da-jvm-para-cont%C3%AAineres-mem%C3%B3ria-e-garbage-collection-c9b640fa4219 - 2024-04-18 - monthly - 0.7 - - - https://medium.com/inside-picpay/decis%C3%B5es-arquiteturais-registro-e-sustentabilidade-na-evolu%C3%A7%C3%A3o-de-sistemas-72eca5e32be1 - 2024-04-18 - monthly - 0.7 - - - https://medium.com/inside-picpay/o-use-case-modelando-as-intera%C3%A7%C3%B5es-do-seu-dom%C3%ADnio-7b9f4f1e3b6a - 2024-04-18 - monthly - 0.7 - - - https://medium.com/inside-picpay/o-core-domain-modelando-dom%C3%ADnios-ricos-4c9f4f1e3b6a - 2024-04-18 - monthly - 0.7 - - - https://medium.com/luizalabs/observabilidade-monitorando-sua-aplicacao-a-partir-de-metricas-bd1b2d0ba1f8 - 2024-04-18 - monthly - 0.7 - - - https://medium.com/luizalabs/garantindo-a-arquitetura-de-uma-aplica%C3%A7%C3%A3o-sem-complexidade-abcdef123456 - 2024-04-18 - monthly - 0.7 - - - https://medium.com/luizalabs/java-garbage-collector-por-que-precisamos-conhec%C3%AA-lo-abcdef123456 - 2024-04-18 - monthly - 0.7 - - - https://medium.com/luizalabs/separando-os-testes-integrados-de-sua-aplica%C3%A7%C3%A3o-em-um-novo-conceito-abcdef123456 - 2024-04-18 - monthly - 0.7 - - - https://medium.com/luizalabs/refatora%C3%A7%C3%A3o-a-maneira-mais-eficiente-de-manter-seu-c%C3%B3digo-limpo-abcdef123456 - 2024-04-18 - monthly - 0.7 - - - https://medium.com/luizalabs/criando-uma-aplica%C3%A7%C3%A3o-modular-muito-al%C3%A9m-do-clean-architecture-5dde3687c5d6 - 2024-04-18 - monthly - 0.7 - - - https://medium.com/luizalabs/controlando-transa%C3%A7%C3%B5es-de-status-com-finite-state-machine-7f47b906174a - 2024-04-18 - monthly - 0.7 - - - https://medium.com/luizalabs/pir%C3%A2mide-de-testes-definindo-uma-boa-su%C3%ADte-de-testes-para-seu-software-a6864886f29b - 2024-04-18 - monthly - 0.7 - - - https://medium.com/luizalabs/descomplicando-a-clean-architecture-cf4dfc4a1ac6 - 2024-04-18 - monthly - 0.7 - - - - - https://github.com/helpdeveloper/java-modular-architecture - 2024-04-18 - monthly - 0.6 - - - https://github.com/helpdeveloper/gzip-json-jackson - 2024-04-18 - monthly - 0.6 - - - https://github.com/helpdeveloper/java-architecture-template - 2024-04-18 - monthly - 0.6 - - - https://github.com/helpdeveloper/java-observability-metrics - 2024-04-18 - monthly - 0.6 - - - https://github.com/gbzarelli/fsm-devpira-2020 - 2024-04-18 - monthly - 0.6 - - - https://github.com/gbzarelli/wg-brew-plus - 2024-04-18 - monthly - 0.6 - - - https://github.com/gbzarelli/VelocimetroAlertaBLModule - 2024-04-18 - monthly - 0.6 - - - https://github.com/gbzarelli/VelocimetroAlerta - 2024-04-18 - monthly - 0.6 - - - https://github.com/gbzarelli/AndroidFaceDetectOpenCV - 2024-04-18 - monthly - 0.6 - - - - - https://gist.github.com/gbzarelli/7996424d114392551205722363925a97 - 2025-02-04 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/a5a175230c0e2e9996d6e40c549082be - 2025-02-04 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/48f7ef6c0f8a7833659ce78754c19764 - 2025-01-06 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/9458d23f10deccf7442aaef7211f1713 - 2024-11-19 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/45e401c9474b5bb1c65f47ebe67cd26b - 2024-10-27 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/e3ad29026e243401b87d4c5f7d360d48 - 2024-10-27 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/b698f5e92d7677eb8e184c5c17d375d1 - 2025-04-18 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/060b2f94f6620121232ad95b891f0e8d - 2024-10-26 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/23421e3a6db89e91485b24047764b079 - 2024-10-27 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/2aa4d0cf1d8630dfe13d317bb0bd666b - 2024-10-27 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/c79413b5cfcd485ceb77b6b80633d377 - 2024-10-27 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/fe1a6a5d7a1195bd721112c83e3786cb - 2025-04-18 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/f7da511d6a937cadc81720c7f68fc873 - 2024-10-27 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/a9bcf2c159028d21ad5c725028310d27 - 2024-10-27 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/fa119e250064372dbe95808c2f5f38b1 - 2024-10-27 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/fb7080e4961d794240e148d8725e0717 - 2024-10-27 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/a745ede4804137b8a9525623120d6b5c - 2024-10-27 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/287d4e8601c430c542dc133e6ee1f6b1 - 2025-04-18 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/c15b607d62fc98ae436564bf8129ea8e - 2024-11-01 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/aa2c25faced22a5001aed4212b44d8df - 2025-04-18 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/185da0ba2588c340a6bfa9105643e7cc - 2024-10-27 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/629288f1b8fa60861df373197149e497 - 2025-04-18 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/cc4ed5f9b68ad245c8c0e5ae4f1c9018 - 2025-04-18 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/72b5f9fb1a8a12939f4b378dcfae915c - 2025-04-18 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/6b05a715e5a0b4b0ddcae0e9e0a4af0f - 2024-10-27 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/1b6c77d3edd2663a775b1e092fcdff49 - 2025-04-18 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/7d07670922a1f13ccc2db37e72ca456b - 2025-04-18 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/13be00fed499bfacdc2fda039384abf7 - 2025-04-18 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/57c2fda4e89a8188b3241be79c4e848f - 2025-04-18 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/7492682774369a8c515957ba706dd257 - 2024-10-27 - monthly - 0.6 - - - https://gist.github.com/gbzarelli/ef324c0e32967198c79a2df7cb6820df - 2024-10-27 - monthly - 0.6 - - \ No newline at end of file diff --git a/src/app/about/metadata.ts b/src/app/about/layout.tsx similarity index 72% rename from src/app/about/metadata.ts rename to src/app/about/layout.tsx index 76bcdda..2f30271 100644 --- a/src/app/about/metadata.ts +++ b/src/app/about/layout.tsx @@ -1,25 +1,23 @@ import type { Metadata } from 'next'; +import type { ReactNode } from 'react'; export const metadata: Metadata = { - title: 'Sobre - Guilherme Biff Zarelli | HelpDev', + title: 'Sobre - Guilherme Biff Zarelli', description: 'Engenheiro de Software com mais de 10 anos de experiência em desenvolvimento e arquitetura de sistemas. Especialista em soluções escaláveis para empresas de grande porte.', keywords: ['engenheiro de software', 'arquitetura de sistemas', 'desenvolvimento java', 'clean code', 'boas práticas', 'mentoria', 'tecnologia'], authors: [{ name: 'Guilherme Biff Zarelli' }], - alternates: { - canonical: '/about', - }, + alternates: { canonical: '/about' }, openGraph: { + url: '/about', title: 'Sobre - Guilherme Biff Zarelli | HelpDev', description: 'Engenheiro de Software com mais de 10 anos de experiência em desenvolvimento e arquitetura de sistemas. Especialista em soluções escaláveis para empresas de grande porte.', type: 'profile', - images: [ - { - url: 'https://helpdev.com.br/images/logo.png', - width: 1200, - height: 630, - alt: 'Guilherme Biff Zarelli - Engenheiro de Software', - }, - ], + images: [{ + url: 'https://helpdev.com.br/images/logo.png', + width: 1200, + height: 630, + alt: 'Guilherme Biff Zarelli - Engenheiro de Software', + }], }, twitter: { card: 'summary_large_image', @@ -29,4 +27,8 @@ export const metadata: Metadata = { creator: '@gbzarelli', site: '@_helpdev', }, -}; \ No newline at end of file +}; + +export default function AboutLayout({ children }: { children: ReactNode }) { + return children; +} diff --git a/src/app/articles/metadata.ts b/src/app/articles/layout.tsx similarity index 68% rename from src/app/articles/metadata.ts rename to src/app/articles/layout.tsx index 629ee45..1748b40 100644 --- a/src/app/articles/metadata.ts +++ b/src/app/articles/layout.tsx @@ -1,32 +1,34 @@ import type { Metadata } from 'next'; +import type { ReactNode } from 'react'; export const metadata: Metadata = { - title: 'Artigos - HelpDev', + title: 'Artigos', description: 'Artigos e tutoriais sobre desenvolvimento de software, arquitetura, boas práticas e tecnologia. Aprenda com conteúdo técnico de qualidade.', keywords: ['artigos', 'tutoriais', 'desenvolvimento', 'software', 'programação', 'tecnologia', 'arquitetura', 'boas práticas', 'java', 'javascript', 'typescript', 'aprendizado'], authors: [{ name: 'Guilherme Biff Zarelli' }], - alternates: { - canonical: '/articles', - }, + alternates: { canonical: '/articles' }, openGraph: { - title: 'Artigos - HelpDev', + url: '/articles', + title: 'Artigos | HelpDev', description: 'Artigos e tutoriais sobre desenvolvimento de software, arquitetura, boas práticas e tecnologia. Aprenda com conteúdo técnico de qualidade.', type: 'website', - images: [ - { - url: 'https://helpdev.com.br/images/logo.png', - width: 1200, - height: 630, - alt: 'HelpDev Artigos', - }, - ], + images: [{ + url: 'https://helpdev.com.br/images/logo.png', + width: 1200, + height: 630, + alt: 'HelpDev Artigos', + }], }, twitter: { card: 'summary_large_image', - title: 'Artigos - HelpDev', + title: 'Artigos | HelpDev', description: 'Artigos e tutoriais sobre desenvolvimento de software, arquitetura, boas práticas e tecnologia.', images: ['https://helpdev.com.br/images/logo.png'], creator: '@gbzarelli', site: '@_helpdev', }, -}; \ No newline at end of file +}; + +export default function ArticlesLayout({ children }: { children: ReactNode }) { + return children; +} diff --git a/src/app/blog/metadata.ts b/src/app/blog/layout.tsx similarity index 54% rename from src/app/blog/metadata.ts rename to src/app/blog/layout.tsx index 9444dea..a6c2844 100644 --- a/src/app/blog/metadata.ts +++ b/src/app/blog/layout.tsx @@ -1,32 +1,34 @@ import type { Metadata } from 'next'; +import type { ReactNode } from 'react'; export const metadata: Metadata = { - title: 'Blog - HelpDev', - description: 'Blog / Gists sobre desenvolvimento de software, arquitetura, boas práticas e tecnologia. Aprenda com conteúdo técnico de qualidade.', + title: 'Blog', + description: 'Blog e gists sobre desenvolvimento de software, arquitetura, boas práticas e tecnologia. Aprenda com conteúdo técnico de qualidade.', keywords: ['artigos', 'tutoriais', 'desenvolvimento', 'software', 'programação', 'tecnologia', 'arquitetura', 'boas práticas', 'java', 'javascript', 'typescript', 'aprendizado'], authors: [{ name: 'Guilherme Biff Zarelli' }], - alternates: { - canonical: '/blog', - }, + alternates: { canonical: '/blog' }, openGraph: { - title: 'Blog - HelpDev', - description: 'Blog / Gists sobre desenvolvimento de software, arquitetura, boas práticas e tecnologia. Aprenda com conteúdo técnico de qualidade.', + url: '/blog', + title: 'Blog | HelpDev', + description: 'Blog e gists sobre desenvolvimento de software, arquitetura, boas práticas e tecnologia. Aprenda com conteúdo técnico de qualidade.', type: 'website', - images: [ - { - url: 'https://helpdev.com.br/images/logo.png', - width: 1200, - height: 630, - alt: 'HelpDev Blog', - }, - ], + images: [{ + url: 'https://helpdev.com.br/images/logo.png', + width: 1200, + height: 630, + alt: 'HelpDev Blog', + }], }, twitter: { card: 'summary_large_image', - title: 'Blog - HelpDev', - description: 'Blog / Gists sobre desenvolvimento de software, arquitetura, boas práticas e tecnologia.', + title: 'Blog | HelpDev', + description: 'Blog e gists sobre desenvolvimento de software, arquitetura, boas práticas e tecnologia.', images: ['https://helpdev.com.br/images/logo.png'], creator: '@gbzarelli', site: '@_helpdev', }, -}; \ No newline at end of file +}; + +export default function BlogLayout({ children }: { children: ReactNode }) { + return children; +} diff --git a/src/app/components/Footer/index.tsx b/src/app/components/Footer/index.tsx index 979c803..5626ced 100644 --- a/src/app/components/Footer/index.tsx +++ b/src/app/components/Footer/index.tsx @@ -20,7 +20,7 @@ export const Footer: React.FC = () => {

Links