Who makes these apps?
Anyone can publish an app here. Browse what’s listed and add what you like to your library.

Anyone can publish an app here. Browse what’s listed and add what you like to your library.
Not to start. Sign in to sync across devices and play with friends. The same account works in every app.
Yes. Your data syncs across devices.
Add Tinylib to your home screen to use it like an app.
Apps work offline and sync when you reconnect.
Tunnels are where I catch up on sleep.
No. Apps get your display name and nothing else, and can’t send your data anywhere.
Use a private app. It encrypts your data with your passkey before it leaves your device, and we can’t read it.
Your recovery code restores access if you lose every device.
No. Apps run in a sandbox with no camera, microphone, location or network access.
Yes. Changes show up for everyone live, for up to 6 people.
You get notified about invites and when it’s your turn.
Only if you allow it. Tinylib asks before an app shares anything with friends or the public, and you can change it on the app’s page.
Turn them off on the app’s page. You can report the app there too.
Yes, using apps is free.
Yes. Write a web page, publish it with one command and share the link.
Small web apps and games. Listed apps show up for everyone browsing Tinylib.
A web page, with any framework or none. Multiplayer games add a server.js with the rules.
host is the whole API. host.data saves per-user data, syncs it across devices and works offline.
host.friends and host.public share data with friends or everyone. host.createRoom starts a live multiplayer room.
// index.html: a win counts on every device
const wins = (await host.data.get('wins')) ?? 0
await host.data.set('wins', wins + 1)No. Tinylib handles accounts, friends, storage, sync, multiplayer and notifications. There’s no database, auth or API key to manage.
Put the rules in server.js. Its view decides what each player receives, and the rest of the state stays on the server.
// server.js
view: (state, { player }) => ({
hand: state.hands[player.id],
top: state.pile.at(-1),
}),Run the dev server with npx tinylib-sdk dev. Each tab can sign in as a different test user, and it rebuilds on every change.
$ npx tinylib-sdk dev http://localhost:4141 Each change builds.
Run npx tinylib-sdk publish. It deploys the app and prints the link.
$ npx tinylib-sdk publish Publishing to https://tinylib.app as @maya ... done Published Eights as version 1. https://tinylib.app/app/eights It is reachable by its link only. List it in the console when it is ready.
Once you list it in the console. Anyone browsing Tinylib can then add it and upvote it.
Publishing is free for up to 3 apps, and unlimited apps cost $5 a month or $50 a year.
Yes. Give it llms.txt, the full docs in one file, and the starter app from init.
Tinylib is built for small apps. Apps get no network access, payments, public matchmaking or fast real-time play.