Project documentation is centralized in this README for faster onboarding and maintenance.
Related repositories:
This project is a static bilingual portfolio (pt-BR/en) with a technical blog and SEO-focused content architecture.
- Public URL: https://nullcipherr.github.io/
- Main entrypoint: index.html
- Blog entrypoint: blog/index.html
NullCipherr.github.io is a professional portfolio website designed for discoverability, performance, and conversion.
The project prioritizes:
- Semantic structure and accessibility-first HTML;
- Clear visual hierarchy and responsive layout behavior;
- Lightweight runtime with vanilla JavaScript;
- Built-in i18n workflow with locale JSON dictionaries;
- Technical content strategy through pillar articles and blog navigation.
Blog content is now consumed from the external portfolio-blog repository through GitHub Raw URLs.
- Bilingual interface with runtime switch (pt-BR and en).
- Hero + showcase flow with direct navigation to portfolio variants.
- Structured sections for experience, skills, projects, content, FAQ, and contact.
- Technical blog with external CMS data (portfolio-blog) and dynamic article rendering.
- Performance-minded media loading for hero background video/image.
- SEO foundation with metadata, Open Graph, robots, sitemap, and JSON-LD schema.
High-level application flow:
- index.html renders the full portfolio experience and section layout.
- css/style.css provides the global design system and responsive behavior.
- js/script.js controls interactions (mobile menu, smooth scroll, observer effects, i18n, hero media strategy).
- locales/*.json stores translation keys and copy contracts.
- blog/index.html loads article metadata from https://raw.githubusercontent.com/NullCipherr/portfolio-blog/main/posts/index.json.
- blog/post.html resolves slug and renders Markdown from portfolio-blog/posts/*.md.
- Legacy paths in blog/artigos/*.html redirect to the new dynamic route for backward compatibility.
- robots.txt and sitemap.xml support crawl/index pipelines.
- 404.html handles invalid routes in static hosting.
Current optimization choices:
- Static architecture with no framework runtime overhead;
- Lazy strategy for heavy hero media when applicable;
- Reduced-motion and save-data checks in JavaScript behavior;
- Optimized asset formats (webp, compressed video variants);
- Minimal dependency surface (no external JS framework required).
- Vanilla stack for maximal control and low operational complexity.
- Locale dictionaries decoupled from markup for maintainable i18n.
- Single-page + content hub model to combine branding and technical authority.
- SEO as baseline, not afterthought, through metadata and structured data.
- Expand technical blog cadence with new long-form pillar articles.
- Add automated lint/validation workflow for HTML/CSS/SEO checks.
- Improve image/video optimization pipeline for content publishing.
- Add richer conversion tracking and observability for content funnels.
- Markup: HTML5
- Styling: CSS3
- Runtime: Vanilla JavaScript
- Localization: JSON locale dictionaries
- Hosting: GitHub Pages
.
├── assets/
│ ├── images/
│ └── videos/
├── blog/
│ ├── index.html
│ ├── post.html
│ └── artigos/ (legacy redirects)
├── css/
│ ├── style.css
│ └── blog.css
├── js/
│ ├── script.js
│ ├── blog-index.js
│ └── blog-post.js
├── locales/
│ ├── pt-br.json
│ └── en.json
├── 404.html
├── index.html
├── robots.txt
├── sitemap.xml
└── README.md
- Python 3 (or any static file server)
python3 -m http.server 8080
Open http://localhost:8080.
This repository does not require runtime environment variables.
Not applicable (no Node-based runtime required to serve the project).
Deployment is currently managed through GitHub Pages configuration.
Recommended next step:
- Add GitHub Actions for static checks and deployment verification.
Primary deployment target: GitHub Pages.
After pushing, validate:
- Public URL availability;
- robots.txt and sitemap.xml access;
- 404.html fallback behavior;
- i18n toggle behavior on production.
This project is licensed under the MIT License.