Model or dataset
timqian/openprompt.co avatar
timqian/openprompt.co

openprompt.co: a prompt-sharing site whose repository is mostly a leaderboard generator

Create. Use. Share. ChatGPT prompts

1,217 stars60 forksJavaScriptGPL-3.0

At a glance

What is it?
The GitHub repository behind OpenPrompt.co is a small Node script that turns prompt data into a README and a JSON file. The prompts themselves live on the website, not in the repo, and the code is GPL-3.0.
Who is it for?
Adopt this repository if you want a working example of a scheduled export that writes a JSON file and a Markdown README from a Supabase table, or if you want to fork the leaderboard format for your own prompt collection. Do not adopt it expecting the OpenPrompt.co website source, a prompt library you can browse offline, or a maintained npm package: the repository ships three dependencies and no releases, and the README is a generated artifact rather than documentation.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 5 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What the openprompt.co repository actually contains

The confusing part of this project is the gap between the website and the repository. OpenPrompt.co is a place to create, use and share ChatGPT prompts, and its README is a ranked list of the most starred prompts on that site. The repository is not that site. The top-level entries are .github/, .gitignore, LICENSE, README.md, TopPrompts.json, index.mjs, package.json and yarn.lock. There is no frontend directory, no API route folder, no database schema. What you get is the script that produces the leaderboard and the leaderboard output itself.

That shapes who the repository is for. If you want to read prompts, the README already gives you a sample: entries such as ChatGPT, GPT-4, a Chinese translation and polishing prompt, a Midjourney prompt generator, and a code review prompt, each with a link to openprompt.co, an author link and a star count. If you want to run a prompt site, this repo is not the starting point. If you want to see how a small Node script keeps a public list in sync with a database, it is exactly that.

The data flow: Supabase in, TopPrompts.json and README out

The README states plainly that the list is updated every 24 hours and that the same data is available as TopPrompts.json. That sentence describes the whole pipeline. index.mjs is the entry point named in package.json, and the three dependencies tell you what it does: @supabase/supabase-js reads rows, json-to-markdown-table converts them into the Markdown table that becomes the README, and dotenv loads credentials from a local environment file.

So the flow is one directional. Prompt records live in Supabase. A scheduled run pulls the top rows, sorts or filters them by star count, writes TopPrompts.json, and renders the same rows as Markdown with links back to openprompt.co. Nothing in the repository writes prompts back, and nothing serves them to a browser. The website is a separate system that the README links to but the repository does not include.

Two consequences follow. First, the README is a build artifact. Editing README.md by hand is pointless if the next run overwrites it, which is why the file reads like a table rather than documentation. Second, the repository has no value without a database behind it. Clone it on a machine with no Supabase credentials and the script has nothing to fetch.

Running openprompt.co locally: what the repository does and does not tell you

The repository uses Yarn, judged by yarn.lock, and declares its dependencies in package.json. The README does not give install steps, so the only concrete thing that can be quoted here is the dependency set itself, taken verbatim from package.json:

json
{
  "main": "index.mjs",
  "license": "GPL-v3",
  "dependencies": {
    "@supabase/supabase-js": "^2.12.0",
    "dotenv": "^16.0.3",
    "json-to-markdown-table": "^1.0.0"
  }
}

Those three packages are the whole story the repository tells about execution. @supabase/supabase-js means the script talks to a Supabase project. dotenv means it reads configuration from a local environment file, though the repository never names the variables, so you have to read index.mjs to learn them. json-to-markdown-table means the output is rendered as a Markdown table, which is what README.md is.

Because no install command, no script entry and no environment variable name appears in the README or in package.json, there is nothing safe to paste as a tutorial. The honest instruction is to read index.mjs first, note which Supabase table and columns it selects, and supply whatever credentials that file references. If you want the data without running anything, TopPrompts.json is the published output and is the only artifact here you can consume without a database.

Where openprompt.co breaks down: no schema, no site, no releases

The largest limitation is documentation of the data contract. The README shows rendered rows, so you can infer fields such as title, slug, author and star count, but the repository never states the table name or the column names that index.mjs queries. Anyone reusing this pipeline against their own Supabase project has to reverse engineer the query first. That is a real cost, and it is the kind of thing a schema file or a short section in the README would remove.

Second, the repository is not the product. If your goal is to self-host a prompt sharing site, this code gives you a leaderboard job and nothing else: no authentication, no submission form, no page rendering. You would be writing the application around it.

Third, there are no published releases. package.json pins the version at 0.0.0 and the project has never cut a tagged version, so there is no changelog to read before upgrading and no version to pin against beyond a commit hash. The last push to the default branch was on 2026-09-11, so the code is current, but currency is not the same as a release process.

Finally, the content itself is user submitted and uneven. The README sample includes a jailbreak-style prompt and a prompt built around profanity, alongside ordinary translation and code review prompts. If you plan to mirror this data, moderation is your problem, not the repository's.

Alternatives: a database-backed site versus a file in your repo

The clear alternative is to skip the pipeline and keep prompts as files. A repository of Markdown or YAML prompts, one file per prompt, committed and reviewed through pull requests, needs no Supabase project, no scheduled job and no generated README. You edit a file, you commit, and the diff is the history. The trade-off is that stars and ranking have no home; a file-based collection has no notion of popularity unless you add one.

OpenPrompt.co takes the opposite approach. Prompts are rows in a hosted database, popularity is a stored attribute, and the public list is a projection of that database refreshed every 24 hours. That buys you ranking and a web submission flow, and it costs you a credential to manage, a scheduled job to keep alive, and a schema you cannot see from the repository alone. Neither approach is wrong; they answer different questions. If you want a curated set of prompts you can diff and review, files win. If you want a live leaderboard fed by user submissions, the database model is the one that fits, and this repository is a small working example of the export half of it.

Licence and the cost of keeping openprompt.co running

package.json declares the licence as GPL-v3 and the repository ships a LICENSE file, so the code is GPL-3.0. For a script this small the practical effect is mostly about redistribution: if you fork it into your own project and distribute that project, the GPL-3.0 obligations travel with it. This is a description of what the repository states, not legal advice, and the boundary between running a script internally and distributing a derived work is exactly the kind of question to put to a lawyer rather than to a README.

Upgrade cost is low in absolute terms and awkward in practice. Three dependencies, all with caret ranges: @supabase/supabase-js ^2.12.0, dotenv ^16.0.3, json-to-markdown-table ^1.0.0. A caret range means a fresh install can pull a newer minor or patch release than the author ran, and with no tagged releases and no changelog there is no documented upgrade path. The operational cost sits outside the repository: a Supabase project, credentials stored somewhere the scheduled job can read, and a daily run that must succeed or the README and TopPrompts.json go stale without any visible error.

Editorial conclusion

Adopt this repository if you want a working example of a scheduled export that writes a JSON file and a Markdown README from a Supabase table, or if you want to fork the leaderboard format for your own prompt collection. Do not adopt it expecting the OpenPrompt.co website source, a prompt library you can browse offline, or a maintained npm package: the repository ships three dependencies and no releases, and the README is a generated artifact rather than documentation. Before you build on it, verify two things yourself: the table and column names that index.mjs queries, which the repository never states, and whether the GPL-3.0 terms fit how you intend to redistribute the result, since the repository states GPL-v3 in package.json and ships a LICENSE file.

Frequently asked questions

Is the openprompt.co repository the source code of the OpenPrompt.co website?

No. The top-level entries are index.mjs, TopPrompts.json, package.json, yarn.lock, LICENSE, README.md and .github/, with no frontend or API code. The README links to openprompt.co, but the site itself is not in the repository.

How often does the openprompt.co prompt list update?

The README states that the list of most starred prompts is updated every 24 hours. The same data is published in TopPrompts.json alongside the README.

What licence does openprompt.co use?

package.json declares the licence as GPL-v3 and the repository includes a LICENSE file, which points to GPL-3.0. Any redistribution of a derived work carries the obligations that licence sets out.

Can I use openprompt.co data in my own project?

The README says the data is also available in JSON format at TopPrompts.json, and the repository is public. Beyond that the repository says nothing about permitted reuse of the prompt content, so the licence covers the code rather than clarifying the data.

Does openprompt.co have published releases or a changelog?

No. package.json pins the version at 0.0.0 and no releases are listed, so there is no tagged version or changelog to check before upgrading.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. Project website
  4. README
  5. timqian/openprompt.co on GitHub
Community notes

Community notes