Based on Next.js, maintains personal information and links through two data files: BioData.js and LinksData.js
nxt-lnk — Next.js Portfolio Template
By realvjy
nxt-lnk is a Next.js-based bio link page template that manages personal information and links via BioData.js and LinksData.js, and can be self-hosted on Vercel or Netlify with a custom domain.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Links are rendered grouped by type; social types display as an icon row, while others appear as blocks
Each link can be individually enabled or disabled via the on field; avatar supports switching between hexagonal and oval shapes
Styles are written with styled-components; frontend blocks are centralized in components/WebLinks.js
Includes built-in next-seo configuration and explains how to integrate Google Analytics via Vercel environment variables
Supports deployment to Vercel or Netlify and binding a custom domain
Template Details
nxt-lnk is a personal bio link page template written in Next.js, positioned as a self-hosted alternative to link aggregation platforms like Linktree, suitable for creators who love coding. Page content is maintained through two data files, data/BioData.js and data/LinksData.js, allowing updates to name, username, avatar, description, sub-description, and various links without deep component changes. Links are grouped by the type field; social types appear as a single row of icons below the description, while other types render as blocks. Each link can be individually enabled or disabled via the on field.
The template uses styled-components for styling, with frontend blocks centralized in components/WebLinks.js. Adding or adjusting blocks requires modifying both the type in LinksData.js and the corresponding filter and render code in WebLinks.js. The avatar supports hexagonal (nftAvatar: true) and oval display modes. The title defaults to reading title.svg, and the Featured banner is controlled by newProduct and newProductUrl. The template automatically switches to dark mode based on system configuration.
For deployment, the README provides one-click deployment entries for Vercel and Netlify, and you can also initialize a project using create-next-app with this repository as a template. Locally, start via npm run dev or yarn dev. SEO uses next-seo, requiring modification of next-seo.config.js and filling in the full address of preview.jpg. Google Analytics is configured via Vercel environment variables with a GA 4 code. Custom domains and favicon are handled by following the hosting platform's documentation and placing favicon.ico in the public directory, respectively.
Note that using this template to update information requires basic code understanding. Adding new social icons also requires adding corresponding svg files in the public directory and may involve changes to WebLinks.js. The v2 mytiny.page builder mentioned in the README is another service by the author and is not part of this repository's code.
Is it right for your project?
Use Cases
- Creators building a self-hosted bio link aggregation page to replace third-party platforms like Linktree
- Displaying personal social accounts, works, NFTs, and other links together on one page
- Initializing a Next.js project using this repository as a template, then modifying data files and components as needed
- Deploying to Vercel or Netlify and binding your own domain as a personal entry page
Suitable For
- Creators with basic Next.js and React knowledge who are willing to edit code files directly
- Individuals who want to self-host their link page and bind an independent domain
- Developers who need to display links grouped by social, project, and other categories
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
You can initialize a project using create-next-app with this repository as a template, or use the Vercel and Netlify deployment entries in the README
- 2
Run locally with npm run dev or yarn dev; by default, view at http://localhost:3000
- 3
Mainly edit data/BioData.js and data/LinksData.js; place images and icons in the public directory
- 4
Adding new social icons requires adding corresponding svg files in public and may require adjusting the corresponding block in components/WebLinks.js
- 5
For SEO, modify next-seo.config.js and fill in the full address of preview.jpg; place favicon.ico in the public directory
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license from the public repository; the free scope is the code of this version and does not imply that external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as-is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Using this template requires basic code understanding; it is not a no-code tool and requires editing data files and component code yourself.
- Enabling Google Analytics requires registering a Google Analytics account to obtain a GA4 code and configuring it in Vercel project environment variables; this is an external service dependency.
- Custom domains depend on the Vercel or Netlify hosting platform and must be operated according to platform documentation, which may involve platform account and domain fees.
- Adding new social icons requires adding corresponding svg files in the public directory and may involve modifying components/WebLinks.js code; it is not a pure configuration operation.
- SEO functionality requires manually modifying next-seo.config.js and filling in the full external link address of preview.jpg.
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; they cannot be judged solely based on the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
`nxt-lnk` template used to create your custom bio link and self-host on Vercel or Netlify using your own domain. Need little understanding of code :) ☕
Original README
In Vercel, you can set this by going to your project, then Settings and finally [Environments Variables](https://vercel.com/docs/concepts/projects/environment-variables). To get GA 4 code `G-ZXX0000XXX` follow [these steps]
Original README
Vercel/Netlify give you option to add any domain to the deployed project
Original README
Update all info and make sure to add a `newiconname.svg` file in [public](#images) folder. Then you have to add new section to frontend `components/WebLinks.js`
Original README
https://github.com/realvjy/nxt-lnk/blob/main/LICENSE.mdhttps://github.com/realvjy/nxt-lnk/blob/main/README.mdAlready added `next-seo`. All you have to do is `update next-seo.config.js` file. Make sure to add direct link of `preview.jpg`file
Original README
Compiled by DeepSeek based on repository license and README ·2026-09-30. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 91 / 100
- Technologies
- Next.js · React
- Website type
- Portfolio
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-04-15
- Screenshot last checked
- 2026-09-30
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: a42ba7e3cd2ef09597e7494bb0657d30ca4e59541c52675fd3b4b1774fe1abe5
2026-09-30T08:15:43.739Z
Source file / repository### v2 [mytiny.page](https://beta.mytiny.page) builder is here. Explore and go live in minutes
----
# My Tiny Page (Formely Nxt Lnk)
**Custom bio links for creatives who love coding. Made this first to use for my own weblinks vjy.me/lnk**
A perfect custom alternative for linktree, bio and other shortner platform. Check live version here [nxtlnk.xyz](https://nxtlnk.xyz)
Pull requests are always welcome. In case you want inspiration or new features on what to add, check out the issues for feature requests.
Coffee fuels coding ☕️
**Table of Contents**
- [Usage](#usage)
- [Quick Start](#quick-start)
- [Manual Setup](#manual-setup)
- [Getting Started](#getting-started)
- [Images](#images)
- [Update Bio](#update-bio)
- [Add/Update](#update-bio)
- [Enable/Disable](#update-bio)
- [Featured Banner](#update-bio)
- [Update Links](#update-links)
- [Enable/Disable](#update-links)
- [Add/Update](#update-links)
- [Frontend](#frontend)
- [SEO](#seo)
- [Google Analytics](#google-analytics)
- [Custom Domain](#custom-domain)
- [Favicon](#favicon)
- [Contributors](#contributors)
## Usage
`nxt-lnk` template used to create your custom bio link and self-host on Vercel or Netlify using your own domain. Need little understanding of code :) ☕
Usually, you don't need to worry a lot about coding if you're just updating information in `BioData.js` and `LinkData.js`. To deep dive know more [Next.js](https://nextjs.org/docs) and [React](https://reactjs.org/docs/getting-started.html) official documentaion.
For customization used [styled components](https://styled-components.com/). If you want to customize styling you can [learn more here](https://styled-components.com/docs).
**Template auto support dark-mode depending on system cofig.**
## Quick Start
[Deploy with Vercel](https://vercel.com/import/git?s=https://github.com/realvjy/nxt-lnk) [Deploy to Netlify](https://app.netlify.com/start/deploy?repository=https://github.com/realvjy/nxt-lnk)
## Manual Setup
Run the following command to create a new project with this template:
```bash
yarn create next-app your-app-name -e https://github.com/realvjy/nxt-lnk
# or
npx create-next-app your-app-name -e https://github.com/realvjy/nxt-lnk
```
## Getting Started
Use any editor to work on editing. I use [vscode](https://code.visualstudio.com/)
First, run the development server:
```bash
npm run dev
# or
yarn dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
**Important files to edit or update info**
`data/BioData.js` All basic info update here
`data/LinksData.js` Contain all the links
`Components/WebLinks.js` UI and stylesheet
`Components/icons/index.js` Contain all SVG icon compo
You can start editing the page by modifying `data/BioData.js` and `data/LinksData.js`. The page auto-updates as you edit the file.
## Images
All images stored inside `public` folder of the project.
## Update Bio
**Example from** `BioData.js` :
```jsx
const bioData = [
{
name: 'vijay verma',
username: '@realvjy',
url: 'https://vjy.me',
titleImg: true,
avatar: '/avatar.png',
nftAvatar: true,
description: 'A short description/bio about you goes here',
subdesc: 'This is secondary description. If you do not need, you can remove it',
newProductUrl: 'https://vjy.me/lnk',
newProduct: true,
},
];
export default bioData;
```
**Avatar**
Just replace `avatar.png`. 200x200px will be good.
**Hex/NFT avatar view**
`nftAvatar: true` enable hex shape on avatar image.
`nftAvatar: false` made it in oval shape.
**Title**
By default `titleImg: true` and it look for `title.svg`. Replace svg with logo **logo**. Make sure to use `title.svg` name.
**Featured banner**
`newProductUrl` and `newProduct` used for getting featured banner. You can replace the image `newproduct.png` with any design you like.
`newProduct: true` show banner. Default is `true` make it false to hide.
## Update Links
**Example from** `LinksData.js` :
```jsx
const webLinks = [
// All social profile
{
title: 'Twitter',
url: 'https://twitter.com/realvjy',
type: 'social',
icon: '/twitter.svg',
on: true
},
...
...
{
title: 'Instagram',
url: 'https://instagram.com/realvjy',
type: 'social',
icon: '/insta.svg',
on: true
}
];
export default webLinks;
```
**Enable/Disable Social Media**
Find `type: social` and change `on:true|false`
| Title | on (default) |
| ------------- | ------------ |
| `Twitter` | `true` |
| `Instagram` | `true` |
| `Dribbble` | `false` |
| `Medium` | `false` |
| `Github` | `true` |
| `Youtube` | `false` |
| `Behance` | `true` |
| `Figma` | `true` |
| `Linkedin` | `false` |
| `Mastodon` | `false` |
| `Hive Social` | `false` |
| `Post.news` | `false` |
Setting `on: true` show the social icon.
The social media icons are arranged in a single row at the top of the page below description. If you want to use as list, chagne type to `type: 'other'`
**Add new Social Media link**
create a new block by copying this
```jsx
{
title: 'Social Name',
url: 'https://link.com/whateverurl',
type: 'social',
icon: '/newiconname.svg',
on: true
}
```
Update all info and make sure to add a `newiconname.svg` file in [public](#images) folder.
Then you have to add new section to frontend `components/WebLinks.js`
## Frontend
All frontend customization done inside `components/WebLinks.js`. If you wante to update and add new section just look this file and update according to your need.
**Update section**
Look for Section codes. Like if you want to change `install` type to `featured` Update the `type: 'featured'` in `LinkData.js` then update all `install` related code in `WebLinks.js` to `featured`
```js
// Collect all links filter by type - social, project, nft and other etc=
// get data for install section
const install = allLinks.filter((el) => {
return el.type === "install" && el.on
});
...
...
{/* Featured Section */ }
<LinkSection>
<h3>{install[0].type}</h3>
{
install.map((i) => {
return (
<Link href={i.url} passHref key={i.title}>
<LinkBox>
<LinkTitle><img src={i.icon} style={{ filter: 'var(--img)' }} /> {i.title}</LinkTitle> <NewUp />
</LinkBox>
</Link>
)
})
}
</LinkSection>
{/* End Featured Section */ }
```
**Add New section**
Add new section with specific `type` in `Linkdata.js`. Then copy `LinkSection` Code to create new section in `WebLinks.js` file. Make sure to create get data of that section as well.
## SEO
Already added `next-seo`. All you have to do is `update next-seo.config.js` file. Make sure to add direct link of `preview.jpg`file, like - `https://vjy.me/preview.jpg`.
## Google Analytics
In Vercel, you can set this by going to your project, then Settings and finally [Environments Variables](https://vercel.com/docs/concepts/projects/environment-variables). To get GA 4 code `G-ZXX0000XXX` follow [these steps](https://support.google.com/analytics/answer/9304153?hl=en)
## Custom Domain
By default vercel give you a subdomain with your project name like - [nxtlnk.vercel.app](https:nxtlnk.vercel.app). But you can add own domain.
Vercel/Netlify give you option to add any domain to the deployed project like [vjy.me/lnk](https://vjy.me/lnk) or [nxtlnk.xyz](https://nxtlnk.xyz). All you have to do is follow official [Vercel documentaion](https://vercel.com/docs/concepts/projects/domains/add-a-domain) or [Netlify Documentaion](https://www.netlify.com/blog/2021/12/20/how-to-add-custom-domains-to-netlify-sites/)
## Favicon
Create a `favicon.ico` file and place inside `public` folder. I use [favicon.io](https://favicon.io/favicon-converter/)
## Contributors
Created by [realvjy](https://twitter.com/realvjy). You are always welcome to share your feedback on twitter or any social media platform.
If you want to contribute. Just create a pull request.
Explore similar templates
Compare previews and descriptions within the same stack and category.

react-resume-template
A personal resume website template for software developers, built with Next.js, React, and TypeScript and styled with Tailwind CSS. Site content is driven by a single data file at /src/data/data.tsx, with types in dataDef.ts and images in src/images/.
Next.js · Portfolio

sylph
Sylph is a minimal portfolio and blog template built on Next.js, supporting MDX/Markdown writing, light/dark themes, and automatic OG image generation. It includes sitemap, robots.txt, metadata, and syntax highlighting, with automatic blog timestamps.
Next.js · Portfolio

sleek-portfolio
A modern, responsive portfolio template built with Next.js 15, TypeScript, Tailwind CSS, and Shadcn UI. It includes an MDX blog, project showcase, work experience timeline, and a contact form that receives messages via Telegram Bot.
Next.js · Portfolio

research-website-template
A React + Next.js template for research personal websites, aimed at PhD students and researchers. It centralizes publications, projects, and other content in src/data as arrays of objects, with optional fields automatically generating UI components.
Next.js · Portfolio

shadcn-portfolio
A developer portfolio template built with Next.js 15, shadcn/ui, Tailwind CSS, and Framer Motion, featuring an MDX blog, light and dark modes, responsive design, and SEO meta tags.
Next.js · Portfolio

minimal-next-portfolio
An open-source Next.js portfolio template for developers and designers, using an object-driven config directory to manage personal information, skills, projects, experience, and contributions without changing page components.
Next.js · Portfolio
