StartupBuilder /SaaS.Dev

Define Nouns and Verbs. The rest is generated.

Nouns are what your SaaS keeps; Verbs, what people and agents do. Leaseclock, below, is 27 lines, and nobody wrote anything else.

Rename or . Every address reprints.

:  does: Move the end date forward  input: { endsOn: { says: the new end date, type: date, required: true } }  from: [active]  fn: { kind: code, body: replace }
  • AppLeases › 4B › Renew
  • APIPOST /leases/4b/renew
  • CLIdo Lease.renew 4b
  • MCPdo Lease.renew
  • SDK$.Lease.renew('4b', { endsOn })
  • Docsleaseclock.com/docs/lease#renew
Define your first Noun

Your first product is free; each after it is $49 a month. You keep your files, your records and your Stripe account. Export in one call

leaseclock.com · 4 files27 lines
Noun/Lease.mdx13

Rename or . Every address reprints.

---$type: Noun$id: leaseclock.com/nouns/Leasename: fields:  unit: { type: link, target: Unit, required: true }  renter: { type: email, required: true }  endsOn: { type: date, required: true, indexed: true }  status: { type: choice, options: [{ key: active }, { key: ended }] }verbs:  :    does: Move the end date forward    input: { endsOn: { says: the new end date, type: date, required: true } }    from: [active]    fn: { kind: code, body: replace }  end: { does: End the lease, from: [active], to: ended }---
Startup/leaseclock.com.mdx5
pitch: No renewal slips past its date.
+4 lines
---$type: Startup$id: leaseclock.comname: Leaseclockdescription: Tracks lease renewals for small property managers.pitch: No renewal slips past its date.icp: small property managersbrand: Leaseclock---
Noun/Unit.mdx4
label: { type: text, required: true }
+3 lines
---$type: Noun$id: leaseclock.com/nouns/Unitname: Unitfields:  label: { type: text, required: true }  building: { type: text }---
Offer/pro.mdx5
name: Leaseclock Pro
+4 lines
---$type: Offer$id: leaseclock.com/offers/proname: Leaseclock Proprice: { amount: 29, currency: USD, unit: month }limits: { Unit: 200 }personas: Property manager, Leasing coordinatorstatus: Live---
curl https://api.sb/leaseclock.com/leases/4b/renew"action": { "verb": "renew", "object": "leases/4b", "status": "Pending" }"input": { "endsOn": "the new end date" }
  • AppLeases › 4B › Renew
  • APIPOST /leases/4b/renew
  • CLIdo Lease.renew 4b
  • MCPdo Lease.renew
  • SDK$.Lease.renew('4b', { endsOn })
  • Siteleaseclock.com/pricing
  • Docsleaseclock.com/docs/lease#renew
  • Blogleaseclock.com/blog
  • StripeLeaseclock Pro · monthly

Define your first Noun.

Step 0 needs no key, and every write has an undo.

  1. curl https://api.sb/startups/create
    This URL exists because Startup declares create.
  2. npx startup-builder login
    Sign in once. Two export lines follow.
  3. curl -X POST https://api.sb/startups/create \  -H "authorization: Bearer $SB_TOKEN" \  -H 'Prefer: mode=try' \  -d '{"domain":"<your-domain>"}'
    Create your Startup: check it in try, then commit.
  4. curl -X POST https://api.sb/<your-domain>/nouns \  -H "authorization: Bearer $SB_TOKEN" \  -H 'Prefer: mode=try' \  -F file=@Noun/Unit.mdx -F file=@Noun/Lease.mdx
    Send the files you wrote: try, then commit.
  5. curl https://<your-domain>/llms.txt
    Your Site, Docs and llms.txt, on your own domain.
Read the whole definition

Unit 96 · Lease 120216 screens, never drawn

leaseclock.com/theme.json
{  "fonts": ["Libre Caslon Text:wght@700"],  "light": { "accent": "#8A4B0F" }}

Batteries included.

Every output has a default. Override any style or component, and you maintain only what you override.

  1. ThemeThe token values
  2. CSSYour rules
  3. A field’s inputThat one input
  4. A Noun’s viewThat view’s layout
  5. A page or screenThat page’s or screen’s layout
  6. A Function bodyWhat the Verb does
6 overridesEvery override

Get paid with Stripe.

Write the price once. You never create a Stripe Product or Price.

From the Offer to your account
Leaseclock Pro
  • /pricingup to 200 units
  • Checkoutsigned webhook
  • Subscription
  • Billing portal

$27.86per subscriber, after Stripe's standard card rate (2.9% + 30¢)

Your Customers pay you $29 a month for Leaseclock Pro, through your own Stripe account.

Unitlabel · building20
Leaseunit · renter · endsOn · status4renew · end2
<your Noun>
api.sb's own, in the same shape44 Nouns · 190 Verbs

The constraints are the feature.

Every Noun takes one shape, SaaS.Dev's own included. That is why your agent gets yours right, and you can check all 27 lines yourself.

Read https://saas.dev/llms.txt. Write the Nouns, Verbs and Offer for <your product> in Leaseclock's shape. Check each file with Prefer: mode=try, fix every refusal, and show me the files before you commit.