A smart text shortcut platform that boosts productivity with intelligent text shortcuts. Create shortcuts on our website, sync them to your browser extension, and use them anywhere by typing your shortcut and pressing Ctrl+Shift+Space.
CutFast is designed to enhance productivity by providing a seamless text expansion experience. Create shortcuts on our website, sync them automatically to your browser extension, and use them anywhere by typing your shortcut and pressing Ctrl+Shift+Space.
Key components:
- Web Dashboard: Next.js-based management interface for CRUD operations on shortcuts and categories
- Browser Extension: Vite + React extension that handles text detection and expansion
- Local Storage: Dexie-powered IndexedDB for storing synced shortcuts locally
- Server Storage: PostgreSQL database for persistent shortcut storage and synchronization
- Authentication: Dual authentication strategy using better-auth for both web and extension access
- Instant Text Expansion: Trigger shortcuts with Ctrl+Shift+Space for immediate replacement
- Local Storage: Shortcuts stored locally in browser for fast access once synced
- Server Sync: Automatic synchronization between web dashboard and browser extension
- Cross-Platform: Works in any browser on desktop and laptop computers
- Secure Sync: Background synchronization with row-level security
- User Management: Categories and shortcuts with per-user scoping
- Modern UI: Clean, responsive dashboard built with Next.js and React
- Admin Dashboard: Complete administrative control with user management, signup limits, and system configuration
- Signup Control: Enable/disable user registration and set maximum user limits
- Self-Hosting Support: Custom API endpoint configuration for self-deployed instances
- Data Portability: Full import/export functionality for shortcuts with JSON format
- One-Click Build: Automated build script for Firefox and Chrome extensions
- Automated Deployment: GitHub Actions workflow for extension releases
- Database Automation: Docker-based PostgreSQL setup for development and production
- Role-Based Access: Admin users with elevated permissions
- Login Prevention: Configurable signup restrictions
- User Limits: Enforceable maximum user count
- Row-Level Security: Database-level access control
- JWT Authentication: Secure token-based authentication for extensions
The system is organized into four logical planes:
- Management Plane: Web Dashboard (Next.js 15) for user interface
- Control Plane: Backend API (Next.js Route Handlers) with authentication
- Data Plane: PostgreSQL database for persistent storage
- Execution Plane: Browser Extension for text expansion functionality
- Web Dashboard: Next.js 15, React, TypeScript
- Backend: Next.js API Routes, better-auth, tRPC
- Web Database: PostgreSQL with Drizzle ORM
- Extension Database: Dexie (IndexedDB wrapper)
- Sync: REST API synchronization
- Extension: Vite, React, Manifest V3
- Styling: Tailwind CSS, shadcn/ui components
- Build Tools: pnpm, Vite
CutFast is available for multiple browsers:
- Firefox: Official Mozilla Add-ons Store - Fully approved and available
- Microsoft Edge: Official Add-ons Store - Fully approved and available
- Chrome: Download from GitHub Releases
For Firefox and Microsoft Edge users, simply visit the links above and click "Add to Firefox" or "Get" to install. For Chrome users, follow the installation instructions in the releases.
- Node.js (latest LTS)
- pnpm package manager
- PostgreSQL database (or Docker for automated setup)
- Git
-
Clone the repository
git clone https://github.com/HimanshuKumarDutt094/cutfast.git cd cutfast -
Install dependencies
pnpm install
-
Set up environment variables
- Copy
src/web/.env.exampletosrc/web/.env - Copy
src/extension/.env.exampletosrc/extension/.env - Configure database connection and authentication settings
- Copy
-
Set up the database (Automated)
cd src/web ./start-database.sh -
Run the development servers
# Web dashboard (in one terminal) cd src/web pnpm dev # Extension (in another terminal) cd src/extension pnpm dev
-
Build the extension (One-Click)
cd src/extension ./build.sh all
After installation, create your first admin user:
- Visit the web dashboard at
http://localhost:3000 - Sign up for an account
- Access the admin panel at
/dashboard/admin - Configure system settings like user limits and signup controls
For production deployment:
- Database: Use PostgreSQL (managed or self-hosted)
- Web App: Deploy to Vercel, Netlify, or any Node.js hosting
- Extensions: Use the automated build script and GitHub releases
- Custom Endpoints: Configure extension to use your custom API URL
Development:
- Firefox: Load
src/extension/dist-firefoxas temporary add-on - Chrome: Load
src/extension/dist-chromeas unpacked extension
Production:
- Download pre-built extensions from GitHub releases
- Follow browser-specific installation instructions
cutfast/
├── src/
│ ├── web-new/ # Next.js web dashboard
│ │ ├── src/app/ # App router pages and API routes
│ │ ├── src/components/ # React components
│ │ └── src/server/ # Server-side utilities
│ └── extension/ # Browser extension
│ ├── src/
│ │ ├── background/ # Service worker
│ │ ├── content-scripts/ # DOM interaction
│ │ └── ui/ # Extension UI components
│ └── manifest.json
├── SPECIFICATION.md # Technical specification
└── README.md # This file
CutFast includes a comprehensive admin dashboard for system management:
- User Overview: View all registered users with email verification status
- User Limits: Set maximum number of users allowed on the platform
- Signup Control: Enable/disable new user registration
- Admin Access: Role-based access control for administrative functions
- Database Management: Automated PostgreSQL setup with Docker
- Environment Setup: Streamlined configuration for development and production
- Build Automation: One-click build scripts for extensions
- Access Control: Admin-only access to sensitive system settings
- Audit Trail: User registration and activity monitoring
- Data Export: Administrative data export capabilities
CutFast includes automated database setup:
# Automated PostgreSQL setup with Docker
cd src/web
./start-database.shThis script:
- Checks for Docker/Podman availability
- Creates a PostgreSQL container with proper configuration
- Generates secure random passwords
- Handles port conflicts and existing containers
For self-hosted deployments, configure custom API URLs:
- Extension Configuration: Set custom API endpoint in extension settings
- Environment Variables: Configure
VITE_PUBLIC_API_URLfor custom deployments - CORS Setup: Ensure proper cross-origin resource sharing configuration
One-click build system for extensions:
# Build both Firefox and Chrome extensions
cd src/extension
./build.sh all
# Build specific browser
./build.sh firefox
./build.sh chromeAutomated release workflow:
- Triggered by git tags (e.g.,
v1.0.0) - Builds extensions for both browsers
- Creates GitHub releases with installation instructions
- Generates browser-specific download links
The backend provides RESTful API endpoints for shortcuts and categories:
GET/POST /api/shortcuts- List and create shortcutsGET/PUT/DELETE /api/shortcuts/{id}- Manage individual shortcutsGET /api/shortcuts/export- Export shortcuts to JSONPOST /api/shortcuts/import- Import shortcuts from JSON
GET/POST /api/categories- List and create categoriesPUT/DELETE /api/categories/{id}- Manage individual categories
GET/POST /api/admin/config- Get/update system configurationGET /api/admin/users- List all users (admin only)POST /api/admin/signup-toggle- Enable/disable user registration
- Web Dashboard: Cookie-based sessions with better-auth
- Extension: JWT tokens with automatic refresh mechanism
- Security: Row-level security enforced through authorizing proxy
- Admin Access: Role-based permissions for system administration
- Follow the existing code style and patterns
- Test your changes thoroughly
- Submit a pull request with a clear description
This project is open source. See LICENSE file for details.
Himanshu Kumar Dutt
-
LinkedIn: linkedin.com/in/himanshu-dutt-77
-
Email: adasimobenio@gmail.com