Homespun

Claude Artifacts alternative: Homespun vs Artifacts

Most people looking for one do not need one. A published Claude Artifact exists seconds after you ask, inside the conversation, and anyone can open it with no account at all. Nothing on this page beats that. What an artifact structurally cannot do is tell two people apart, so anything involving names, roles, private rows or files hits a wall that no prompt can move. Homespun is the same agent-built app with sign-in, per-collection permissions, uploads, and a database the agent keeps working on afterwards. If your thing is short lived, solitary or genuinely public, stay where you are.

Last checked against Anthropic's documentation on . Claude changes often. If something here no longer matches the help centre, the help centre is right.

Which of the two you are actually looking for

Searches for an artifacts alternative come from about six places, and four of them have a better answer than switching. Find your row before you read anything else.

What you are trying to doThe better answer
Show someone a chart, a report, an annotated diff, a set of optionsA published artifact. This is the job it was built for and it does it better than a hosted app would
Hand a stranger a calculator, a quiz, an interactive explainerA published artifact. There is no account wall at all, which nothing account-based can match
Keep your own state in a tool only you useA published artifact with personal storage. Private per viewer, nothing to provision
Let a crowd write into one anonymous pool: a tally, a guestbook, a word listA published artifact with shared storage, as long as nobody minds that every row is anonymous
Let a named group put data in and each get their own view backNot an artifact. This is the wall, and it is architectural rather than a missing feature
Store a photo, a PDF, a receipt, a file of any kindNot an artifact. Storage is text only, with no documented way around it

If you landed in one of the first four rows, the honest advice is to close this tab and carry on. There is a whole section below on why, and it is the longest one here. If you landed in the last two, the rest of this page is the comparison you came for.

What a published artifact is, in Anthropic's own words

The whole comparison falls out of one sentence in Anthropic's developer documentation, and it is worth reading before any table.

An artifact is a capture of work, not an application.

Share session output as artifacts, Claude Code documentation

That is a design statement, not an apology, and the documented page constraints follow from it directly.

An artifact is a static page. It can't store data submitted through a form or authenticate viewers itself.

Share session output as artifacts, Claude Code documentation

The CSP blocks scripts, stylesheets, fonts, and images loaded from any other host, along with fetch, XHR, and WebSocket calls.

Share session output as artifacts, Claude Code documentation

One part of that has changed, and it cuts against the simple version of this story, so it belongs here rather than buried:

Connector calls are the exception: the page hands them to claude.ai, which makes the network call itself.

Share session output as artifacts, Claude Code documentation

An artifact can call MCP connectors when someone views it, so a page really can show live data instead of a snapshot from the session that built it. Two properties decide what that is good for.

calls go through the viewing account's connected tools, so two people opening the same dashboard can see different data depending on what their accounts can access

Share session output as artifacts, Claude Code documentation

An artifact that calls connectors can't be shared to a public link on any plan.

Share session output as artifacts, Claude Code documentation

So a connector-backed artifact is an excellent personal dashboard over data the viewer already has access to, and it is still not a shared application: the data belongs to whoever is looking, and the page cannot be public on any plan. Anyone telling you an artifact can never reach outside data is a version behind, and anyone telling you connectors close the gap has not read the second half.

Homespun and Claude Artifacts side by side

Homespun is where the same agent that built the thing can host it. People sign in with their email, so the app can tell who is who and every row remembers who created it; permissions are set per collection, so some people can approve and others can only submit; and the agent keeps read and write access to the collections it is allowed, so it can keep working on the data instead of handing you a page and walking away. It is free today, and there is no paid plan to buy.

The comparison, with the rows where an artifact wins left in.

Published Claude ArtifactHomespun app
Time to a working versionSeconds, inside the conversationOne deploy call the agent makes for you
Deploy stepNone. Publishing is a clickYes, and it is the price of everything below
Where it livesOne self-contained page on claude.aiIts own subdomain, or a domain you own
What a reader needsNothing at allAn emailed link or a Google account, unless the app admits signed-out visitors
Knows who is lookingNoYes, once they sign in
Rows record who created themNo, there is no author on a recordYes
Roles and permissionsNoneSet per collection
Files, images, PDFsNo, text onlyYes
Emails someone when a row changesNoOnly if the app declares a notify rule. None of the built-in templates does
Push notifications to a phoneNoNo
Live data from your other toolsYes, through the viewer's own MCP connectorsNo, the app owns its own data
The agent can keep working on the dataNo, it sees only what you paste backYes, on the collections the manifest allows
Taking it downPermanent, and it deletes the stored dataReversible, and the data stays
PriceIncluded in a Claude plan you already pay forFree today, and there is no paid plan to buy
Who is behind itAnthropicA small independent product with no revenue yet

The last two rows are a pair, and they are not in our favour. Free is only an advantage while the thing running your data is still there, and an artifact is running on infrastructure somebody is paid to keep up.

The limits, with the actual numbers

Adjectives are useless in a comparison table, so these are the documented figures on both sides rather than "generous" and "flexible".

LimitPublished Claude ArtifactHomespun app
Structured data20 MB of storage per artifact100,000 rows per app, across all its collections
One recordNot separately documented64 KB of data per row
Uploaded filesNot supported at all100 MB per app, 5 MB per file, 50 MB for an audio or video file
What a record may containText only: no images, files, or binary dataText, numbers, dates, links to other rows, and attachments
File types acceptedNoneImages, PDFs, audio, video, CSV, JSON, ZIP and Office documents. Not SVG, HTML or JavaScript
Plans that get any storagePro, Max, Team and Enterprise, on web and desktopEvery account
Storage before publishingNone. Writes do not succeed until publishedWorks from the first deploy
PagesOne page, and relative links do not resolveOne page too, plus files deployed alongside it, so relative links do resolve
Query languageNone. Storage is keys and valuesFilters over a collection, no SQL: eight operators, sorting, 1,000 rows a page

Two of those rows deserve more than a cell. The 20 MB figure is far more generous than it sounds for text records and completely useless the moment somebody wants to attach a photo of a receipt, which is the practical shape of that ceiling: it is rarely the size that stops people, it is the type. And the last row is not a win so much as a difference in kind, because filters over a collection are a long way short of SQL. If what you actually want is a real database, the honest answer is an MCP server onto one you already own, which is covered in full on the connecting Claude to a database page.

Identity, which is the whole of the difference

Every other row in every table above is downstream of one thing: an artifact has no way to know who is looking at it, and a hosted app does. It is worth being concrete about what that buys, because "user accounts" sounds like paperwork until you need one of these.

What you needPublished artifactHomespun app
Each person submits their own entryWorks, but the row has no owner. It is a row somebody wroteWorks, and the row records who created it
Each person sees only their own entriesNot possible. Shared storage shows everyone everythingYes
Only one person can approveNot possible. Any visitor can flip any fieldYes, by giving that role write access and the rest read access
Nobody can delete somebody else's rowNot possible. Everyone has the same power over every recordYes
You can tell who did whatNot possible. There is no identity to recordYes
Only invited people can get inNo. The link is the access controlYes, a private app is invite only

The two artifact storage pools are the closest thing available and neither one closes this gap: Personal storage: Each user maintains their own private data, so nobody can see anybody else's, while Shared storage: All users see and interact with the same data, so everybody can see everybody's. What almost every real request needs is the middle, one dataset where the app knows which person is looking, and that middle does not exist. The long version is in whether other people can use your Claude Artifact.

Sharing: who can open it, and what it costs them

This is the axis where an artifact wins outright, and it is worth quoting rather than conceding vaguely.

share a link that anyone on the internet can open, with no claude.ai sign-in required

Share session output as artifacts, Claude Code documentation

View and interact with any published artifact without signing up. Try all basic functionality without a Claude account.

Publish and share artifacts, Claude Help Center
Published artifactHomespun app
Cost of opening itNothing. No account, no sign-in, no emailAn emailed sign-in link, valid fifteen minutes, or a Google account. There is no password
Sending an updatePublish again, the link stays the sameDeploy again, the address stays the same
Works for strangers at scaleYes, this is its best caseOnly if the app admits signed-out visitors, and then it knows them only by browser
Works for a named groupNoYes, this is its best case
Someone can take a copy and change itYes, with a Claude account. The copy is independentYes, if you publish it as a template
Restricted to your organisationOn Team and Enterprise, yes, and public sharing may be offA private app, by invitation

Worth being precise about that third row, because it is the one place the two products nearly meet. A Homespun app set to link or public can let signed-out visitors in, and each one gets a stable identity tied to their browser rather than to an account, which is enough to give a visitor their own rows in a shared collection. It is not enough to know that the person is Priya, and it does not survive a different device. So it narrows the gap for a one-off public form and does not close it for anything that has to recognise a person.

Two things about the last row trip people up in opposite directions. The help centre states the restriction flatly:

Artifacts created on Team or Enterprise accounts can only be shared within your organization

Publish and share artifacts, Claude Help Center

while the developer documentation describes the switch that lifts it:

On Team and Enterprise plans, public sharing is off until an Owner enables it for the organization.

Share session output as artifacts, Claude Code documentation

Both are current. The practical reading is that on a work account you cannot assume you can publish to the open web, and whether you can is your administrator's decision rather than a setting on the artifact. On a personal Pro or Max account it is simply yours. More on the mechanics in how to share a Claude Artifact with other people.

What happens when you want to take it down

This is the axis people do not think about until it is too late to think about it, and it is the sharpest single difference on the page.

Unpublishing also permanently deletes all associated storage data (both personal and shared) if the artifact used persistent storage.

Publish and share artifacts, Claude Help Center

Once you unpublish an artifact, you cannot publish that same artifact again.

Publish and share artifacts, Claude Help Center
Published artifactHomespun app
Taking it offlinePermanent, and it deletes the stored dataReversible, and the data stays
Getting the data out firstOnly if you build an export control and republishRead every row out as JSON at any time. There is no one-click download
Publishing again at the same addressImpossible for that artifact, everNormal. The address is stable
Recovering from a mistakeNo path at allNothing was deleted, so there is nothing to recover
Rolling back to an older versionPick an older version in the share controlNo rollback. You redeploy forward
Warning to the people using itNone. The link simply stops workingYou decide

Two of those rows are ours to own. There is no export button on a Homespun app: getting your data out means reading the collections through the API, the CLI or an agent, which is a complete export but not a packaged one. And there is no rollback, only redeploying forward. What sits in its place is a compatibility check that refuses a redeploy which would strand rows you already have, so the usual reason to want a rollback does not arise, but if you wanted one it is not there.

Read fairly, the artifact behaviour has a real virtue that we do not match: when you unpublish, the data is actually gone, with no forgotten copy on a host you stopped paying attention to. If you are taking something down because it should never have been up, that is exactly the tool you want. It is only the wrong property for the thing fifteen people use every week. The detail, including how to export before you press it, is in what happens when you unpublish a Claude Artifact.

What the agent can do once the thing exists

This is the difference nobody puts in a feature table and it changes what the tool is for. When Claude finishes an artifact, the conversation is where the relationship ends: the page holds data the model cannot see, and the only way to bring any of it back is to paste it.

After it is built and people are using itArtifactHomespun app
The agent can read the data people enteredNo, only what you paste back into the chatYes, on the collections the app's manifest allows it
The agent can write or correct a recordNoYes, where the manifest grants write access
The agent can summarise this week's entries on a scheduleNoYes, from any agent that can reach the relay, including a cron job
It can email the owner when a row is addedNoYes, if the app declares a notify rule. Only verified account addresses, never an arbitrary one
The agent can change the app itselfYes, by republishing itYes, by deploying again
Access is scoped rather than totalNot applicableYes. Access is declared per collection, not granted wholesale

That last row matters more than the ones above it. An agent with unconditional access to everything an app holds is a liability rather than a feature, so what a Homespun agent may read and write is declared in the app's manifest per collection, and a collection that is not named is not reachable. Related reading on the general problem: how to connect Claude to a database, which covers the third option, an MCP server onto a database you already own.

When to keep using Artifacts and ignore this page

This is the section a comparison page normally leaves out, which is why it is the longest one here. There is a large class of things where an artifact is not a compromise you make until you can afford a real app. It is the better product, and moving to a hosted app would make the result worse.

And one advantage that sits above all of those, because it is structural rather than situational: an artifact is the only option in this comparison that can be produced entirely inside a conversation, in seconds, with no deploy step at all. You ask, it exists, you look at it, you ask for a change, it changes. Nothing is provisioned. No second product is involved. No account is created anywhere. That loop is genuinely faster than ours and it will stay faster, because we have a deploy in the middle of ours and they do not.

The rule of thumb that survives all of this: an artifact is superb at a thing to look at or try, and unable to be a thing a group uses together. If what you have is the first, you are already done.

Moving an artifact to a real app, without losing the data

If you have decided to move, the order matters, because the two rules that govern artifact storage work against a careless migration: writes only answer on a published artifact, and unpublishing destroys everything.

Persistent storage is only available for published artifacts. During development and testing, storage operations will not succeed until the artifact is published.

Persistent storage for artifacts, Claude Help Center

What the two halves look like on the other side, so you know what you are rebuilding into:

In the artifactIn a Homespun app
A key in shared storage holding a JSON arrayA collection, with typed fields and filtered queries over them
A key in personal storageThe same collection, with rows scoped to the person who created them
A name field somebody types inThe signed-in person, recorded on the row without asking
An admin flag anyone can setA role, granted per collection
A file you could not storeAn attachment on the row
Pasting data back into the chatThe agent reading the collection directly

The practical step is connecting the agent you already use, which takes a couple of minutes and no install: see how to connect Homespun to your AI chat.

What this page is not claiming

We host apps that agents build, so we have an obvious interest in the moment somebody outgrows an artifact. Here is what that interest would tempt us to leave out.

If any of the Anthropic facts on this page no longer match the help centre, the help centre is right and we would rather fix the page than keep the advantage. Every quote above is linked to the page it came from so you can check it in about a minute.

Questions people ask next

What is the best alternative to Claude Artifacts?

It depends on what stopped working. If you need the page to know who each visitor is, you need a hosted app with sign-in rather than an artifact, because an artifact cannot authenticate anyone. If you only need more room or a file upload, that is the same conclusion. If you need none of that, an artifact is still the best answer and there is nothing to replace.

Should I move my Claude Artifact to a hosted app?

Only if the artifact has become something a group uses together. Short-lived tools, one-person tools and genuinely public tools are better as artifacts, because a published artifact needs no account from anyone and can be produced entirely inside a conversation with no deploy step.

What can a Claude Artifact do that a hosted app cannot?

Two things. It can be created in seconds inside the conversation with nothing to deploy, and it can pull live data through the viewer's own MCP connectors, so two people opening the same page can see different data. A hosted app owns its own data and cannot read yours.

Is Homespun free compared with Claude Artifacts?

Homespun is free today and has no paid plan to buy. Artifact storage is included in the Pro, Max, Team and Enterprise plans, so if you already pay for Claude it costs you nothing extra either. Price is not a real reason to choose between them.

Can I keep my artifact and use a hosted app as well?

Yes, and it is a reasonable setup. Keep artifacts for the charts, calculators and one-off pages they are best at, and move only the thing that several named people fill in every week. Nothing forces the choice to be exclusive.

How do I export data from a Claude Artifact before switching?

Ask Claude to add a control that reads both storage pools and prints the result as JSON, republish the artifact, then open the published link and copy it out. Storage does not answer on an unpublished artifact, so this cannot be done from the preview pane, and unpublishing deletes everything permanently.

Does moving off Claude Artifacts mean I stop using Claude?

No. The agent is still the thing that builds and maintains the app, and on a hosted app it can also read and write the data afterwards, which it cannot do inside an artifact. Moving changes where the app runs, not who builds it.

Primary sources

Every claim about Claude on this page comes from Anthropic's own documentation, quoted rather than summarised so you can check it yourself.