# Sneferu > Sneferu is the theme language and SDK for Hekana stores: HTML with hk-* tags and a small template syntax. The CLI checks a theme, previews it with sample data and compiles it into one artifact a store can run safely. Sneferu themes are folders of `.snf` templates, a `theme.json` manifest, locale files and CSS. Hekana compiles the source on its servers; the CLI never uploads compiled output. These docs are English only. ## Get started - [Getting started](https://hekana.dev/guide/getting-started): Install the Sneferu CLI, create a theme with init, preview it with dev, check it with validate and compile it with build. - [Theme structure](https://hekana.dev/guide/theme-structure): Every folder and file in a Sneferu theme: theme.json, layout, templates, sections, blocks, snippets, assets, locales and size limits. - [Format your theme](https://hekana.dev/guide/format-your-theme): Format Sneferu theme files with sneferu format or Prettier and @hekana/prettier-plugin-sneferu: VS Code format on save, --check in CI and every option. - [Editor setup: VS Code](https://hekana.dev/guide/vscode): Set up VS Code for Sneferu themes: install the Sneferu extension for completion, hover docs, live diagnostics, theme checks, formatting and a live preview. - [Build themes with AI agents](https://hekana.dev/guide/ai-agents): Build Sneferu themes with AI coding agents: the AGENTS.md that sneferu init writes, the llms.txt docs, prompts to copy and how to review the result. ## Concepts - [Sections and blocks](https://hekana.dev/guide/sections-and-blocks): Define sections and blocks with : field types, how settings are coerced, template default sections and repeatable blocks. - [Data and expressions](https://hekana.dev/guide/data-and-expressions): What a Sneferu template can read: scope, lookups, product fields, output, expressions, truthiness, filters, loops and translations. - [Security and limits](https://hekana.dev/guide/security-and-limits): Why a Sneferu theme cannot run code: the element and attribute allow-lists, URL rules, escaping, render budgets and include cycles. - [Make everything editable](https://hekana.dev/guide/make-everything-editable): Make every word, link, image and colour of a Sneferu theme editable by the merchant: settings, blocks, locale keys and tokens instead of text in templates. ## Store pages - [Page types](https://hekana.dev/guide/page-types): Style every page of a Hekana store with Sneferu templates: product, collection, search, cart, page and 404, alternates and the objects each one has in scope. - [Header, footer and section groups](https://hekana.dev/guide/section-groups): Build a header, footer and announcement bar as Sneferu section groups: placed in the layout, shared by every page and edited once by the merchant. - [Menus](https://hekana.dev/guide/menus): Print the store's navigation in a Sneferu theme with the menu() lookup and the menu setting: dropdowns, the current page and a fallback. - [Cart and controllers](https://hekana.dev/guide/cart-and-controllers): Add a variant picker, add to cart and a cart drawer to a Sneferu theme with @hekana/sneferu-controllers, with no theme JavaScript, and style the cart page. ## Styling - [Styling and responsive design](https://hekana.dev/guide/styling-and-responsive): Style a Sneferu theme with design tokens, tag props and your own CSS, with tablet and mobile breakpoints and right-to-left support. - [Cookbook](https://hekana.dev/guide/cookbook): Five complete Sneferu store sections, each with a picture of the result: an announcement bar, a hero, a feature row, a product grid and plans. - [Icons and search](https://hekana.dev/guide/icons-and-search): Draw icons with hk-icon from the bundled Lucide set, with no image files, and add a search box that works on Arabic and English pages. - [Images and assets](https://hekana.dev/guide/images-and-assets): Which files in a Sneferu theme's assets folder a live store serves, how to reference them from templates and CSS, and how to keep images light on a phone. ## Publishing - [Get an API key](https://hekana.dev/guide/get-an-api-key): Get a Sneferu developer API key: turn on developer access, get your free dev store, sign in with sneferu login or create a key, and use HEKANA_TOKEN in CI. - [Publishing](https://hekana.dev/guide/publishing): Push a theme version with sneferu push, publish it on your dev store with --dev-store, what the server checks, how review and versions work, and push errors. - [Updating a theme: migrations](https://hekana.dev/guide/theme-migrations): Update a published Sneferu theme without losing merchant settings: migrations/*.json renames and removals, the compiler's checks and applyMigrations for hosts. ## Tutorials - [Tutorial: build a digital products store theme](https://hekana.dev/guide/tutorial-digital-store): Tutorial: build a Sneferu theme for a digital products store, from a design mockup to a live Hekana store, with the Bento example theme. - [Tutorial: build a gaming store theme](https://hekana.dev/guide/tutorial-gaming-store): Tutorial: build a Sneferu theme for a gaming top-up and gift-card store, from a design mockup to a live Hekana store, with the Arcade example theme. ## Reference - [Tag reference](https://hekana.dev/reference/tags): Every built-in hk-* tag and its props: layout, typography, media, buttons, cards and commerce tags such as hk-price and hk-product-grid. - [Sneferu language reference](https://hekana.dev/reference/language): The Sneferu template language: grammar, directives, scope, filters, lookups, allowed elements, limits, file roles and field types. - [Diagnostics reference](https://hekana.dev/reference/diagnostics): Every Sneferu diagnostic code, SN1xxx to SN9xxx, with what triggers it and how to fix it. ## Optional - [Full docs in one file](https://hekana.dev/llms-full.txt): every page above as markdown, in reading order - [Sitemap](https://hekana.dev/sitemap.xml): every page with its last-modified date - [Source and example themes](https://github.com/hekanahq/sneferu): the SDK, these docs and six complete example themes (MIT)