getonup 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +148 -0
  2. package/dist/index.js +15173 -0
  3. package/package.json +40 -0
package/README.md ADDED
@@ -0,0 +1,148 @@
1
+ <div align="center">
2
+
3
+ # ✨ getonup
4
+
5
+ **Your AI artifact, live in seconds.**
6
+
7
+ Turn any AI-generated web artifact — an HTML file, a React/Vue component, or a built static
8
+ folder — into a **live, shareable URL** with one command. Open-source, self-hosted, scale-to-zero.
9
+
10
+ ```bash
11
+ getonup deploy counter.tsx
12
+ ✓ live → https://getonup.example.com/s/iwcmg3dt
13
+ ```
14
+
15
+ [![License: MIT](https://img.shields.io/badge/license-MIT-22d3ee)](./LICENSE)
16
+ &nbsp;·&nbsp; one Worker + R2 &nbsp;·&nbsp; scale-to-zero &nbsp;·&nbsp; agent-native
17
+
18
+ <br/>
19
+
20
+ <img src="docs/landings/midnight.png" alt="getonup landing page" width="760" />
21
+
22
+ </div>
23
+
24
+ ---
25
+
26
+ ## Why
27
+
28
+ AI assistants generate gorgeous little apps — but they're trapped in a chat window. getonup
29
+ publishes them to a real URL from the command line, on infrastructure you own:
30
+
31
+ - **One command** — `getonup deploy app.tsx` prints a live URL. No build step, no boilerplate.
32
+ - **Agent-native** — drop a snippet in `AGENTS.md` and any coding agent can publish its own work.
33
+ - **Auto-wrap** — hand it a bare `.tsx`/`.vue`/`.js` and it becomes a self-contained, runnable
34
+ page (React 18 + Babel + Tailwind, Vue 3). HTML files and static folders are served as-is.
35
+ - **Self-hosted & scale-to-zero** — one Cloudflare Worker + an R2 bucket, ~$0 when idle. MIT.
36
+
37
+ ---
38
+
39
+ ## Run it locally (no Cloudflare account)
40
+
41
+ `npm run dev` runs the whole server on your machine via Wrangler's local
42
+ [miniflare](https://developers.cloudflare.com/workers/testing/miniflare/) storage — **no Cloudflare
43
+ account, no login, no bucket.** The fastest way to try it:
44
+
45
+ ```bash
46
+ git clone https://github.com/YOUR_USERNAME/getonup.git && cd getonup
47
+ npm install
48
+ npm run setup # builds + links the getonup CLI, writes a local deploy token, prints the next step
49
+ npm run dev # serves at http://localhost:8787 (Ctrl-C to stop)
50
+ ```
51
+
52
+ `npm run setup` prints a ready-to-run `getonup login` line with your generated token. In a second
53
+ terminal:
54
+
55
+ ```bash
56
+ getonup login --url http://localhost:8787 --token <token-from-setup>
57
+ getonup deploy examples/counter.tsx # auto-wrapped React → http://localhost:8787/s/<id>
58
+ getonup serve examples/counter.tsx # …or just preview it — no server, no token
59
+ ```
60
+
61
+ Ready for a public URL? See **[Self-hosting on Cloudflare »](docs/SELF-HOSTING.md)**.
62
+
63
+ ---
64
+
65
+ ## Using the CLI
66
+
67
+ ```bash
68
+ getonup deploy index.html # a full HTML file → served as-is
69
+ getonup deploy counter.tsx --open # a React component → auto-wrapped & opened in your browser
70
+ getonup deploy card.vue # a Vue SFC → auto-wrapped
71
+ cat art.html | getonup deploy - # pipe from stdin
72
+ getonup deploy ./dist # a built static site (folder with index.html)
73
+
74
+ getonup list # everything you've published
75
+ getonup rm <id> # take one down
76
+ getonup serve app.tsx --watch # local preview with live-reload (no deploy, no token)
77
+ ```
78
+
79
+ `deploy` prints the live URL as the last stdout line — `--json` for structured output, `--quiet`
80
+ for just the URL. Full command + flag reference: **[docs/CLI.md](docs/CLI.md)**.
81
+
82
+ ### What you can deploy
83
+
84
+ | You give it | getonup does |
85
+ |---|---|
86
+ | `.html` (full document) | serves it verbatim |
87
+ | `.html` (fragment) | wraps it in a minimal styled page |
88
+ | `.jsx` / `.tsx` | React 18 + Babel + esm.sh import map + Tailwind; mounts your default export |
89
+ | `.vue` | Vue 3 + `vue3-sfc-loader` |
90
+ | `.js` / `.ts` | a module shell, transpiled, with an esm.sh import map for bare imports |
91
+ | a directory | uploads the folder as a static site (must contain `index.html`) |
92
+
93
+ `import`s for npm packages (`lucide-react`, `recharts`, …) resolve at runtime via
94
+ [esm.sh](https://esm.sh) — no bundler. `--no-wrap` hosts raw source, `--type` overrides detection,
95
+ `--no-tailwind` skips the Tailwind CDN.
96
+
97
+ > **Static & client-side only.** Wrapped pages load their dependencies from CDNs at runtime; there's
98
+ > no server-side code (that's what keeps it scale-to-zero). Details + air-gapped notes in
99
+ > [Self-hosting › Limitations](docs/SELF-HOSTING.md#limitations).
100
+
101
+ ---
102
+
103
+ ## Give it to your agent
104
+
105
+ The point of getonup: your coding agent publishes its own work. Add this to your project's
106
+ `AGENTS.md` (or `CLAUDE.md`, `.cursorrules`, …):
107
+
108
+ ```markdown
109
+ ## Publishing artifacts
110
+ To share a web artifact (HTML page, React/Vue component, or built static site) as a live URL,
111
+ run: `getonup deploy <file-or-dir>` and give the user the printed URL.
112
+ - Single components are auto-wrapped (React/Vue/Tailwind) — just point at the .tsx/.vue/.html.
113
+ - Use `--json` to parse the result.
114
+ ```
115
+
116
+ A ready-to-copy block is in [`AGENTS.md`](./AGENTS.md), and there's a Claude Code skill in
117
+ [`skills/getonup`](./skills/getonup).
118
+
119
+ **…or as an MCP server:** `getonup mcp` exposes `deploy_artifact`, `list_deploys`, and `remove_deploy`
120
+ over stdio to any MCP-aware agent:
121
+
122
+ ```json
123
+ { "mcpServers": { "getonup": { "command": "getonup", "args": ["mcp"],
124
+ "env": { "GETONUP_URL": "https://your-getonup.example", "GETONUP_TOKEN": "your-token" } } } }
125
+ ```
126
+
127
+ ---
128
+
129
+ ## The `getonup` command
130
+
131
+ `getonup` is the CLI. Config lives in `~/.config/getonup/config.json`, or pass `GETONUP_URL` /
132
+ `GETONUP_TOKEN` env vars (handy for CI and agents). From the repo without installing:
133
+ `npm run getonup -- <args>`.
134
+
135
+ ---
136
+
137
+ ## More
138
+
139
+ - **[Self-hosting on Cloudflare »](docs/SELF-HOSTING.md)** — deploy to a public URL; configure,
140
+ secure, and harden your instance; plus hosting alternatives (GitHub Pages, Datasette Apps).
141
+ - **[CLI reference »](docs/CLI.md)** — every command and flag.
142
+ - **[Architecture & design »](PLAN.md)** — how the CLI and Worker fit together.
143
+ - **[Landing designs »](LANDINGS.md)** — fifteen demo landing pages, all deployed through getonup.
144
+ - **[Contributing »](CONTRIBUTING.md)** — dev setup and project layout.
145
+
146
+ ## License
147
+
148
+ [MIT](./LICENSE) — getonup contributors.