One link to make your research life easier to share! Papers, talks, affiliations, socials, whatever... Easy, free, decentralised, and built on the AT Protocol.
Note
The complete documentation is available on docs.lanyards.app
- Account Creation: Sign in with your Bluesky account using OAuth
- Researcher Profile: Mobile-first profile display with QR code sharing
- Profile Management: Manage honorifics, location, affiliations, and more
- Social Networks: Link to Twitter, LinkedIn, ResearchGate, Google Scholar, and Semble
- Scholarly Contributions: Add research using DOIs
- Academic Events: Track conference presentations and symposiums
- Next.js
- TypeScript
- Tailwind CSS
- AT Protocol (@atproto/*)
npm installCopy the example environment file:
cp .env.example .envEdit .env if you need to customize settings:
# Set authentication method (app_password for development, oauth for production)
AUTH_METHOD=app_password
# Application URL
NEXT_PUBLIC_APP_URL=http://localhost:3000
# PDS Configuration (change if using a different PDS)
PDS_URL=https://bsky.socialnpm run devVisit http://localhost:3000 and click "Sign In". Enter your Bluesky handle and app password.
- Go to https://bsky.app/settings/app-passwords
- Click "Add App Password"
- Give it a name (e.g., "Lanyards")
- Copy the generated password and use it to sign in
- Pros: Simple setup, works immediately, no OAuth configuration needed
- Cons: Users must create an app password from Bluesky settings
- Use for: Local development and testing
- Configuration: Set
AUTH_METHOD=app_passwordin.env
npm run build- Generate lexicons and build for productionnpm run dev- Generate lexicons and start development servernpm run format- Format code with Prettiernpm run lex:gen- Generate TypeScript types from lexicon schemasnpm run lex:watch- Watch lexicon schemas and regenerate types on changesnpm run lint:fix- Run ESLint and automatically fix issuesnpm run lint- Run ESLintnpm run start- Start production server
Once authenticated, you can:
- View your dashboard at
/dashboard - Add affiliations, publications, and events
- Configure your profile settings
- View your public profile at
/{your-handle}
- Verify your app password is correct (no typos, copied fully)
- Make sure your Bluesky account is active
- Check that
PDS_URLis set tohttps://bsky.social(or your PDS URL) - Try creating a new app password
- Make sure you're signed in (check for session cookie)
- Try clearing cookies and signing in again
- Check the browser console for errors
- Check the browser console for errors
- Ensure the handle is correct (e.g.,
alice.bsky.social) - Verify the user has created a Lanyards profile
