Onelink is an experimental link-in-bio tool, where the data lives in the URL.
![Screenshot2023-01-30 at 00 40 04@2x](https://user-images.githubusercontent.com/15716057/215350057-5fbf81f5-5f33-4cbe-98ba-0ced8b3c09c8.jpg)
(https://onelink-black.vercel.app/1?data=eyJuIjoiU2FtbXkgdGl6enkgIiwiZCI6IknigJltIFNhbXNvbiBVbnlpbm1hZHUgLCB0aGUga2luZyBpbiB0aGUgbm9ydGguIEkgYnVpbGQgd2Vic2l0ZSBhbmQgYXBwbGljYXRpb25zLiIsImkiOiJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL3AvQ3BoSERhSXF2bVYvP2lnc2hpZD1NelJsT0RCaU5XRmxaQT09IiwiZiI6Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9qb2huX3Nub3ciLCJ0IjoiaHR0cHM6Ly94LmNvbS9TVW55aW5tYWR1P3M9MjAiLCJpZyI6Imh0dHBzOi8vaW5zdGFncmFtLmNvbS9vZmZpY2lhbHNhbW15dGl6enk/aWdzaGlkPU9HUTVaRGMyT0RrMlpBPT0iLCJlIjoib3BlbndvcmtzcGFjZXNvdXJjZUBnbWFpbC5jb20iLCJnaCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9YLW9zcy1ieXRlIiwidGciOiJodHRwczovL3QubWUvam9obl9zbm93IiwidyI6Iis5MTg4ODg4ODg4ODgiLCJ5IjoiaHR0cHM6Ly95b3V0dWJlLmNvbS9Aam9obl9zbm93IiwibCI6Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9zYW1zb24tdW55aW5tYWR1LTE3NmE1NTI4NSIsImxzIjpbeyJsIjoiQW1hem9uIHdpc2hsaXN0IiwiaSI6ImFudC1kZXNpZ246YW1hem9uLW91dGxpbmVkIiwidSI6Imh0dHBzOi8vYW1hem9uLmluIn0seyJsIjoiTXkgV2Vic2l0ZSIsImkiOiJwaDpnbG9iZS1kdW90b25lIiwidSI6Imh0dHBzOi8vZXhhbXBsZS5jb20ifSx7ImwiOiJSZWFjdCBKUyBjb3Vyc2UiLCJpIjoiZ3JvbW1ldC1pY29uczpyZWFjdGpzIiwidSI6Imh0dHBzOi8vcmVhY3Rqcy5vcmcvIn0seyJsIjoiRG9uYXRlIGZvciBvdXIgY2F1c2UiLCJpIjoiaWNvbm9pcjpkb25hdGUiLCJ1IjoiaHR0cHM6Ly93aG8uaW50In0seyJsIjoiRG93bmxvYWQgbXkgcmVzdW1lIiwiaSI6InBoOmZpbGUtcGRmIiwidSI6Imh0dHBzOi8vZ29vZ2xlLmNvbSJ9XX0=)
Note
Since the URL can become very long, it's better to use a link shortener like https://dub.co
Here's a demo page
https://onelink-nu.vercel.app/1?data=eyJuIjoiSm9obiBTbm93IiwiZCI6IknigJltIEpvaG4gU25vdywgdGhlIGtpbmcgaW4gdGhlIG5vcnRoLiBJIGtub3cgTm90aGluZy4iLCJpIjoiaHR0cHM6Ly9pLmluc2lkZXIuY29tLzU2NzQzZmFkNzJmMmMxMmEwMDhiNmNjMCIsImYiOiJodHRwczovL3d3dy5mYWNlYm9vay5jb20vam9obl9zbm93IiwidCI6Imh0dHBzOi8vdHdpdHRlci5jb20vam9obl9zbm93IiwiaWciOiJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2pvaG5fc25vdyIsImUiOiJtYWlsQGpvaG5fc25vdy5jYyIsImdoIjoiaHR0cHM6Ly9naXRodWIuY29tL2pvaG5fc25vdyIsInRnIjoiaHR0cHM6Ly90Lm1lL2pvaG5fc25vdyIsInciOiIrOTE4ODg4ODg4ODg4IiwieSI6Imh0dHBzOi8veW91dHViZS5jb20vQGpvaG5fc25vdyIsImwiOiJodHRwczovL2xpbmtlZGluLmNvbS9qb2huX3Nub3ciLCJscyI6W3sibCI6Ik15IFdlYnNpdGUiLCJpIjoicGg6Z2xvYmUtZHVvdG9uZSIsInUiOiJodHRwczovL2V4YW1wbGUuY29tIn0seyJsIjoiQW1hem9uIHdpc2hsaXN0IiwiaSI6ImFudC1kZXNpZ246YW1hem9uLW91dGxpbmVkIiwidSI6Imh0dHBzOi8vYW1hem9uLmluIn0seyJsIjoiUmVhY3QgSlMgY291cnNlIiwiaSI6Imdyb21tZXQtaWNvbnM6cmVhY3RqcyIsInUiOiJodHRwczovL3JlYWN0anMub3JnLyJ9LHsibCI6IkRvbmF0ZSBmb3Igb3VyIGNhdXNlIiwiaSI6Imljb25vaXI6ZG9uYXRlIiwidSI6Imh0dHBzOi8vd2hvLmludCJ9LHsibCI6IkRvd25sb2FkIG15IHJlc3VtZSIsImkiOiJwaDpmaWxlLXBkZiIsInUiOiJodHRwczovL2dvb2dsZS5jb20ifV19
The data is converted to a base 64 string which we onelink uses as a query parameter. I have tried to reduce the json keys to be as small as possible
Roadmap.
- Templates - make different templates, the
/1
after the host is basically a template here.
- Refactor code - a lot of repeated boilerplate code is added here - refactor it properly.
Make sure to install the dependencies:
# yarn
yarn install
# npm
npm install
# pnpm
pnpm install --shamefully-hoist
Start the development server on http://localhost:3000
Build the application for production:
Locally preview production build:
Checkout the deployment documentation for more information.