Skip to content

QuickText is a blazing-fast, minimalistic text sharing platform that lets you send and receive messages using a simple 5-digit code. it features real-time collaboration, automatic expiration. Ideal for developers, teams, or anyone needing a secure way to share text snipp

License

Notifications You must be signed in to change notification settings

akshitsutharr/quicktext

Repository files navigation

QuickText - Instant Text Sharing Platform

Screenshot


✨ Features

πŸ”₯ Core Features

  • 🎯 5-Digit Code Sharing – Unique codes for instant text sharing
  • ⏰ Auto-Expiration – Self-destruct after 1 hour
  • 🌐 Cross-Device Access – Seamless sharing across devices
  • πŸ”— Direct URL Sharing – Share via direct links or QR codes
  • ✏️ Collaborative Editing – Edit shared texts in real-time
  • πŸ“± Responsive Design – Works perfectly on all screens

πŸ›‘οΈ Security & Privacy

  • πŸ”’ Automatic Cleanup – Secure, time-based deletion
  • 🚫 No Registration Required – Full anonymity
  • ⚑ Real-Time Expiration – Countdown timer
  • πŸ—‘οΈ Self-Destructing Texts – Completely gone after expiry

🎨 User Experience

  • πŸŒ™ Dark Theme – Elegant interface with subtle grids
  • ⚑ Fast & Optimized – Speed-focused design
  • πŸ“‹ One-Click Copy – Copy code or URL in a click
  • πŸ”„ Live Sync – Instantly reflects updates

🎯 Demo

πŸ”— Live Demo

πŸ‘‰ Try QuickText Now

πŸ§ͺ Quick Example

1. Go to /send β†’ Write your text β†’ Get code `ABC12`
2. Share `ABC12` or use URL `https://yourdomain.com/receive?code=ABC12`
3. Others visit /receive and use code `ABC12` to access
4. Edit together in real-time

πŸš€ Installation

βš™οΈ Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account (free tier is fine)

πŸ“₯ Clone Repository

git clone https://github.com/akshitsutharr/quicktext.git
cd quicktext

πŸ“¦ Install Dependencies

npm install
# or
yarn install

🧾 Setup Environment

Create .env.local:

NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key

πŸ—„οΈ Setup Database

In Supabase SQL Editor, run:

CREATE TABLE IF NOT EXISTS shared_texts (
  id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
  code VARCHAR(5) NOT NULL UNIQUE,
  content TEXT NOT NULL,
  created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
  expires_at TIMESTAMP WITH TIME ZONE NOT NULL
);

CREATE INDEX IF NOT EXISTS idx_shared_texts_code ON shared_texts(code);
CREATE INDEX IF NOT EXISTS idx_shared_texts_expires_at ON shared_texts(expires_at);

ALTER TABLE shared_texts ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Allow all operations" ON shared_texts FOR ALL USING (true);

CREATE OR REPLACE FUNCTION cleanup_expired_texts()
RETURNS void AS $$
BEGIN
  DELETE FROM shared_texts WHERE expires_at < NOW();
END;
$$ LANGUAGE plpgsql;

▢️ Start Dev Server

npm run dev
# or
yarn dev

Visit http://localhost:3000 πŸŽ‰


πŸ“– Usage

✍️ Send Text

  1. Visit /send
  2. Write or paste text
  3. Click "Create Share"
  4. Share the code or link

πŸ“₯ Receive Text

  1. Visit /receive
  2. Enter 5-digit code
  3. View, edit, and sync text

πŸ”— URL Example

https://yourdomain.com/receive?code=ABC12

πŸ”§ API Reference

shareText(text: string)

const code = await shareText("Hello"); // returns "ABC12"

getSharedText(code: string)

const text = await getSharedText("ABC12");

updateSharedText(code: string, text: string)

await updateSharedText("ABC12", "Updated content");

getTextStats(code: string)

const stats = await getTextStats("ABC12");

πŸ—οΈ Architecture

🧰 Stack

  • Frontend: Next.js 14 + React + TypeScript
  • Styling: Tailwind CSS + shadcn/ui
  • Backend: Supabase (PostgreSQL)
  • Deployment: Vercel

πŸ“ Structure

quicktext/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ send/
β”‚   β”œβ”€β”€ receive/
β”‚   └── layout.tsx
β”œβ”€β”€ components/ui/
β”œβ”€β”€ lib/supabase.ts
β”œβ”€β”€ scripts/create-tables.sql
└── README.md

πŸš€ Deployment

🧬 Vercel

npm i -g vercel
vercel

Set environment variables:

NEXT_PUBLIC_SUPABASE_URL=...
NEXT_PUBLIC_SUPABASE_ANON_KEY=...

🌐 Other Platforms

  • Netlify
  • Railway
  • DigitalOcean

βš™οΈ Configuration

πŸ” Change Expiration

expiresAt.setHours(expiresAt.getHours() + 24);

πŸ”’ Code Length

for (let i = 0; i < 6; i++) { ... }

πŸ§ͺ Testing

βœ… Run Tests

npm test

βœ”οΈ Manual Checklist


🀝 Contributing

πŸ›  Steps

git clone https://github.com/akshitsuthar/quicktext.git
cd quicktext
git checkout -b feature/amazing-feature
  • Make changes
  • Add tests
  • Commit & PR

πŸ“ License

MIT - LICENSE


πŸ™ Acknowledgements

  • Supabase
  • Vercel
  • TailwindCSS
  • shadcn/ui

MADE WITH ❀️ BY AKSHIT SUTHAR

About

QuickText is a blazing-fast, minimalistic text sharing platform that lets you send and receive messages using a simple 5-digit code. it features real-time collaboration, automatic expiration. Ideal for developers, teams, or anyone needing a secure way to share text snipp

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages