Cloud Commerce theme built with Astro and Vue; the repository is a thin shell, with storefront logic in @cloudcommerce/* dependency packages
tema-focinho — Astro Ecommerce Template
By ecomplus
A Cloud Commerce pet store theme from E-Com Plus, built with Astro and Vue, customized for subscription replenishment of dog and cat supplies, heavy-item shipping, and veterinary prescription scenarios.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Adds the NichoPetSection.astro pet block, offering filtering by animal profile, a packaging usage duration table, and a subscription entry point
settings.json presets a blue-orange color scheme, a 5% Pix discount, 3 interest-free installments, and free shipping over R$149
Homepage includes a two-screen hero, three product showcases, and a three-cell banner; extra-pages/ provides Portuguese contact, returns, and terms pages
The demo site is noindex, robots.txt blocks all crawling, and the brand name, logo, and domain are placeholders
Template Details
tema-focinho is a Cloud Commerce theme under the official E-Com Plus organization, built with Astro and Vue and aimed at dog and cat pet supply retail. It was copied and themed from the generic starter ecomplus/store; the repository itself is a thin shell: storefront components and shop logic live in @cloudcommerce/* dependency packages, and this repository keeps only the theme-specific parts such as functions/ssr/src/, functions/ssr/content/, and functions/ssr/public/.
The theme's customization centers on pet replenishment scenarios. The homepage includes a two-screen hero, three product showcases, a three-cell banner, and an added NichoPetSection.astro block that provides filtering by animal profile, a packaging usage duration table, heavy-item shipping/prescription/food transition tips, and a subscription entry point. settings.json configures a blue-orange color scheme, a 5% Pix discount, 3 interest-free installments, and free shipping over R$149; tailwind.config.js uses a blue-gray neutral scale and larger border radii; extra-pages/ provides Portuguese-language contact, returns, and terms pages.
The README explicitly states that this theme is a market hypothesis rather than validated by existing customers: among nine niche themes, only the pet one has no real customer case, and the brand name, logo, and domain are placeholders. Known limitations include: the packaging usage duration table is a static mockup that performs no calculations and does not read product labels; the veterinary prescription flow is copy only, with no upload or validation; routes such as /s/cao-filhote and /assine only respond once the corresponding categories exist in the catalog; robots.txt currently blocks all crawling because the demo site is noindex.
The catalog is remote data; without a configured E-Com Plus store, product showcases are empty, while the hero, banner, and pet block still render normally. The repository uses the MIT license, so this version's code may be used, modified, commercially used, and distributed for free, but demo images come from third-party sources such as Unsplash and require separate license verification, and external services such as Firebase may incur costs.
Is it right for your project?
Use Cases
- Building a Brazilian Portuguese pet e-commerce storefront for dog and cat supplies
- Designing product display and homepage structure around subscription-based replenishment
- Pet retail scenarios that need to present heavy-item shipping, veterinary prescriptions, and food transition tips
- As a starting point for secondary development of an E-Com Plus Cloud Commerce theme
Suitable For
- Developers using the E-Com Plus / Cloud Commerce platform who need a pet niche theme
- Pet supply merchants who want subscription-based replenishment as a main selling point
- Front-end teams that need a Portuguese pet store front-end template and want to customize it
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Run npm i to install dependencies, npm run dev to start local development (default http://localhost:3000), and npm run build to build
- 2
The catalog is remote data; configure an E-Com Plus store via npm run setup, otherwise product showcases will be empty
- 3
Before launch, replace the name, domain, logo, and colors in settings.json, as well as placeholder images in public/img/uploads/ and the content of extra-pages/ pages
- 4
robots.txt currently blocks all crawling; adjust as needed before an official release
- 5
When updating the platform version, bump @cloudcommerce/* dependency versions together and run npm run build to verify, rather than merging with the starter
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version in the public repository under the MIT license; the free scope is this version's code and does not mean external services or third-party assets are free.
Must comply with when using
- This version's code may be used, modified, commercially used, and distributed for free.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- The README mentions Firebase integration; before enabling related dynamic features, configure it yourself and check Firebase quotas and charges.
- Demo images, fonts, icons, and other third-party assets must be checked under their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur separate charges.
- The product catalog is remote data; an E-Com Plus store must be configured (npm run setup) to display product showcases, otherwise the showcases are empty.
- Routes such as /s/cao-filhote and /assine only respond once the corresponding categories exist in the catalog; otherwise they are unavailable.
- The packaging usage duration table is a static mockup; it performs no calculations and does not read product label data.
- The veterinary prescription flow is copy only, with no file upload or validation functionality.
- The logo and icons are placeholder bitmap wordmarks and must be replaced before launch.
- robots.txt currently blocks all crawling because the demo site is noindex; adjust before an official release.
- Banner images come from Unsplash and require separate verification of third-party asset licenses according to CREDITOS.md.
- storeId and a Firebase project must be configured (npm run setup); involving external services may incur costs.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
O catálogo é remoto: sem uma loja E-Com Plus configurada (`npm run setup`), as vitrines de produto vêm vazias
Original README
As rotas (`/s/cao-filhote`, `/assine`…) só respondem depois que o catálogo tiver as categorias correspondentes.
Original README
**A tabela de duração é maquete estática.** Não calcula nada e não vem do rótulo do produto.
Original README
**O fluxo de receita veterinária é copy.** Não há upload nem validação de documento.
Original README
Logo e ícone são wordmarks placeholder rasterizados.
Original README
`functions/ssr/public/robots.txt` — hoje bloqueia tudo, porque a demo é `noindex`
Original README
Banners do Unsplash; imagens do starter removidas. Créditos em `CREDITOS.md`
Original README
https://github.com/ecomplus/tema-focinho/blob/main/LICENSEhttps://github.com/ecomplus/tema-focinho/blob/main/README.md`functions/*/config.json` — `storeId` e projeto Firebase (`npm run setup`)
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-13. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 85 / 100
- Technologies
- Astro · Vue
- Website type
- E-commerce
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-08-03
- Screenshot last checked
- 2026-10-13
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Astro as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: codex-user-requested-batch-review-20261015 · 2026-10-15
Inspect the recorded source material
SHA-256: 89d197a495138f0ca013c7bb8c7fcfee59bc71f58afce082f791541db7746daf
2026-10-13T01:27:22.415Z
Source file / repository# Focinho — loja demo do nicho pet Cópia do starter [`ecomplus/store`](https://github.com/ecomplus/store) tematizada para **cães e gatos**. Pet é a categoria de maior crescimento do e-commerce brasileiro (~38%) e casa quase perfeitamente com recursos que a plataforma já tem: assinatura, multi CD e fidelidade. ## ⚠️ Esta é a única das nove sem prova interna Todas as outras variantes ancoram em cliente real da base: | Nicho | Prova na base | |---|---| | Alimentício | Tia Sônia, BarraDoce, Festpan | | Beleza | Help Perfumaria, Vênus Nails | | Moda | Don't Quest, Lado Fit, Lua Cheia | | Casa | Conexão Home, Conexão Office, Para la Casa | | Construção | Atlas Parafusos, Desicon, Disfoil | | Eletrônicos | Aolar, Eletrogel, Quality Áudio | | Suplementos | Suplementos RP, Grãos da Vida | | **Pet** | **nenhuma** | **Isso é aposta de mercado, não de prova.** Em call de venda não há case do nicho para mostrar — o argumento tem que se apoiar em recurso (assinatura, multi CD) e em cases de outros nichos com dor parecida. Vale saber disso antes de levar a demo para um prospect. > Este nicho também não existe no site institucional: não há marca em > `src/config/brands.ts` nem página em `/segmentos/`. Nome, logo e domínio são > placeholders. ## O eixo: assinatura de ração Ração é o **caso canônico de reposição programada** — consumo previsível (peso do animal × gramas/dia), embalagem grande, recompra mensal. O bloco de "quanto tempo dura o saco" é o que transforma assinatura de desconto em utilidade: a pergunta do tutor não é quanto custa, é quando acaba. Em volta disso, três dores que só existem aqui: 1. **Item pesado** — saco de 15 kg não é frete comum; é caso de multi CD. 2. **Prescrição veterinária** — dieta terapêutica e medicamento exigem receita, e a loja não pode fingir que não. Mesmo tratamento dado ao produto controlado na variante de clubes de tiro. 3. **Transição de ração** — mudança brusca faz mal ao animal, então o pedido sugere proporção de mistura em vez de só entregar o saco novo. ## O que foi customizado em relação ao starter | Arquivo | O que mudou | |---|---| | `functions/ssr/content/settings.json` | Nome, descrição, domínio, logo/ícone, `primaryColor` azul + `secondaryColor` laranja, 5% no Pix, 3x sem juros, frete grátis a partir de R$ 149 | | `functions/ssr/tailwind.config.js` | Escala neutra azul-acinzentada, canto bem arredondado | | `functions/ssr/content/layout.json` | Pitch bar (assinatura, frete, Pix), listas do rodapé, `ogImage` | | `functions/ssr/content/pages/home.json` | Hero de 2 slides, 3 vitrines, grade de 3 banners e a seção de nicho | | `functions/ssr/src/sections/NichoPetSection.astro` | **Novo.** Filtro por perfil do animal, tabela de duração da embalagem, cuidados (frete pesado, receita, transição) e chamada de assinatura | | `functions/ssr/src/sections/_Sections.astro` | Registro da seção `c:nicho-pet` | | `functions/ssr/content/extra-pages/` | Contato, trocas (saco violado, pet não aceitou, medicamento) e termos em PT-BR | | `functions/ssr/public/img/uploads/` | Banners do Unsplash; imagens do starter removidas. Créditos em `CREDITOS.md` | ## Por que azul e laranja É o par que o varejo pet brasileiro já usa — reconhecível de longe, não exige explicação. É deliberadamente a variante mais alegre das nove: aqui a compra é afetiva, não técnica. ## Por que a seção de nicho é um componente, e não HTML no CMS O UnoCSS/Tailwind desta stack varre apenas `./src/**` — classe utilitária escrita dentro de `content/pages/*.json` (seção `custom-html`) não gera CSS. Por isso a vitrine do nicho é um `.astro` em `src/sections/`, registrado pela convenção `c:` que o `_Sections.astro` já previa. ## Rodando ```bash npm i npm run dev # http://localhost:3000 npm run build ``` O catálogo é remoto: sem uma loja E-Com Plus configurada (`npm run setup`), as vitrines de produto vêm vazias — o hero, os banners e a seção de nicho renderizam normalmente. ## Pendências conhecidas - **A tabela de duração é maquete estática.** Não calcula nada e não vem do rótulo do produto. A conta real varia por marca, fórmula e animal. - **O fluxo de receita veterinária é copy.** Não há upload nem validação de documento. Se a hipótese avançar, é o primeiro item a especificar. - Logo e ícone são wordmarks placeholder rasterizados. - As rotas (`/s/cao-filhote`, `/assine`…) só respondem depois que o catálogo tiver as categorias correspondentes. ## Como atualizar a base da plataforma Este repositório é uma **casca fina**. O storefront, os componentes e a lógica de loja moram nos pacotes `@cloudcommerce/*`, não aqui. Atualizar o tema para uma versão nova da plataforma **não** é fazer merge com o starter [`ecomplus/store`](https://github.com/ecomplus/store) — é subir a versão das dependências, exatamente como as lojas em produção fazem: a [tiasonia](https://www.tiasonia.com.br) tem mais de 260 commits `Update to v` no próprio repositório e nenhum merge com o starter. Todos os pacotes `@cloudcommerce/*` andam na mesma versão, na raiz e em cada grupo de functions (`ssr`, `many`, `with-apps`): ```bash # 1. ver a versão mais recente e o changelog npm view @cloudcommerce/cli version # https://github.com/ecomplus/cloud-commerce/releases V=2.61.4 # troque pela versão alvo # 2. raiz npm i -D @cloudcommerce/cli@$V @cloudcommerce/eslint@$V # 3. cada grupo de functions (cd functions/ssr && npm i \ @cloudcommerce/api@$V @cloudcommerce/firebase@$V @cloudcommerce/ssr@$V \ @cloudcommerce/i18n@$V @cloudcommerce/storefront@$V @cloudcommerce/types@$V) (cd functions/many && npm i \ @cloudcommerce/feeds@$V @cloudcommerce/firebase@$V @cloudcommerce/passport@$V) (cd functions/with-apps && npm i \ @cloudcommerce/events@$V @cloudcommerce/firebase@$V @cloudcommerce/modules@$V) # 4. validar antes de commitar npm run build # 5. commitar no padrão das lojas em produção git commit -am "Update to v$V" ``` Se o build quebrar depois de atualizar, a correção pertence ao [`cloud-commerce`](https://github.com/ecomplus/cloud-commerce), não a este repositório. Aqui só entra o que é **do tema**: `functions/ssr/src/`, `functions/ssr/content/` e `functions/ssr/public/`. ## Este repositório é um template Use **"Use this template"** no GitHub para começar uma loja a partir deste tema. O repositório gerado é independente: não existe upstream para puxar, e a manutenção segue o fluxo de versão acima. Antes de ir ao ar, troque o que é placeholder: - `functions/ssr/content/settings.json` — nome, domínio, logo, cores, contato - `functions/ssr/public/img/uploads/` — logo, ícone e banners (as fotos atuais vêm do Unsplash; créditos em `CREDITOS.md`) - `functions/ssr/content/extra-pages/` — contato, trocas e termos - `functions/ssr/public/robots.txt` — hoje bloqueia tudo, porque a demo é `noindex` - `functions/*/config.json` — `storeId` e projeto Firebase (`npm run setup`) > **Demo publicada:** [tema-focinho.web.app](https://tema-focinho.web.app) — `noindex`, com > catálogo compartilhado de demonstração. --- Documentação do starter: [SETUP.pt-BR.md](./SETUP.pt-BR.md) · [Cloud Commerce](https://github.com/ecomplus/cloud-commerce)
Explore similar templates
Compare previews and descriptions within the same stack and category.

astro-shopify
A lightweight Shopify headless ecommerce starter template built with Astro and Svelte, integrating the Shopify Storefront API for product and inventory data, with built-in cart state management and basic add-to-cart and checkout flow.
Astro · E-commerce

astro-ecommerce
Astro Ecommerce is a Creative Tim e-commerce Astro starter template under the MIT license, with 70+ coded elements, 30+ blocks, and landing, product, and shopping cart example pages.
Astro · E-commerce

astro-medusa-starter
An open-source e-commerce storefront starter built on Astro and Medusa v2, using a static-first architecture with React islands, multi-region routing, Stripe checkout, and Cloudflare Workers deployment.
Astro · E-commerce

sanity-astro-club
An Astro template for showcasing and selling digital works, with content managed through an extensible Sanity Studio and checkout sessions generated via the Polar API.
Astro · E-commerce

atelier-ko
Atelier Kō is a minimalist Astro ecommerce theme for small furniture workshops and craft catalogs with a limited body of work.
Astro · E-commerce

starter-astro
An Astro e-commerce storefront starter template that separates content from transactions: Markdown content collections manage pages, copy, and product images, generating static HTML at build time, while WireGum components handle live pricing, variants, cart, and Stripe Checkout.
Astro · E-commerce
