# Make a little link relay of your own Shortfolk has two separate parts: a public page and private native redirects managed through the owner's Spacefast connection. The page explains the project and invites people to make their own. It has no dashboard, anonymous creation form or application API key. Another AI can build the same pattern with the supplied source and the new owner's connection. ## What is in the starter - `pages/index.tsx` and `pages/learn.tsx`: browser-rendered public pages and hosting banner. - `client/learn-content.tsx` and `client/agent-tools.ts`: the illustrated learning page and optional read-only browser tools. - `client/index.tsx`: the native page layout. - `server/index.ts`: the capsule declaration; no custom link API or database is needed. - `shared/identity.ts` and `shared/styles.ts`: editable identity and lunar styling. - `assets/`: optimized illustrations and the official proportional Spacefast wordmark. - `sf.jsonc`: native runtime, initial metadata and short-route header conventions. - `scripts/configure.mjs`: local identity and discovery customization. - `scripts/redirect-plan.mjs`: pure validation/planning for optional `/r/` link management. The starter carries no original Space binding, domain, redirect records, analytics, credentials, private approvals or visitor storage. Native links are added only to the new owner's Space settings. The starter social image is an unlettered colony illustration. Replace it with your own identity’s preview before release if you change the design. The supplied public artwork can be replaced to create a distinct identity; do not present yourself as htmlfolk. ## Start locally Copy the starter into a new directory. Install the pinned dependencies with `npm ci`, then run `npx tsc --noEmit` and `node --test scripts/redirect-plan.test.mjs`. The original build used Zero/CLI0.4.1. Use the supported native compiler for the installed version; do not silently convert it to a generic SPA. The current starter includes this illustrated learning page and optional browser tools. Its hero lettering is baked into the supplied images. Changing a name in code does not reletter an image: regenerate desktop and phone heroes with the new identity before releasing a remix, then set `art` and `mobileArt` to those assets. The source remains editable; original owner bindings and link records are excluded. Downloads referenced inside a cloned learning page must be regenerated from the clone’s own clean source before publication. Edit `shared/identity.ts`, or use the customization script with a local JSON file: ```json { "name": "My Link Relay", "byline": "a little thing by me", "wordmark": "", "articleUrl": "", "bannerStorageKey": "my-link-relay:spacefast-banner-dismissed:v1", "bannerCopy": "A little place to make your own, hosted on Spacefast." } ``` Run `node scripts/configure.mjs my-remix.json`. After an actual production origin is selected, add its HTTPS `origin` to the JSON and rerun to generate canonical metadata, robots, sitemap and llms.txt. The script changes local files only; it does not sign in, buy a domain or publish. Use `sf dev --port 4196 --state-backend sqlite --no-watch` and its private local capability URL for native preview. Zero0.4.1 local preview can omit author-static assets; the starter's loopback-only `scripts/dev-assets.mjs` serves those assets at4197 while forwarding native page/runtime requests to4196. Treat this as a development adapter, not production hosting. Never share the private capability fragment. ## Publish your own Space Connect Spacefast using the agent's available integration or supported CLI sign-in. Resolve the user's own team and intended destination; do not use the original Shortfolk. Follow the current provider approval/work-mode rules. Publish the new source directory through the supported native workflow. Inspect the file inventory first: no node_modules, local capabilities, private docs, environment files or visitor records should ship. Request public access only when the user wants a public site, using a viewer grant for the intended live routes. Production and preview grants are separate. Verify exact version activation and anonymous public rendering, not just build success. If the user owns a custom domain, retrieve the exact required DNS records from Spacefast. Preserve email/unrelated DNS and verify routing, certificates and representative content before calling it live. Domain acquisition is separate from deployment. ## Check the result Inspect wide desktop, intermediate width,390px,320px and landscape. Check artwork, labels, text contrast, CTA alignment, horizontal overflow, image loading and keyboard focus. The bottom banner must be compact, dismissible and leave enough room for content. Dismissal must remove reserved space immediately and persist without changing other visitor storage. Test visible/dismissed/reloaded states. Check anonymous initial HTML for title, description, canonical and social assets. Browser-rendered mode has a runtime root in initial HTML: visible content appears after rendering. Document that crawler limitation honestly rather than changing mode without the user's request. Verify robots/sitemap, avoid indexing private links, and do not promise indexing or rankings. ## Teach the next AI Read [AI discovery and artwork guidance](/skills/build-shortfolk/references/discovery.txt) for crawlability, factual link maps, optional read-only browser tools, and baked hero lettering with semantic equivalents. Share the site URL and let the visitor talk with their own AI. Do not require copying a prompt. Publish an origin-relative agent.json resource map and optional read-only WebMCP tools for project information, recipe, skill and clean source. Feature-detect document.modelContext; fetch guides only when invoked and clean up your own registrations. Unsupported browsers retain readable links. These tools teach independent builds; they never grant access to the original owner’s links or analytics. Publish a clean Markdown recipe, web-readable skill instructions and a ZIP containing the whole skill directory. On this native deployment, public .md URLs returned404 despite inclusion in the archive; .txt files served correctly. The working site uses /build.txt and /skills/build-shortfolk/instructions.txt for Markdown content. Keep the standard SKILL.md filename inside the downloadable skill. Verify every published URL rather than assuming archive inclusion means it is publicly served. Point to them from a visible learning link and llms.txt. Add initial HTML `rel="describedby"` for llms.txt and `rel="alternate" type="text/markdown"` for the recipe. These are discovery hints, not universal auto-install instructions. A visiting agent can read the recipe directly or install the package through its own supported skill workflow. In the observed CLI0.4.1 production publish, stored redirect settings were reset despite the CLI’s settings-merge preparation. Preserve and verify existing links after every release; for explicitly public, authored links, include their rules in the serving sf.jsonc. Keep those records out of the downloaded template. For other private owner records, use the provider’s supported preservation/apply workflow and verify it before replacing live traffic. When releasing your remix, regenerate teaching downloads from your clean source and adapt the recipe. Do not copy private owner management settings into public packages. ## Primary references - [Native Zero](https://spacefast.com/docs/zero/) - [Routing](https://spacefast.com/docs/routing/) - [CLI](https://spacefast.com/docs/cli/) - [Agent Skills format](https://agentskills.io/specification) - [llms.txt discovery proposal](https://llmstxt.org/)