Skip to content

Welcome to Laika ​

Laika is a unified abstraction for accessing files, API's and other content. It takes care of all the complexities like pagination, batching, concurrency, streaming and discovery. Along with that Laika provides easy to use integrations for common web frameworks and a ton of premade opinionated adapters.

Why Laika ​

Laika is the transport, you provide the domain ​

The reason to use Laika is that you don't want to model your domain around your CMS or storage implementation. The goal of Laika is to get you 90% there. Laika attempts to not hide any details from you, or to be opinionated about how you model your data and data retrieval. You can read more about the architecture of Laika here.

Built for AI ​

Laika is also extremely useful as a homogeneous data access layer in the age of LLMs. Laika provides a built-in MCP server which it feeds with the OpenAPI spec of the JSON:API. Unlike EmDash CMS, it only has one 'request' tool.

What Laika offers ​

Out of the box
40+ official adaptersReal-time updates
Pagination and filteringBatch operations
Streaming listingsChange feeds and sync tokens
Capability discoveryAny file format
Drafts and publishingRevision history
Linked assets and image variantsConflict detection and locks
OAuth2, passkeys and 2FAUpload sanitization
Astro, Vite and Decap integrationsStarters and CLI bootstrapping

GitHubGitHub GitLabGitLab BitbucketBitbucket GitHub CDNGitHub CDN Cloudflare R2Cloudflare R2 S3-compatibleS3-compatible Drizzle ORMDrizzle ORM FilesystemFilesystem Browser File SystemBrowser File System Web StorageWeb Storage WebDAVWebDAV ObsidianObsidian JSON:API proxyJSON:API proxy

Laika's core sits on top of Effect.ts. It provides the primitives that Laika uses, along with some custom primitives like LaikaTask and LaikaStream.

Architecture Overview ​

LayerPackages
APIstorage-api, documents-api, assets-api, catalog-api
Domainstorage, documents, assets, catalog
Implementationstorage-r2, storage-fs, documents-drizzle, assets-r2
Sharedcore, auth, crypto, sanitizer, i18n, json-api

Each layer depends only on the layers below it.

Getting Help ​

  • GitHub Issues — For bugs and feature requests
  • GitHub Discussions — For questions and discussions
  • Contributing — See CONTRIBUTING.md

License ​

Laika is MIT licensed.

Released under the MIT License.