Skip to content

mohatt/website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Personal website

Third iteration of my personal site/portfolio built with Gatsby and Tailwind CSS. Content is authored in MDX (Git-based workflow), compiled through Gatsby’s GraphQL data layer, and deployed as a static, PWA-ready site on Firebase Hosting.

Highlights

  • Static-first architecture — pre-rendered at build time with client-side routing for instant transitions.
  • MDX content system — posts/pages live in Git as Markdown files; React components can be used directly in content.
  • Image pipeline — responsive images via Sharp (WebP) created at build time, lazy-loading, and LQIP placeholders.
  • Performance guardrails — code-splitting, inlined critical CSS, and route prefetching.
  • CI/CDGitHub Actions builds on push; production deploys to Firebase’s global edge.
  • Design & DX — Tailwind utility classes, sensible defaults, and a small, composable component set.

Outcomes

  • Fast page loads with SPA-smooth navigation (100% score on Lighthouse).
  • Maintainable content workflow via PR reviews in Git.
  • Zero-ops hosting and predictable releases.

Setup

To get the website up and running locally, first clone the repo

$ git clone [email protected]:mohatt/website.git

Install dependencies

$ pnpm install

Development

$ pnpm start # Start dev server at localhost:8000
$ pnpm lint # Lint all source code files
$ pnpm lint:js # Lint JS sources
$ pnpm lint:css # Lint CSS sources
$ pnpm format # Format all source code files

Production

$ pnpm clean # (Optional) Clear gatsby cache before build
$ pnpm build # Generate a fully static production build of the website
$ pnpm serve # Preview the site as it will appear once deployed

Deployment

The website is currently hosted at Firebase Hosting.

Channels

Workflow

The deployment workflow is fully managed by git and works as follows:

  • Direct branch commits or PR merges are built then deployed directly to the branch live channel
  • Pull requests are built then deployed to a unique sub-channel under the target branch channel (e.g. some-feature.mohatt.web.app)

For more information, check out .github/workflows directory.

License

MIT