# One page for all your apps, and the rest of your work

You build more than one app. One is live, one is in TestFlight, one is waiting for review, and one you stopped working on. You also make other things. This note shows how to put all of it on one page, with an honest status on each app.

## What people search for

The searches here are plain: "indie developer portfolio" and "showcase all your apps on one page". On 17 September 2026 the results included Indie Page, a list of indie apps on GitHub, a few app directories, and articles with mobile developer portfolio examples.

## The closest rival: Indie Page

[Indie Page](https://indiepa.ge/) is the closest live product to what this note describes, and it is fair to say what it does well. Its headline is about showing all your startups on a single page. A search snippet says it can show revenue through Stripe or LemonSqueezy, which matters if your apps earn money and you want that on show.

Its pricing, as read on its own page on 17 September 2026:

| Plan | Price | Notes |
|---|---|---|
| Free | "Start for free" | |
| 1-Year Pass | $25 one-time | shown struck from $55 |
| Lifetime Deal | $45 one-time | shown struck from $75 |

Both paid plans say "One-time payment. No subscription". If your page is only about startups and revenue, Indie Page is built for that.

Another product in the results, [App Showcase](https://appshowca.se), targets solo mobile developers and shows downloads and revenue, according to a search snippet. We did not read its pricing.

inkoji takes a different angle. Your apps sit on the same grid as your films, songs, images and notes. It does not show revenue or downloads.

## How app links become app tiles

Press Edit on your page and paste a link. These links become the right kind of tile by themselves:

- an App Store link becomes an app tile,
- a TestFlight link becomes an app tile,
- a GitHub link becomes a repo tile.

Each app or repo tile carries a small pill that says where the work stands:

- building
- TestFlight
- in review
- live
- open source
- frozen

The pill is the honest part. A visitor can see at a glance which apps they can install today and which are still being made. "Frozen" lets you keep a finished or paused project on the page without pretending it is active.

## The example page

Open [inkoji.com/cyberyogi](https://inkoji.com/cyberyogi). It belongs to a filmmaker who also builds apps. On it you will see:

- two app tiles with the pill "building": one for an iPhone and iPad app, one for a Mac app,
- a repo tile with the pill "open source" that points to a GitHub account,
- a video tile for a project built in one hackathon day, which links to its GitHub repo,
- and, around them, a short film, an HDR reel, a matte painting and two embed tiles that run small browser tools.

You can read the same page as data:

```
curl https://inkoji.com/cyberyogi.json
```

In that file an app tile is a `link` tile with `"kind": "app"` and a `pill` such as `"building"`. A repo tile has `"kind": "repo"` and the pill `"open source"`.

## Adding an app with a script or an AI

If you prefer the terminal, make a token on your page (Connect your AI, in the side of the page) and read your page file:

```
curl -H "Authorization: Bearer ink_…" https://inkoji.com/api/page
```

A PATCH to the same address adds a tile. This body adds one app:

```json
{"tiles": [{"type": "link", "url": "https://apps.apple.com/app/id123456789", "title": "Loom", "kind": "app"}]}
```

The App Store id in that example is a placeholder. Use your own app's link.

To check where tiles landed, ask for the map:

```
curl -H "Authorization: Bearer ink_…" "https://inkoji.com/api/page/preview?format=map"
```

It returns the grid as letters, with empty cells as dots and holes counted:

```
cols 4 · 4 tiles · 3 rows · holes 0
   0 1 2 3
0  A A A A
1  B B C D
2  B B . .
```

You can also connect Claude Code directly:

```
claude mcp add --transport http inkoji https://inkoji.com/mcp
```

Then ask it to add your latest TestFlight build and set its pill. Every change an AI makes can be undone from Connect your AI, on your page. The full steps are in [Let Claude keep your page up to date](/notes/connect-claude-to-inkoji), and the idea behind connectors is in [What is an MCP connector?](/notes/what-is-an-mcp-connector).

## Sizes that suit apps

- 1x1 for each app, so several fit in a row.
- 2x1 for the app you most want people to try.
- 2x2 for a video of the app in use, uploaded as a media tile.
- The 4-wide strip for a headline, such as a launch.

A short screen recording often explains an app faster than a paragraph. A media tile plays only while it is on screen, muted and looping, and it reserves its box before loading so the grid does not jump.

## What it costs

Links, notes, YouTube, embeds, one image and up to 50 tiles are free, including publishing. The paid year is $9, one payment, and nothing renews by itself. It adds 50 images, 50 MB of video, audio and PDFs, and 500 tiles. Details are on the [pricing](/pricing) page.

If app icons, screenshots and recordings matter to you, the paid year is the one you want. If you only need links with pills, the free page covers it.

## Leaving is simple

A published page's data is also its own JSON, at `inkoji.com/<handle>.json`. Export in the footer downloads the page as one HTML file. If a service you use closes, you want that. See [When your link-in-bio service shuts down](/notes/when-your-link-in-bio-shuts-down).

## What to do next

1. List every app you have made, including the paused ones.
2. For each, find its App Store, TestFlight or GitHub link.
3. Sign in to inkoji, press Edit and paste the links one by one.
4. Set each pill to the true status: building, TestFlight, in review, live, open source or frozen.
5. Add one tile of other work you are proud of, a film, a song or a drawing, and press Done.
