{"id":26221051,"url":"https://github.com/jadrizk/turborepo-launchpad","last_synced_at":"2025-04-16T18:52:32.929Z","repository":{"id":231711323,"uuid":"720595165","full_name":"JadRizk/turborepo-launchpad","owner":"JadRizk","description":"🚀 Turbo-charge your web projects with this sleek Turborepo template, featuring Next.js, Supabase,  TailwindCSS, and shadcn for a streamlined development experience!","archived":false,"fork":false,"pushed_at":"2025-02-23T20:58:20.000Z","size":2131,"stargazers_count":43,"open_issues_count":2,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-29T05:34:32.126Z","etag":null,"topics":["nextjs14","shadcn","supabase","tailwindcss","turborepo","typescript"],"latest_commit_sha":null,"homepage":"https://miniature-launchpad-app.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JadRizk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-19T00:42:37.000Z","updated_at":"2025-03-23T21:24:49.000Z","dependencies_parsed_at":"2024-05-13T22:50:08.033Z","dependency_job_id":"c999aa6e-dccf-40c4-aba7-905638c84ee5","html_url":"https://github.com/JadRizk/turborepo-launchpad","commit_stats":null,"previous_names":["jadrizk/miniature-launchpad","jadrizk/turborepo-launchpad"],"tags_count":6,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JadRizk%2Fturborepo-launchpad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JadRizk%2Fturborepo-launchpad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JadRizk%2Fturborepo-launchpad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JadRizk%2Fturborepo-launchpad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JadRizk","download_url":"https://codeload.github.com/JadRizk/turborepo-launchpad/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249266660,"owners_count":21240792,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nextjs14","shadcn","supabase","tailwindcss","turborepo","typescript"],"created_at":"2025-03-12T15:51:32.786Z","updated_at":"2025-04-16T18:52:32.908Z","avatar_url":"https://github.com/JadRizk.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"300\" src=\"./public/launchpad-logo-md.png\" alt=\"Your Image Description\"\u003e\n\u003c/p\u003e\n\n# Launchpad\n\n![Turborepo Badge](https://img.shields.io/badge/Turborepo-EF4444?logo=turborepo\u0026logoColor=fff\u0026style=flat)\n![Tailwind CSS Badge](https://img.shields.io/badge/Tailwind%20CSS-06B6D4?logo=tailwindcss\u0026logoColor=fff\u0026style=flat)\n![TypeScript Badge](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript\u0026logoColor=fff\u0026style=flat)\n![Next.js](https://img.shields.io/badge/Next.js-black?logo=next.js\u0026logoColor=white)\n![Supabase](https://img.shields.io/badge/Supabase-3FCF8E?logo=supabase\u0026logoColor=fff)\n![Storybook](https://img.shields.io/badge/Storybook-FF4785?logo=storybook\u0026logoColor=fff)\n![shadcn/ui](https://img.shields.io/badge/shadcn%2Fui-000?logo=shadcnui\u0026logoColor=fff)\n![ESLint Badge](https://img.shields.io/badge/ESLint-4B32C3?logo=eslint\u0026logoColor=fff\u0026style=flat)\n![Prettier Badge](https://img.shields.io/badge/Prettier-F7B93E?logo=prettier\u0026logoColor=fff\u0026style=flat)\n![pnpm](https://img.shields.io/badge/pnpm-F69220?logo=pnpm\u0026logoColor=fff)\n![GitHub Actions](https://img.shields.io/badge/GitHub_Actions-2088FF?logo=github-actions\u0026logoColor=white)\n![Vercel](https://img.shields.io/badge/Vercel-%23000000.svg?logo=vercel\u0026logoColor=white)\n\n---\n\nWelcome to **Launchpad**, a turbocharged monorepo equipped with a Next.js 14\napplication, a comprehensive Storybook-hosted component library, and essential\nconfiguration packages for ESLint, Tailwind CSS, and TypeScript. Designed to\nstreamline the development of scalable and secure web applications,\n**Launchpad** offers a robust suite of tools and a customizable UI component\nlibrary to enhance your development workflow.\n\n- [Launchpad](#launchpad)\n  - [🚀 Getting Started](#-getting-started)\n    - [Installation](#installation)\n    - [Environment Setup](#environment-setup)\n    - [Useful Commands](#useful-commands)\n  - [📦 Apps \\\u0026 Packages](#-apps--packages)\n  - [🛠 Tools Powering This Repository](#-tools-powering-this-repository)\n  - [🧑‍💻 Setting Up Supabase Locally](#-setting-up-supabase-locally)\n    - [Prerequisites](#prerequisites)\n    - [Installation](#installation-1)\n    - [Configuration](#configuration)\n    - [Useful Commands](#useful-commands-1)\n  - [🧱 Components](#-components)\n  - [🔄 Versioning \\\u0026 Publishing Packages](#-versioning--publishing-packages)\n    - [🔧 Generating Changesets](#-generating-changesets)\n  - [📚 Further Documentation and Resources](#-further-documentation-and-resources)\n\n## 🚀 Getting Started\n\nTo get started ensure you have the necessary tools installed -PNPM \u0026 Node\n(v21+)-, and then clone this repository:\n\n### Installation\n\n```sh\n# Clone repo locally\ngit clone https://github.com/JadRizk/miniature-launchpad.git\ncd miniature-launchpad\n\n# Install dependencies\npnpm install\n```\n\n### Environment Setup\n\nBefore you start the application, you must configure the environment variables\nfor Supabase authentication and Umami analytics. Create a .env.local file at the\nroot of your project and include the following:\n\n```sh\nSUPABASE_URL=your_supabase_url\nSUPABASE_ANON_KEY=your_supabase_anon_key\n\nUMAMI_SCRIPT_URL=your_umami_script_url\n```\n\nFor more information on setting up Supabase, visit the\n[Supabase Documentation](https://supabase.com/).\n\n### Useful Commands\n\n- `pnpm build` - Build all packages, including the Storybook site\n- `pnpm dev` - Run all packages locally and preview with Storybook\n- `pnpm lint` - Lint all packages\n- `pnpm changeset` - Generate a changeset\n- `pnpm clean` - Clean up all `node_modules` and `dist` folders (runs each\n  package's clean script)\n\n## 📦 Apps \u0026 Packages\n\nLaunchpad's Turborepo structure is designed to maximize modularity and\nefficiency across multiple projects. Each app and package is tailored to\nspecific aspects of development, ensuring a cohesive and scalable ecosystem:\n\n- **`apps/app`**: Our main Next.js 14 application, serving as the face of your\n  digital presence. It integrates Supabase for robust authentication and\n  leverages our unified component library to ensure a seamless user experience.\n- **`apps/docs`**: A dedicated Storybook-powered site for documenting and\n  showcasing UI components. It offers an interactive platform for developers to\n  view and test component designs in isolation.\n- **`packages/ui`**: The core of our UI development, this package includes\n  reusable React components that ensure consistency and quality across all\n  applications and projects within the repository.\n- **`packages/tailwind-config`**: Provides a centralized Tailwind CSS\n  configuration to maintain a uniform styling framework throughout all our\n  applications and components.\n- **`packages/typescript-config`**: Manages shared TypeScript configurations,\n  facilitating consistent coding practices and error-free compilation across the\n  monorepo.\n- **`packages/eslint-config`**: Delivers a pre-set ESLint configuration designed\n  to enforce stringent code quality and style guidelines for all JavaScript and\n  TypeScript codebases.\n\n## 🛠 Tools Powering This Repository\n\nLaunchpad leverages a suite of top-tier development tools designed to enhance\nproductivity and maintain high standards across the development lifecycle:\n\n- 🏎 [**Turborepo**](https://turbo.build/repo) — A high-performance build system\n  tailored for efficient management of monorepos.\n- 🚀 [**Next.js 14**](https://nextjs.org/) — A React framework for building\n  user-friendly and scalable web applications.\n- 🔐 [**Supabase Authentication**](https://supabase.com/auth) — Provides robust\n  authentication solutions, enabling secure and scalable user management.\n- 📖 [**Storybook**](https://storybook.js.org/) — A sandboxed environment for\n  developing and isolating UI components, powered by Vite for near-instant\n  feedback.\n- 🔠 [**TypeScript**](https://www.typescriptlang.org/) — Enhances JavaScript\n  with static types to improve predictability and maintainability of code.\n- 🌊 [**Tailwind CSS**](https://tailwindcss.com/) — A utility-first CSS\n  framework for rapidly building custom designs.\n- 🌐 [**Shadcn**](https://github.com/shadcn) — A modern toolchain for front-end\n  development, focusing on performance and developer experience.\n- 🔍 [**ESLint**](https://eslint.org/) — A linter tool to identify and fix\n  problems in JavaScript and TypeScript code, enforcing code quality standards.\n- ✨ [**Prettier**](https://prettier.io) — An opinionated code formatter that\n  ensures consistency in code style.\n- 🏷️ [**Changesets**](https://github.com/changesets/changesets) — Manages\n  versioning and changelog generation, streamlining the release process.\n- ⚙️ [**GitHub Actions**](https://github.com/features/actions) — Automates\n  workflows for continuous integration and deployment, enhancing development\n  pipelines.\n- 📊 [**Umami Analytics**](https://umami.is/) — A simple, privacy-focused\n  alternative to Google Analytics, providing insights into user interactions\n  without compromising privacy.\n\n**Note**: Each package and app is 100%\n[TypeScript](https://www.typescriptlang.org/). Workspaces enables us to \"hoist\"\ndependencies that are shared between packages to the root `package.json`. This\nmeans smaller `node_modules` folders and a better local dev experience. To\ninstall a dependency for the entire monorepo, use the `-w` workspaces flag with\n`pnpm add`.\n\n## 🧑‍💻 Setting Up Supabase Locally\n\nSetting up Supabase locally can significantly streamline your development\nworkflow. Follow these steps to get started with Supabase CLI for local\ndevelopment:\n\n### Prerequisites\n\nEnsure you have Docker installed on your machine, as Supabase relies on Docker\ncontainers to run the local development environment.\n\n### Installation\n\n1. **Install Supabase CLI**: First, install the Supabase CLI by running the\n   following command:\n\n```sh\n# Install Supabase CLI\nnpm install -g supabase\n```\n\n2. **Start Supabase**: Navigate to your project's root directory and initialize\n   Supabase:\n\n```sh\n# Initialize Supabase in your project\nsupabase init\n```\n\n3. **Start the Supabase local development environment**: Run the following\n   command to start the local Supabase environment:\n\n```sh\n# Start Supabase local environment\nsupabase start\n```\n\nThis command will spin up the necessary Docker containers for Supabase,\nincluding the database, authentication, and storage services.\n\n### Configuration\n\n1. **Configure Environment Variables**: Update your `.env.local` file to use the\n   local Supabase instance. Replace `your_supabase_url` and\n   `your_supabase_anon_key` with the values provided by the local Supabase\n   environment:\n\n```sh\nNEXT_PUBLIC_SUPABASE_URL=http://localhost:54321\nNEXT_PUBLIC_SUPABASE_ANON_KEY=your_local_anon_key\n```\n\n2. **Migrate Database**: To apply database migrations, use the following\n   command:\n\n```sh\n# Apply database migrations\nsupabase db push\n```\n\nThis command ensures your local database schema matches your project\nrequirements.\n\n### Useful Commands\n\n- `supabase start` - Start the local Supabase development environment.\n- `supabase stop` - Stop the local Supabase environment.\n- `supabase db push` - Apply database migrations.\n- `supabase db reset` - Reset the local database to its initial state.\n\nFor more detailed information on setting up and using Supabase locally, visit\nthe\n[Supabase CLI Local Development Guide](https://supabase.com/docs/guides/cli/local-development).\n\n## 🧱 Components\n\nEach file inside of `packages/src/components` is a component inside our design\nsystem. For example:\n\n```tsx:acme-core/src/Button.tsx\nimport * as React from 'react';\n\nexport interface ButtonProps {\n  children: React.ReactNode;\n}\n\nexport function Button(props: ButtonProps) {\n  return \u003cbutton\u003e{props.children}\u003c/button\u003e;\n}\n\nButton.displayName = 'Button';\n```\n\nWhen adding a new file, ensure the component is also exported from the entry\n`index.tsx` file:\n\n```tsx:packages/src/components/index.tsx\nexport * from './Button';\n```\n\n## 🔄 Versioning \u0026 Publishing Packages\n\nThe project uses [Changesets](https://github.com/changesets/changesets) for\nversion management, changelog generation, and npm publishing. The workflow is\ndesigned to automate and streamline the release process, ensuring reliable and\nconsistent package updates.\n\n### 🔧 Generating Changesets\n\nWhen you make changes that should be tracked in the changelog, follow these\nsteps:\n\n1. **Start the Changeset**: Run the following command in your terminal:\n   `pnpm changeset`\n2. **Select Packages**: The CLI will prompt you to select the packages affected\n   by your changes. Ensure you create one changeset per repository to keep the\n   changelogs separate.\n3. **Version Bumps**: Decide on the version bump for the selected packages. It's\n   crucial to follow semantic versioning best practices.\n4. **Summarize Changes**: Write a clear summary of what changes have been made;\n   this summary will be included in the changelog.\n5. **Review and Confirm**: Confirm the details of your changeset. A Markdown\n   file will then be created in the changeset folder, listing the packages and\n   summarizing the changes.\n\n## 📚 Further Documentation and Resources\n\nTo help you maximize your use of **Launchpad**, here are some valuable resources\nand documentation links:\n\n- [Next.js Documentation](https://nextjs.org/docs) - Learn about Next.js\n  features and API.\n- [Supabase Documentation](https://supabase.com/docs) - Comprehensive guides and\n  API references for using Supabase for authentication and database services.\n- [Storybook Documentation](https://storybook.js.org/docs) - Explore Storybook\n  to better understand how to build and test UI components in isolation.\n- [Tailwind CSS Documentation](https://tailwindcss.com/docs) - Get to know how\n  to style your applications efficiently using Tailwind CSS.\n- [TypeScript Handbook](https://www.typescriptlang.org/docs/handbook/intro.html) -\n  Deepen your knowledge of TypeScript and how to use it effectively in your\n  projects.\n- [ESLint User Guide](https://eslint.org/docs/user-guide) - Configure ESLint to\n  enforce code quality standards in your JavaScript and TypeScript code.\n- [Prettier Documentation](https://prettier.io/docs/en/index.html) - Learn how\n  to use Prettier for automatic code formatting.\n- [Turborepo Guide](https://turborepo.org/docs) - Understand how to use\n  Turborepo to manage your monorepo efficiently.\n\nThese resources provide extensive information and best practices that can boost\nyour development process and enhance your understanding of the technologies\nintegrated into **Launchpad**.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjadrizk%2Fturborepo-launchpad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjadrizk%2Fturborepo-launchpad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjadrizk%2Fturborepo-launchpad/lists"}