Skip to content

Repository files navigation

My Website โœจ

This is my personal website and portfolio, built for darwinmanalo.com. I use it to share selected projects, write technical articles, and give a clearer picture of how I think about software, product work, and engineering.

I wanted the site to feel simple, readable, and fast, while still leaving room for motion, multilingual support, and richer long-form content.

This is my v1.0.0 release. ๐ŸŽ‰

What is in the site ๐Ÿš€

The website currently includes:

  • a homepage with animated hero text
  • a projects section with detailed case studies
  • an articles section for long-form technical writing
  • an about page
  • a not found page
  • dark mode
  • multilingual support

Tech Stack ๐Ÿ› ๏ธ

I built this site with:

  • React 19
  • React Router 7
  • Vite 6
  • Tailwind CSS 4
  • Framer Motion
  • i18next and react-i18next
  • ESLint 9
  • GitHub Actions for deployment

Internationalization ๐ŸŒ

The site supports these languages:

  • ๐Ÿ‡บ๐Ÿ‡ธ English
  • ๐Ÿ‡ฏ๐Ÿ‡ต Japanese
  • ๐Ÿ‡ฐ๐Ÿ‡ท Korean
  • ๐Ÿ‡จ๐Ÿ‡ณ Chinese
  • ๐Ÿ‡ช๐Ÿ‡ธ Spanish
  • ๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesian
  • ๐Ÿ‡ฉ๐Ÿ‡ช German
  • ๐Ÿ‡ท๐Ÿ‡บ Russian
  • ๐Ÿ‡ซ๐Ÿ‡ท French
  • ๐Ÿ‡ต๐Ÿ‡น Portuguese
  • ๐Ÿ‡ธ๐Ÿ‡ฆ Arabic

Translation files live in src/locales, and I load language bundles on demand.

Routes ๐Ÿงญ

The main routes are:

  • /
  • /projects
  • /projects/:projectId
  • /about
  • /articles
  • /articles/:articleId

Project Structure ๐Ÿ“

.
โ”œโ”€โ”€ public/                  # static assets, favicons, 404 page, CNAME
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ components/          # page components and shared UI
โ”‚   โ”œโ”€โ”€ constants/           # shared UI constants
โ”‚   โ”œโ”€โ”€ data/                # project/article metadata
โ”‚   โ”œโ”€โ”€ data/article-content # per-article content modules
โ”‚   โ”œโ”€โ”€ i18n/                # i18n bootstrap and language loading
โ”‚   โ”œโ”€โ”€ locales/             # translation JSON files
โ”‚   โ”œโ”€โ”€ utils/               # helper utilities
โ”‚   โ”œโ”€โ”€ App.jsx
โ”‚   โ”œโ”€โ”€ index.css
โ”‚   โ””โ”€โ”€ main.jsx
โ”œโ”€โ”€ .github/workflows/       # deployment workflow
โ”œโ”€โ”€ index.html
โ”œโ”€โ”€ vite.config.js
โ””โ”€โ”€ package.json

Running it locally ๐Ÿ’ป

Install dependencies ๐Ÿ“ฆ

npm install

Start the dev server โ–ถ๏ธ

npm run dev

Build for production ๐Ÿ—๏ธ

npm run build

Preview the production build ๐Ÿ‘€

npm run preview

Run lint โœ…

npm run lint

Deployment ๐Ÿšข

The site is deployed through GitHub Pages using .github/workflows/deploy.yml.

On every push to main, the workflow:

  1. installs dependencies with npm ci
  2. builds the app with npm run build
  3. uploads the dist/ output
  4. deploys the result to GitHub Pages

The custom domain is:

  • darwinmanalo.com

Styling notes ๐ŸŽจ

  • Tailwind CSS 4 is configured through src/index.css
  • Google Fonts are loaded in index.html
  • Icons are rendered through src/components/Icon.jsx

Performance work โšก

I spent time keeping the site reasonably fast, especially on slower network profiles.

Some of the improvements currently in place:

  • lazy-loaded route components
  • on-demand locale loading instead of bundling every language up front
  • per-article content splitting so article detail pages only load the article being viewed
  • local SVG icons instead of an icon font
  • lighter startup payload for content and translations

Notes ๐Ÿ“

  • Current version: 1.0.0
  • License: MIT

About

This is my personal website and portfolio. I use it to share selected projects, write technical articles, and give a clearer picture of how I think about software, product work, and engineering.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages