Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
9186c69
Prepare GitHub Pages deployment
May 7, 2026
c338a8e
Prepare GitHub Pages deploy
May 7, 2026
5b99f74
Fix GitHub Pages asset paths
May 7, 2026
0cb3baf
Fix desktop navigation links for Pages
May 7, 2026
253a8fd
Add package-lock.json, update package.json and pnpm-lock.yaml, and cr…
arendondiosa May 11, 2026
36ddf0e
Remove unused dependencies from package-lock.json to streamline the p…
arendondiosa May 11, 2026
44e60c1
Update Node.js version in CI workflow from 25.2 to 22 for compatibility
arendondiosa May 11, 2026
d9f1b65
Comment out JS code formatting job in CI workflow and remove dependen…
arendondiosa May 11, 2026
092f1dd
Remove pnpm-lock.yaml and pnpm-workspace.yaml files to clean up proje…
arendondiosa May 11, 2026
ab9bfd8
Remove unused files and dependencies, including configuration files a…
arendondiosa May 11, 2026
7924985
Remove obsolete files and components, including documentation, config…
arendondiosa May 11, 2026
ca8322a
Add optional dependency 'lightningcss-linux-x64-gnu' to package.json …
arendondiosa May 11, 2026
746db20
Update CI workflow to use 'npm install' instead of 'npm ci' for depen…
arendondiosa May 11, 2026
6a4a186
Add optional dependency '@tailwindcss/oxide-linux-x64-gnu' to package…
arendondiosa May 11, 2026
88164e8
Add environment variable setup for GitHub Pages in CI workflows; upda…
arendondiosa May 11, 2026
438f51a
Enhance GitHub Pages deployment in CI workflow by including hidden fi…
arendondiosa May 12, 2026
5bc40e3
Refactor components and update data: Remove testimonials and FAQ sect…
arendondiosa May 13, 2026
05cff88
Update package dependencies: Add '@biomejs/biome' and related CLI too…
arendondiosa May 13, 2026
ef315b5
Add environment variables for color output in CI workflow to enhance …
arendondiosa May 13, 2026
55c6ec3
Update configuration files and enhance code formatting: Upgrade Biome…
arendondiosa May 13, 2026
0482549
Remove ESLint configuration and related dependencies from project: De…
arendondiosa May 13, 2026
d7fa61d
Enhance sponsor component by integrating Next.js Image component: Add…
arendondiosa May 13, 2026
0eebe23
Refactor image handling across components to use Next.js Image compon…
arendondiosa May 14, 2026
3b9e66a
Refactor SEO metadata handling and improve site structure: Introduced…
arendondiosa May 14, 2026
b7807c4
Update Code of Conduct and Sponsors components: Enhanced the Code of …
arendondiosa May 16, 2026
871b035
Integrate language context and localization support: Added LanguagePr…
arendondiosa May 16, 2026
dd139d0
Update avatars and enhance Code of Conduct section: Replaced avatar i…
arendondiosa May 20, 2026
fba5269
Update project details and enhance team section: Changed project name…
arendondiosa May 20, 2026
f46afa1
Replace Maria Franco's avatar image and update her role in the team s…
arendondiosa May 27, 2026
1da5562
Refactor team component for consistency and readability: Standardize …
arendondiosa May 27, 2026
7aa8c76
Add scholarships page and update navigation: Introduced a new scholar…
arendondiosa May 27, 2026
4dc8858
Enhance scholarships functionality and layout: Added SiteAlert compon…
arendondiosa May 27, 2026
ef42bea
Update scholarship terminology and localization: Changed references f…
arendondiosa May 27, 2026
7d0638a
Update Open Graph image and metadata: Removed the old og-image.png an…
arendondiosa May 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
VITE_GA_ID=G-XXXXXXXXXX
BASEPATH=
NEXT_PUBLIC_APP_URL=
41 changes: 35 additions & 6 deletions .github/workflows/ci-dev.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
name: Deploy static content to website-develop

# GitHub Actions is non-TTY; these make Node/Next (chalk) and similar tools emit ANSI colors
# that render in the Actions log viewer.
env:
FORCE_COLOR: "1"
TERM: xterm-256color

on:
push:
branches:
Expand Down Expand Up @@ -31,11 +37,11 @@ jobs:
- name: Setup node
uses: actions/setup-node@v6
with:
node-version: '25.2'
node-version: '22'
- name: Install node dependencies
run: |
cd pycon-website/
npm ci
npm install
- name: Show node environment
run: |
node --version
Expand All @@ -55,16 +61,35 @@ jobs:
- name: Setup nodeJS
uses: actions/setup-node@v6
with:
node-version: '25.2'
node-version: '22'
- name: Install dependencies
run: npm ci
- name: Set Pages environment
shell: bash
run: |
if [ -n "${{ vars.NEXT_PUBLIC_APP_URL }}" ]; then
echo "BASEPATH=${{ vars.BASEPATH }}" >> "$GITHUB_ENV"
echo "NEXT_PUBLIC_BASEPATH=${{ vars.BASEPATH }}" >> "$GITHUB_ENV"
echo "NEXT_PUBLIC_APP_URL=${{ vars.NEXT_PUBLIC_APP_URL }}" >> "$GITHUB_ENV"
elif [ "${{ github.event.repository.name }}" = "${{ github.repository_owner }}.github.io" ]; then
echo "BASEPATH=" >> "$GITHUB_ENV"
echo "NEXT_PUBLIC_BASEPATH=" >> "$GITHUB_ENV"
echo "NEXT_PUBLIC_APP_URL=https://${{ github.repository_owner }}.github.io" >> "$GITHUB_ENV"
else
echo "BASEPATH=/${{ github.event.repository.name }}" >> "$GITHUB_ENV"
echo "NEXT_PUBLIC_BASEPATH=/${{ github.event.repository.name }}" >> "$GITHUB_ENV"
echo "NEXT_PUBLIC_APP_URL=https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}" >> "$GITHUB_ENV"
fi
- name: Build project
run: npm run build
- name: Upload dist folder as artifact
uses: actions/upload-artifact@v4
with:
name: dist-artifact
path: dist/
path: out/
# Required so `public/.nojekyll` → `out/.nojekyll` is included. Without it, GitHub Pages
# Jekyll ignores `_next/` and every chunk returns 404.
include-hidden-files: true

deploy:
if: github.event_name == 'push'
Expand All @@ -90,11 +115,15 @@ jobs:
uses: actions/download-artifact@v4
with:
name: dist-artifact
path: dist
path: out
- name: Prepare deployment
run: |
find website-develop/ -mindepth 1 ! -name 'CNAME' ! -path "website-develop/.git*" -delete
mv dist/* website-develop/
# `mv out/*` skips dotfiles; `.nojekyll` must be present or GitHub Pages ignores `_next/`.
cp -a out/. website-develop/
# Belt-and-suspenders: artifact uploads omit dotfiles unless include-hidden-files is set;
# an empty file is enough to disable Jekyll for the whole site.
touch website-develop/.nojekyll
- name: Commit and push changes
run: |
cd website-develop
Expand Down
18 changes: 17 additions & 1 deletion .github/workflows/ci-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,30 @@ jobs:
node-version: 25.2
- name: Install dependencies
run: npm ci
- name: Set Pages environment
shell: bash
run: |
if [ -n "${{ vars.NEXT_PUBLIC_APP_URL }}" ]; then
echo "BASEPATH=${{ vars.BASEPATH }}" >> "$GITHUB_ENV"
echo "NEXT_PUBLIC_BASEPATH=${{ vars.BASEPATH }}" >> "$GITHUB_ENV"
echo "NEXT_PUBLIC_APP_URL=${{ vars.NEXT_PUBLIC_APP_URL }}" >> "$GITHUB_ENV"
elif [ "${{ github.event.repository.name }}" = "${{ github.repository_owner }}.github.io" ]; then
echo "BASEPATH=" >> "$GITHUB_ENV"
echo "NEXT_PUBLIC_BASEPATH=" >> "$GITHUB_ENV"
echo "NEXT_PUBLIC_APP_URL=https://${{ github.repository_owner }}.github.io" >> "$GITHUB_ENV"
else
echo "BASEPATH=/${{ github.event.repository.name }}" >> "$GITHUB_ENV"
echo "NEXT_PUBLIC_BASEPATH=/${{ github.event.repository.name }}" >> "$GITHUB_ENV"
echo "NEXT_PUBLIC_APP_URL=https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}" >> "$GITHUB_ENV"
fi
- name: Build
run: npm run build
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: './dist'
path: ./out
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
61 changes: 39 additions & 22 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,25 +1,42 @@
# Logs
logs
*.log
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
.cursor/mcp.json
.pnpm-debug.log*

# env files (can opt-in for committing if needed)
.env*.local
.env

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
2 changes: 2 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
auto-install-peers = true
shamefully-hoist=true
19 changes: 19 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"arrowParens": "avoid",
"bracketSpacing": true,
"htmlWhitespaceSensitivity": "css",
"insertPragma": false,
"bracketSameLine": false,
"jsxSingleQuote": true,
"printWidth": 120,
"proseWrap": "preserve",
"quoteProps": "as-needed",
"requirePragma": false,
"semi": false,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "none",
"useTabs": false,
"plugins": ["prettier-plugin-tailwindcss"],
"tailwindFunctions": ["clsx", "cva"]
}
22 changes: 22 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"recommendations": [
"formulahendry.auto-close-tag",
"steoates.autoimport",
"mgmcdermott.vscode-language-babel",
"aaron-bond.better-comments",
"streetsidesoftware.code-spell-checker",
"naumovs.color-highlight",
"mikestead.dotenv",
"EditorConfig.EditorConfig",
"usernamehw.errorlens",
"eamodio.gitlens",
"xabikos.JavaScriptSnippets",
"christian-kohler.npm-intellisense",
"christian-kohler.path-intellisense",
"esbenp.prettier-vscode",
"MylesMurphy.prettify-ts",
"yoavbls.pretty-ts-errors",
"jasonnutter.search-node-modules",
"bradlc.vscode-tailwindcss"
]
}
32 changes: 32 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
// JS
"javascript.updateImportsOnFileMove.enabled": "always",
// JSON
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
// VSCode Editor
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "never",
"source.fixAll.stylelint": "explicit"
},
// Extension: Git
"git.rebaseWhenSync": true,
"git.autofetch": true,
"git.enableSmartCommit": true,
// Extension: Prettier
"prettier.requireConfig": true,
"markdown.extension.toc.updateOnSave": false,
"files.insertFinalNewline": true,
"editor.linkedEditing": true,
"typescript.tsdk": "node_modules/typescript/lib",
"cSpell.words": [],
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<!-- Available h3 headings: Added, Fixed, Updated, Removed, Deprecated -->

# Changelog

All notable changes to this template will be documented in this file

## v1.0.0 (2026-02-02)

### Added

- Initial release
- Contains following sections
- Header
- Hero Section
- Trusted Brands
- Features
- Benefits
- Testimonials
- Pricing
- FAQ
- CTA
- Footer
- Contains following pages
- Home page
- Blog page
- Blog details page
- Pricing detail page
- Auth Pages
- Login Page
- Register Page
- Forgot Password Page
- Reset Password Page
- Responsive Design
- Dark/Light Mode Toggle
- Smooth Scrolling
- SEO Optimization
30 changes: 26 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,28 @@ npm run dev

Then open the URL shown in the terminal (usually `http://localhost:5173`).

## Deploy en GitHub Pages

Este proyecto ya esta configurado para exportacion estatica de Next.js y despliegue automatico con GitHub Actions.

1. Crea un repositorio en GitHub.
2. Conecta este proyecto al repositorio real:

```bash
git remote set-url origin https://github.com/TU_USUARIO/TU_REPO.git
git add .
git commit -m "Prepare GitHub Pages deploy"
git push -u origin main
```

3. En GitHub, entra a `Settings` -> `Pages`.
4. En `Build and deployment`, selecciona `GitHub Actions` como fuente.
5. Abre la pestana `Actions` y espera a que termine `Deploy to GitHub Pages`.

Si el repositorio se llama `TU_USUARIO.github.io`, la web quedara en `https://TU_USUARIO.github.io/`. Si usa otro nombre, quedara en `https://TU_USUARIO.github.io/TU_REPO/`.

## Table of Contents 📋

### 3. Build for production

```bash
Expand All @@ -39,10 +61,10 @@ npm run preview

## Other scripts

| Script | Description |
|-----------------|--------------------------------|
| `npm run format` | Format and fix with Biome |
| `npm run format:check`| Check formatting (no write) |
| Script | Description |
| ---------------------- | --------------------------- |
| `npm run format` | Format and fix with Biome |
| `npm run format:check` | Check formatting (no write) |

## Tech stack

Expand Down
12 changes: 10 additions & 2 deletions biome.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "https://biomejs.dev/schemas/2.3.13/schema.json",
"$schema": "https://biomejs.dev/schemas/2.4.15/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
Expand All @@ -8,6 +8,11 @@
"files": {
"ignoreUnknown": false
},
"css": {
"parser": {
"tailwindDirectives": true
}
},
"formatter": {
"enabled": true,
"indentStyle": "space",
Expand All @@ -16,7 +21,10 @@
"linter": {
"enabled": true,
"rules": {
"recommended": true
"recommended": true,
"suspicious": {
"noArrayIndexKey": "off"
}
}
},
"javascript": {
Expand Down
22 changes: 22 additions & 0 deletions components.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"rsc": true,
"tsx": true,
"tailwind": {
"config": "",
"css": "src/app/globals.css",
"baseColor": "neutral",
"cssVariables": true,
"prefix": ""
},
"iconLibrary": "lucide",
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
},
"registries": {}
}
Loading
Loading