carlos / carloku Public

Clone
git clone https://amadan.net/carlos/carloku

Plain git — no account needed to clone.

Download

Download this file

1<!doctype html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<meta name="viewport" content="width=device-width, initial-scale=1">
6<title>Carloku — the uncompromising app platform</title>
7<meta name="description" content="🤖 Carloku is an app hosting platform that accepts no tradeoffs. Deploy in seconds. Scale to billions. Simple commands, massive power. Cloud, hybrid, and on-prem: all first-class. Welcome to the new standard. Get ready to ship.">
8<meta property="og:title" content="Carloku">
9<meta property="og:description" content="Carloku is an app hosting platform that accepts no tradeoffs. Deploy in seconds. Scale to billions. Simple commands, massive power. Cloud, hybrid, and on-prem: all first-class. Welcome to the new standard. Get ready to ship.">
10<meta property="og:type" content="website">
11<meta property="og:url" content="https://carloku.com/">
12<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)">
13<meta name="theme-color" content="#0e0c13" media="(prefers-color-scheme: dark)">
14<link rel="icon" href="/favicon.svg" type="image/svg+xml">
15<link rel="preload" href="/fonts/Geist-Variable.woff2" as="font" type="font/woff2" crossorigin>
16<link rel="preload" href="/fonts/GeistMono-Variable.woff2" as="font" type="font/woff2" crossorigin>
17<link rel="stylesheet" href="/site.css">
18</head>
19<body>
20<!--
21THESIS: The category-standard app-platform page, played straight at Heroku/Fly/Render/Railway
22craft — chosen by the user as the standing exit over the assigned direction. It refuses
23nothing structurally; it must out-finish, not out-weird.
24OWN-WORLD: Near-black-with-purple dark scheme / white-with-purple light scheme, one accent
25(Carloku purple), Geist + Geist Mono, hairline borders, one dark terminal that stays dark in
26both schemes, one deep-purple full-bleed band.
27STORY: A developer sees the three-command workflow proven in a real terminal, believes
28hosting can be held in one head, and clicks Get started.
29FIRST VIEWPORT: Sticky nav; left, "Ship it. Promote it. Sleep." + lede + Get started primary;
30right, a terminal typing the real ship→promote→rollback session.
31FORM: Canon standing exit, user-chosen over grounded candidate 5; seed key 5f64f4cf.
32FINISH: unreviewed and undocumented is unfinished; this build ends with the finish review,
33the verdict, and DESIGN.md.
34-->
35<a class="skip" href="#main">Skip to content</a>
36<header class="site-head">
37 <div class="wrap">
38 <a class="brand" href="/"><svg class="mark" viewBox="0 0 64 64" aria-hidden="true"><rect width="64" height="64" rx="14" fill="#5b3e96"/><path fill="#b9a1ea" d="M11.65 37.15H50.65A2.5 2.5 0 0 1 52.42 37.88L54.19 39.65A2.5 2.5 0 0 1 54.92 41.42V48.42A2.5 2.5 0 0 1 52.42 50.92H13.42A2.5 2.5 0 0 1 11.65 50.19L9.88 48.42A2.5 2.5 0 0 1 9.15 46.65V39.65A2.5 2.5 0 0 1 11.65 37.15ZM10.65 26.15H28.15A1.5 1.5 0 0 1 29.21 26.59L30.63 28.01A1.5 1.5 0 0 1 31.07 29.07V33.07A1.5 1.5 0 0 1 29.57 34.57H12.07A1.5 1.5 0 0 1 11.01 34.13L9.59 32.71A1.5 1.5 0 0 1 9.15 31.65V27.65A1.5 1.5 0 0 1 10.65 26.15ZM34.15 26.15H51.65A1.5 1.5 0 0 1 52.71 26.59L54.13 28.01A1.5 1.5 0 0 1 54.57 29.07V33.07A1.5 1.5 0 0 1 53.07 34.57H35.57A1.5 1.5 0 0 1 34.51 34.13L33.09 32.71A1.5 1.5 0 0 1 32.65 31.65V27.65A1.5 1.5 0 0 1 34.15 26.15ZM10.65 15.15H16.4A1.5 1.5 0 0 1 17.46 15.59L18.88 17.01A1.5 1.5 0 0 1 19.32 18.07V22.07A1.5 1.5 0 0 1 17.82 23.57H12.07A1.5 1.5 0 0 1 11.01 23.13L9.59 21.71A1.5 1.5 0 0 1 9.15 20.65V16.65A1.5 1.5 0 0 1 10.65 15.15ZM22.4 15.15H28.15A1.5 1.5 0 0 1 29.21 15.59L30.63 17.01A1.5 1.5 0 0 1 31.07 18.07V22.07A1.5 1.5 0 0 1 29.57 23.57H23.82A1.5 1.5 0 0 1 22.76 23.13L21.34 21.71A1.5 1.5 0 0 1 20.9 20.65V16.65A1.5 1.5 0 0 1 22.4 15.15ZM34.15 15.15H39.9A1.5 1.5 0 0 1 40.96 15.59L42.38 17.01A1.5 1.5 0 0 1 42.82 18.07V22.07A1.5 1.5 0 0 1 41.32 23.57H35.57A1.5 1.5 0 0 1 34.51 23.13L33.09 21.71A1.5 1.5 0 0 1 32.65 20.65V16.65A1.5 1.5 0 0 1 34.15 15.15Z"/><path fill="#9a7bd6" d="M45.9 15.15H51.65A1.5 1.5 0 0 1 52.71 15.59L54.13 17.01A1.5 1.5 0 0 1 54.57 18.07V22.07A1.5 1.5 0 0 1 53.07 23.57H47.32A1.5 1.5 0 0 1 46.26 23.13L44.84 21.71A1.5 1.5 0 0 1 44.4 20.65V16.65A1.5 1.5 0 0 1 45.9 15.15Z"/><g fill="#ffffff"><rect x="9.15" y="37.15" width="44" height="12" rx="2.5"/><rect x="9.15" y="26.15" width="20.5" height="7" rx="1.5"/><rect x="32.65" y="26.15" width="20.5" height="7" rx="1.5"/><rect x="9.15" y="15.15" width="8.75" height="7" rx="1.5"/><rect x="20.9" y="15.15" width="8.75" height="7" rx="1.5"/><rect x="32.65" y="15.15" width="8.75" height="7" rx="1.5"/><rect x="44.4" y="15.15" width="8.75" height="7" rx="1.5" fill="#c9b2f7"/></g><g fill="#5b3e96"><circle cx="13.15" cy="43.15" r="1.6"/><circle cx="49.15" cy="43.15" r="1.6"/></g><circle cx="43.15" cy="43.15" r="1.6" fill="#c9b2f7"/></svg>Carloku</a>
39 <nav aria-label="Site">
40 <a href="#workflow">How it works</a>
41 <a href="#open">Open source</a>
42 <a href="/get-started/">Get started</a>
43 </nav>
44 <a class="head-cta" href="https://console.carloku.com">Dashboard</a>
45 </div>
46</header>
47<main id="main">
48 <section class="hero">
49 <div class="wrap">
50 <div>
51 <h1>The uncompromising app platform<span class="dot">.</span></h1>
52 <p class="lede">Carloku is an app hosting platform that accepts no tradeoffs.
53 Deploy in seconds. Scale to billions. Simple commands, massive power. Cloud,
54 hybrid, and on-prem: all first-class. Welcome to the new standard. Get ready
55 to ship.</p>
56 <div class="cta">
57 <a class="btn btn-primary" href="/get-started/">Get started</a>
58 <a class="btn btn-quiet" href="https://console.carloku.com">Open the dashboard</a>
59 </div>
60 <p class="hero-note">Open source underneath — hosted here, never locked here.</p>
61 </div>
62 <div>
63 <div class="term">
64 <div class="term-bar" aria-hidden="true"><i></i><i></i><i></i><span>you@laptop — carlos</span></div>
65 <div class="term-body">
66 <span class="line cmd" data-type>carlos deploy -app hello ./hello-linux-arm64</span>
67 <span class="line" data-out>using https://console.carloku.com as you@keymail.dev</span>
68 <span class="line" data-out>deploying https://hello.bdf.oncarlos.com</span>
69 <span class="line ok" data-out>shipped hello 6c88010</span>
70 <span class="line ok" data-out>promoted hello 6c88010 -&gt; edge</span>
71 <span class="line ok" data-out>live <a href="https://hello.bdf.oncarlos.com">https://hello.bdf.oncarlos.com</a></span>
72 <span class="line" aria-hidden="true"><span class="term-caret"></span></span>
73 </div>
74 </div>
75 <p class="hero-note">That session is real, and so is the app — the last
76 URL opens it, and its
77 <a href="https://github.com/carlosframework/hello">source is public</a>.</p>
78 </div>
79 </div>
80 </section>
81 <section id="workflow">
82 <div class="wrap">
83 <h2>The whole workflow</h2>
84 <p class="section-lede">One command — or three small motions. No pipelines to
85 babysit, no containers to wrap your app in — you ship the thing itself.</p>
86 <ol class="steps">
87 <li>
88 <h3><code>carlos deploy</code></h3>
89 <p>One command: it ships your app, promotes it, and waits until the URL
90 serves the new build. When it prints <code>live</code>, it is — seconds,
91 not pipelines.</p>
92 </li>
93 <li>
94 <h3>Want to look first?</h3>
95 <p>Take it in two motions: <code>carlos ship</code> gives you a private
96 link to the real, running thing; <code>carlos promote</code> makes the
97 exact thing you approved the public thing. Nothing is rebuilt behind
98 your back.</p>
99 </li>
100 <li>
101 <h3>Changed your mind?</h3>
102 <p>Point at yesterday's version and promote that instead. Going back is
103 the same small motion as going forward.</p>
104 </li>
105 </ol>
106 </div>
107 </section>
108 <section class="tint">
109 <div class="wrap">
110 <h2>What you stop thinking about</h2>
111 <div class="quiet-grid">
112 <ul class="features">
113 <li>
114 <div class="icon" aria-hidden="true">
115 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>
116 </div>
117 <div>
118 <h3>Certificates</h3>
119 <p>Point your domain at Carloku and the padlock appears. Renewals happen
120 without you.</p>
121 </div>
122 </li>
123 <li>
124 <div class="icon" aria-hidden="true">
125 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="7.5" cy="15.5" r="5.5"/><path d="m21 2-9.6 9.6"/><path d="m15.5 7.5 3 3L22 7l-3-3"/></svg>
126 </div>
127 <div>
128 <h3>Passwords</h3>
129 <p>Sign in with a passkey, on the dashboard and in the terminal. There's
130 nothing to invent, reuse, or leak.</p>
131 </div>
132 </li>
133 <li>
134 <div class="icon" aria-hidden="true">
135 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"/></svg>
136 </div>
137 <div>
138 <h3>Idle servers</h3>
139 <p>Apps doze when nobody's around and wake the instant someone shows up.
140 A quiet app is just quiet.</p>
141 </div>
142 </li>
143 <li>
144 <div class="icon" aria-hidden="true">
145 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="16" x="2" y="4" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/></svg>
146 </div>
147 <div>
148 <h3>Sending email</h3>
149 <p>One command and your app has SMTP credentials, on a domain that
150 signs and aligns. No mail service to sign up for, nothing to run.</p>
151 </div>
152 </li>
153 </ul>
154 <figure class="dash">
155 <div class="dash-frame">
156 <div class="term-bar" aria-hidden="true"><i></i><i></i><i></i><span>console.carloku.com</span></div>
157 <picture>
158 <source srcset="/img/dashboard-dark.png" media="(prefers-color-scheme: dark)">
159 <img src="/img/dashboard-light.png" width="736" height="336" alt="The Carloku dashboard: an account's apps listed with their hosts, running instances, status, and the version each one serves.">
160 </picture>
161 </div>
162 <figcaption>The dashboard, as it really looks — demo data.</figcaption>
163 </figure>
164 </div>
165 </div>
166 </section>
167 <section class="band" id="open">
168 <div class="wrap">
169 <h2>Hosted here, never locked here.</h2>
170 <p>The platform under Carloku is open source: CARLOS. You can read every moving
171 part — or run the whole thing yourself, on your own machines, and your apps
172 wouldn't know the difference.</p>
173 <p>And what you ship is your app as itself — a folder of files, a single binary —
174 not a container wrapped around it.</p>
175 <div class="cta">
176 <a class="btn btn-primary" href="https://carlosframework.com">Read the design</a>
177 <a class="btn btn-quiet" href="https://github.com/carlosframework">CARLOS on GitHub</a>
178 </div>
179 <p class="proof">Proof it works: this site is itself a CARLOS app, shipped and
180 promoted the same way you just read about. <a href="https://github.com/carlosframework/carloku">Here's its source.</a></p>
181 </div>
182 </section>
183 <section class="close-cta">
184 <div class="wrap">
185 <h2>Be live before it feels like work<span class="dot">.</span></h2>
186 <p>One small tool, four steps, and your app is on the internet.</p>
187 <div class="cta">
188 <a class="btn btn-primary" href="/get-started/">Get started</a>
189 <a class="btn btn-quiet" href="https://console.carloku.com">Open the dashboard</a>
190 </div>
191 </div>
192 </section>
193</main>
194<footer>
195 <div class="wrap">
196 <p>🤖 Written by an LLM (Claude), on the ideas, instruction, and editing of humans.
197 AI-written text here is always marked and always disclosed; see
198 <a href="https://11factor.org/#x">factor X</a>.</p>
199 <p>Carloku runs on <a href="https://carlosframework.com">CARLOS</a>: the framework
200 is open, and this site is itself a CARLOS app, shipped with <code>carlos ship</code>.</p>
201 <p>To report abuse on an app Carloku hosts (anything at oncarlos.com), email <a href="mailto:abuse@carloku.com">abuse@carloku.com</a>.</p>
202 <p><a href="https://github.com/carlosframework/carloku">Source for this site on GitHub</a>.</p>
203 </div>
204</footer>
205<script src="/site.js" defer></script>
206</body>
207</html>
208