Skip to content

fcreme/MyPortfolio

Repository files navigation

Felipe Cremerius — Portfolio

A developer portfolio built with React, styled as a fully interactive Neovim terminal. Features a file tree, tabbed buffers, a status line, Telescope fuzzy finder, and a dashboard — all rendered in the browser.

React TailwindCSS Framer Motion

Features

  • Neovim UI — File tree, buffer tabs, status line, and line numbers that mimic a real Neovim session
  • Telescope Integration — Fuzzy finder overlay for quick navigation between sections
  • Dashboard — Start screen inspired by Neovim dashboard plugins
  • Lazy Loading — Components load on demand for fast initial paint
  • Smooth Animations — Transitions powered by Framer Motion
  • Fully Responsive — Optimized for desktop, tablet, and mobile
  • Contact Form — Functional email form via EmailJS

Tech Stack

Layer Technology
UI Library React 18
Styling Tailwind CSS 3
Animations Framer Motion
Icons Lucide React, React Icons
Email EmailJS
Build Tool Create React App

Getting Started

Prerequisites

  • Node.js 16+
  • npm or yarn

Installation

# Clone the repository
git clone https://github.com/your-username/portfolio.git
cd portfolio

# Install dependencies
npm install

# Start the dev server
npm start

The app will be available at http://localhost:3000.

Production Build

npm run build

Output is generated in the build/ directory, ready for static hosting.

Project Structure

portfolio/
├── public/
│   └── index.html
├── src/
│   ├── components/
│   │   ├── NeovimTerminal.js      # Main terminal wrapper
│   │   ├── terminal/
│   │   │   ├── Dashboard.js       # Neovim start screen
│   │   │   ├── FileTree.js        # Side panel file explorer
│   │   │   ├── StatusLine.js      # Bottom status bar
│   │   │   ├── TitleBar.js        # Terminal title bar
│   │   │   ├── Line.js            # Line rendering with numbers
│   │   │   ├── Telescope.js       # Fuzzy finder overlay
│   │   │   ├── LazyLoader.js      # On-demand component loading
│   │   │   ├── CursorContext.js   # Cursor state management
│   │   │   └── views/
│   │   │       ├── ReadmeView.js
│   │   │       ├── AboutView.js
│   │   │       ├── ExperienceView.js
│   │   │       ├── SkillsView.js
│   │   │       ├── ProjectsView.js
│   │   │       ├── ContactView.js
│   │   │       └── PackageJsonView.js
│   │   ├── Hero.js
│   │   ├── About.js
│   │   ├── Skills.js
│   │   ├── Projects.js
│   │   ├── Contact.js
│   │   ├── Header.js
│   │   ├── Footer.js
│   │   └── ui/
│   │       └── AuroraBackground.js
│   ├── lib/
│   │   └── utils.js
│   ├── App.js
│   └── index.js
├── tailwind.config.js
├── postcss.config.js
└── package.json

Deployment

Vercel

npm i -g vercel
vercel

Netlify

Set the build command to npm run build and the publish directory to build.

GitHub Pages

npm install --save-dev gh-pages

Add to package.json:

"homepage": "https://your-username.github.io/portfolio",
"scripts": {
  "predeploy": "npm run build",
  "deploy": "gh-pages -d build"
}

Then run:

npm run deploy

License

MIT

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors