
My first open-source service reached its first 20 stars on GitHub
🌐 Website • 💎 Create project • 📄 About • ⚙️ Submit project
以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。
🌐 Website • 💎 Create project • 📄 About • ⚙️ Submit project
Project catalog where you can add yours and get interesting and practical embeds.
Idea
Features
Catalog & discovery
Embeds
Custom embeds
Project pages
Upvotes & impressions
Moderation
How it works
What projects are suitable?
Premium
FAQ
Tech stack
Project structure
Running locally
Prerequisites
Quick start
Environment variables
Available scripts
Data Synchronization
Contributing
Star History
License
Idea
While developing open source projects, one day I came up with the idea of making a website for practical pictures for projects, since I wanted to somehow highlight my project rather than adding default ones. I don't want to copy others, so I made a catalog where each project will have a relatively unique embed.
Catalog & discovery
On the main page, each published project is presented as a card featuring relevant images and project information. The platform also tracks views and upvotes, which are displayed on the card as well. Visitors can:
Each project gets ready-made embed badges, generated as static images and available in light and dark themes:
Beyond the built-in badges, every project can design its own custom embed (title, description, light/dark theme) straight from the account dashboard, and copy the ready HTML snippet for a README or website.
Signed-in users can upvote a project once. Page views are also tracked as impressions, batched client-side to keep the write volume low, and both numbers are shown on the project card and its page.
New submissions land in a moderation queue. Admins can approve, reject, mark a project as premium, or edit any listing before it goes live, so the catalog stays consistent and spam-free.
Open source
Service
Web app
Developer tool
Package
Other technical projects
Commercial projects are also taken into work.
Essentially, we are not focused on creating an audience on the platform, although this is also important. The idea is to work on a project periodically, like an ant working on its visibility. The platform accepts a certain number of premium projects per month, and the project team will simply add them to relevant articles and create content about them on other platforms. For example, tweets, etc.
This flow allows us to work on projects as efficiently as possible. Also, if we move on to the next month, the number of projects will allow us to work on previous months' projects.
Is listing a project free? Yes. Free listings get a project page, the base embed badges, and a custom embed you design yourself. Premium is optional and adds promotion and extra embeds.
What happens after I submit a project? It goes into a moderation queue as a draft. An admin reviews it and either publishes, rejects, or asks for changes before it's shown in the catalog.
Can I edit a project after it's published? Yes, from your account you can update details, images, embeds, and the Markdown info section at any time (in development).
Tech stack
Layer Stack
Framework Next.js 16 (App Router, server runtime)
Language TypeScript
Styling Tailwind CSS v4, ShadCN-based UI components
Markdown react-markdown + remark-gfm
Backend Supabase (Postgres, Auth, Storage)
Icons Lucide
Project structure
app Routes (App Router): catalog, project pages, account, submit, embeds components Shared UI and feature components (cards, forms, embeds, markdown, etc.) lib Supabase clients, data mappers, and utilities scripts Build-time embed image generation and the GitHub stats sync job public Static assets, including the site logo and preview image
Running locally
Prerequisites
Requirement Version
Node.js 20+
npm 10+
Supabase project with the projects, project_embeds, project_upvotes, and project_bookmarks tables set up
Quick start
Clone the repository
git clone https://github.com/EmbedCatalog/embedcatalog.git cd embedcatalog
Install dependencies
npm install
Configure environment variables
cp .env.example .env.local # create it if it doesn't exist yet, see below
Start the dev server
npm run start
Open http://localhost:3000 to view the app.
A scheduled GitHub Action runs scripts/sync-github-stats.ts daily to refresh each project's stars, forks, contributors, and license straight from the GitHub API, so project pages stay up to date without manual work.
We have a Contributing Guide that describes the main steps for contributing to the project.
The platform is open to your ideas and code! Thanks to everyone who helps make it better.
License
Source code released under the AGPL-3.0 license.
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。