Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/docs/apps.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ The project includes implementations for:
**React** - Component-based with hooks and modern React patterns
**Octane** - Compiled React-style components with direct DOM updates
**Vue** - Built with Vue 3 and the Composition API
**Vue Vapor** - Vue 3.6's opt-in compiler mode with direct DOM updates
**Svelte** - Compiled framework with reactive statements
**Angular** - Full TypeScript application with services and components
**Qwik** - Resumable framework optimized for performance
Expand Down
3 changes: 3 additions & 0 deletions apps/vue-vapor/.npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Vue 3.6 is still an RC, while plugin-vue's compatible peer range excludes
# prerelease versions under npm's strict semver rules.
legacy-peer-deps=true
80 changes: 80 additions & 0 deletions apps/vue-vapor/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
<!-- start_header -->
<h1 align="center">💨 Weather Front - Vue Vapor Mode</h1>

<p align="center">
<img width="64" src="https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/main/assets/favicon.png" /><br>
<i>A tiny weather app</i>
<br>
<b><a href="/">🚀 Demo</a> ● <a href="https://frontend-framework-benchmarks.as93.net">📊 Results</a></b>
<br><br>
<a href="https://github.com/vuejs/core/releases/tag/v3.6.0-rc.2" target="_blank"><img src="https://img.shields.io/badge/Framework-Vue_Vapor_Mode-42B883?logo=vuedotjs&logoColor=fff&labelColor=35495E" /></a>
<a href="https://github.com/Lissy93/framework-benchmarks/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-AE56FF?logo=googledocs&logoColor=fff&labelColor=8A2BE2" /></a>
<a href="https://github.com/lissy93"><img src="https://img.shields.io/badge/Author-Lissy93-EA4AAA?logo=githubsponsors&logoColor=fff&labelColor=E31591" /></a>
</p>
<!-- end_header -->

<!-- start_about -->

## About

<img align="right" src="/assets/screenshot.png" width="400">

This is a simple weather app, built in [Vue Vapor Mode](https://github.com/vuejs/core/releases/tag/v3.6.0-rc.2) (as well as also [10 other frontend frameworks](/)) in order to review, compare and benchmark frontend web frameworks.

- 🌦️ Live weather conditions
- 📅 7-day weather forecast
- 🔍 City search functionality
- 📍 Geolocation support
- 💾 Persistent location storage
- 📱 Responsive design
- ♿ Accessible interface
- 🎨 Multi-theme support
- 🧪 Fully unit tested
- 🌐 Internationalized

<!-- end_about -->

<!-- start_status -->

## Status

| Task | Status |
|---|---|
| **Test** - Executes all e2e and unit tests | [![Test Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/test-vue-vapor.svg)](https://github.com/lissy93/framework-benchmarks/actions/workflows/test.yml) |
| **Lint** - Verifies code style and quality | [![Lint Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/lint-vue-vapor.svg)](https://github.com/lissy93/framework-benchmarks/actions/workflows/lint.yml) |
| **Build** - Builds and deploys the app | [![Build Status](https://raw.githubusercontent.com/lissy93/framework-benchmarks/refs/heads/badges/build-vue-vapor.svg)](https://github.com/lissy93/framework-benchmarks/actions/workflows/build.yml) |

<!-- end_status -->

<!-- start_usage -->

## Usage

First, follow the [repo setup instructions](https://github.com/lissy93/framework-benchmarks?tab=readme-ov-file#usage). Then `cd apps/vue-vapor` and use the following commands:

```bash
npm run dev # Start dev server (vite --port 3000)
npm test # Run tests
npm run lint # Run lint checks
npm build # Build for production (vite build)
npm start # Serve built prod app (from ./dist)
```

For troubleshooting, use `npm run verify` from the root of the project.

<!-- end_usage -->

<!-- start_framework_specific -->

<!-- Framework-specific notes go here -->

<!-- end_framework_specific -->

<!-- start_license -->

## License

Weather-Front is licensed under [MIT](https://github.com/lissy93/framework-benchmarks/blob/main/LICENSE) © Alicia Sykes 2025.<br>
View [Attributions](https://github.com/lissy93/framework-benchmarks?tab=readme-ov-file#attributions) for credits, thanks and contributors.

<!-- end_license -->
16 changes: 16 additions & 0 deletions apps/vue-vapor/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Weather App - Vue Vapor Mode</title>
<link rel="stylesheet" href="/styles/design-system.css">
<link rel="stylesheet" href="/styles/variables.css">
<link rel="stylesheet" href="/styles/base.css">
<link rel="stylesheet" href="/styles/components.css">
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>
Loading