Volver al ranking

BearStudio/start-ui-web

TypeScriptdemo.start-ui.com

🚀 Start UI [web] is an opinionated UI starter from the 🐻 BearStudio Team with ⚙️ Node.js, 🟦 TypeScript, ⚛️ React, 📦 TanStack Start, 💨 Tailwind CSS, 🧩 shadcn/ui, 📋 React Hook Form, 🔌 oRPC, 🛠 Prisma, 🔐 Better Auth, 📚 Storybook, 🧪 Vitest, 🎭 Playwright

reactjstypescripthacktoberfestreactstarterstorybookwebtanstack-querymaildevprismareact-emailreact-hook-form
Crecimiento de estrellas
Estrellas
1.7k
Forks
163
Crecimiento semanal
Issues
17
5001k1.5k
nov 2020sept 2022ago 2024jul 2026
Artefactosnpmnpm install start-ui-web
README

Start UI Web

🚀 Start UI [web] is an opinionated frontend starter repository created & maintained by the BearStudio Team and other contributors. It represents our team's up-to-date stack that we use when creating web apps for our clients.

Technologies

Technologies logos of the starter

⚙️ Node.js, 🟦 TypeScript, ⚛️ React, 📦 TanStack Start, 💨 Tailwind CSS, 🧩 shadcn/ui, 📋 React Hook Form, 🔌 oRPC, 🛠 Prisma, 🔐 Better Auth, 📚 Storybook, 🧪 Vitest, 🎭 Playwright

Documentation

For detailed information on how to use this project, please refer to the documentation. The documentation contains all the necessary information on installation, usage, and some guides.

Requirements

Getting Started

pnpm create start-ui -t web myApp

That will scaffold a new folder with the latest version of 🚀 Start UI [web] 🎉

Setup your IDE

  • VS Code
cp .vscode/settings.example.json .vscode/settings.json
  • Zed
cp .zed/settings.example.json .zed/settings.json

Installation

cp .env.example .env  # Setup your env variables
pnpm install          # Install dependencies
pnpm dk:init          # Start Docker containers (PostgreSQL, MinIO, Maildev)
pnpm db:init          # Push the Prisma schema and seed the database

[!NOTE] Don't want to use docker?

Setup a PostgreSQL database (locally or online) and replace the DATABASE_URL environment variable. Then you can run pnpm db:push to update your database schema and then run pnpm db:seed to seed your database.

Run

pnpm dk:start # Only if your Docker containers are not running
pnpm dev

Emails in development

Maildev to catch emails

In development, the emails will not be sent and will be caught by maildev which runs as a Docker container.

The maildev UI is available at localhost:1080 (port configurable via DOCKER_MAILDEV_UI_PORT in .env).

Preview emails

Emails templates are built with react-email components in the src/emails folder.

You can preview an email template at http://localhost:3000/api/dev/email/{template} where {template} is the name of the template file in the src/emails/templates folder.

Example: Login Code

Email translation preview

Add the language in the preview url like http://localhost:3000/api/dev/email/{template}?language={language} where {language} is the language key (en, fr, ...)

Email props preview

You can add search params to the preview url to pass as props to the template. http://localhost:3000/api/dev/email/{template}/?{propsName}={propsValue}

OpenAPI Documentation for the API

You can access the API documentation via the OpenAPI interface at:

http://localhost:3000/api/openapi/app

This interface allows you to:

  • View complete and up-to-date documentation of all backend endpoints exposed by the API.

  • Understand request and response formats for each route.

  • Facilitate development and debugging by testing endpoints directly from the interface, without needing the frontend.

Generate custom icons components from svg files

Put the custom svg files into the src/components/icons/svg-sources folder and then run the following command:

pnpm gen:icons

If you want to use the same set of custom duotone icons that Start UI is already using, checkout Phosphor

[!WARNING] All svg icons should be svg files prefixed by icon- (example: icon-external-link) with square size and filled with #000 color (will be replaced by currentColor).

E2E Tests

E2E tests are setup with Playwright.

pnpm e2e:setup  # Setup context to be used across test for more efficient execution 
pnpm e2e        # Run tests in headless mode, this is the command executed in CI
pnpm e2e:ui     # Open a UI which allows you to run specific tests and see test execution

[!WARNING] The generated e2e context files contain authentication logic. If you make changes to your local database instance, you should re-run pnpm e2e:setup. It will be run automatically in a CI context.

Production

pnpm install
pnpm storybook:build # Optional: Will expose the Storybook at `/storybook`
pnpm build
pnpm start

Show hint on development environments

Setup the VITE_ENV_NAME env variable with the name of the environment.

VITE_ENV_NAME="staging"
VITE_ENV_EMOJI="🔬"
VITE_ENV_COLOR="teal"

FAQ

git detect a lot of changes inside my .husky folder

You probably have updated your branch with lefthook installed instead of husky. Follow these steps to fix your hooks issue:

  • git config --unset core.hooksPath
  • rm -rf ./.husky
  • pnpm install

From now husky should have been removed; and lefthook should run your hooks correctly.

Repositorios relacionados
pmndrs/zustand

🐻 Bear necessities for state management in React

TypeScriptnpmMIT Licensehooksreact
zustand-demo.pmnd.rs
58.4k2.2k
twentyhq/twenty

The open alternative to Salesforce, designed for AI.

TypeScriptnpmOthercrmcustomer
twenty.com
53.4k8.1k
react-hook-form/react-hook-form

📋 React Hooks for form state management and validation (Web + React Native)

TypeScriptnpmMIT Licensetypescriptreact-hooks
react-hook-form.com
44.8k2.5k
sudheerj/reactjs-interview-questions

List of top 500 ReactJS Interview Questions & Answers....Coding exercise questions are coming soon!!

JavaScriptnpmMIT Licensereactjsreact-router
44.7k10.4k
DavidHDev/react-bits

An open source collection of animated, interactive & fully customizable React components for building memorable websites.

JavaScriptnpmOtheranimationscomponents
reactbits.dev
43.9k2.1k
chakra-ui/chakra-ui

Chakra UI is a component system for building SaaS products with speed ⚡️

TypeScriptnpmMIT Licensechakra-uireact
chakra-ui.com
40.5k3.6k
novuhq/novu

The open-source communication infrastructure for agents and products

TypeScriptnpmOthernotificationscommunication
go.novu.co/github
39.3k4.4k
ToolJet/ToolJet

ToolJet is the open-source foundation of ToolJet AI - the enterprise app generation platform for building internal tools, dashboard, business applications, workflows and AI agents 🚀

JavaScriptnpmGNU Affero General Public License v3.0javascriptinternal-tools
tooljet.com
38.2k5.2k
NervJS/taro

开放式跨端跨框架解决方案,支持使用 React/Vue 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/

TypeScriptnpmOthertaroreact
docs.taro.zone
37.6k4.9k
CopilotKit/CopilotKit

The Frontend Stack for Agents & Generative UI. React, Angular, Mobile, Slack, and more. Makers of the AG-UI Protocol

TypeScriptnpmMIT Licenseaillm
docs.copilotkit.ai
36.2k4.5k
conductor-oss/conductor

Conductor is an event driven agentic workflow engine providing durable and highly resilient execution engine for applications and AI Agents

JavaMavenApache License 2.0distributed-systemsgrpc
docs.conductor-oss.org
32k963
SigNoz/signoz

SigNoz is an open-source, OpenTelemetry-native observability platform for your team and their AI agents. Get logs, metrics, and traces in one tool with features like APM, distributed tracing, log management, infra monitoring, etc. Combined with SigNoz MCP and a native AI teammate (in SigNoz Cloud) it helps you build more resilient apps.

TypeScriptnpmOtherobservabilityapplication-monitoring
signoz.io
31.4k2.4k