Skip to content

Carabantech/developerFolio

Β 
Β 

Repository files navigation

Software Developer Portfolio ⚑️

Next.js GitHub GitHub stars

A modern, clean and responsive portfolio built with Next.js 13

πŸš€ Personalized for Sebastian Mauricio Carabante

This is a customized version of developerFolio featuring an IT Manager & Infrastructure Expert profile. πŸ‘‰ Visit my GitHub: @Carabantech

✨ Built with Next.js 13 App Router

This portfolio template uses the latest Next.js features including:

  • App Router for modern routing and layouts
  • Server Components for optimal performance
  • SCSS Modules for component-scoped styling
  • Lottie animations for engaging visuals
  • Responsive design for all devices

Just change src/portfolio.js to get your personal portfolio. Customize the theme by using your own color scheme in the src/styles/_globalColor.scss file.

If you'd like to contribute and make this much better for other users, have a look at Issues.

Created something awesome for your fork of the portfolio and want to share it? Feel free to open a pull request.

πŸ“‘ Table of Contents

πŸ“‚ Portfolio Sections

βœ”οΈ Summary and About me
βœ”οΈ Skills & Tech Stack
βœ”οΈ Education
βœ”οΈ Work Experience
βœ”οΈ Open Source Projects (GitHub Integration)
βœ”οΈ Big Projects
βœ”οΈ Achievements And Certifications πŸ†
βœ”οΈ Blogs (Medium Integration)
βœ”οΈ Talks
βœ”οΈ Podcast
βœ”οΈ Contact Information
βœ”οΈ Twitter Timeline
βœ”οΈ GitHub Profile

To view a live example, click here.

πŸš€ Getting Started

Prerequisites

You'll need Git and Node.js (which comes with npm) installed on your computer.

Minimum versions required:

node >= 18.17.0
npm >= 9.0.0
git >= 2.17.0

Recommended:

  • Node.js 18 LTS or Node.js 20 LTS
  • npm 9.x or higher

Docker Support

You can also use Docker to run the project:

# Build the Docker image
docker build -t developerfolio:latest .

# Run the container
docker run -p 3000:3000 developerfolio:latest

πŸ’» How To Use

From your command line, clone and run the project:

# Clone this repository
git clone https://github.com/Carabantech/developerFolio.git

# Go into the repository
cd developerFolio

# Setup environment variables
# For Linux/Mac
cp .env.example .env

# For Windows
copy .env.example .env

# Install dependencies
npm install

# Run the development server
npm run dev

Open http://localhost:3000 with your browser to see the result.

Other Available Commands

# Build for production
npm run build

# Start production server
npm run start

# Run linting
npm run lint

πŸ” Environment Variables

This project uses environment variables for configuration. Create a .env file in the root directory based on .env.example.

Available Environment Variables

# Medium username for blog integration
MEDIUM_USERNAME=your_medium_username

# GitHub username (optional, for GitHub integration)
GITHUB_USERNAME=your_github_username

# Display GitHub data (true/false)
USE_GITHUB_DATA=true

Note: In Next.js, environment variables that need to be exposed to the browser must be prefixed with NEXT_PUBLIC_. Currently, this portfolio fetches data server-side, so the prefix is not required for these variables.

GitHub Integration

To enable GitHub integration:

  1. Make sure .env file exists with your GITHUB_USERNAME
  2. Set USE_GITHUB_DATA="true" in the .env file
  3. In src/portfolio.js, set showGithubProfile to true

Note: The GitHub integration uses the public GitHub API which has rate limits. For development, a personal access token is not required, but for production deployments with frequent updates, consider using GitHub Actions (see Deployment section).

Open Source Projects Display:

Only pinned items from your GitHub profile will be shown. To pin repositories:

  1. Go to your GitHub profile
  2. Click "Customize your pins"
  3. Select up to 6 repositories to display

Pin Repositories

For more details, visit the GitHub Setup Wiki.

Medium Blog Integration

To display your Medium articles:

  1. Add your Medium username to .env:

    MEDIUM_USERNAME=your_medium_username
  2. In src/portfolio.js, set displayMediumBlogs to true

🎨 Customization

Personalize Your Portfolio Content

Edit /src/portfolio.js to customize your portfolio content:

/* Change this file to get your Personal Portfolio */

const greeting = {
  title: "Hi, I'm Sebastian",
  subTitle: emoji("IT Manager & Infrastructure Expert πŸš€"),
  resumeLink: "https://your-resume-link.com"
};

const socialMediaLinks = {
  github: "https://github.com/Carabantech",
  linkedin: "https://www.linkedin.com/in/your-profile/",
  gmail: "your.email@gmail.com",
  // ... more social links
};

const skillsSection = { /* ... */ };
const techStack = { /* ... */ };
const workExperience = { /* ... */ };
const openSource = { /* ... */ };
const bigProjects = { /* ... */ };
const achievementSection = { /* ... */ };
const blogSection = { /* ... */ };
const contactInfo = { /* ... */ };
const twitterDetails = { /* ... */ };

Customize Colors and Styling

Modify the global color scheme in /src/styles/_globalColor.scss:

// Example color customization
$primary-color: #55198b;
$accent-color: #ff6b6b;
// ... more color variables

Update Page Metadata

Edit /src/app/head.jsx to update SEO metadata:

export default function Head() {
  return (
    <>
      <title>Your Name - Portfolio</title>
      <meta name="description" content="Your custom description" />
      {/* ... more meta tags */}
    </>
  )
}

Using Emojis

For adding emoji πŸ˜ƒ into texts in portfolio.js, use the emoji() function:

const greeting = {
  title: emoji("Hi, I'm John πŸ‘‹")
};

This keeps emojis compatible across different browsers and platforms.

Customize Lottie Animations

  1. Choose a Lottie animation from LottieFiles
  2. Download it in JSON format
  3. Replace the desired animation file in /src/assets/lottie/
  4. To change animation options, edit /src/components/displayLottie/DisplayLottie.js

Refer to react-lottie docs for more configuration options.

Add Twitter Timeline

Insert your Twitter username in portfolio.js:

const twitterDetails = {
  userName: "your_twitter_username" // Don't use @ symbol
};

πŸš€ Deployment

Deploying to Vercel (Recommended)

The easiest way to deploy your Next.js app is to use Vercel, the platform from the creators of Next.js.

Deploy with Vercel

Steps:

  1. Push your code to GitHub
  2. Go to Vercel
  3. Import your GitHub repository
  4. Configure environment variables if needed
  5. Deploy!

Vercel will automatically detect Next.js and configure the build settings.

Deploying to Netlify

You can also deploy to Netlify:

Deploy to Netlify

Build settings for Netlify:

  • Build command: npm run build
  • Publish directory: .next

Important: Add a netlify.toml file in the root:

[build]
  command = "npm run build"
  publish = ".next"

[[plugins]]
  package = "@netlify/plugin-nextjs"

Deploying to GitHub Pages

For GitHub Pages deployment with Next.js:

  1. Install the required package:

    npm install --save-dev gh-pages
  2. Update next.config.js for static export:

    const nextConfig = {
      output: 'export',
      images: {
        unoptimized: true,
      },
    }
  3. Add deployment scripts to package.json:

    {
      "scripts": {
        "deploy": "next build && next export && gh-pages -d out"
      }
    }
  4. Run deployment:

    npm run deploy

GitHub Actions (Automated Deployment)

The project includes a GitHub Actions workflow for automated deployment.

Setup:

  1. Enable GitHub Actions in your repository settings
  2. Configure environment variables in GitHub Secrets:
    • MEDIUM_USERNAME
    • GITHUB_USERNAME

The workflow will automatically:

  • Deploy your site when you push to the main branch
  • Run weekly to update GitHub profile data
  • Can be triggered manually via workflow_dispatch

See .github/workflows/deploy.yml for configuration details.

Environment Variables in Production

Remember to set your environment variables in your deployment platform:

  • Vercel: Project Settings β†’ Environment Variables
  • Netlify: Site Settings β†’ Build & Deploy β†’ Environment
  • GitHub Pages: Repository Settings β†’ Secrets and variables β†’ Actions

πŸ› οΈ Technologies Used

Illustrations & Assets

πŸ“ Project Structure

developerFolio/
β”œβ”€β”€ public/                 # Static files (favicon, images, etc.)
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/               # Next.js App Router
β”‚   β”‚   β”œβ”€β”€ head.jsx       # Page metadata
β”‚   β”‚   β”œβ”€β”€ layout.jsx     # Root layout
β”‚   β”‚   └── page.jsx       # Home page
β”‚   β”œβ”€β”€ assets/            # Images, fonts, animations
β”‚   β”‚   β”œβ”€β”€ fonts/
β”‚   β”‚   β”œβ”€β”€ images/
β”‚   β”‚   └── lottie/
β”‚   β”œβ”€β”€ client/            # Client-side data fetching
β”‚   β”œβ”€β”€ components/        # Reusable components
β”‚   β”‚   β”œβ”€β”€ button/
β”‚   β”‚   β”œβ”€β”€ header/
β”‚   β”‚   β”œβ”€β”€ footer/
β”‚   β”‚   β”œβ”€β”€ socialMedia/
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ containers/        # Page sections/containers
β”‚   β”‚   β”œβ”€β”€ greeting/
β”‚   β”‚   β”œβ”€β”€ skills/
β”‚   β”‚   β”œβ”€β”€ education/
β”‚   β”‚   β”œβ”€β”€ workExperience/
β”‚   β”‚   β”œβ”€β”€ projects/
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ contexts/          # React contexts
β”‚   β”œβ”€β”€ styles/            # Global styles
β”‚   β”‚   └── _globalColor.scss
β”‚   β”œβ”€β”€ portfolio.js       # πŸ“ Main content configuration
β”‚   └── utils.js           # Utility functions
β”œβ”€β”€ .env                   # Environment variables (create this)
β”œβ”€β”€ .env.example           # Environment variables template
β”œβ”€β”€ next.config.js         # Next.js configuration
β”œβ”€β”€ jsconfig.json          # JavaScript configuration
└── package.json           # Project dependencies

πŸ”‘ Key Files to Modify

  1. src/portfolio.js - Your portfolio content and data
  2. src/styles/_globalColor.scss - Color theme customization
  3. src/app/head.jsx - SEO metadata
  4. .env - Environment variables

🀝 Contributing

Contributions are welcome! If you have suggestions for improvements or want to add new features:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

πŸ—ΊοΈ Roadmap

Future improvements and features being considered:

  • Migration to Next.js 14/15 with latest features
  • Integration with LinkedIn API
  • Dark/Light theme toggle
  • Blog section with MDX support
  • Performance optimizations
  • Accessibility improvements
  • Multi-language support

πŸ“ License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details.

πŸ’¬ Support

If you have any questions or need help:

⭐ Show Your Support

Give a ⭐️ if this project helped you!


About

πŸš€ Software Developer Portfolio Template that helps you showcase your work and skills as a software developer.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 61.1%
  • SCSS 35.3%
  • HTML 2.9%
  • Other 0.7%