Convert Figma logo to code with AI

tw93 logoPake

🤱🏻 Turn any webpage into a desktop app with one command.

45,582
8,963
45,582
2

Top Related Projects

98,671

Build smaller, faster, and more secure desktop and mobile applications with a web frontend.

Make any web page a desktop application

Clone to try a simple Electron app

30,810

Create beautiful applications using Go

Portable and lightweight cross-platform desktop application development framework

Quick Overview

Pake is an open-source tool that allows users to quickly turn any website into a desktop application using Rust. It simplifies the process of creating cross-platform desktop apps from web applications, providing a lightweight alternative to Electron.

Pros

  • Fast and lightweight compared to Electron-based alternatives
  • Cross-platform support (macOS, Windows, Linux)
  • Easy to use with minimal configuration required
  • Customizable with various options for app appearance and behavior

Cons

  • Limited documentation and examples for advanced use cases
  • Fewer features compared to more established frameworks like Electron
  • Potential compatibility issues with complex web applications
  • Relatively new project, which may lead to stability concerns

Getting Started

To use Pake, follow these steps:

  1. Install Rust and Cargo (Rust's package manager) on your system.
  2. Install Pake using Cargo:
cargo install pake-cli
  1. Create a desktop app from a website:
pake https://example.com
  1. For more options, use the help command:
pake --help

This will display available customization options such as app name, icon, and window size.

Competitor Comparisons

98,671

Build smaller, faster, and more secure desktop and mobile applications with a web frontend.

Pros of Tauri

  • More mature and feature-rich framework with extensive documentation
  • Supports multiple programming languages (Rust, JavaScript, TypeScript)
  • Offers greater customization and control over the application structure

Cons of Tauri

  • Steeper learning curve, especially for developers new to Rust
  • Larger bundle size due to its comprehensive feature set
  • More complex setup process compared to Pake's simplicity

Code Comparison

Pake (simplified web app creation):

pake 'https://example.com' --name 'ExampleApp' --icon 'path/to/icon.png'

Tauri (more complex, but flexible):

#[tauri::command]
fn greet(name: &str) -> String {
    format!("Hello, {}!", name)
}

fn main() {
    tauri::Builder::default()
        .invoke_handler(tauri::generate_handler![greet])
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

Pake focuses on quickly converting websites into desktop apps with minimal configuration, while Tauri provides a more comprehensive framework for building cross-platform applications with native performance and advanced features. Pake is ideal for simple web-to-desktop conversions, whereas Tauri is better suited for complex, custom applications requiring fine-grained control and extensive functionality.

Make any web page a desktop application

Pros of Nativefier

  • More mature project with a larger community and extensive documentation
  • Supports a wider range of platforms, including Windows, macOS, and Linux
  • Offers more customization options and command-line arguments

Cons of Nativefier

  • Larger app size due to bundling Electron with each app
  • Higher resource usage, which can impact system performance
  • Slower startup times compared to Pake's Tauri-based apps

Code Comparison

Nativefier:

nativefier --name "My App" --icon icon.png https://example.com

Pake:

pake https://example.com MyApp --icon icon.png

Both tools aim to convert web applications into desktop apps, but they use different underlying technologies. Nativefier uses Electron, while Pake leverages Tauri. This fundamental difference impacts app size, performance, and resource usage.

Nativefier offers more flexibility and options, making it suitable for complex use cases and developers who need fine-grained control. However, this comes at the cost of larger app sizes and higher resource consumption.

Pake, being newer and built on Tauri, produces smaller, more efficient apps with faster startup times. It's ideal for simpler use cases and when minimizing resource usage is a priority. However, it may lack some of the advanced features and customization options available in Nativefier.

Clone to try a simple Electron app

Pros of minimal-repro

  • Designed specifically for creating minimal reproducible examples for Electron issues
  • Simpler structure, focused on demonstrating Electron-specific problems
  • Easier to understand and modify for debugging purposes

Cons of minimal-repro

  • Limited functionality, not intended for building full applications
  • Lacks features for creating standalone desktop apps from web services
  • Requires more manual setup and configuration for each use case

Code Comparison

minimal-repro:

const { app, BrowserWindow } = require('electron')

function createWindow () {
  const win = new BrowserWindow({ width: 800, height: 600 })
  win.loadFile('index.html')
}

app.whenReady().then(createWindow)

Pake:

import { app, BrowserWindow } from 'electron'
import { createWindow } from './window'

app.whenReady().then(() => {
  createWindow()
})

Key Differences

  • Pake is designed to quickly turn web apps into desktop applications
  • minimal-repro focuses on creating small examples for Electron issue reporting
  • Pake offers more features for customizing and packaging desktop apps
  • minimal-repro provides a bare-bones structure for isolating Electron-specific problems
  • Pake includes additional tools and scripts for app development and distribution

Both projects serve different purposes within the Electron ecosystem, with Pake being more suitable for rapid desktop app creation and minimal-repro for troubleshooting and bug reporting.

30,810

Create beautiful applications using Go

Pros of Wails

  • More mature and feature-rich framework for building desktop applications
  • Supports multiple programming languages (Go, JavaScript, TypeScript)
  • Extensive documentation and larger community support

Cons of Wails

  • Steeper learning curve, especially for developers new to Go
  • Requires more setup and configuration compared to Pake
  • Larger application size due to bundled Go runtime

Code Comparison

Pake (JavaScript):

import { pake } from 'pake-cli';

pake({
  url: 'https://example.com',
  name: 'MyApp',
  icon: 'path/to/icon.png'
});

Wails (Go):

package main

import (
    "github.com/wailsapp/wails/v2"
    "github.com/wailsapp/wails/v2/pkg/options"
)

func main() {
    app := wails.CreateApp(&options.App{
        Width:  1024,
        Height: 768,
        Title:  "My Wails App",
    })
    app.Run()
}

Pake focuses on simplicity and quick setup for wrapping web applications, while Wails offers a more comprehensive framework for building native-feeling desktop applications with Go and web technologies. Pake is ideal for rapid prototyping and simple web-to-desktop conversions, whereas Wails is better suited for more complex, feature-rich desktop applications that require deeper integration with the operating system.

Portable and lightweight cross-platform desktop application development framework

Pros of Neutralinojs

  • More flexible and customizable, allowing developers to create a wider range of applications
  • Better documentation and larger community support
  • Cross-platform compatibility with Windows, macOS, and Linux

Cons of Neutralinojs

  • Steeper learning curve compared to Pake's simpler approach
  • Requires more setup and configuration to get started
  • Larger file size and potentially higher resource usage

Code Comparison

Pake (creating a simple window):

import { createWindow } from 'pake';

createWindow({
  url: 'https://example.com',
  width: 800,
  height: 600
});

Neutralinojs (creating a simple window):

const { app, window } = require('neutralino');

app.on('ready', () => {
  window.create('https://example.com', {
    width: 800,
    height: 600
  });
});

Both projects aim to simplify the process of creating desktop applications from web technologies. Pake focuses on quickly turning websites into desktop apps with minimal configuration, while Neutralinojs offers a more comprehensive framework for building cross-platform desktop applications with web technologies. The choice between the two depends on the specific needs of the project and the developer's preferences for simplicity versus flexibility.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

English | 简体中文 | 日本語

Pake

Turn any webpage into a desktop app with one command, supports macOS, Windows, and Linux

Features

  • 🎐 Lightweight: Nearly 20 times smaller than Electron packages, typically around 5M
  • 🚀 Fast: Built with Rust Tauri, much faster than traditional JS frameworks with lower memory usage
  • ⚡ Easy to use: One-command packaging via CLI or online building, no complex configuration needed
  • 📦 Feature-rich: Supports shortcuts, immersive windows, drag & drop, style customization, ad removal

Getting Started

  • Beginners: Download ready-made Popular Packages or use Online Building with no environment setup required
  • Developers: Install CLI Tool for one-command packaging of any website with customizable icons, window settings, and more
  • Advanced Users: Clone the project locally for Custom Development, or check Advanced Usage for style customization and feature enhancement

Popular Packages

WeRead Mac Windows Linux Twitter Mac Windows Linux
Grok Mac Windows Linux DeepSeek Mac Windows Linux
ChatGPT Mac Windows Linux Gemini Mac Windows Linux
YouTube Music Mac Windows Linux YouTube Mac Windows Linux
LiZhi Mac Windows Linux ProgramMusic Mac Windows Linux
Excalidraw Mac Windows Linux XiaoHongShu Mac Windows Linux
🏂 You can download more applications from Releases. Click here to expand the shortcuts reference!
MacWindows/LinuxFunction
⌘ + [Ctrl + ←Return to the previous page
⌘ + ]Ctrl + →Go to the next page
⌘ + ↑Ctrl + ↑Auto scroll to top of page
⌘ + ↓Ctrl + ↓Auto scroll to bottom of page
⌘ + rCtrl + rRefresh Page
⌘ + wCtrl + wHide window, not quit
⌘ + -Ctrl + -Zoom out the page
⌘ + +Ctrl + +Zoom in the page
⌘ + =Ctrl + =Zoom in the Page
⌘ + 0Ctrl + 0Reset the page zoom

In addition, double-click the title bar to switch to full-screen mode. For Mac users, you can also use the gesture to go to the previous or next page and drag the title bar to move the window.

Command-Line Packaging

Pake

# Install Pake CLI
pnpm install -g pake-cli

# Basic usage - automatically fetches website icon
pake https://github.com --name GitHub

# Advanced usage with custom options
pake https://weekly.tw93.fun --name Weekly --icon https://cdn.tw93.fun/pake/weekly.icns --width 1200 --height 800 --hide-title-bar

First-time packaging requires environment setup and may be slower, subsequent builds are fast. For complete parameter documentation, see CLI Usage Guide. Don't want to use CLI? Try GitHub Actions Online Building.

Development

Requires Rust >=1.89 and Node >=22. For detailed installation guide, see Tauri documentation. If unfamiliar with development environment, use the CLI tool instead.

# Install dependencies
pnpm i

# Local development [right-click to open debug mode]
pnpm run dev

# Build application
pnpm run build

For style customization, feature enhancement, container communication and other advanced features, see Advanced Usage Documentation.

Developers

Pake's development can not be without these Hackers. They contributed a lot of capabilities for Pake. Also, welcome to follow them! ❤️

tw93
Tw93
Tlntin
Tlntin
jeasonnow
Santree
pan93412
Pan93412
stone-w4tch3r
Данил Бизимов
wanghanzhen
Volare
liby
Bryan Lee
essesoul
Essesoul
YangguangZhou
Jerry Zhou
AielloChan
Aiello
m1911star
Horus
Pake-Actions
Pake Actions
GoodbyeNJN
GoodbyeNJN
eltociear
Ikko Eltociear Ashimine
kittizz
Kittizz
mattbajorek
Matt Bajorek
vaddisrinivas
Srinivas Vaddi
QingZ11
Steam
Tianj0o
Qitianjia
xinyii
Yi Xin
g1eny0ung
Yue Yang
lkieryan
Kieran
exposir
孟世博
2nthony
2nthony
ACGNnsj
Null
imabutahersiddik
Abu Taher Siddik
kidylee
An Li
nekomeowww
Ayaka Neko
turkyden
Dengju Deng
fvn-elmy
Fabien
Fechin
Fechin
ImgBotApp
Imgbot
droid-Q
Jiaqi Gu
JohannLai
Johannlai
Jason6987
Luminall
Milo123459
Milo
princemaple
Po Chen
beautifulrem
Xie Ruiqi
bocanhcam
Null
geekvest
Null
houhoz
Hyzhao
lakca
Null
liudonghua123
Liudonghua
liusishan
Liusishan
piaoyidage
Ranger
hetz
贺天卓

Support

  1. I have two cats, TangYuan and Coke. If you think Pake delights your life, you can feed them food 🥩.
  2. If you like Pake, you can star it on GitHub. Also, welcome to recommend Pake to your friends.
  3. You can follow my Twitter to get the latest news of Pake or join our Telegram chat group.
  4. I hope that you enjoy playing with it. Let us know if you find a website that would be great for a Mac App!