Skip to content

Creating the project

Tutorial 1 of 12 creates Leaseline from the Solo SaaS template and reads the three lines of startup.ts that define it.

A Startup project starts as one command and one file. Everything the file does not say comes from its Startup Template.

What you build

You create leaseline.app in test from the Solo SaaS template, then read what it already holds: a Site, an Offer, Roles and processes. No card is charged and no message leaves while the Startup is in test.

Steps

Terminal5 steps
  1. To create the Startup, run create startups with a template:

    npm create startups leaseline.app -- --template solo-saas --yes
    Created Leaseline in testStartup      startup_l3hr1EnUGYState        IdeaTemplate     Solo SaaSOffer        offer_2hzYe1ERo0, Pro at $29 a month, draftClaim token  ct_7Hq2xVNext: cat leaseline/startup.ts

    Keep the claim token: tutorial 12 claims the Startup with it.

  2. To read the Startup as code, open its root file:

    startup.ts
    import { Startup } from 'startup-builder'
    
    export default Startup({
      name: 'Leaseline',
      domain: 'leaseline.app',
      extends: 'solo-saas',
    })

    The file is parsed, never run. startup.ts lists every key it takes.

  3. To state the bet, add the idea and the five slots of the Founding Hypothesis:

    startup.ts
    import { Startup } from 'startup-builder'
    
    export default Startup({
      name: 'Leaseline',
      domain: 'leaseline.app',
      extends: 'solo-saas',
      idea: 'Lease renewal tracking for property managers with 20 to 500 units.',
      hypothesis: {
        customer: 'Property managers with 20 to 500 units',
        problem: 'Lease renewals that slip past their date',
        approach: 'A SaaS that tracks every lease and sends each renewal notice at 60 days',
        switch: 'The renewal spreadsheet and calendar reminders',
        differentiation: 'Every renewal answered before its date, unit by unit',
      },
    })
  4. To start the dev server, which previews each save as a Change, run:

    npx startup-builder dev
  5. To see everything the Startup holds, its own and inherited, print its root:

    npx startup-builder show /

Result

Leaseline exists in test with a Site, a draft pro Offer, the Roles and Processes of Solo SaaS, and a hypothesis in five slots. The project holds one file of its own. Checkpoint leaseline@ch01 (status planned) holds startup.ts.

Next steps