Skip to content

rcadavos/whatisell

Repository files navigation

What I Sell

A full-stack application built with TanStack ecosystem, Tailwind CSS, and Appwrite.

Tech Stack

  • TanStack Start — Full-stack React framework (SSR, routing, and server functions)
  • TanStack Router — Type-safe routing and navigation
  • TanStack Query — Server state management, caching, and data fetching
  • TanStack Table — Headless tables for sorting, filtering, and pagination
  • Tailwind CSS — Utility-first CSS
  • Appwrite — Backend (Databases) for users, sessions, magic links, and listings

Getting Started

Prerequisites

  • Node.js v20.19+ or v22.12+ (required by Vite 7). If you see a version warning, upgrade Node (e.g. nvm: nvm install then nvm use, or fnm, or nodejs.org).
  • Appwrite (cloud or self-hosted)
  • pnpm (recommended) or npm

Installation

# Install dependencies
pnpm install

# Run development server
pnpm dev

Open http://localhost:3000.

Environment Variables

Create a .env in the project root (see docs/APPWRITE.md for Appwrite setup):

Variable Description
APPWRITE_ENDPOINT Appwrite API endpoint (default: cloud URL)
APPWRITE_PROJECT_ID Your Appwrite project ID
APPWRITE_API_KEY Server API key with Databases read/write
APPWRITE_DATABASE_ID Database ID (default: whatisell)

Project Structure

whatisell/
├── src/
│   ├── routes/              # TanStack Router file-based routes
│   │   ├── __root.tsx       # Root layout (mobile-first)
│   │   ├── index.tsx        # Landing page
│   │   ├── signup.tsx       # Sign up (7-day trial)
│   │   ├── login.tsx        # Log in (password or magic link)
│   │   ├── login/magic.tsx  # Magic link handler
│   │   ├── listings.tsx     # Listings layout
│   │   ├── listings/index.tsx  # Today's listings
│   │   └── post/new.tsx     # Post a listing
│   ├── server/              # Backend (Appwrite, auth)
│   ├── lib/cookie.ts        # Session cookie helpers
│   ├── styles/app.css       # Tailwind
│   ├── types.ts
│   ├── router.tsx
│   └── routeTree.gen.ts
├── docs/APPWRITE.md         # Appwrite database setup
├── docs/AUTH.md             # Session, current user, redirect (single pattern)
├── vite.config.ts
└── package.json

Features

  • Landing — Hero with "Start trial for 7 days", Log in, Sign up.
  • Sign up — Email, password, optional name; 7-day trial start.
  • Log in — Password or one-time magic link (link shown in dev; in production send by email).
  • Mobile-first — Touch-friendly UI; viewport and safe areas.
  • Appwrite — Users, sessions, magic links, and listings stored in Appwrite Databases (see docs/APPWRITE.md).
  • Auth — Cookie session; one getCurrentUserFn and full-page redirect after login (see docs/AUTH.md).

License

MIT

About

Seller storefronts and listings—helping businesses showcase products and services with a polished, discoverable presence, with Maya and PayMongo for payments.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors