Skip to content

Commit 69e23a1

Browse files
Merge pull request #737 from reach2saksham/kickstart
refactor(architecture,ui): upgrade website to Next.js 16 App Router, redesign Hero & Projects sections
2 parents 895772c + ffb3db5 commit 69e23a1

209 files changed

Lines changed: 8957 additions & 18885 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.coderabbit.yml

Lines changed: 236 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,236 @@
1+
# Enables IDE autocompletion for this config file
2+
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
3+
4+
# Language for CodeRabbit's review comments
5+
language: en
6+
7+
# Enable experimental features (currently not using any specific early_access features)
8+
early_access: true
9+
10+
chat:
11+
# CodeRabbit will automatically respond to @coderabbitai mentions in PR comments
12+
auto_reply: true
13+
14+
reviews:
15+
profile: assertive # Options: chill (focuses on significant issues, less nitpicky about style), assertive (more thorough, flags style issues and minor improvements too)
16+
17+
auto_review:
18+
# Automatically trigger reviews when PRs are opened or updated
19+
enabled: true
20+
# Skip auto-review if PR title contains these keywords
21+
ignore_title_keywords:
22+
- "WIP"
23+
# Don't auto-review draft PRs
24+
drafts: false
25+
# Only auto-review PRs targeting these branches
26+
base_branches:
27+
- main
28+
- develop
29+
30+
# Include a high-level summary at the start of each review
31+
high_level_summary: true
32+
33+
# Generate sequence diagrams for complex code flows
34+
sequence_diagrams: true
35+
36+
# Include poems in reviews
37+
poem: true
38+
39+
# Show review completion status
40+
review_status: true
41+
42+
# Keep the walkthrough section expanded by default
43+
collapse_walkthrough: false
44+
45+
# Include summary of all changed files
46+
changed_files_summary: true
47+
48+
# Automatically request changes on the PR (just leave comments)
49+
request_changes_workflow: true
50+
51+
# Pre-merge checks to enforce before merging PRs
52+
pre_merge_checks:
53+
description:
54+
# Validate that PR has a proper description
55+
mode: warning # Options: off, warning, error
56+
docstrings:
57+
# Disable docstring coverage checks (let's assume we don't need them)
58+
mode: off
59+
60+
# Exclude these paths from reviews (build artifacts and dependencies)
61+
path_filters:
62+
- "!**/node_modules/**" # npm dependencies
63+
- "!**/android/**" # Native Android build files
64+
- "!**/ios/**" # Native iOS build files
65+
- "!**/.expo/**" # Expo build cache
66+
- "!**/.expo-shared/**" # Expo shared config
67+
- "!**/dist/**" # Build output
68+
69+
# Use the following tools when reviewing
70+
tools:
71+
shellcheck:
72+
enabled: true
73+
ruff:
74+
enabled: true
75+
markdownlint:
76+
enabled: true
77+
github-checks:
78+
enabled: true
79+
timeout_ms: 90000
80+
languagetool:
81+
enabled: true
82+
enabled_only: false
83+
level: default
84+
biome:
85+
enabled: true
86+
hadolint:
87+
enabled: true
88+
swiftlint:
89+
enabled: true
90+
phpstan:
91+
enabled: true
92+
level: default
93+
golangci-lint:
94+
enabled: true
95+
yamllint:
96+
enabled: true
97+
gitleaks:
98+
enabled: true
99+
checkov:
100+
enabled: true
101+
detekt:
102+
enabled: true
103+
eslint:
104+
enabled: true
105+
106+
# Apply the following labels to PRs
107+
labeling_instructions:
108+
- label: Python Lang
109+
instructions: Apply when the PR/MR contains changes to python source-code
110+
- label: Solidity Lang
111+
instructions: Apply when the PR/MR contains changes to solidity source-code
112+
- label: Typescript Lang
113+
instructions: Apply when the PR/MR contains changes to javascript or typescript source-code
114+
- label: Ergoscript Lang
115+
instructions: Apply when the PR/MR contains changes to ergoscript source-code
116+
- label: Bash Lang
117+
instructions: >-
118+
Apply when the PR/MR contains changes to shell-scripts or BASH code
119+
snippets
120+
- label: Make Lang
121+
instructions: >-
122+
Apply when the PR/MR contains changes to the file `Makefile` or makefile
123+
code snippets
124+
- label: Documentation
125+
instructions: >-
126+
Apply whenever project documentation (namely markdown source-code) is
127+
updated by the PR/MR
128+
- label: Linter
129+
instructions: >-
130+
Apply when the purpose of the PR/MR is related to fixing the feedback
131+
from a linter
132+
133+
# Review instructions that apply to all files
134+
instructions: >-
135+
- Verify that documentation and comments are free of spelling mistakes
136+
- Ensure that test code is automated, comprehensive, and follows testing best practices
137+
- Verify that all critical functionality is covered by tests
138+
- Confirm that the code meets the project's requirements and objectives
139+
- Confirm that copyright years are up-to date whenever a file is changed
140+
- Point out redundant obvious comments that do not add clarity to the code
141+
- Look for code duplication
142+
- Suggest code completions when:
143+
- seeing a TODO comment
144+
- seeing a FIXME comment
145+
146+
# Custom review instructions for specific file patterns
147+
path_instructions:
148+
# TypeScript/JavaScript files
149+
- path: "**/*.{ts,tsx,js,jsx}"
150+
instructions: |
151+
NextJS:
152+
- Ensure that "use client" is being used
153+
- Ensure that only features that allow pure client-side rendering are used
154+
- NextJS best practices (including file structure, API routes, and static generation methods) are used.
155+
156+
TypeScript:
157+
- Avoid 'any', use explicit types
158+
- Prefer 'import type' for type imports
159+
- Review for significant deviations from Google JavaScript style guide. Minor style issues are not a priority
160+
- The code adheres to best practices associated with React
161+
- The code adheres to best practices associated with React PWA
162+
- The code adheres to best practices associated with SPA
163+
- The code adheres to best practices recommended by lighthouse or similar tools for performance
164+
- The code adheres to best practices associated with Node.js
165+
- The code adheres to best practices recommended for performance
166+
167+
Security:
168+
- No exposed API keys or sensitive data
169+
- Use expo-secure-store for sensitive storage
170+
- Validate deep linking configurations
171+
- Check for common security vulnerabilities such as:
172+
- SQL Injection
173+
- XSS (Cross-Site Scripting)
174+
- CSRF (Cross-Site Request Forgery)
175+
- Insecure dependencies
176+
- Sensitive data exposure
177+
178+
Internationalization:
179+
- User-visible strings should be externalized to resource files (i18n)
180+
181+
# HTML files
182+
- path: "**/*.html"
183+
instructions: |
184+
Review the HTML code against the google html style guide and point out any mismatches. Ensure that:
185+
- The code adheres to best practices recommended by lighthouse or similar tools for performance
186+
187+
# CSS files
188+
- path: "**/*.css"
189+
instructions: |
190+
Review the CSS code against the google css style guide and point out any mismatches. Ensure that:
191+
- The code adheres to best practices associated with CSS.
192+
- The code adheres to best practices recommended by lighthouse or similar tools for performance.
193+
- The code adheres to similar naming conventions for classes, ids.
194+
195+
# Python files
196+
- path: "**/*.{py}"
197+
instructions: |
198+
Python:
199+
- Check for major PEP 8 violations and Python best practices.
200+
201+
# Solidity Smart Contract files
202+
- path: "**/*.sol"
203+
instructions: |
204+
Solidity:
205+
- Review the Solidity contracts for security vulnerabilities and best practices
206+
- Ensure that the contracts are immutable
207+
- Ensure that there no unbounded loops that may run out of gas
208+
- Use appropriate visibility modifiers
209+
- flag variables that are defined and used only once
210+
- Look for gas optimization opportunities
211+
212+
# Javascript/Typescript test files
213+
- path: "**/*.test.{ts,tsx,js,jsx}"
214+
instructions: |
215+
Review test files for:
216+
- Comprehensive coverage of component behavior
217+
- Proper use of @testing-library/react-native
218+
- Async behavior is properly tested
219+
- Accessibility testing is included
220+
- Test descriptions are sufficiently detailed to clarify the purpose of each test
221+
- The tests are not tautological
222+
223+
# Solidity test files
224+
- path: "**/*.test.{sol}"
225+
instructions: |
226+
Review test files for:
227+
- Comprehensive coverage of contract behavior
228+
229+
# Asset files (icons, assets, images, fonts, etc.)
230+
- path: "public/brand/**/*"
231+
instructions: |
232+
Review asset files for:
233+
- Image optimization (appropriate size and format)
234+
- Proper @2x and @3x variants for different screen densities
235+
- SVG assets are optimized
236+
- Font files are licensed and optimized

.eslintrc.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Next.js CI
2+
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
pull_request:
7+
branches: [ "main" ]
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-latest
15+
16+
strategy:
17+
matrix:
18+
node-version: [20.x]
19+
20+
steps:
21+
- name: Checkout repository
22+
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
23+
24+
- name: Setup Node.js
25+
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
26+
with:
27+
node-version: ${{ matrix.node-version }}
28+
cache: 'npm'
29+
30+
- name: Install dependencies
31+
run: npm ci
32+
33+
- name: Run Lint
34+
run: npm run lint
35+
36+
- name: Build project
37+
run: npm run build
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Label Merge Conflicts
2+
3+
on:
4+
push:
5+
pull_request_target:
6+
types: [opened, reopened, synchronize]
7+
8+
permissions:
9+
pull-requests: write
10+
contents: read
11+
12+
jobs:
13+
label-conflicts:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Label PRs with merge conflicts
17+
uses: eps1lon/actions-label-merge-conflict@v3
18+
with:
19+
dirtyLabel: "PR has merge conflicts"
20+
repoToken: "${{ secrets.GITHUB_TOKEN }}"
21+
commentOnDirty: |
22+
⚠️ **This PR has merge conflicts.**
23+
24+
Please resolve the merge conflicts before review.
25+
26+
Your PR will only be reviewed by a maintainer after all conflicts have been resolved.
27+
28+
📺 Watch this video to understand why conflicts occur and how to resolve them:
29+
https://www.youtube.com/watch?v=Sqsz1-o7nXk

.github/workflows/nextjs.yml

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ name: Deploy Next.js site to Pages
77
on:
88
# Runs on pushes targeting the default branch
99
push:
10-
branches: ['main']
10+
branches: ["main"]
1111

1212
# Allows you to run this workflow manually from the Actions tab
1313
workflow_dispatch:
@@ -21,7 +21,7 @@ permissions:
2121
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
2222
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
2323
concurrency:
24-
group: 'pages'
24+
group: "pages"
2525
cancel-in-progress: false
2626

2727
jobs:
@@ -30,7 +30,7 @@ jobs:
3030
runs-on: ubuntu-latest
3131
steps:
3232
- name: Checkout
33-
uses: actions/checkout@v4
33+
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
3434
- name: Detect package manager
3535
id: detect-package-manager
3636
run: |
@@ -49,17 +49,25 @@ jobs:
4949
exit 1
5050
fi
5151
- name: Setup Node
52-
uses: actions/setup-node@v4
52+
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0 # v4.0.3
5353
with:
54-
node-version: '20'
54+
node-version: "20"
5555
cache: ${{ steps.detect-package-manager.outputs.manager }}
56+
- name: Setup Pages
57+
uses: actions/configure-pages@983d7716d0b22a34381e767ed38258fe49d10fc7 # v5.0.0
58+
with:
59+
# Automatically inject basePath in your Next.js configuration file and disable
60+
# server side image optimization (https://nextjs.org/docs/api-reference/next/image#unoptimized).
61+
#
62+
# You may remove this line if you want to manage the configuration yourself.
63+
static_site_generator: next
5664
- name: Restore cache
57-
uses: actions/cache@v4
65+
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
5866
with:
5967
path: |
6068
.next/cache
6169
# Generate a new cache whenever packages or source files change.
62-
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx', '**.mdx') }}
70+
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }}
6371
# If source files changed but packages didn't, rebuild from a prior cache.
6472
restore-keys: |
6573
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-
@@ -68,9 +76,9 @@ jobs:
6876
- name: Build with Next.js
6977
run: ${{ steps.detect-package-manager.outputs.runner }} next build
7078
- name: Upload artifact
71-
uses: actions/upload-pages-artifact@v3
79+
uses: actions/upload-pages-artifact@56af94fb8a90209199621a8d6f68cb44a3753017 # v3.0.1
7280
with:
73-
path: ./output
81+
path: ./out
7482

7583
# Deployment job
7684
deploy:
@@ -82,4 +90,4 @@ jobs:
8290
steps:
8391
- name: Deploy to GitHub Pages
8492
id: deployment
85-
uses: actions/deploy-pages@v4
93+
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5

0 commit comments

Comments
 (0)