forked from stackblitz/bolt.new
-
Notifications
You must be signed in to change notification settings - Fork 10.3k
feat: advanced multi-user authentication and workspace isolation system #1930
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Implements comprehensive project import functionality with the following capabilities: - **Drag & Drop Support**: Intuitive drag-and-drop interface for uploading project files - **Multiple Import Methods**: - Individual file selection - Directory/folder upload (maintains structure) - ZIP archive extraction with automatic unpacking - **Smart File Filtering**: Automatically excludes common build artifacts and dependencies (node_modules, .git, dist, build folders) - **Large Project Support**: Handles projects up to 200MB with per-file limit of 50MB - **Binary File Detection**: Properly handles binary files (images, fonts, etc.) with base64 encoding - **Progress Tracking**: Real-time progress indicators during file processing - **Beautiful UI**: Smooth animations with Framer Motion and responsive design - **Keyboard Shortcuts**: Quick access with Ctrl+Shift+I (Cmd+Shift+I on Mac) - **File Preview**: Shows file listing before import with file type icons - **Import Statistics**: Displays total files, size, and directory count The implementation uses JSZip for ZIP file extraction and integrates seamlessly with the existing workbench file system. Files are automatically added to the editor and the first file is opened for immediate editing. Technical highlights: - React hooks for state management - Async/await for file processing - WebKit directory API for folder uploads - DataTransfer API for drag-and-drop - Comprehensive error handling with user feedback via toast notifications This feature significantly improves the developer experience by allowing users to quickly import their existing projects into bolt.diy without manual file creation. 🤖 Generated with Claude Code Co-Authored-By: Claude <[email protected]>
This update dramatically improves the Netlify deployment experience by allowing users to connect their Netlify account directly from the deploy dialog without leaving their project. Key improvements: - **Unified Deploy Dialog**: New centralized deployment interface for all providers - **Inline Connection**: Connect to Netlify without leaving your project context - **Quick Connect Component**: Reusable connection flow with clear instructions - **Improved UX**: Step-by-step guide for obtaining Netlify API tokens - **Visual Feedback**: Provider status indicators and connection state - **Seamless Workflow**: One-click deployment once connected The new DeployDialog component provides: - Provider selection with feature highlights - Connection status for each provider - In-context account connection - Deployment confirmation and progress tracking - Error handling with user-friendly messages Technical highlights: - TypeScript implementation for type safety - Radix UI for accessible dialog components - Framer Motion for smooth animations - Toast notifications for user feedback - Secure token handling and validation This significantly reduces friction in the deployment process, making it easier for users to deploy their projects to Netlify and other platforms. 🤖 Generated with Claude Code Co-Authored-By: Claude <[email protected]>
- Add @iconify-json/simple-icons for brand icons - Replace external image URLs with UnoCSS icon classes - Use proper brand colors for Netlify and Cloudflare icons - Ensure icons display correctly without external dependencies This fixes the 'no image' error in the deployment dialog by using reliable icon fonts instead of external CDN images. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
… isolation system
🚀 Major Feature: Multi-User System for bolt.diy
This transforms bolt.diy from a single-user application to a comprehensive
multi-user platform with isolated workspaces and personalized experiences.
## ✨ Key Features
### Authentication System
- Beautiful login/signup pages with glassmorphism design
- JWT-based authentication with bcrypt password hashing
- Avatar upload support with base64 storage
- Remember me functionality (7-day sessions)
- Password strength validation and indicators
### User Management
- Comprehensive admin panel for user management
- User statistics dashboard
- Search and filter capabilities
- Safe user deletion with confirmation
- Security audit logging
### Workspace Isolation
- User-specific IndexedDB for chat history
- Isolated project files and settings
- Personal deploy configurations
- Individual workspace management
### Personalized Experience
- Custom greeting: '{First Name}, What would you like to build today?'
- Time-based greetings (morning/afternoon/evening)
- User menu with avatar display
- Member since tracking
### Security Features
- Bcrypt password hashing with salt
- JWT token authentication
- Session management and expiration
- Security event logging
- Protected routes and API endpoints
## 🏗️ Architecture
- **No Database Required**: File-based storage in .users/ directory
- **Isolated Storage**: User-specific IndexedDB instances
- **Secure Sessions**: JWT tokens with configurable expiration
- **Audit Trail**: Comprehensive security logging
## 📁 New Files Created
### Components
- app/components/auth/ProtectedRoute.tsx
- app/components/chat/AuthenticatedChat.tsx
- app/components/chat/WelcomeMessage.tsx
- app/components/header/UserMenu.tsx
- app/routes/admin.users.tsx
- app/routes/auth.tsx
### API Endpoints
- app/routes/api.auth.login.ts
- app/routes/api.auth.signup.ts
- app/routes/api.auth.logout.ts
- app/routes/api.auth.verify.ts
- app/routes/api.users.ts
- app/routes/api.users..ts
### Core Services
- app/lib/stores/auth.ts
- app/lib/utils/crypto.ts
- app/lib/utils/fileUserStorage.ts
- app/lib/persistence/userDb.ts
## 🎨 UI/UX Enhancements
- Animated gradient backgrounds
- Glassmorphism card designs
- Smooth Framer Motion transitions
- Responsive grid layouts
- Real-time form validation
- Loading states and skeletons
## 🔐 Security Implementation
- Password Requirements:
- Minimum 8 characters
- Uppercase and lowercase letters
- At least one number
- Failed login attempt logging
- IP address tracking
- Secure token storage in httpOnly cookies
## 📝 Documentation
Comprehensive documentation included in MULTIUSER_DOCUMENTATION.md covering:
- Installation and setup
- User guide
- Admin guide
- API reference
- Security best practices
- Troubleshooting
## 🚀 Getting Started
1. Install dependencies: pnpm install
2. Create users directory: mkdir -p .users && chmod 700 .users
3. Start application: pnpm run dev
4. Navigate to /auth to create first account
Developer: Keoma Wright
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
- Complete installation and setup guide - User and admin documentation - API reference for all endpoints - Security best practices - Architecture overview - Troubleshooting guide Developer: Keoma Wright
- Updated date from December 2024 to 27 August 2025 - Updated year from 2024 to 2025 - Reflects current development timeline Developer: Keoma Wright
- Landing page now shows chat prompt by default (guest access) - Added beautiful non-invasive multi-user activation button - Users can continue as guests without signing in - Multi-user features must be actively activated by users - Added 'Continue as Guest' option on auth page - Header shows multi-user button only for non-authenticated users
- Changed modal background to use bolt-elements colors for proper theme support - Updated text colors to use semantic color tokens (textPrimary, textSecondary) - Fixed button styles to ensure readability in both light and dark modes - Updated header multi-user button with proper contrast colors
- Integrated GitHub deployment feature from upstream - Maintained our simplified DeployDialog approach - Added GitHub as a deployment option in DeployDialog - Resolved merge conflicts in DeployButton.tsx - Fixed TypeScript type checking for GitHub deploy result - All deployment providers (Netlify, Vercel, GitHub) now working together
Collaborator
|
Please review your commit these are 20+ lines that are been changed that is to much...I will close this for now and commit a new pr whit the changes of what you will be fixing. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
overview
this pr introduces a comprehensive multi-user authentication and workspace isolation system to bolt.diy, transforming it from a single-user application to a full-featured multi-user platform without requiring a database.
developer: keoma wright
major features
authentication system
user management
workspace isolation
personalized experience
technical implementation
file-based storage
no database required - uses secure file-based storage in .users/ directory
security features
new components
documentation
comprehensive documentation included in multiuser_documentation.md
getting started
developed by keoma wright - 27 august 2025