Skip to content
View vuebro's full-sized avatar

Block or report vuebro

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
vuebro/README.md

VueBro - Vue.js Web Editor

vuebro

VueBro is an open-source and free web editor for creating websites using Vue.js technology. It allows users to create static websites with Vue single-file components (SFCs) without installing or setting up a development environment like Node.js or Vite. The application runs directly in the browser with no need for server-side rendering.

🌐 Project Website

https://vuebro.github.io

πŸš€ Key Features

  • Runtime Vue SFC Compilation: Create Vue single-file components (.vue files) without a preliminary build step. Compilation occurs in the browser at runtime.
  • WYSIWYG Mode: Create static websites without HTML knowledge using the visual editor.
  • Monaco Editor: Uses the same editor as Microsoft VS Code with Volar.js pre-installed for editing Vue components.
  • Tailwind CSS Support: Out-of-the-box support for Tailwind CSS classes without additional configuration.
  • External Module Import: Import external libraries and frameworks directly from services like jsDelivr and UNPKG.
  • Multiple Storage Options: Edit websites locally or connect to S3 storage.
  • SEO Optimized: Built-in mechanisms for search engine indexing of generated websites.
  • Composition API + TypeScript: Full support for modern Vue.js development practices.
  • Cross-Platform: Available for Windows, macOS, Linux as desktop application.

πŸ–ΌοΈ Screenshots

screenshot 1 screenshot 2 screenshot 3 screenshot 4 screenshot 5 screenshot 6

βš™οΈ Tech Stack

  • Framework: Vue 3 with Quasar Framework
  • Build Tool: Vite
  • Styling: UnoCSS (with Tailwind CSS compatibility)
  • Editor: Monaco Editor (VS Code's editor)
  • Language: TypeScript
  • State Management: VueUse composition utilities
  • Internationalization: Vue I18n
  • Package Manager: npm

πŸ’Ύ Download the Latest Version


 Get exe for 

 Windows 


 Get dmg for 

 macOS 


 Get AppImage for 

 Linux 


 Get snap for 

 Linux 

Or access the web application at vuebro.github.io/vuebro

πŸ’» Development Setup

Prerequisites

  • Node.js (latest LTS version recommended)
  • npm package manager

Getting Started

  1. Clone the repository:

    git clone https://github.com/vuebro/vuebro.git cd vuebro
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm run dev

Running as Desktop Application

To run VueBro as a desktop application during development:

npm run dev:electron

Building for Production

To build for web:

npm run build

To build for desktop:

npm run build:electron

πŸ”§ Project Structure

vuebro/ β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ assets/ # Static assets β”‚ β”œβ”€β”€ boot/ # Application boot files β”‚ β”œβ”€β”€ components/ # Vue components β”‚ β”œβ”€β”€ css/ # CSS styles β”‚ β”œβ”€β”€ i18n/ # Internationalization files β”‚ β”œβ”€β”€ pages/ # Route components β”‚ β”œβ”€β”€ router/ # Routing configuration β”‚ β”œβ”€β”€ stores/ # State management (VueUse/Pinia stores) β”‚ β”œβ”€β”€ App.vue # Main application component β”‚ β”œβ”€β”€ env.d.ts # TypeScript declaration file β”‚ └── global.d.ts # Global TypeScript declarations β”œβ”€β”€ public/ # Public assets β”œβ”€β”€ package.json # Dependencies and scripts β”œβ”€β”€ quasar.config.ts # Quasar framework configuration β”œβ”€β”€ uno.config.ts # UnoCSS configuration β”œβ”€β”€ tsconfig.json # TypeScript configuration └── index.html # Main HTML entry point 

πŸ—οΈ Architecture

VueBro follows a modern Vue 3 architecture with the following key components:

  • State Management: Uses Vue's reactivity system with stores organized in src/stores/ directory
  • Data Storage: Supports both S3 storage and local file system access (FSA) API
  • Vue SFC Compilation: Runtime compilation of Vue single-file components using @vuebro/monaco-sfc
  • SEO Support: Generates proper meta tags, sitemaps, and JSON-LD for search engine optimization
  • Internationalization: Built-in i18n support with language files in src/i18n/

Main Stores

  • app.ts - Application state management
  • io.ts - Input/output operations (S3 and file system API)
  • s3.ts - S3 storage integration
  • fsa.ts - File System Access API integration
  • defaults.ts - Shared constants and defaults

πŸ”¬ Development Commands

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run dev:electron - Development mode for Electron app
  • npm run build:electron - Build Electron app
  • npm run lint - Run ESLint for code linting

🀝 Contributing

We welcome contributions from the community! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Add tests if applicable
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Code Style

  • Use Pug template syntax throughout components
  • Follow ESLint rules with custom configuration from @vuebro/configs
  • Use UnoCSS for styling with Tailwind-like utility classes
  • Maintain TypeScript strict mode configuration
  • Organize components by feature/function in respective directories

πŸ”’ License

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

Note

drakkar

Made on the shores of the Baltic Sea

πŸ“£ Special Notes

  • VueBro is a non-commercial, open-source project
  • No server-side rendering needed - all compilation happens in the browser
  • Works with GitHub Pages as an excellent hosting option
  • Special attention to search engine optimization mechanisms
  • Supports external module imports from CDNs like jsDelivr and UNPKG

Pinned Loading

  1. vuebro vuebro Public

    VueBro is an open-source browser-based Vue.js web editor that allows creating static websites with Vue SFCs without Node.js setup. Features runtime SFC compilation, Monaco editor, WYSIWYG mode, Tai…

    Vue 2 1

  2. flat-json-tree flat-json-tree Public

    A Vue 3 composable that transforms JSON tree objects into flat arrays for easy manipulation with standard array operations while maintaining tree structure through computed properties

    TypeScript