Skip to content

mkloz/webster-frontend

Repository files navigation

Webster

🌐 Website | πŸ› οΈ API Docs | πŸ’» Frontend Code

Design Without Limits

license last-commit repo-top-language repo-language-count

Developed with the software and tools below.

ESLint TypeScript Docker Zod Prettier Tailwind-CSS Vite React Zustand Day.js PostCSS React Query React Hook Form Konva.js


πŸ”— Quick Links


πŸ“‹ Overview

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.

Key Features

  • 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

πŸš€ Tech Stack


πŸ’» Getting Started

βš™οΈ Installation

  1. Clone the webster-frontend repository:
git clone https://github.com/mkloz/webster-frontend
  1. Change to the project directory:
cd webster-frontend
  1. Install the dependencies:
npm install

πŸ•œ Running Webster

Use the following command to run Webster in development mode:

npm run dev

The application will be available at http://localhost:3000 (or the port specified in your Vite configuration).

πŸ“¦ Building for Production

To build the application for production:

npm run build

To preview the production build locally:

npm run preview

πŸ“‚ Project Structure

src/
β”œβ”€β”€ 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

πŸ”§ Environment Variables

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.

🀝 Contributing

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
  1. Fork the Repository: Start by forking the project repository to your GitHub account.
  2. Clone Locally: Clone the forked repository to your local machine using a Git client.
git clone https://github.com/mkloz/webster-frontend
  1. Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
  1. Make Your Changes: Develop and test your changes locally.
  2. Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.'
  1. Push to GitHub: Push the changes to your forked repository.
git push origin new-feature-x
  1. 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.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.