/v10i.dev

💻 Tha blogue.

Primary LanguageTypeScriptOtherNOASSERTION

About

This repository contains the source code of v10i.dev website.

CMS

GitHub is used as a CMS for this project, the content is stored in the private (at least, for now) repository. Content is written using markdown with extended GFM syntax. Data fetching is done through the GitHub REST API.

Tech stack

  • Yarn Berry
  • TypeScript 4.4
  • Next.js 12:
    • next-pwa
    • next-seo
    • next-sitemap
    • Front-end:
      • React 17
      • styled-components
      • swr
      • dayjs
      • Markdown:
        • react-markdown
        • remark
        • gray-matter
        • _prismjs for code blocks
    • Back-end (API routes):
      • NestJS 8
  • Babel
  • axios for all HTTP requests
  • feed to generate the RSS feed
  • fnts for some functional style spice
  • CI/CD:
    • Vercel deployment
    • zx as language for CI scripts
    • eslint
    • prettier
    • stylelint
    • npm-package-json-lint
    • husky
    • lint-staged
    • commitlint
    • Jest

Project Structure

  • /public – static assets
  • /scripts – CI and misc scripts (zx & Node.js)
  • /src:
    • /api – Next.js API routes
    • /client – Front-end code
    • /shared – code shared between /api and /client
    • /pages – Next.js file system routing
  • /tests – unit and integration tests

Development

To run the project locally, first, [fork and] clone this repository:

git clone git@github.com:drizzer14/v10i.dev.git

Install dependencies:

yarn install

Add .env file in the project root using the .env.example template. Preferably, fill in all the variables, except for optional HOST and PORT which can be omitted to enforce the defaults (localhost:3000).

Then, start the local development server:

yarn start

To test the production build:

yarn build

yarn serve

Designed and coded with ❤️ by Dmytro Vasylkivskyi.