A clean, fast, and minimal code-sharing platform. Create multi-file snippets, organize them into folders, and share them effortlessly via a short link. Built with Next.js and Convex.
- Multi-file Editor: Support for multiple files and folders in a single snippet.
- Drag & Drop Organization: Easily reorder files and folders.
- Auto-save: Automatically saves your work on existing snippets.
- Instant Sharing: Generate one-click shareable URLs.
- View & Edit Modes: Seamlessly toggle between reading and editing saved snippets.
- Copy to Clipboard: Quickly copy code from snippets.
- Frontend: Next.js 16, React 19, TypeScript
- Backend & Database: Convex
- Styling: CSS
- Icons: Lucide React
Follow these steps to get a local development environment up and running.
git clone https://github.com/your-username/teter.git
cd teter
npm installInitialize your Convex backend:
npx convex devWhat this does:
- Prompts you to log in to Convex or create an account.
- Creates a new project in your Convex dashboard.
- Generates a
.env.localfile containing yourNEXT_PUBLIC_CONVEX_URL. - Watches your
convex/directory and auto-syncs any backend changes.
Keep this command running in a separate terminal window while you develop!
Open a new terminal window in the project directory and run:
npm run devVisit http://localhost:3000 in your browser to start using Teter!
- Create a snippet: Use the sidebar to add files/folders, and start coding in the editor.
- Save: Click the Save button to generate your shareable link.
- Share: Click Share to copy the link and distribute your snippet.
- Edit: Return to your saved snippet, click Edit, make your changes, and save.
- Delete: Click Delete to permanently remove your snippet.
We love contributions! Whether it's fixing a bug, adding a neat feature, or improving documentation, your help is greatly appreciated.
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/your-username/teter.git cd teter - Create a new branch for your feature or bugfix:
git checkout -b feature/your-feature-name
- Make your changes while ensuring your code follows the existing style and conventions.
- Test your code. Make sure the app runs flawlessly locally (
npm run dev) and check for linting errors (npm run lint). - Commit your changes with descriptive messages:
git commit -m "Add feature: your great feature" - Push to your branch:
git push origin feature/your-feature-name
- Open a Pull Request against the
mainbranch of the original repository. Describe your changes clearly and reference any related issues.
Please be respectful and constructive when reviewing PRs or discussing issues. Our goal is to maintain a welcoming and inclusive environment for all contributors.
src/
├── app/
│ ├── page.tsx # Home page (new snippet)
│ ├── [id]/page.tsx # View/edit saved snippet
│ ├── api/snippets/ # REST API routes
│ └── globals.css # Global styles
├── components/
│ └── Editor.tsx # Main editor component
convex/
├── schema.ts # Database schema definitions
└── snippets.ts # Database queries & mutations
Ready to take your own version live? Deploying Teter is simple.
- Set your
NEXT_PUBLIC_CONVEX_URLenvironment variable in your hosting platform (e.g., Vercel, Netlify). - Deploy the Convex backend:
npx convex deploy
- Build and deploy your Next.js frontend:
npm run build
Built with ❤️.