Open source · Free · Self-hostable

Share links,
files & code.
Instantly.

NextShare is a URL shortener, file share, and code paste — three dev tools in one app. No accounts. No tracking. Backed by Redis for sub-100ms redirects and MongoDB for durability. Works offline too.

MIT License
Redirects in <100ms
Built by Meet Maru
nextshare
URL Shortener
https://github.com/ivengexnce/nexus-toolkit/tree/…
Shorten
nextsharebymeet.vercel.app/s/k9mPx
Copy
Clicks
142
Expires
7d
Status
Active
React 18 + Vite
Node.js 20 + Express
MongoDB Atlas
Redis cache
PWA + Offline
IndexedDB queue
MIT License
Zero tracking
Self-hostable
No accounts
23 languages
Burn-after-read
React 18 + Vite
Node.js 20 + Express
MongoDB Atlas
Redis cache
PWA + Offline
IndexedDB queue
MIT License
Zero tracking
Self-hostable
No accounts
23 languages
Burn-after-read

Four tools.
One clean URL.

URL shortening, file sharing, code paste, and offline sync — built with a proper backend and no paywalls.

01
Most used
URL Shortener

Paste any URL and get a short link with a custom alias. Redis caches every redirect, so links resolve in under 100ms. Click analytics, unique visitor counts, and optional expiry baked in.

custom-alias click-analytics unique-visitors expiry redis-cache
02
File Sharing

Drop a file, get a direct download link. Set a password, cap the max download count, or let it auto-expire. Supports image and text previews. Files stream directly from the server — no S3 fees.

drag-drop password-protect max-downloads auto-expiry preview
03
Code Paste

Share syntax-highlighted snippets across 23 languages. Burn-after-read mode destroys the paste on first view. Redis caches normal pastes; burn pastes always hit the DB directly — no second read possible.

paste.ts
// TextService.create — simplified
const create = async (payload: PasteInput) => {
   const code = generateShortCode();
   const paste = await TextRepository.create({...payload, code});
   if (!payload.burnAfterRead) {
     await redis.set(`paste:${code}`, paste, TTL);
  }
   return paste;
};
syntax-hl burn-after-read 23 languages redis-cached
04
PWA
Works Offline

The whole app installs as a PWA. Go offline and actions queue in IndexedDB. The moment you reconnect, background sync flushes the queue automatically — nothing is lost mid-session.

Service Worker
offline cache
IndexedDB queue
actions persist
Background sync
auto-flush
Installable
add to home screen

From paste to link
in four steps.

Under the hood, every share is a full round-trip through Vite on the frontend, Express on the API, Redis for speed, and MongoDB for permanence.

1
Paste or drop

Enter a URL, drop a file, or paste code into the React app. Zustand manages local state while you type.

2
API creates it

Vite proxies the request to Express. The service validates it, generates a short code, and writes to MongoDB first.

3
Redis caches it

The result is written to Redis with a TTL. Every subsequent redirect or fetch hits the cache, not Mongo.

4
Share the link

You get a short URL back. Analytics, visitor deduplication via Redis Sets, and expiry all run automatically.

Try it here.

No account needed. Pick a tool below — this is the actual UI. Real links generate at the live app.

nextshare — url shortener
// Error: enter a valid URL starting with https://

// UI preview only — real links generate at nextsharebymeet.vercel.app

nextshare — file share
📎
Drop a file or browse
Password protection · max-download cap · auto-expiry · no account
nextshare — code paste
React · Express · MongoDB · Redis · PWA

Made by Meet Maru.
Free for everyone.

NextShare started as a full-stack side project to push my skills end-to-end — proper layered architecture, Redis caching, offline PWA, analytics, the works. I kept reaching for tools that were either bloated or paywalled, so I built the one I actually wanted. MIT licensed — fork it, self-host it, break it, improve it.

MM
Meet Maru
CSE AI/ML · Viva Institute of Technology, Mumbai