npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

cra-template-bruna

v0.5.0

Published

Meu template personalizado

Readme

CRA Template Bruna

Template create-react-app para agilizar a criação de projetos pessoais e de estudo.

⚙️ Setup

📂 Estrutura de pastas

📌 Components

Nesta pasta estarão os componentes da aplicação que não sejam de navegação. Geralmente são componentes utilizados em mais de uma página, por exemplo: barras de navegação, formulários, etc.

Pelo fato de o projeto estar utilizando styled-componentes, deve-se criar uma pasta com o próprio nome de cada componente, contendo o arquivo(.tsx) e o arquivo de estilo(.ts). Este padrão deve ser adotado para garantir a organização do diretório. Por exemplo:

src/
├─ components/
│  ├─ ProfileCard/
│  │  ├─ ProfileCard.tsx
│  │  ├─ style.ts
│  ├─ NavBar/
│  │  ├─ NavBar.tsx
│  │  ├─ style.ts

🟣 Contexts

Nesta pasta conterá os possíveis contextos que a aplicação poderá conter. Para saber mais sobre, leia a documentação aqui.

↪️ Hooks

Nesta pasta conterá os possíveis hooks customizados que a aplicação poderá conter. Para saber mais sobre como criá-los, leia a documentação aqui.

🟠 Pages

Esta pasta conterá todas as páginas da aplicação. Páginas são os componentes que realizam a navegação da aplicação.

É recomendado criar uma pasta para cada página com o nome do componente da página, contendo o arquivo(.tsx) e o arquivo de estilo(.ts). Isso é necessário para garantir a organização do diretório. Por exemplo:

src/
├─ pages/
│  ├─ Home/
│  │  ├─ Home.tsx
│  │  ├─ style.ts
│  ├─ Login/
│  │  ├─ Login.tsx
│  │  ├─ style.ts

🌍 Routes

Esta pasta conterá os arquivos de rotas da nossa aplicação. Dentro deles terá a biblioteca react-router-dom, responsável pelo roteamento dos componentes de páginas da aplicação. Para saber mais como funciona a biblioteca leia aqui.

💼 Services

Na pasta services temos dois arquivos:

  • api.ts: este arquivo contém a configuração do Axios, com uma instância e definição da url base para as requisições HTTP feitas na aplicação;
  • requests-service.ts: aqui temos uma abstração das nossas requisições, no template temos como exemplo duas requisições do tipo get(), optou-se por extrair o código de requisição para um arquivo externo aos componentes para manter a lógica das requisições em um contexto único, deixando assim a responsabilidade das requisições a cargo do arquivo em questão. Caso hajam muitas requisições pode-se criar um arquivo de services para cada domínio da aplicação, por exemplo, a aplicação possui os domínios de clientes, produtos e pedidos, poderá então ter a seguinte estrutura:
src/
├─ services/
│  ├─ customers-requests-service.ts
│  ├─ products-requests-service.ts
│  ├─ orders-requests-service.ts

Organizando assim as requisições por arquivo de domínio, o que evita de termos um único arquivo muito extenso.

💄 Estilização Global

Para garantir uma estilização global com um reset css, foi criado o arquivo globalStyle.ts ao qual foi importado no index.tsx, fazendo com que toda a aplicação tivesse resetado as suas margins, paddings etc. Qualquer outro estilo que seja global, deve ser adicionado nesse arquivo.

Autor

Bruna Barros 💗