π Website | π οΈ API Docs | π» Frontend Code
Design Without Limits
Developed with the software and tools below.
Webster is a comprehensive design tool platform that empowers teams and individuals to create, edit, and manage professional designs directly in the browser. Featuring a high-performance canvas-based editor built with React and Konva.js, Webster offers real-time collaboration, advanced asset management, and multi-format export capabilities. Its modern, intuitive interface and robust toolset make it ideal for designers seeking flexibility and power.
- Canvas-Based Editor: High-performance, interactive editor for complex shape manipulation and rendering (60 FPS with Konva.js)
- Asset Management: Upload, organize, and search assets in a cloud-synced library
- Multi-Format Export: Export designs in PNG, SVG, PDF, and more with custom resolution settings
- Performance Optimized: Virtualized canvas and optimized rendering for handling 1000+ objects
- User Authentication: Secure login, registration, and account management
- Project Management: Create, open, duplicate, and manage design projects
- Responsive Design: Seamless experience across all devices
- Modern UI/UX: Minimalistic, user-friendly interface
- Core: TypeScript, React, Vite, Konva.js
- State Management: Zustand
- Styling: Tailwind CSS, shadcn/ui, Radix UI
- Icons: Lucide React
- API Communication: KY
- Data Fetching: React Query
- Form Handling: React Hook Form, Zod
- Date Handling: Day.js
- Development: ESLint, Prettier, PostCSS, Husky
- Containerization: Docker
- Deployment: Vercel
- Clone the webster-frontend repository:
git clone https://github.com/mkloz/webster-frontend- Change to the project directory:
cd webster-frontend- Install the dependencies:
npm installUse the following command to run Webster in development mode:
npm run devThe application will be available at http://localhost:3000 (or the port specified in your Vite configuration).
To build the application for production:
npm run buildTo preview the production build locally:
npm run previewsrc/
βββ assets/ # Static assets like logos
βββ config/ # Application configuration
βββ modules/ # Feature-based modules
β βββ auth/ # Authentication related components
β βββ canvas/ # Canvas editor and related components
β βββ home/ # Home page and layout
β βββ project/ # Project management features
β βββ shared/ # Shared pages and utilities
β βββ user/ # User profile and settings
β βββ ...
βββ shared/ # Shared utilities, components, and hooks
β βββ api/ # API client setup
β βββ components/ # Reusable UI components
β βββ hooks/ # Custom React hooks
β βββ lib/ # Library configurations
β βββ store/ # Global state management
β βββ types/ # TypeScript type definitions
β βββ utils/ # Utility functions
β βββ validators/ # Form validation schemas
βββ styles/ # Global styles
βββ main.tsx # Application entry point
The application may require the following environment variables:
VITE_API_URL=your_api_url
VITE_GOOGLE_CLIENT_ID=your_google_client_id
Create a .env file in the root directory and add these variables with your specific values.
Contributions are welcome! Here are several ways you can contribute:
- Submit Pull Requests: Review open PRs, and submit your own PRs.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
- Report Issues: Submit bugs found or log feature requests for Webster.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your GitHub account.
- Clone Locally: Clone the forked repository to your local machine using a Git client.
git clone https://github.com/mkloz/webster-frontend- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.'- Push to GitHub: Push the changes to your forked repository.
git push origin new-feature-x- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
Once your PR is reviewed and approved, it will be merged into the main branch.
This project is licensed under the MIT License - see the LICENSE file for details.