![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- π― 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
- π Automatic Cleanup β Secure, time-based deletion
- π« No Registration Required β Full anonymity
- β‘ Real-Time Expiration β Countdown timer
- ποΈ Self-Destructing Texts β Completely gone after expiry
- π 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
π Try QuickText Now
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
- Node.js 18+
- npm or yarn
- Supabase account (free tier is fine)
git clone https://github.com/akshitsutharr/quicktext.git
cd quicktext
npm install
# or
yarn install
Create .env.local
:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
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;
npm run dev
# or
yarn dev
Visit http://localhost:3000 π
- Visit
/send
- Write or paste text
- Click "Create Share"
- Share the code or link
- Visit
/receive
- Enter 5-digit code
- View, edit, and sync text
https://yourdomain.com/receive?code=ABC12
const code = await shareText("Hello"); // returns "ABC12"
const text = await getSharedText("ABC12");
await updateSharedText("ABC12", "Updated content");
const stats = await getTextStats("ABC12");
- Frontend: Next.js 14 + React + TypeScript
- Styling: Tailwind CSS + shadcn/ui
- Backend: Supabase (PostgreSQL)
- Deployment: Vercel
quicktext/
βββ app/
β βββ send/
β βββ receive/
β βββ layout.tsx
βββ components/ui/
βββ lib/supabase.ts
βββ scripts/create-tables.sql
βββ README.md
npm i -g vercel
vercel
Set environment variables:
NEXT_PUBLIC_SUPABASE_URL=...
NEXT_PUBLIC_SUPABASE_ANON_KEY=...
- Netlify
- Railway
- DigitalOcean
expiresAt.setHours(expiresAt.getHours() + 24);
for (let i = 0; i < 6; i++) { ... }
npm test
git clone https://github.com/akshitsuthar/quicktext.git
cd quicktext
git checkout -b feature/amazing-feature
- Make changes
- Add tests
- Commit & PR
MIT - LICENSE
- Supabase
- Vercel
- TailwindCSS
- shadcn/ui