Skip to content

Commit

Permalink
Created v2 of Devfolio (#26)
Browse files Browse the repository at this point in the history
* fix: config

* refactor: gsap/react and styles

* refactor: styles fix

* refactor: skills

* fix: deploy

* refactor: home page

* refactor: project card animation and 404

* fix: contentful types

* fix: project pages

* add: page transition

* seo: robots and sitemap

* Fix: page transitions and minor fix

* Fix: transitions and optimizations

* add: GTM Tags

* add: web vitals

* fix: file name issue

* add: img loader and placeholder

* add: error page

* add: force static

* fix: web vitals

* minor optimizations

* add: meta and gtms
* fix: toast
* add: content using contentful
* less throttle
* fix: toast
* disable ssr or toast and overlay
* remove lazyload
* remove logs & fix husky
* fix: Toast and clear logs
* lint and format code
* add: codacy CI
  • Loading branch information
Drish-xD authored Apr 27, 2024
1 parent bbf8dd0 commit aaa89aa
Show file tree
Hide file tree
Showing 122 changed files with 10,296 additions and 5,416 deletions.
12 changes: 0 additions & 12 deletions .eslintrc.json

This file was deleted.

37 changes: 37 additions & 0 deletions .github/workflows/codacy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Codacy CI

on:
push:
branches: ['main', 'dev']
pull_request:
branches: ['main']
schedule:
- cron: '40 13 * * 4'

permissions:
contents: read

jobs:
codacy-scan:
permissions:
contents: read
security-events: write
actions: read
name: Codacy Scan
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run Codacy Analysis CLI
uses: codacy/codacy-analysis-cli-action@d840f886c4bd4edc059706d09c6a1586111c540b
with:
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
verbose: true
output: results.sarif
format: sarif
gh-code-scanning-compat: true
max-allowed-issues: 2147483647
- name: Upload SARIF results file
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: results.sarif
5 changes: 1 addition & 4 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npx lint-staged
pnpx lint-staged
14 changes: 0 additions & 14 deletions .prettierignore

This file was deleted.

13 changes: 0 additions & 13 deletions .prettierrc.json

This file was deleted.

42 changes: 38 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
# Portfolio

The personal Portfolio website showcases projects, skills, and blogs to share experiences. The website is built using Next.js as a Static Site Generator, GSAP for animations, and Lenis Scroll for smooth scrolling. Notion SDK is integrated to use it as a CMS for managing Projects.
The personal Portfolio website showcases projects, skills, and blogs to share experiences. The website is built using Next.js as a Static Site Generator, GSAP for animations, and Lenis Scroll for smooth scrolling. Contentful SDK is integrated to use it as a CMS for managing Projects.

### Key Features
[![Website Status](https://img.shields.io/website?url=https%3A%2F%2Fdrishxd.dev&up_message=Live&down_message=Down&label=Status)](https://drishxd.dev)
[![Vercel](https://img.shields.io/github/deployments/Drish-xD/Devfolio/Production?style=flat&logo=vercel&logoColor=%23000000&label=Vercel)](https://vercel.com/drishxd/devfolio)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/fade59170486438c8ffee9c3be71f28e)](https://app.codacy.com/gh/Drish-xD/Devfolio/dashboard)
![GitHub License](https://img.shields.io/github/license/Drish-xD/Devfolio?style=flat&logo=gnu&color=%23A42E2B&label=License)
![GitHub Release](https://img.shields.io/github/v/release/Drish-xD/Devfolio?display_name=tag&style=flat&logo=github&label=Release)
[![wakatime](https://wakatime.com/badge/github/Drish-xD/Devfolio.svg)](https://wakatime.com/badge/github/Drish-xD/Devfolio)

## Key Features

1. Next.js

Expand All @@ -16,10 +23,37 @@ The personal Portfolio website showcases projects, skills, and blogs to share ex

Lenis Scroll integration ensures a smooth scrolling experience, enhancing user navigation throughout the website.

4. CMS using Notion SDK
4. Contentful as CMS

Integration of Notion SDK enables easy content management for projects, allowing the user to update and manage content seamlessly.
Integration of Contentful SDK enables easy content management for projects, allowing the user to update and manage content seamlessly.

5. Attractive UI Design

The website boasts an appealing user interface, crafted using custom design, making it visually pleasing and user-friendly.

## Folder Structure

```
src
├───app
│ ├───(home)
│ │ └───components
│ │
│ └───projects
│ └───[slug]
├───components
├───constants
├───hooks
├───providers
├───styles
├───types
└───utils
```
27 changes: 0 additions & 27 deletions next.config.js

This file was deleted.

34 changes: 34 additions & 0 deletions next.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
// @ts-check
import Analyzer from '@next/bundle-analyzer';
import MDX from '@next/mdx';
import withPlaiceholder from '@plaiceholder/next';
import path from 'path';

/**
* @type {import('next').NextConfig}
*/

const nextConfig = {
output: 'export',
reactStrictMode: false,
cleanDistDir: true,
webpack: (config) => {
config.resolve.alias['@/base'] = path.resolve(process.cwd(), 'src/styles/base');
return config;
},
images: {
loader: 'custom',
loaderFile: './src/utils/imageLoader.ts',
minimumCacheTTL: 60,
remotePatterns: [
{ protocol: 'https', hostname: 'www.drishxd.dev' },
{ protocol: 'https', hostname: 'images.ctfassets.net' }
]
}
};

const withBundleAnalyzer = Analyzer({ enabled: process.env.ANALYZE === 'true' });

const withMDX = MDX();

export default withBundleAnalyzer(withMDX(withPlaiceholder(nextConfig)));
124 changes: 91 additions & 33 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,55 +1,113 @@
{
"name": "drish_portfolio",
"name": "devfolio",
"description": "Hi! my name is Drish, a Front-End Developer.",
"version": "2.0.0",
"version": "2.1.0",
"author": {
"name": "Drish-xD",
"url": "https://github.com/Drish-xD"
"name": "Drish",
"email": "[email protected]",
"url": "https://drishxd.dev"
},
"license": "GPL-3.0-or-later",
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint",
"format": "npx prettier --write .",
"prepare": "husky install"
"lint:next": "next lint",
"lint:eslint": "eslint --fix",
"lint:style": "stylelint --allow-empty-input --fix './src/**/*.{css,scss}'",
"lint": "pnpm lint:next && pnpm lint:style",
"format": "prettier --write .",
"prepare": "husky"
},
"lint-staged": {
"**/*": "prettier --write . --ignore-unknown"
"./src/**/*.{ts,js,jsx,tsx}": [
"pnpm lint:eslint",
"pnpm format"
],
"./src/**/*.{css,scss,json}": [
"pnpm lint:style",
"pnpm format"
]
},
"eslintConfig": {
"extends": [
"eslint:recommended",
"prettier",
"next/core-web-vitals"
],
"rules": {
"no-undef": "off",
"react-hooks/exhaustive-deps": "off",
"no-unused-vars": "off"
}
},
"stylelint": {
"extends": [
"stylelint-config-standard-scss",
"stylelint-config-prettier-scss"
],
"rules": {
"selector-class-pattern": null
}
},
"prettier": {
"plugins": [
"@trivago/prettier-plugin-sort-imports"
],
"bracketSpacing": true,
"semi": true,
"singleQuote": true,
"jsxSingleQuote": true,
"useTabs": false,
"tabWidth": 2,
"trailingComma": "none",
"printWidth": 100,
"importOrder": [
"^(react/(.*)$)|^(react$)|^(next/(.*)$)|^(next$)",
"<THIRD_PARTY_MODULES>",
"^@/(.*)$",
"^[./]"
],
"importOrderSeparation": true,
"importOrderSortSpecifiers": true
},
"dependencies": {
"@builder.io/partytown": "^0.8.0",
"@mdx-js/loader": "^2.3.0",
"@mdx-js/react": "^2.3.0",
"@next/mdx": "^13.4.10",
"@studio-freight/react-lenis": "^0.0.36",
"contentful": "^10.3.6",
"gsap": "^3.12.2",
"next": "^13.4.10",
"@gsap/react": "^2.1.0",
"@mdx-js/loader": "^3.0.1",
"@mdx-js/react": "^3.0.1",
"@next/mdx": "^14.2.2",
"@next/third-parties": "^14.2.2",
"@plaiceholder/next": "^3.0.0",
"@studio-freight/react-lenis": "^0.0.47",
"contentful": "^10.8.8",
"gsap": "^3.12.5",
"next": "^14.2.2",
"next-mdx-remote": "^4.4.1",
"plaiceholder": "^3.0.0",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-transition-group": "^4.4.5",
"split-type": "^0.3.3"
"sass": "^1.75.0",
"sharp": "^0.33.3",
"split-type": "^0.3.4",
"typescript": "5.4.5"
},
"devDependencies": {
"@next/bundle-analyzer": "^13.4.10",
"@trivago/prettier-plugin-sort-imports": "^4.1.1",
"@types/mdx": "^2.0.5",
"@types/node": "20.8.2",
"@types/react": "18.2.25",
"@types/react-dom": "18.2.10",
"@types/react-transition-group": "^4.4.6",
"@next/bundle-analyzer": "^14.2.2",
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@types/mdx": "^2.0.13",
"@types/node": "20.12.7",
"@types/react": "18.2.79",
"@types/react-dom": "18.2.25",
"cross-env": "^7.0.3",
"encoding": "^0.1.13",
"eslint": "^8.45.0",
"eslint-config-next": "13.5.4",
"eslint-config-prettier": "^8.8.0",
"husky": "^8.0.3",
"lint-staged": "^13.2.3",
"prettier": "^2.8.8",
"sass": "^1.63.6",
"typescript": "5.2.2"
"eslint": "^8.57.0",
"eslint-config-next": "14.2.2",
"eslint-config-prettier": "^9.1.0",
"husky": "^9.0.11",
"lint-staged": "^15.2.2",
"prettier": "^3.2.5",
"stylelint": "^16.4.0",
"stylelint-config-prettier-scss": "^1.0.0",
"stylelint-config-standard-scss": "^13.1.0"
}
}
Loading

0 comments on commit aaa89aa

Please sign in to comment.