Your self-managed developer profile, powered by GitHub. Create and maintain your own profile on profiles.dev!
Existing users: See the Migration Guide for updating to v2.
Your repository MUST be named profiles.dev to work with the profiles.dev service. This is a security requirement to ensure you control your own profile.
- Click the "Use this template" button above
- Name your repo exactly
profiles.dev(required!) - Edit
profile.yamlwith your information - Commit and push - your profile auto-updates!
- Create a new repository named
profiles.devin your GitHub account - Add this workflow to
.github/workflows/update-profile.yml:
name: Update profiles.dev
on:
push:
branches: [ main ] # or 'master' if that's your default
paths:
- 'profile.yaml'
# NOTE: workflow_dispatch is NOT supported
permissions:
id-token: write
contents: read
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: nomadops/profiles.dev@v2- Create your
profile.yamland push!
Edit profile.yaml to customize your profile. All fields are optional:
name: Jane Developer
bio: Full-stack developer passionate about open source
location: San Francisco, CA
email: jane@example.com
website: https://jane.dev
# Social links
twitter: "@janedev"
github: janedev
linkedin: https://linkedin.com/in/janedev
# Professional info
skills:
- TypeScript
- React
- Node.js
projects:
- name: Cool Project
description: An amazing project
url: https://github.com/janedev/cool-projectSee the full profile schema below for all available fields.
Once set up, your profile will be available at:
https://profiles.dev/YOUR_GITHUB_USERNAME
profiles.dev uses a self-service model where you control your own profile:
- Repository Name: Must be exactly
profiles.dev - Updates: Only via push to your default branch (no manual triggers)
- Authentication: Uses GitHub OIDC tokens for secure updates
- Rate Limiting: Maximum 1 update per minute
These requirements ensure that only you can update your profile.
Click to see all available fields
name- Your display namebio- Brief description about yourselfcompany- Current company/organizationlocation- Your locationemail- Contact emailwebsite- Personal website
twitter- Twitter/X handle or URLgithub- GitHub usernamelinkedin- LinkedIn profile URL
skills- Array of skillslanguages- Array of languages
Array of projects with:
name(required)descriptionurlrole
Array of work experiences with:
company(required)position(required)durationdescription
Array of education with:
institution(required)degreefieldyear
Array of certifications with:
name(required)issueryearurl
Trigger a manual update anytime:
- Go to Actions tab
- Select "Update profiles.dev"
- Click "Run workflow"
- uses: nomadops/profiles.dev@v1
with:
profile-path: 'custom/path/to/profile.yaml'
debug: truestrategy:
matrix:
profile: [personal.yaml, professional.yaml]
steps:
- uses: actions/checkout@v4
- uses: nomadops/profiles.dev@v1
with:
profile-path: ${{ matrix.profile }}This repository also contains the GitHub Action source code. See ACTION_README.md for development details.
We welcome contributions! Whether it's:
- π Bug fixes
- β¨ New features
- π Documentation improvements
- π‘ Ideas and suggestions
Please open an issue or submit a PR.
MIT Β© NomadOps
Made with β€οΈ by the NomadOps team
profiles.dev β’ Issues β’ Marketplace