8000 useshelfie (Shelfie) Β· GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
View useshelfie's full-sized avatar

Block or report useshelfie

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
useshelfie/README.md

πŸ“š Shelfie β€” Electronic Catalog App

Shelfie is a beautiful and intelligent electronic catalog platform. It allows users to create and share rich, multimedia product collections β€” optimized for mobile and web.

πŸš€ Tech Stack

  • Frontend: Next.js (App Router), TypeScript, Tailwind CSS, shadcn/ui
  • Backend: Vercel Edge Functions / Serverless
  • Database: Supabase (PostgreSQL) with RLS enabled
  • Media: Supabase Storage
  • Auth: Supabase Auth
  • AI: OpenAI API (for product descriptions)
  • Video: Remotion (for catalog promo videos)

πŸ› οΈ Setup Instructions

  1. Clone the repository:

    git clone <repository-url>
    cd useshelfie
  2. Install dependencies:

    pnpm install
  3. Run the development server:

    pnpm dev

🧠 Husky Git Hooks

We use Husky to automate checks during Git operations:

Hook Script Purpose
commit-msg pnpm commitlint --edit $1 Ensures commit messages follow convention
post-merge pnpm install -r Reinstalls deps after pulling updates
pre-commit pnpm lint-staged Lints only staged files
pre-push pnpm test Runs tests before pushing code
pre-rebase pnpm lint Lints full project before rebasing

🧼 Linting & Formatting

We use:

  • ESLint for code quality
  • Prettier for consistent formatting
  • lint-staged to run checks only on staged files

🧾 Commit Messages

Commit messages must follow Conventional Commits:

Examples:

feat: add catalog sharing feature
fix: correct product card layout on mobile
chore: update dependencies

🧬 Database (Supabase)

  • Functions use SECURITY INVOKER, proper search_path, and typed params.
  • Migrations follow: YYYYMMDDHHmmss_short_description.sql
  • RLS policies use auth.uid() and are enabled for all operations.

πŸ§‘β€πŸ’» Development Guidelines

  • Use TypeScript best practices and keep code DRY
  • Use Tailwind CSS for styling
  • Ensure accessibility in UI components

πŸ›‘οΈ Postgres SQL Style Guide

  • Use lowercase for SQL keywords
  • Use snake_case for tables/columns
  • Prefer plural table names

🌐 Supabase Edge Functions

  • Use Deno’s core APIs and Web APIs
  • Avoid bare specifiers
  • Use EdgeRuntime.waitUntil(promise) where needed

🀝 Contributing

We welcome contributions! Please follow our guidelines and use the provided tooling (lint, commitlint, tests) before submitting a PR.


πŸ“„ License

MIT Β© Shelfie


Popular repositories Loading

  1. useshelfie useshelfie Public

    Your Smart Catalog

    TypeScript

0