Every buy is a feature request. AI ships it live.
Buy $SHLOG, paste your buy tx, type a feature. Our AI builds it into this arcade, live.
shiplog.run/arcade
29 shipped2 buildersmedian 4m40s
#52
BUILDING
“make it rain at night”9bRt…kL2m
2m27s
#51
CI
“add a jukebox in the lobby”Hc3P…9vXe
4/63m58s
#50
SHIPPED
“double jump for everyone”4mWz…Tq7s
+21 −2 1m ago
#49
REJECTED BY CI
“turn the town into an open-world MMO”Fs8L…pY4d
+46 −0 over budget
#48
DROPPED · SELLER
“give the cat a crown”2nJd…Rv8c, sold before build, no compute spent
8m ago
#47
SHIPPED
“add a boss that throws pizza”7xQ4…f2aK
+38 −4 3m ago
#46
REJECTED BY FILTER
“add a claim airdrop button”Bq5T…mH1z
slot refunded
Feature #47, line by line.
feat(#47): boss throws pizza
+ BUILD+ UNIT TESTS+ LINT+ DIFF GATE+ PAGE CLASSIFIER+ PLAYWRIGHTCI 6/64m12s
src/bosses/pizzaBoss.jsNEW+31 −0
1+export class PizzaBoss extends Boss {
2+ hp = 12;
3+ throwEvery = 1.4;
4+ projectile = "pizza";
5+ art = "ogre";
6+ volley = 0;
7+
8+ // every third throw is a fan of three slices
9+ throw(w) {
10+ this.volley = (this.volley + 1) % 3;
11+ if (this.volley !== 0) return super.throw(w);
12+ for (const spread of [-24, 0, 24]) {
13+ // aim left of, at, and right of the cat
14+ const tx = (w.player ? w.player.x : 40) + spread;
15+ w.projectiles.push({
16+ kind: "pizza",
17+ x: this.x + 4,
18+ y: this.y - 4,
19+ vx: (tx - this.x) / 1.5,
20+ vy: -80 - w.rand() * 20,
21+ r: 0,
22+ spin: 8,
23+ life: 4,
24+ });
25+ }
26+ if (w.level.shake) w.shake = Math.max(w.shake, w.level.shake);
27+ }
28+}
29+
30+// imports are hoisted, so the class reads first
31+import { Boss } from "./boss.js";
src/levels/rooftop.js+6 −3
5+import { PizzaBoss } from "../bosses/pizzaBoss.js";
export default {
21− boss: null,
22− spawn: [],
23− music: "rooftop-a",
22+ boss: new PizzaBoss({ x: 262, y: 92 }),
23+ spawn: ["pizza"],
24+ music: "rooftop-boss",
25+ bossIntro: true,
26+ shake: 0.2,
src/boss-registry.js+1 −1
6− rooftop: null,
6+ rooftop: B.PizzaBoss,


SHIP RECEIPT
feature #47
“add a boss that throws pizza”
buyer 7xQ4…f2aK
buy 0.3 SOL · tx 5Kp8…Qe3w
queue #3 by bag
build 4m12s
+38 −4 · 3 files
CI 6/6
Sonnet-class · 41,880 tokens
cost $0.63
commit 55596ff
shipped 3m ago
demo replay
Share on XYour buy is your ticket.
- 1 slot per 0.1 SOL
- max 10 slots per tx
- max 3 active per wallet
- rank = the $SHLOG you hold now
- hold 50% of that buy until your build starts,
or DROPPED · SELLER - filter rejections refund the slot
- paste within 30 minutes of your buy
- no wallet connect
- credit always goes to the buyer's wallet
- edit or cancel for 10 minutes
Every lamport, on the log.
QUEUE · RANKED BY BAG
#52BUILDING
make it rain at night9bRt…kL2m · bag 2.10M
ETA 2m
#53QUEUED
a fishing pond behind the arcadeDv2K…sN8p · bag 4.40M
ETA 4m
#54QUEUED
high score board on the wallPz6m…Gc1r · bag 1.88M
ETA 6m
#55QUEUED
let the boss ride a skateboardAe9w…Uj3t · bag 0.92M
ETA 11m
BUDGET.LOGevery 5 minutesdemo replay
[last cycle · cycle 61]
fees in0.071 SOL
compute0.0426 SOL60%
burn0.0142 SOL20%131,560 $SHLOGtx 3vYh…Wm9d
ops0.0142 SOL20%
[lifetime · 61 cycles]
fees in2.460 SOL
compute1.476 SOLspent 0.188 SOL = $26.81unspent 1.288 SOL
burn0.492 SOL4,812,330 $SHLOG burned in 61 txs
ops0.492 SOL
modelsSonnet-class builderHaiku-class filter
cap$2 and 10 minutes per request
LEDGER CHECK: BALANCEDnext cycle in 4:22
per-ship costs
loading…
all burn txs
loading…
$SHLOG IS LIVE ON PUMP.FUN
Buy the commit button.
CAFees every 5 minutes: 60% builds, 20% buyback and burn, 20% ops.