Git Product home page Git Product logo

nextjs-resume's Introduction

Colin Hemphill

I am a front end developer based in Austin, TX! If you want find out more or get in touch, please visit my website.

Professional work

Skills

I have worked in professional web development since 2013, and specialize in front end technologies like React. I strive to build beautiful, accessible, functional, and performant applications that make the web a friendly and enjoyable experience for everyone.

  • TypeScript, JavaScript
  • React, Next.js, React Native
  • Redux, GraphQL
  • CSS, preprocessors, Tailwind CSS, CSS-in-JS, Vanilla Extract 🧁
  • Web Accessibility (A11y, WCAG, ARIA)
  • Node.js
  • Vercel, serverless

Résumé

To see my current and past professional work, visit my digital résumé in web or PDF.

Personal projects

🎙󠀠 The AniMonday Podcast

A bi-weekly anime podcast. On each episode, we hit the "Random" button on Crunchyroll and must watch whatever pops up!

Roles: web developer, designer, content manager, co-host, audio engineer

🔗 https://animonday.moe

🎸 dot.darkness

A nerdy electronic rock duo specializing in drum & bass, darksynth, outrun, and metal.

Roles: web developer, designer, content manager, guitarist, producer, background vocalist

🔗 https://dotdotdarknessmusic.com

🎲 Randime

The anime randomizer powered by AniMonday and Kitsu.

Roles: web developer, designer

🔗 https://randime.moe/

🛋 Kayla Hemphill Counseling

A low-cost counseling center that offers professional counseling services in North Austin and through secure telehealth video calls. My wife is the director.

Roles: web developer, designer, content manager

🔗 https://liveformorecounseling.com

nextjs-resume's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

nextjs-resume's Issues

Using tailwindcss-radix-colors would be nice

I think using tailwindcss-radix-colors would simplify the project significantly and make the color setup easier to understand. I will warn you, although there is this library react-pdf-tailwind that allows the use of tailwind in react-pdf, I was not able to use it because the arbitrary colors don't seem to work with rgb/rgba/hsv functions and the tailwindcss-radix-colors classes don't seem to work in react-pdf either.

Add support for private information

We need a secure way of accessing private information to include in the résumé. For example, if the owner wants to be able to generate a special URL that will generate the same résumé that features additional contact information not accessible to the public (email, phone number, address, etc). The owner could send this private link to an employer of use it to generate a PDF for themselves.

changing accentColor does not change dark/light mode

I want my PDF to be light so it's printable (I would suggest this be the default, and that the config for PDF and web be separate). I can't seem to change the theme universally though.

In the readme, it's stated:

accentColor: string. The name of an accent palette from Radix UI Colors. If using a standard color, the contrasting text color will be white, and if using a bright color, the contrasting text color will be black.

However, when changing the accent color to one of the "bright" colors e.g. "sky", the background does not become light. When the neutral color is changed to grey the mode does change to light background, but the lack of contrast makes some of the text invisible, and most of it nearly unreadable.

In the chart you show each accent color could be dark or light but above it's stated accent color determines light/dark mode.

Not very amenable to CMS integration, incompatible with previous version CMS setup

The use of the Prose component to render HTML generated from markdown makes creating an integration for CMS content messy. For example, Prismic uses the formatted text field which is rendered through a react component so I had to edit the Prose component to check the type. This problem duplicates itself in the PDF rendering as well, requiring a similar PdfProse. Perhaps it would have been helpful to make the function that converts the property to content be configurable. For links, you can't store icons in a CMS, so it would have been better to use a iconName as is stated falsely in the readme but instead, the fa* icons are on the icon property. I regret this project is not more backward-compatible but there are some great improvements so I feel it's worth the effort.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

bun
package.json
  • @heroicons/react 2.1.4
  • @icons-pack/react-simple-icons 9.6.0
  • @radix-ui/colors 3.0.0
  • @react-pdf/renderer 3.4.4
  • class-variance-authority 0.7.0
  • contentlayer 0.3.4
  • next 14.2.4
  • next-contentlayer 0.3.4
  • react 18.3.1
  • react-dom 18.3.1
  • react-pdf-html 2.0.4
  • tailwind-merge 2.4.0
  • @happy-dom/global-registrator 14.12.3
  • @testing-library/react 16.0.0
  • @types/node 20.14.10
  • @types/react 18.3.3
  • autoprefixer 10.4.19
  • bun-types 1.1.18
  • eslint 8.57.0
  • eslint-config-next 14.2.4
  • eslint-config-prettier 9.1.0
  • husky 9.0.11
  • jsdom 24.1.0
  • lint-staged 15.2.7
  • postcss 8.4.39
  • prettier 3.3.2
  • prettier-plugin-tailwindcss 0.6.5
  • tailwindcss 3.4.4
  • typescript 5.5.3
  • webpack 5.92.1
  • windy-radix-palette 2.0.0-beta.7
github-actions
.github/workflows/main.yml
  • actions/checkout v4
  • oven-sh/setup-bun v1
nvm
.nvmrc

  • Check this box to trigger a request for Renovate to run again on this repository

Manifest.json at Head

Hi, I noticed that there isn't a manifest.json reference to Next JS app Head: "link rel="manifest" href="/manifest.json". Is that on purpose? Happy to quickly suggest the update as part of the DefaultTags.

Failed to Load PDF: 500 Internal Server Error

Just forked and deployed on Vercel, not even set up the optional $PRIVATE_KEY environment variable.

Vercel Functions log told me this:

Error: Unknown font format
    at Module.$d636bc798e7178db$export$185802fd694ee1f5 (file:///var/task/node_modules/fontkit/dist/module.mjs:41:11)
    at FontSource._callee2$ (file:///var/task/node_modules/@react-pdf/font/lib/index.js:106:33)
    at tryCatch (/var/task/node_modules/@babel/runtime/helpers/regeneratorRuntime.js:45:16)
    at Generator.<anonymous> (/var/task/node_modules/@babel/runtime/helpers/regeneratorRuntime.js:133:17)
    at Generator.next (/var/task/node_modules/@babel/runtime/helpers/regeneratorRuntime.js:74:21)
    at asyncGeneratorStep (/var/task/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24)
    at _next (/var/task/node_modules/@babel/runtime/helpers/asyncToGenerator.js:22:9)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
  Error: Unknown font format
    at Module.$d636bc798e7178db$export$185802fd694ee1f5 (file:///var/task/node_modules/fontkit/dist/module.mjs:41:11)
    at FontSource._callee2$ (file:///var/task/node_modules/@react-pdf/font/lib/index.js:106:33)
    at tryCatch (/var/task/node_modules/@babel/runtime/helpers/regeneratorRuntime.js:45:16)
    at Generator.<anonymous> (/var/task/node_modules/@babel/runtime/helpers/regeneratorRuntime.js:133:17)
    at Generator.next (/var/task/node_modules/@babel/runtime/helpers/regeneratorRuntime.js:74:21)
    at asyncGeneratorStep (/var/task/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24)
    at _next (/var/task/node_modules/@babel/runtime/helpers/asyncToGenerator.js:22:9)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Error: Unknown font format
    at Module.$d636bc798e7178db$export$185802fd694ee1f5 (file:///var/task/node_modules/fontkit/dist/module.mjs:41:11)
    at FontSource._callee2$ (file:///var/task/node_modules/@react-pdf/font/lib/index.js:106:33)
    at tryCatch (/var/task/node_modules/@babel/runtime/helpers/regeneratorRuntime.js:45:16)
    at Generator.<anonymous> (/var/task/node_modules/@babel/runtime/helpers/regeneratorRuntime.js:133:17)
    at Generator.next (/var/task/node_modules/@babel/runtime/helpers/regeneratorRuntime.js:74:21)
    at asyncGeneratorStep (/var/task/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24)
    at _next (/var/task/node_modules/@babel/runtime/helpers/asyncToGenerator.js:22:9)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Error: Runtime exited with error: exit status 1
Runtime.ExitError

How do we solve this problem?

PDF text is presented correctly but copied text does not match content, leading to garbled text when converting to doc

⚠️ it's a common practice for employers and recruiters to convert PDF to doc. When they do this, the resumes from this project will have text that is mangled (it will also distort text copied from within the PDF).

This is an issue with react-pdf and it looks like there's a workaround here that requires modifying the font files. As reported there, I couldn't get them to work with the SourceSansPro so I'd recommend changing the font you're using. I tried a couple that made "Contact information" overflow the sidebar but Lato seems to work nicely.

Improvements to the generator

Hi, first of all congratulations for this awesome project! I have just deployed it and it has been pretty easy. I have thought about some improvements that could be made to the general workflow and to avoid extra boilerplate:

  1. The CMS part seems to be redundant and could be removed as it only adds boilerplate and overhead to the configuration and the code. To solve this I have thought about just having a Json Resume Schema in a folder that the user fills and extract all the information from there (even though its not as intuitive as a headless CMS), or create markdown templates as you say in #4 from that json data. Another option would be using the Linkedin API, because all the information I have added to the CMS is already in my linkedin. Unfortunately it seems that they dont give easy access to experience, interests and skills info about a profile, only basic profile data like email, name and so on.
  2. I have used Prismic and it was quite easy to use even though its my first time using a headless CMS. However, it would be easier if you add just some pictures of the contenful and prismic dashboards to map better the info you request with the CMS interface. For example, it took me like 10 minutes (maybe I am just stupid) to realize that the schema you mention in the CMS setup is a type in the prismic dashboard, and the text type is a Key Text element in the type creation.
  3. There is some information that could be added, for example languages, volunteer, publications, etc (just based on the JSON Resume Schema) . Anyway I suppose you already know it ;)
  4. More information for devs about how the project is structured, how to modify x section, etc would be a + since for example my knowledge of NextJS, CSS, and so on is still in the Familiar level ;P

What do you think? I reached your repo because I was looking for some templates and ideas to create my own web, here you have some links with beautiful designs and ideas that might help you:

Again, thank you for your time to create this! I think it has the potential to be very popular in the NextJS ecosystem! If you need help just tell me ;)

Can't run application on fresh install

Hello,

It seems there is an issue running the project.

npm install don't have any issue, but using npm run dev or npm build the app crashed with this message :

> next dev

- ready started server on 0.0.0.0:3000, url: http://localhost:3000
- error Failed to load next.config.mjs, see more info here https://nextjs.org/docs/messages/next-config-error
file:///home/vince/development/resume-next/node_modules/@effect-ts/otel/_mjs/Processor/Simple/index.mjs:7
import { ConsoleSpanExporter, SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
         ^^^^^^^^^^^^^^^^^^^
SyntaxError: Named export 'ConsoleSpanExporter' not found. The requested module '@opentelemetry/sdk-trace-base' is a CommonJS module, which may not support all module.exports as named exports.
CommonJS modules can always be imported via the default export, for example using:

import pkg from '@opentelemetry/sdk-trace-base';
const { ConsoleSpanExporter, SimpleSpanProcessor } = pkg;

    at ModuleJob._instantiate (node:internal/modules/esm/module_job:128:21)
    at async ModuleJob.run (node:internal/modules/esm/module_job:194:5)
    at async Promise.all (index 0)
    at async ESMLoader.import (node:internal/modules/esm/loader:409:24)
    at async importModuleDynamicallyWrapper (node:internal/vm/module:435:15)
    at async loadConfig (/home/vince/development/resume-next/node_modules/next/dist/server/config.js:507:36)
    at async NextServer.prepare (/home/vince/development/resume-next/node_modules/next/dist/server/next.js:160:24)
    at async Server.<anonymous> (/home/vince/development/resume-next/node_modules/next/dist/server/lib/render-server.js:124:17) {
  type: 'SyntaxError'
}

I've tried to upgrade dependency, but this doesn't resolve this issue.

Node version is : 18.2.0
Npm version is : 8.9.0

Have you got any idea to bypass this issue ?

Thank you in advance

redeploy caused AWS lambda size limit to be hit

Although I didn't change the lambda function for generating the pdf, editing the pdf template to remove the page break caused Vercel deploy to fail because the lambda exceeded limit size. I can't understand why this would have happened because the bulk of the function is from the chrome-aws-lambda dependency and it is pinned in the repo. My only guess is that the limit changed. There's a known issue with chrome-aws-lambda being too big. Downgrading all the way to 2.1.1 got my deploy under the limit. However, this version doesn't work with the code and clicking the PDF button results in a 500 error on the request with response body Internal Server Error.

Incompatible with Night Eye Chrome extension

Irrespective of which prefers-color-scheme value is set, the site contains some text that is very low contrast (though the low-contrast text varies based on light/dark) when the Night Eye Chrome extension is active. For this reason, I'm going to switch to using underline for emphasis.

Add simple markdown support

The default CMS integration for the project should use Markdown files that are stored in the repo. This option would be the simplest for a developer to set up since it wouldn't require any external service setup or webhooks. The generator repo should include templates, which would allow the project to work with zero configuration.

Bundle optimizations

Will flesh out this request soon, but as a placeholder I'll mention that I'm currently looking at various optimizations to reduce the bundle sizes. One major factor is that we are currently importing the entirety of Fontawesome. Folks looking to host their own resumé and optimize for themselves should use the library.add() feature to only include icons they need, but I'm looking to see if there's some way to improve this more broadly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.