/gpts-url

ChatGPT GPTs Store, use Astro + Taiwindcss, and crawl the 6,876 GPTs SQL packet

Primary LanguageAstro

GPTsURL

πŸ‘‰ζŽ˜ι‡‘ζ–‡η« 

GPTs URL

Discover the GPTs Store by OpenAI | GPTsURL - Share and search GPTs url to use ChatGPT

Logo used from ChatGPT DALLΒ·E Designs

πŸš€ Project Structure

🍿 Live preview: https://www.gptsurl.com

GPTsURL

PageSpeed Insights

PageSpeed

You'll see the following folders and files:

/
β”œβ”€β”€ public/
β”‚   └── favicon.png
|   └── robot.txt
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   └── Card.astro
β”‚   β”œβ”€β”€ layouts/
β”‚   β”‚   └── Layout.astro
β”‚   └── pages/
β”‚       └── index.astro
└── package.json

Any static assets, like images, can be placed in the public/ directory.

Dependencies

Vercel: used for deploying website

Vercel Storage Postgres: used for storing data.

Quick start

Clone project

git clone https://github.com/CH563/gtps-url.git

Prepare data

create table in your postgres database with sql:

  • gpts_list - Used to store GPTs application information
CREATE TABLE "public"."gpts_lists" (
   "id" int8 NOT NULL,
   "title" varchar,
   "url" varchar,
   "icon" varchar,
   "author" varchar,
   "description" text,
   "content" text,
   "twitter" varchar,
   "youtube" varchar,
   "category" varchar,
   "weights" int4 DEFAULT 0,
   "scores" int4 DEFAULT 0,
   "created_titme" timestamptz DEFAULT now(),
   "search_key" varchar,
   PRIMARY KEY ("id")
);
  • categories - Used to store GPTs categories
-- Sequence and defined type
CREATE SEQUENCE IF NOT EXISTS categories_id_seq;

-- Table Definition
CREATE TABLE "public"."categories" (
   "id" int4 NOT NULL DEFAULT nextval('categories_id_seq'::regclass),
   "categories_name" varchar(255) NOT NULL,
   PRIMARY KEY ("id")
);
  • list_categories - Many-to-many relational table for storing GPTs application categorization
CREATE TABLE "public"."list_categories" (
    "list_id" int4 NOT NULL,
    "category_id" int4 NOT NULL,
    CONSTRAINT "list_categories_category_id_fkey" FOREIGN KEY ("category_id") REFERENCES "public"."categories"("id"),
    CONSTRAINT "list_categories_list_id_fkey" FOREIGN KEY ("list_id") REFERENCES "public"."gpts_lists"("id"),
    PRIMARY KEY ("list_id","category_id")
);

Get the GPTs data of zip into your postgres database, Is include 6,876 GPTs

Data from "site:chat.openai.com/g/ {keyword|category}"

Download

Running Locally

  1. Install dependencies
pnpm install
  1. Create .env in project
POSTGRES_URL="postgres://default:xxx@xxx.postgres.vercel-storage.com/verceldb"
  1. Run the application, the local project runs on http://localhost:4321/
pnpm run dev

🧞 Commands

All commands are run from the root of the project, from a terminal:

Command Action
npm install Installs dependencies
npm run dev Starts local dev server at localhost:4321
npm run build Build your production site to ./dist/
npm run preview Preview your build locally, before deploying
npm run astro ... Run CLI commands like astro add, astro check
npm run astro -- --help Get help using the Astro CLI

Deploy

Deploy With Vercel

Deploy with Vercel

Deplay Vercel

If you find anything wrong, give me an Issues

Give me the bugs

Thanks to

Astro for deployment

inspired credit to GPTsHunter, AllGPTs

Else if this project is helpful to you, buy me a coffeeπŸ˜„

Buy Me A Coffee