/slug

🌱 An open-source URL shortener built with T3 Stack.

Primary LanguageTypeScriptMIT LicenseMIT

✨ We are preparing a new version with Next.js 13 /app router, you can see the progress here: next

🚀 Short link   •   🤝 Contribute   •   🐦 Twitter

GitHub stars GitHub issues GitHub license Required Node.JS >=16.0.0

🤔 What is T3 Stack?

The T3 Stack is a web development stack made by Theo focused on simplicity, modularity, and full-stack typesafety. This project is using:

📦 Project structure

- prisma
- public
- src
  |- components
  |- env
  |- layout
  |- motions
  |- pages
  |- schema
  |- server
  |- styles
  |- types
  |- ui
  |- utils

👨‍🚀 Getting Started

🚧 You will need Nodejs +16 (LTS recommended) installed.

  1. Fork this project:
  1. Clone the repository:
git clone git@github.com:YOU_USER/slug.git
  1. Install dependencies:
npm install
# or
pnpm install
# or
yarn install
# or
ultra install
  1. Create a .env file with the following content:

🚧 The environment variables must match the following schema.

# Planetscale DB URL:
DATABASE_URL:

# Github OAuth secrets:
GITHUB_ID:
GITHUB_CLIENT_SECRET:

# Next Auth config:
NEXTAUTH_SECRET:
NEXTAUTH_URL:

🔑 How to get environment variables:

Planetscale database:

🚧 The environment variable in the dev branch is not the same as main. When you deploy your app to production, in the environment variables change DATABASE_URL to the main variable.

Github OAuth:

Next Auth:

  • NEXTAUTH_SECRET: mykey123 for example.
  • NEXTAUTH_URL: http://localhost:3000/.
  1. Ready 🥳, now run:
# Push your DB to Planetscale:
npx prisma db push

# Run the project:
npm run dev

# (Optional) Run Prisma Studio to see your DB data:
npx prisma studio

😊 Contributing:

🎉 Deploy on Vercel

🔑 License