• Stars
    star
    834
  • Rank 54,676 (Top 2 %)
  • Language
    TypeScript
  • Created almost 13 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Create the simplest possible Mac OS X apps. Uses HTML5 for the UI. Supports scripting with anything and everything

Appify UI

Create Mac apps.
Use HTML5 for the UI.
Script it with anything.
Can not possibly be simpler. This is dumb and bad and old. You should not use this.

But after a decade or so, I still use this thing and it works great for me.

New in 2023: Appify-AI (work in progress)

Appify-AI is a new Appify-UI demo that uses GPT-3.5 or GPT-4 to mutate itself while you use it. It's pretty hip.


What is this?

A Mac app is essentially just an executable file in a folder along with a config file. That's all that is required.

An Appify UI app is

  1. A folder structure
    • That conforms to the Cocoa Application Bundle standard
  2. A config file
  3. A shell script
  4. A compiled binary
    • To load the interface
  5. An interface
    • A compiled nib file with a single WebKit WebView
  6. A url

Appify UI.app

A shell script that accepts arguments from an HTML form.

It creates a new Appify UI app on your Desktop with the configuration you provide.

The UI could be a lot better. Pull requests eagerly accepted.

Appify UI Node Demo.app

Instead of just a bash script, this uses node.js.
If node is not found, it quits and opens the node.js download page in your default web browser.
Before launching the webview, it starts up an http server.
When the app is closed, it closes the http server.

To create your own node.js based Mac app...

  1. Duplicate Appify UI Node Demo.app and give it whatever name you like
    • e.g. My Awesome App.app
  2. Edit My Awesome App.app/Contents/Info.plist
    • Each app needs a unique CFBundleIdentifier or else Bad Things may happen
  3. Replace the folder My Awesome App.app/Contents/Resources/app with your own node.js app
  4. Make sure that My Awesome App.app/Contents/Resources/app/server.js exports something with a listen method

How to package a Node.js Mac app for distribution

You could send it around as-is. By default it'll open their web browser and prompt them to install node.js if it's not already installed.

You could probly also package the node binary in the app. I haven't tried this, so please update this README once you do.

How to modify the nib and cocoa binary

The current version uses a heavily modified version of Apache Callback Mac (formerly PhoneGap-mac / MacGap). It's about as simple as you can get.

I may update this section later.

Similar Projects

https://github.com/maccman/macgap is probably what you should be using.

https://github.com/rogerwang/node-webkit is awesome, but large.

https://github.com/sveinbjornt/Platypus makes an app from terminal script, wraps it's output in the GUI window, handles CMD+Q etc

More Repositories

1

javascript-tools.tmbundle

Essential Tools for developing Javascript in TextMate
JavaScript
603
star
2

node-photoshop

Control Adobe Photoshop and After Effects from Node.js -- NOT MAINTAINED
JavaScript
174
star
3

JavaScript-Appcelerator-Titanium-Mobile.tmbundle

TextMate Bundle (tmBundle) for the Appcelerator Titanium Mobile JavaScript API. Includes complete API Code Completion and context sensitive API doc ToolTips. Yes, this is real.
JavaScript
103
star
4

StandaloneWebInspector.app

a really simple app for Mac OS X that wraps the very latest WebKit Web Inspector and simplifies remote debugging
Shell
103
star
5

javascript.tmbundle

Javascript.tmbundle THE Javascript tmBundle for TextMate. Major revision from what currently ships in the app
JavaScript
99
star
6

slick

Slick is a new standalone CSS Selector engine and CSS Selector string parser
JavaScript
74
star
7

Sheet.js

CommonJS & Browser JavaScript for parsing many CSS-like languages. Parse a CSS string into a JS object!
JavaScript
61
star
8

tilde-bin

Random handy stuff from my ~/bin
Shell
59
star
9

DeviceRemoteInspector.app

The easiest way to inspect mobile web apps on your device
JavaScript
46
star
10

language-javascript-jsx

JavaScript with JSX Bundle for Atom
CoffeeScript
45
star
11

node-photoshop-inspector-server

Remote Web Inspector Server for Photoshop. Use the WebKit Inspector UI to goof around with your Photoshop documents!
JavaScript
44
star
12

SelectStuff.tmbundle

TextMate Bundle for all languages. Makes selecting stuff easier and insti-quick!!1!
41
star
13

subtlegradient.tmbundle

A collection of random carp for textmate!
Ruby
28
star
14

TinkerBot-tech-for-ComfyUI-Touchpad

macOS Touchpad and smooth scrolling support for ComfyUI
JavaScript
24
star
15

node-ws-multi-proxy

Many to many WebSocket proxy with pluggable routing logic
JavaScript
23
star
16

mootools-subtle-templates

subtleTemplates is a MooTools Plugin which allows you to define a template in html itself and reuse it to populate dynamic data easily.
JavaScript
20
star
17

HTML5.tmbundle

You want it, you need it, you cannot live without it.
Ruby
17
star
18

css.tmbundle

CSS.tmBundle — The Official Macromates TextMate CSS Bundle
15
star
19

javascript.sugar

MacRabbit Espresso JavaScript.Sugar
14
star
20

SubtleLocationProxy.js

SubtleLocationProxy will proxy the location of one frame to the hash of another and vice-versa. It's handy for sites that simply wrap a fancy UI around simple HTML pages.
JavaScript
14
star
21

ao-roam

"Vivify" extensions for RoamResearch 😜
JavaScript
12
star
22

taskspeed

JavaScript framework code style and speed comparison
JavaScript
11
star
23

MooTools.tmBundle

TextMate Bundle for MooTools by MooTools core developer Thomas Aylott
11
star
24

mootools-plugin

Generic MooTools Javascript Plugin. Fork this and modify it to make your own mootools plugin.
JavaScript
10
star
25

AppleScript.js

Control Apps on Mac OS X using AppleScript via JavaScript! Control Safari from the terminal or TextMate!
JavaScript
10
star
26

node-photoshop-smart-object-source

Place images into Photoshop from the web
JavaScript
10
star
27

guimate.tmbundle

TextMate bundle application creation framework. Includes awesome simple GUI for Git.
JavaScript
10
star
28

mootools-github-badge

JavaScript
9
star
29

mootools-for-jquery

8
star
30

mootools-data-binding

Data Binding Plugins for MooTools 1.2.x
JavaScript
7
star
31

Java-Velocity.tmbundle

TextMate Bundle for Java Velocity Syntax
6
star
32

SheetRuler.js

StyleSheet manipulation tools for JavaScript. Insane cross-browser support with TDD!
JavaScript
6
star
33

mootools-mvc-controller

MVC Style Controller extension for MooTools. Data binding is your friend!
JavaScript
6
star
34

semantextreme

The Semantic’s Dream—The most accessible, semantic & future-proof way to put documents online
JavaScript
6
star
35

sugar-development.sugar

Espresso Sugar to help you develop Espresso Sugars
5
star
36

thereYet

Are we there yet?! The best standalone DOMReady implementation ever!
5
star
37

mootools-rails

MooTools extension for Rails3
5
star
38

preview.tmbundle

(Work In Progress, aka not working yet ;) TextMate Bundle that previews your changes to you as you make them! Preview PHP, CSS, Ruby, HTML, Javascript, Markdown, Textile and any kind of source files with a live clickable Diff!
5
star
39

mootools-mvc-transformer

MVC Style Data Transformer plugin for MooTools
JavaScript
4
star
40

SubtleGradient-Themes.tmbundle

Themes by SubtleGradient (Thomas Aylott). Brilliance Black, Brilliance Dull, Brilliance White
4
star
41

SubtleRegExp

Build concise complex maintainable RegExps without having to remember the syntax! And more stuff like that
JavaScript
4
star
42

opt-toy

OPDEX app — Visual calculator for OPS (Objective Personality System)
TypeScript
4
star
43

rsc-fun-in-bun

implementing the "use client" and "use server" directives from React 19 in Bun.sh
JavaScript
4
star
44

JSCocoaCLI

Objective-C
4
star
45

hook.io-herd

A simple hook.io hook that spawns one child hook for each json config file in a given directory
JavaScript
4
star
46

MooTools-Class

Standalone build of MooTools' Class implementation. Especially useful for node.js and narwhal. Includes JSSpec for commonjs
JavaScript
4
star
47

Component-Library-Photoshop-Panel

Adobe Photoshop extension UI Panel that lets you inject HTML as a scalable SmartObject using PhantomJS
JavaScript
4
star
48

node-headless-inspector

Headless WebKit Remote Inspector Client
JavaScript
3
star
49

JavaScript-with-JSX.tmbundle

JSX and Flow support for JavaScript, ES2015, Babel, etc…
JavaScript
3
star
50

subtleheartbeat

JavaScript
3
star
51

subtlegradient.github.com

3
star
52

SelectStuff.sugar

Select Stuff Sugar Extension for MacRabbit's Espresso.app
JavaScript
3
star
53

MooTools-Elements.SetEach

MooTools Plugin — Pass a callback function to set one or many values on every element in an Elements collection
JavaScript
3
star
54

jQuery_for_MooTools

2
star
55

Orion-Server

Java
2
star
56

figma-to-tailwind

Created with CodeSandbox
TypeScript
2
star
57

mootools-builder

Simple little tool to periodically download and build mootools
Ruby
2
star
58

subtleslickspeed

Simple but very powerful A/B testing/benchmarking framework with sandboxing support
JavaScript
2
star
59

mootools-subtle-templates-dirty

Extension to MooTools for populating and repopulating an element with data.
JavaScript
2
star
60

jQuery-for-MooTools

2
star
61

language-javascript

JavaScript Bundle for Atom
CoffeeScript
2
star
62

XHP.tmbundle

TextMate 2 Bundle for XHP (embedded XML in PHP) https://github.com/facebook/xhp
2
star
63

node-junitreport

JUnitReport XML format parser and encoder for node.js. Handy for Jenkins integration
JavaScript
2
star
64

ConnectionKit

Expand your applications publishing capabilities by integrating the Open Source Connection Framework today. The framework can publish via HTTP, FTP, SFTP, WebDAV, .Mac and to Amazon S3. There is no reliance on the DotMac.framework. It comes with a small test application that shows you how to integrate it with your application. It is very simple to integrate as it uses the Delegate pattern found so often in Cocoa. Support will be coming soon for FTP and HTTP over SSL. The framework is licensed under a BSD style license. Consulting to integrate the Connection Framework into your application is available. Email ghulands <at> utr-software dot com.
2
star
65

TransformDataAylott.JS

Create a lambda function from anything. Mutate the value later. Add one or many data transformers. Observe events to see when the transformation you care about is updated. (Update: This is way too magical)
JavaScript
2
star
66

subtlepager

Super simple DHTML paging system. For paging through sets of data in-page. Versions of this are in use at Java.com, CrazyEgg.com and a few other sites.
JavaScript
2
star
67

ECMAScript.tmBundle

TextMate 2 Grammar for ECMAScript
2
star
68

node-pillowcase

pillowcase helps you get some REST
JavaScript
2
star
69

Orion-Client

A browser-based open tool integration platform which is entirely focused on developing for the web, in the web.
1
star
70

roamresearch-iframe-plugin-playground

Created with CodeSandbox
1
star
71

fusebox

A standalone version of FuseJS's fuse.Fusebox()
JavaScript
1
star
72

sg-aspect

Simple AOP (Aspect Oriented Programming) for JavaScript
1
star
73

mootools-templates

Low-level Template class for MooTools. Maybe some higher-level subclasses.
1
star
74

mootools-doc

1
star
75

ExtJS-Test-Server.app

A simple testing/logging server for local framework development
1
star