https://github.com/daimajia/huntscreens
Take screenshots of each new project on Producthunt, YC, and Indiehackers, explore with Ease.
https://github.com/daimajia/huntscreens
indiehackers producthunt products screenshot
Last synced: about 1 year ago
JSON representation
Take screenshots of each new project on Producthunt, YC, and Indiehackers, explore with Ease.
- Host: GitHub
- URL: https://github.com/daimajia/huntscreens
- Owner: daimajia
- Created: 2024-06-08T06:31:42.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-11T10:23:54.000Z (over 1 year ago)
- Last Synced: 2025-03-28T12:03:20.791Z (about 1 year ago)
- Topics: indiehackers, producthunt, products, screenshot
- Language: TypeScript
- Homepage: https://huntscreens.com
- Size: 3.04 MB
- Stars: 227
- Watchers: 3
- Forks: 36
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# [HuntScreens.com](https://huntscreens.com?ref=github)
The best way to explore the ProductHunt. Capture every new featured product!
[](https://huntscreens.com?ref=github)
#### Background story
One day, I felt that browsing ProductHunt wasn't very intuitive, so I quickly made a small project using NextJs. It takes screenshots of each new project on ProductHunt, so now I can quickly browse through them every day and easily see if there's anything interesting to me without having to read a lot of text and click around.
## Getting Started
### Tech stacks
- [Next.js](https://nextjs.org/docs)
- [Shadcn](https://ui.shadcn.com/) UI framework based on Tailwind.
- [Supabase](https://supabase.com/) Managed postgres database.
- [Drizzle](https://orm.drizzle.team/docs/overview) Database ORM.
- [Logto.io](https://logto.io/) Fully open sourced Auth solution.
- [Triggerdev v2.0](https://trigger.dev/docs/documentation/introduction) Background jobs.
- [Resend](https://resend.com/) Email service.
- [React Email](https://react.email/) Write emails without pain.
- [ScreenshotOne](https://screenshotone.com/) Screenshot Api.
- [Cloudflare R2](https://developers.cloudflare.com/r2/) Image storage.
- [Umami](https://umami.is/) Website Analytics
- [Koyeb](https://www.koyeb.com/) Paas Service.
Before deployment, make sure you know all the services or tools above clearly. It may take some time.
### Env Variables
```sh
# setup trigger api key and endpoint url.
# https://trigger.dev/
TRIGGER_API_KEY=
TRIGGER_API_URL=
NEXT_PUBLIC_TRIGGER_PUBLIC_API_KEY=
# setup Producthunt API access token
# https://api.producthunt.com/v2/docs
PH_ACCESS_TOKEN=
# setup postgres database url.
# https://supabase.com
DATABASE_URL=
# setup screenshot one api.
# !remember to setup s3 extension on ScreenshotOne.
# https://screenshotone.com/
SCREENSHOTONE_ACCESS_KEY=
SCREENSHOTONE_SIGNED_KEY=
# setup resend email service api
# https://resend.com
RESEND_KEY=
RESEND_AUDIENCE_ID=
# cloudflare r2 endpoint url.
NEXT_PUBLIC_CLOUDFLARE_R2=
# setup Logto user authentication
# https://logto.io
LOGTO_APPID=
LOGTO_APP_SECRET=
LOGTO_BASE_URL=
LOGTO_COOKIE_SECRET=
LOGTO_ENDPOINT=
```
After Env vars, generate and migrate the database table:
```bash
pnpm db:generate
pnpm db:migrate
```
after migration, run the following sql at supabase or from any postgres client, to create table view:
```sql
create view
sortedphs as
select
row_number() over (
order by
added_at desc
) as row_no,
*
from
producthunt
where
webp = true;
```
after that, run the dev server.
```bash
pnpm i
pnpm run dev
```
open another terminal, run the trigger service.
```bash
pnpm triggerdev
```
If you want to create email template, open a new terminal, and run:
```bash
pnpm email dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
## What's Next?
* [ ] screenshot YC companies
You can view all the dev plan on [this Kanban](https://github.com/users/daimajia/projects/4/views/1).
Any idea or bugs? [Submit issues](https://github.com/daimajia/huntscreens/issues) or [leave a comment on my twitter](https://twitter.com/daimajia/status/1808315790720180516) !