Ever wanted to share your GitHub repo with a simple /github
link instead of the full GitHub URL? Here’s how to set up clean redirects in Next.js that make sharing your projects easier.
Why Use Redirects? #
Instead of sharing long URLs like https://github.com/preetsuthar17/ikiform
, you can create short, memorable links:
yoursite.com/github
→ Your main GitHub profileyoursite.com/discord
→ Your Discord serveryoursite.com/feedback
→ Your feedback form
These short links are:
- Easier to remember and share
- Professional looking in marketing materials
- Trackable if you add analytics
- Changeable without updating everywhere
How Redirects Work in Next.js #
Next.js has built-in redirect functionality through the next.config.js
file. When someone visits your redirect URL, Next.js automatically sends them to the destination URL with a proper HTTP redirect.
Step-by-Step Setup #
1. Open Your Next.js Config File #
Find your next.config.js
or next.config.mjs
file in your project root. If you don’t have one, create it:
/** @type {import('next').NextConfig} */
const nextConfig = {
// Your config here
}
module.exports = nextConfig
For TypeScript projects, use:
import type { NextConfig } from "next";
const nextConfig: NextConfig = {
// Your config here
};
export default nextConfig;
2. Add the Redirects Function #
Add an async redirects()
function to your config:
import type { NextConfig } from "next";
const nextConfig: NextConfig = {
async redirects() {
return [
{
source: '/github',
destination: 'https://github.com/yourusername/yourproject',
permanent: false,
},
]
},
};
export default nextConfig;
3. Add Multiple Redirects #
You can add as many redirects as you need:
async redirects() {
return [
{
source: '/github',
destination: 'https://github.com/preetsuthar17/ikiform',
permanent: false,
},
{
source: '/discord',
destination: 'https://discord.gg/jM5BgDMaGX',
permanent: false,
},
{
source: '/feedback',
destination: 'https://www.ikiform.com/f/feedback-form-ag334n',
permanent: false,
},
{
source: '/feature-request',
destination: 'https://www.ikiform.com/f/feature-request-form-zo0tg5',
permanent: false,
},
]
},
4. Restart Your Development Server #
After making changes to next.config.js
, restart your dev server:
npm run dev
# or
yarn dev
# or
pnpm dev
Understanding the Options #
Source and Destination #
source
: The path users visit on your site (/github
)destination
: Where they get redirected (https://github.com/username/repo
)
Permanent vs Temporary #
permanent: false
: Creates a 307 redirect (temporary)permanent: true
: Creates a 308 redirect (permanent)
Use permanent: false
for most cases—it’s safer and gives you flexibility to change destinations later.
Advanced Pattern Matching #
You can use patterns for dynamic redirects:
{
source: '/github/:path*',
destination: 'https://github.com/yourusername/:path*',
permanent: false,
}
This would redirect /github/issues
to https://github.com/yourusername/issues
.
Best Practices #
1. Keep It Simple #
Use clear, memorable paths:
- ✅
/github
,/discord
,/docs
- ❌
/gh
,/dc
,/documentation-site
2. Use Consistent Naming #
If you have multiple projects, keep the pattern consistent:
/project1-github
/project2-github
3. Plan for Analytics #
Consider adding UTM parameters to track redirect usage:
{
source: '/github',
destination: 'https://github.com/username/repo?utm_source=website&utm_medium=redirect',
permanent: false,
}
4. Test Your Redirects #
Always test redirects after deployment:
curl -I https://yoursite.com/github
Look for the Location
header to confirm it’s working.
Common Use Cases #
Social Links #
{
source: '/twitter',
destination: 'https://twitter.com/yourusername',
permanent: false,
},
{
source: '/linkedin',
destination: 'https://linkedin.com/in/yourusername',
permanent: false,
}
Project Resources #
{
source: '/docs',
destination: 'https://docs.yourproject.com',
permanent: false,
},
{
source: '/demo',
destination: 'https://demo.yourproject.com',
permanent: false,
}
Support Channels #
{
source: '/support',
destination: 'mailto:[email protected]',
permanent: false,
},
{
source: '/bug-report',
destination: 'https://github.com/username/repo/issues/new',
permanent: false,
}
Deployment Notes #
Redirects work automatically when you deploy to:
- Vercel (built-in support)
- Netlify (via
_redirects
file, but Next.js handles it) - Other platforms that support Next.js
No additional configuration needed—just deploy your updated next.config.js
.
Conclusion #
Setting up redirects in Next.js is simple but powerful. With just a few lines in your config file, you can create professional, memorable links that make sharing your projects easier.
Start with your most important links like /github
and /discord
, then add more as needed. Your users (and your marketing materials) will thank you for the cleaner URLs.