E-Com Plus cloud commerce storefront theme built with Astro and Vue, aimed at construction, tools, and personal protective equipment categories
tema-bitola — Astro Ecommerce Template
By ecomplus
tema-bitola is a B2B store theme for the construction, tools, and personal protective equipment (EPI) categories on the E-Com Plus cloud commerce platform. Built with Astro and Vue under the MIT license, it provides a demo site and a reusable theme structure.
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.
Customizes the starter template with graphite primary and safety yellow accent colors, Pix discount, interest-free installments, and free shipping threshold
Adds the NichoConstrucaoSection.astro category component, displaying technical dimensions and consumer/professional client distinctions
Provides Portuguese extra pages for contact, exchanges, and terms
MIT licensed; the repository is a thin shell with storefront logic in @cloudcommerce/* dependency packages
Template Details
tema-bitola is a themed copy of the ecomplus/store starter template, aimed at the construction, tools, and personal protective equipment (EPI) categories, covering professional clients, industrial clients, and end consumers. Built with Astro and Vue, it is a storefront theme for the E-Com Plus cloud commerce platform (Cloud Commerce). The repository itself is a thin shell; storefront components and store logic reside in @cloudcommerce/* dependency packages.
The theme customizes the starter template: settings.json configures the name, description, domain, logo/icon, graphite primary color with safety yellow accent, 5% Pix discount, 6 interest-free installments, and free shipping over R$249; tailwind.config.js uses a cool graphite neutral scale and near-square rounded corners; layout.json includes a selling-point bar for repeat orders, professional pricing, and shipping, an alphabetically sorted submenu, and a "Linhas" footer list; home.json includes a dual-slide Hero, three showcases, a three-banner grid, and a category section; a new NichoConstrucaoSection.astro component displays technical dimensions (specifications, threads, materials, surface finishes), distinguishes consumers from professional clients, and provides a repeat-order entry with a "productizing" notice; extra-pages provides Portuguese contact, exchange, and terms pages; public/img/uploads uses Unsplash banners and removes starter template images.
The template is positioned as a "proposal" rather than a launched official category: src/config/brands.ts contains no corresponding brand, there is no page under /segmentos/, and the name, logo, and domain are placeholders. The README explicitly lists known limitations: one-click repeat ordering does not yet exist in the template and is only marked in the interface and components; customer-group pricing requires case-by-case design and is not a toggle; technical dimensions are static content, all pointing to /s/catalogo, and will only become real filters after specifications, threads, materials, and surface finishes are registered as product specifications; the second Hero image is a woodworking hand tool, not an industrial fastener; the logo and icon are bitmap placeholders.
For running, the README provides npm i, npm run dev (http://localhost:3000), and npm run build commands. The catalog is remote: without a configured E-Com Plus store (npm run setup), product showcases are empty, but the Hero, banners, and category section still render normally. The demo site tema-bitola.web.app is noindex and uses a shared demo catalog.
Is it right for your project?
Use Cases
- Building a B2B or B2C e-commerce storefront for construction, tools, and personal protective equipment (EPI) categories
- Stores needing to serve professional clients, industrial clients, and end consumers simultaneously
- Projects based on the E-Com Plus cloud commerce platform that want to reuse the theme structure and replace brand placeholders
- Catalog-style stores that need to display technical specification dimensions such as specifications, threads, materials, and surface finishes
Suitable For
- E-commerce operators in the construction, tools, and personal protective equipment industries
- Developers using the E-Com Plus cloud commerce platform who need a B2B storefront
- Teams wanting to build on an MIT-licensed theme for secondary development
- Brazilian market stores needing a Portuguese interface and extra pages (contact, exchanges, terms)
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 (http://localhost:3000), and npm run build to build
- 2
The catalog is remote; run npm run setup to configure an E-Com Plus store, otherwise product showcases are empty
- 3
Replace placeholders before launch: name, domain, logo, colors, and contact details in settings.json
- 4
Replace the logo, icon, and banners in public/img/uploads (current images are from Unsplash; see CREDITOS.md)
- 5
public/robots.txt currently blocks all crawling because the demo site is noindex
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 the code of this version and does not imply that external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full 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; enabling related dynamic features requires your own configuration and checking Firebase quotas and charges.
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; the code's MIT license alone is not sufficient.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
- Using this template requires configuring an E-Com Plus store (run npm run setup); otherwise product showcases are empty, which is an external service dependency.
- One-click repeat ordering does not exist in the template and is only marked in the interface and components as a feature in productization.
- Customer-group pricing is not a toggle; it requires case-by-case design and cannot be used directly.
- Technical dimensions are static content, all pointing to /s/catalogo, and will only become real filters after specifications, threads, materials, and surface finishes are registered as product specifications.
- The second Hero image is a woodworking hand tool, not an industrial fastener, and does not fully match the category positioning.
- The logo and icon are bitmap placeholders and need to be replaced and vectorized before launch.
- robots.txt currently blocks all crawling because the demo site is noindex; this must be changed before launch.
- Current images are from Unsplash; see CREDITOS.md and confirm third-party asset licenses.
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
**Recompra em um clique não existe no template.** Está sinalizado em tela e no componente.
Original README
**Preço por grupo de cliente não é chave que se liga.** A plataforma tem regras de desconto complexas, mas "profissional vê um preço, consumidor vê outro" precisa ser desenhado caso a caso.
Original README
As facetas técnicas são estáticas e todas apontam para `/s/catalogo` — viram filtro real só depois de bitola, rosca, material e acabamento estarem cadastrados como especificação de produto.
Original README
A foto do hero 2 é de **ferramentaria manual de marcenaria**, não de fixação industrial.
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
https://github.com/ecomplus/tema-bitola/blob/main/LICENSEhttps://github.com/ecomplus/tema-bitola/blob/main/README.mdas fotos atuais vêm do Unsplash; créditos em `CREDITOS.md`
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-07
- 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: [email protected] · 2026-10-13
Inspect the recorded source material
SHA-256: 8939ce132a7dea897d2c56b12f1ccbee7dc339cd9b3d507ba76a8ab216636dac
2026-10-13T01:28:56.624Z
Source file / repository# Bitola — loja demo do nicho de construção, ferramentas e industrial
Cópia do starter [`ecomplus/store`](https://github.com/ecomplus/store)
tematizada para **fixação, ferramenta e EPI**, atendendo profissional e
indústria além do consumidor final.
> **Este nicho ainda não existe no site institucional.** Não há marca em
> `src/config/brands.ts` nem página em `/segmentos/`. O posicionamento foi
> **proposto**, não portado. Nome, logo e domínio são placeholders.
## Por que este nicho, se não está no topo do varejo online
Porque é onde a plataforma **ganha por diferença, não por preço**. Catálogo
técnico enorme, comprador que sabe exatamente o que quer, recompra
profissional previsível e preço por grupo de cliente — o oposto da disputa de
marketplace.
Lojas do setor já na base: **Atlas Parafusos** (parafusos e ferramentas
especiais para indústria e construção civil, loja física desde 1999),
**Desicon** ("a loja do profissional", 10+ anos), **Disfoil** (telas e
importação), **Líder Ferrer**, **Comercial Luizinho**.
E há um acesso raro: **Rodrigo e Rocha**, a loja física de material de
construção da qual o Vitor é sócio, é exatamente este perfil de operador — dá
para validar a hipótese sem depender de call de venda.
## O elo com a auditoria de recursos
A [auditoria de recursos do storefront](../planning/produto/planejamento/auditoria-recursos-storefront.md)
lista como **prioridade alta** produtizar o *smart shelves* da Atlas Parafusos
(visto recentemente, retomar busca, retomar carrinho, **repetir último
pedido**) para o `storefront-template`. Hoje está marcado como **PARCIAL**:
roda sob medida em uma loja só.
Esta demo é o argumento comercial desse item — e por isso a seção de nicho
**avisa em tela** que a recompra em um clique é recurso em produtização, não
recurso disponível. Um lojista que veja a demo não pode sair achando que já
está pronto.
## 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` grafite + `secondaryColor` amarelo de segurança, 5% no Pix, 6x sem juros, frete grátis a partir de R$ 249 |
| `functions/ssr/tailwind.config.js` | Escala neutra grafite frio, canto quase reto |
| `functions/ssr/content/layout.json` | Pitch bar (repetir pedido, preço profissional, frete), submenu em ordem alfabética (catálogo grande), rodapé com lista de "Linhas", `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/NichoConstrucaoSection.astro` | **Novo.** Facetas técnicas (bitola, rosca, material, acabamento), consumidor × profissional e chamada de recompra com aviso de produtização |
| `functions/ssr/src/sections/_Sections.astro` | Registro da seção `c:nicho-construcao` |
| `functions/ssr/content/extra-pages/` | Contato, trocas (especificação errada, defeito em EPI, item sob medida) e termos em PT-BR |
| `functions/ssr/public/img/uploads/` | Banners do Unsplash; imagens do starter removidas. Créditos em `CREDITOS.md` |
## Por que grafite e amarelo
É o par que o nicho lê sem explicação — sinalização, EPI, ferramenta elétrica.
O amarelo fica restrito a destaque e preço: como cor de ação principal ele não
tem contraste suficiente com texto branco. A escala neutra é grafite frio de
propósito: aqui o catálogo é enorme e a interface precisa sumir para a
informação aparecer.
## 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
- **Recompra em um clique não existe no template.** Está sinalizado em tela e
no componente. É o item de prioridade alta da auditoria.
- **Preço por grupo de cliente não é chave que se liga.** A plataforma tem
regras de desconto complexas, mas "profissional vê um preço, consumidor vê
outro" precisa ser desenhado caso a caso. Também sinalizado em tela.
- As facetas técnicas são estáticas e todas apontam para `/s/catalogo` — viram
filtro real só depois de bitola, rosca, material e acabamento estarem
cadastrados como especificação de produto.
- A foto do hero 2 é de **ferramentaria manual de marcenaria**, não de fixação
industrial. Funciona como imagem de oficina, mas se a hipótese avançar vale
trocar por foto do próprio catálogo.
- Logo e ícone são wordmarks placeholder rasterizados. Ao fechar a identidade,
vetorizar o texto.
## 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-bitola.web.app](https://tema-bitola.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
