> pmpt
๐ŸŽ“

Graduated Project

This project has reached commercial maturity and graduated. The .pmpt file remains downloadable.

"Launched on App Store. Full feature set: swipe voting, multi-source crawling (HN/DEV.to/GitHub), rankings, favorites, collections, impressions, Google/Apple/GitHub OAuth, deep link sharing."

Graduated: 2026-03-04

joltit

90 A โญ Pioneer ๐Ÿ”ฅ Prolific ๐Ÿ“ Documented ๐ŸŽ“ Graduated
@Raunplaymore (10 projects) ยท 17 steps ยท 162.3 KB ยท 2026-03-04

Tinder-style swipe app for discovering startup ideas. Auto-crawls Hacker News, DEV.to, and GitHub repos every 6 hours. Swipe to vote, track rankings, save favorites, and share ideas via deep links. Google/Apple/GitHub OAuth.

#react-native#expo#cloudflare-workers#hono#d1#mobile#startup-ideas#swipe#oauth#deep-linking

Clone via terminal:

pmpt clone joltit
GitHub README GitHub
Loading README...
1

Starting Prompt

This single prompt is where the project began.

Joltit โ€” AI Development Prompt

Overview

Build "Joltit", a mobile app where users swipe on business ideas to evaluate them. Ideas are auto-crawled from Hacker News and other public APIs. Users swipe right to like, left to pass, and up to super-like. Community voting creates rankings: weekly best, monthly best, all-time top. Users can save favorites and create GitHub repos from liked ideas with one tap.

Tech Stack

  • React Native (Expo SDK 54, expo-router) for cross-platform mobile app
  • Cloudflare Workers (Hono) + D1 for backend
  • Cloudflare Cron Triggers for scheduled crawling (every 6 hours)
  • GitHub OAuth for authentication and repo creation (public_repo scope)

App Structure

Screens

  1. Onboarding โ€” 3-page swipeable tutorial (Discover Ideas / Swipe to Vote / Track the Best), AsyncStorage persistence, shown once on first launch
  2. Home (Swipe Screen) โ€” Card stack of business ideas, swipe to evaluate. 5-second idle hint tooltip (โ† ยท โ†‘ ยท โ†’ swipe to vote) with fade-in animation
  3. Rankings โ€” Tabs: Top / Daily / Weekly / Monthly (approval_rate based, min 1 impression)
  4. Favorites โ€” Compact list with source dot + title + score + sparkle icon (if impression). Tap to open detail modal with full info (source banner, impression, description, vote grid, GitHub card, tags, notes, action links)
  5. Profile โ€” GitHub connection, stats (1k +234 format, 4 cards: Likes/Super/Passes/Notes), Idea Explorer level badge, "My Impressions" section (3 recent + See All), settings
  6. Impressions โ€” Full list of all impressions (modal from Profile โ†’ See All)

Card Design

Single-view card with scrollable content:

  • Source color header (HN orange, DEV.to blue, GitHub dark) with title, points, comments
  • Full description (scrollable, no line limit)
  • Vote breakdown grid (Super / Like / Pass / Score)
  • GitHub details card (repo name, stars, forks, language) โ€” tappable
  • Tags (all displayed)
  • Sticky footer with source-color background: author info + Website/Source link buttons
  • Footer design matches header color for unified card appearance

Data Model

  • ideas โ€” id, title, description, source_url, source (hn/devto/github), image_url, homepage_url, github_url, github_stars, github_forks, github_language, tags, source_score, comment_count, like_count, pass_count, super_like_count, score, impression_count, crawled_at, created_at
  • user_votes โ€” user_id, idea_id, vote_type (like/pass/super_like), created_at
  • user_favorites โ€” user_id, idea_id, note, impression (100 chars, Super Like first thought), vote_type (like/super_like), created_at
  • users โ€” id, github_id, username, avatar_url, encrypted_token, created_at
  • user_collections โ€” id, user_id, name (50 chars), emoji, created_at, updated_at
  • collection_items โ€” id, collection_id (CASCADE), favorite_id (CASCADE), added_at, UNIQUE(collection_id, favorite_id)

Key Interactions

  • Swipe right โ†’ Like (score +1, impression +1)
  • Swipe left โ†’ Pass (score -1, impression +1)
  • Swipe up โ†’ Super Like (score +2, impression +1) โ†’ Impression Modal (authenticated only)
  • Tap GitHub card โ†’ Open repo in in-app browser
  • Tap Website/Source buttons โ†’ Open in PAGE_SHEET browser

Impression System (Idea Journal)

  • Philosophy: App helps users discover, get inspired by, and develop ideas. Impressions capture "first thought" moments.
  • Super Like Modal: Card flies away immediately, bottom-sheet modal slides up with random inspiration prompt (e.g. "What's the 10x version?"), 100-char TextInput, Skip/Save buttons. Haptic on save. Only for authenticated users.
  • Daily Inspiration Quote: Rotates daily in Discover header (e.g. "Every great product started as a side project")
  • Reflection Prompts: Empty state shows thought-provoking questions (e.g. "Which idea stuck with you the most?")
  • Profile Section: "My Impressions" with teal-bordered cards (italic text, source dot, relative time). "See All โ†’" links to full list modal.
  • Idea Explorer Levels: Lv1 Curious (0-50) โ†’ Lv2 Seeker (50-200) โ†’ Lv3 Explorer (200-500) โ†’ Lv4 Analyst (500-1000) โ†’ Lv5 Visionary (1000+)
  • Favorite Detail: Impression shown at top with sparkles icon + "My First Impression" header
  • API: POST /api/votes accepts optional impression param, GET /api/favorites/impressions, POST /api/favorites/:id/impression

Collections System (Favorite Playlists)

  • Philosophy: Users create named collections to organize favorites, like music playlists for business ideas
  • Data Model: user_collections (id, user_id, name, emoji, created_at, updated_at) + collection_items junction table (collection_id โ†’ favorite_id, ON DELETE CASCADE)
  • Max 20 collections per user, name max 50 chars, optional emoji icon
  • Favorites tab: Horizontal scroll of CollectionCards at top + All Favorites list below. "+" button to create new collection.
  • Collection detail: Modal screen showing FavoriteCards within the collection, with rename/delete menu
  • Add to Collection: Bottom sheet modal accessible from folder icon on each FavoriteCard. Shows all collections with toggle checkmarks.
  • Shared FavoriteCard component: Extracted to components/FavoriteCard.tsx, used by both favorites tab and collection detail
  • API: GET/POST /api/collections, GET/PUT/DELETE /api/collections/:id, POST/DELETE /api/collections/:id/items/:ideaId, GET /api/favorites/:ideaId/collections
  • ID handling: Frontend's favorite.id = ideas.id (due to SQL JOIN column overwrite). API endpoints use idea_id and resolve to user_favorites.id internally.

Feed Algorithm

  • Impression-based fairness: ORDER BY impression_count ASC, id ASC (deterministic, no RANDOM)
  • All ideas get minimum exposure before popular ones repeat
  • Logged-in users: server filters out already-voted ideas
  • Anonymous users: local AsyncStorage tracking (10,000 free limit)

Ranking Algorithm

  • Approval rate: (super_like_count * 2 + like_count) / impression_count
  • Minimum 1 impression required to appear in rankings
  • Ideas with 0 positive votes (like + super_like = 0) hidden from rankings โ€” pass-only ideas excluded
  • Periods: All-time, Daily (1d), Weekly (7d), Monthly (30d)
  • Rankings auto-refresh on tab focus via navigation listener

Crawling Strategy

  • 3 sources: Hacker News (Algolia API), DEV.to (public API, tags: showdev/opensource/sideproject), GitHub Search (trending repos, stars>10, created in last 7 days)
  • Round-robin scheduling: Cloudflare Workers 50 subrequest limit โ†’ Round A (HN + GitHub, ~12 fetches) alternates with Round B (DEV.to + Enricher, ~43 fetches) based on UTC hour
  • Manual single-source crawl: POST /api/crawl?source=hn|devto|github|enrich with X-Crawl-Secret header
  • GitHub-only filter: Only ideas with GitHub repo URL are saved
  • HTML entity decoding applied during crawl + at render time for legacy data
  • Enrichment pipeline: OG images + GitHub metadata (stars, forks, language, topics, description) for linked repos

API Pagination

  • GET /api/ideas returns pagination object: { page, offset, total, totalPages, hasMore }
  • COUNT query runs in parallel with data query via Promise.all

Cross-tab State

  • LocalVotesContext (React Context) shares vote state + per-type stats (likes/super/passes) across all tabs
  • AuthContext exposes refreshUser() for on-demand profile stats refresh
  • Profile & Rankings auto-refresh on tab focus via navigation.addListener('focus')
  • Stale closure prevention: all swipe callbacks use useRef pattern for stable references

Data Fetching

  • useIdeas hook: page ref + loading guard + hasMore tracking to prevent stale/duplicate fetches
  • loadMore uses refs instead of state to avoid closure staleness during rapid swiping

Design Direction

  • Fun, playful, swipe-based UI
  • Card-based design with smooth swipe animations (reanimated + gesture-handler)
  • Bold source colors (HN orange, PH red), coral primary (#FF6B6B)
  • Haptic feedback on swipe actions
  • Score display: +N format with star/heart icons

Security

  • GitHub tokens encrypted with AES-GCM (crypto.subtle)
  • OAuth state parameter for CSRF protection
  • JWT expiry: 7 days
  • CORS restricted to FRONTEND_URL
  • Rate limiting: 60 req/min per IP
  • No sensitive error details exposed to clients
  • Account deletion API for data privacy
2

Project Plan

The development plan AI organized from the prompt.

Idea
A mobile app for evaluating business ideas through swipe gestures. Auto-crawls ideas with GitHub repos from Hacker News, lets users swipe to rate them Tinder-style. Community vote-based rankings, favorites list, and GitHub OAuth integration.
Core Features
Swipe voting (Like/Pass/Super Like), HN idea auto-crawling (every 6 hours), Rankings & stats (all-time/weekly/monthly), Favorites + notes, GitHub OAuth login
Tech Stack
React Native (Expo SDK 54, expo-router), Cloudflare Workers (Hono) + D1, Cloudflare Cron Triggers, GitHub OAuth
3

Development Journey

A summary of 17 snapshots recorded during AI development. Clone the project to explore the full history.

v17 2026-03-04

2026-03-04

  • ยท Added Google Sign In alongside existing Apple and GitHub OAuth
  • ยท Implemented server-side Google OAuth 2.0 redirect flow (same pattern as GitHub), fixed ON CONFLICT upsert by using SELECTโ†’INSERTโ†’SELECT pattern due to SQLite partial index limitation
  • ยท Fixed provider badge display by adding has_github/has_apple/has_google flags to /me endpoint
  • ยท Fixed username normalization for non-ASCII names by preferring email prefix
  • ยท Redesigned sign-in UI: provider-agnostic copy, ScrollView wrapper, unified button styles (h46/r12), button order Googleโ†’Appleโ†’GitHub
  • ยท Completed deep link sharing: share.ts OG HTML page, IdeaCard share button, app/idea/[id].tsx detail modal
  • ยท Various UI fixes: counter spacing in header, Favorites title padding, sign-in button width reduction
Detail

joltit

Product Idea

์Šค์™€์ดํ”„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์—… ์•„์ด๋””์–ด๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๋ชจ๋ฐ”์ผ ์•ฑ. ํ•ด์ปค๋‰ด์Šค์—์„œ GitHub ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ์•„์ด๋””์–ด๋ฅผ ์ž๋™ ํฌ๋กค๋งํ•˜๊ณ , ํ‹ด๋”์ฒ˜๋Ÿผ ์Šค์™€์ดํ”„ํ•˜์—ฌ ํ‰๊ฐ€. ์ปค๋ฎค๋‹ˆํ‹ฐ ํˆฌํ‘œ ๊ธฐ๋ฐ˜ ๋žญํ‚น, ์ฐœ ๋ชฉ๋ก, GitHub OAuth ์—ฐ๋™.

Features

  • ์Šค์™€์ดํ”„ ํ‰๊ฐ€ (Like/Pass/Super Like)
  • HN ์•„์ด๋””์–ด ์ž๋™ ํฌ๋กค๋ง (6์‹œ๊ฐ„๋งˆ๋‹ค)
  • ๋žญํ‚น/ํ†ต๊ณ„ (์ „์ฒด/์ฃผ๊ฐ„/์›”๊ฐ„)
  • ์ฐœ ๋ชฉ๋ก + ๋ฉ”๋ชจ
  • GitHub OAuth ๋กœ๊ทธ์ธ

Tech Stack

React Native (Expo SDK 54, expo-router), Cloudflare Workers (Hono) + D1, Cloudflare Cron Triggers, GitHub OAuth

Progress

  • Project setup
  • Core features implementation
  • Testing & polish

Snapshot Log

v1 โ€” 2026-02-28 ยท Initial Plan

  • pmpt ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”, plan.md + pmpt.ai.md ์ƒ์„ฑ
  • ์ดˆ๊ธฐ ํ…Œํฌ์Šคํƒ: Supabase + PostgreSQL + Node.js

v2 โ€” 2026-02-28 ยท Tech Stack Migration

  • ํ…Œํฌ์Šคํƒ ์ „ํ™˜: Supabase โ†’ Cloudflare Workers (Hono) + D1
  • ํฌ๋กค๋ง ์†Œ์Šค ์ •๋ฆฌ (Reddit ์ œ๊ฑฐ, HN ์ค‘์‹ฌ)
  • ๋ณด์•ˆ ์„น์…˜ ์ถ”๊ฐ€ (AES-GCM ํ† ํฐ ์•”ํ˜ธํ™”, JWT, CORS, Rate Limiting)

v3 โ€” 2026-03-01 ยท Core Architecture

  • ์นด๋“œ ๋””์ž์ธ ์ƒ์„ธํ™” (์†Œ์Šค ์ปฌ๋Ÿฌ ํ—ค๋”, ํˆฌํ‘œ ๊ทธ๋ฆฌ๋“œ, GitHub ์นด๋“œ)
  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํ™•์žฅ (github_url, stars, forks, language, tags, impression_count ๋“ฑ)
  • ํ”ผ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (impression ๊ธฐ๋ฐ˜ ๊ณต์ • ๋…ธ์ถœ) + ๋žญํ‚น ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์Šน์ธ์œจ ๊ธฐ๋ฐ˜)
  • Cross-tab ์ƒํƒœ ๊ด€๋ฆฌ (LocalVotesContext)

v4 โ€” 2026-03-01 ยท Algorithm Refinement

  • ๋žญํ‚น ์ตœ์†Œ ๋…ธ์ถœ 10โ†’1๋กœ ์™„ํ™”
  • ํ”ผ๋“œ ์ •๋ ฌ RANDOM() โ†’ deterministic (id ASC) ๋ณ€๊ฒฝ
  • GitHub-only ํ•„ํ„ฐ ์ ์šฉ (GitHub URL ์žˆ๋Š” ์•„์ด๋””์–ด๋งŒ ์ €์žฅ)
  • HTML ์—”ํ‹ฐํ‹ฐ ๋””์ฝ”๋”ฉ, useRef ํŒจํ„ด์œผ๋กœ stale closure ๋ฐฉ์ง€
  • ์นด๋“œ Sticky Footer ๋””์ž์ธ

v5 โ€” 2026-03-01 ยท Rankings Polish

  • ํˆฌํ‘œ 0๊ฑด ์•„์ด๋””์–ด ๋žญํ‚น์—์„œ ์ˆจ๊น€ ์ฒ˜๋ฆฌ

v6~v8 โ€” 2026-03-01 ยท API Pagination & Docs

  • API ideas ์—”๋“œํฌ์ธํŠธ์— pagination ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ (page, offset, total, totalPages, hasMore)
  • COUNT ์ฟผ๋ฆฌ Promise.all ๋ณ‘๋ ฌ ์‹คํ–‰์œผ๋กœ ์„ฑ๋Šฅ ์ตœ์ ํ™”
  • pmpt docs ๋ณต์› ๋ฐ ์ •๋ฆฌ, ํ˜„์žฌ DB 142๊ฐœ ์•„์ด๋””์–ด

v9 โ€” 2026-03-01 ยท Commit & Publish

  • Git ์ปค๋ฐ‹/ํ‘ธ์‹œ ์™„๋ฃŒ (ee9a50a)
  • pmptwiki ์ฒซ ํผ๋ธ”๋ฆฌ์‹œ ์™„๋ฃŒ

v9 โ€” 2026-03-01

  • Snapshot Log ์ •๋ฆฌ โ€” v1~v9 ์ „์ฒด ์ด๋ ฅ ๊ธฐ๋ก ์™„์„ฑ

v10 โ€” 2026-03-01

  • Pre-publish ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์™„๋ฃŒ โ€” ์ „์ฒด ์Šค๋ƒ…์ƒท .meta.json note ๋ณด๊ฐ• ๋ฐ pmpt.md Snapshot Log ์ •๋น„

v11 โ€” 2026-03-01

  • Translate plan.md and plan-progress.json to English for international audience

v12 โ€” Multi-source Crawlers + Onboarding + UI Polish

  • DEV.to + GitHub Search ํฌ๋กค๋Ÿฌ ์ถ”๊ฐ€ (๋ผ์šด๋“œ๋กœ๋นˆ ์Šค์ผ€์ค„๋ง์œผ๋กœ Cloudflare 50 subrequest ์ œํ•œ ๋Œ€์‘), ์˜จ๋ณด๋”ฉ 3ํŽ˜์ด์ง€ ํ”Œ๋กœ์šฐ, Favorite ์ƒ์„ธ ๋ชจ๋‹ฌ ํŽ˜์ด์ง€, Rankings Daily ํƒญ, ํ”„๋กœํ•„ ์ˆซ์ž ํฌ๋งท (1k+234), ์นด๋“œ/๋ฒ„ํŠผ ํฌ๊ธฐ ๊ฐœ์„ , ์Šค์™€์ดํ”„ ํžŒํŠธ ํˆดํŒ

v12 โ€” 2026-03-01

  • DEV.to + GitHub Search ํฌ๋กค๋Ÿฌ ์ถ”๊ฐ€ (๋ผ์šด๋“œ๋กœ๋นˆ ์Šค์ผ€์ค„๋ง), ์˜จ๋ณด๋”ฉ 3ํŽ˜์ด์ง€ ํ”Œ๋กœ์šฐ, Favorite ์ƒ์„ธ ๋ชจ๋‹ฌ ํŽ˜์ด์ง€, Daily ๋žญํ‚น ํƒญ, ํ”„๋กœํ•„ 1k+234 ํฌ๋งท, ์Šค์™€์ดํ”„ ํžŒํŠธ ํˆดํŒ, ์นด๋“œ/๋ฒ„ํŠผ ๋ ˆ์ด์•„์›ƒ ๊ฐœ์„ 

v13 โ€” 2026-03-02

  • Implemented Impression system โ€” Super Like triggers bottom-sheet modal for writing 300-char first impressions with inspiration prompts. Added daily quotes in Discover header, reflection prompts in empty state, My Impressions section in Profile with teal-bordered cards, Idea Explorer level badges (Lv1-5), full impressions list page, and impression display in Favorite detail. Backend: new impression/vote_type columns on user_favorites, GET /api/favorites/impressions, POST /api/favorites/:id/impression endpoints.

v14 โ€” 2026-03-02

  • Implemented Collections feature โ€” users can create named collections (like playlists) to organize favorites. Added user_collections + collection_items tables, full CRUD API, CollectionCard/CreateCollectionModal/AddToCollectionSheet components, collection detail screen, and redesigned Favorites tab with horizontal collection scroll.

v15 โ€” 2026-03-02

  • Added GitHub README excerpt feature - crawls first paragraph from README.md and displays on Discover cards. Backend: enricher fetches from raw.githubusercontent.com, parses markdown to extract meaningful first paragraph (500 char limit), runs in Round A cron cycle. Frontend: IdeaCard shows README excerpt in styled card with tagline fallback. Backfilled 34/250 existing ideas.

v16 โ€” 2026-03-04

  • Implemented deep link idea sharing end-to-end
  • API: added GET /share/:id route (outside /api/ prefix to bypass rate limiter) that returns an OG HTML page with og:title, og:description, og:image meta tags and a meta refresh redirect to joltit://idea/[id]
  • Mobile app: created app/idea/[id].tsx modal screen that fetches the idea via API and shows full detail (source banner, title, description, GitHub card, votes, tags, links); added idea/[id] Stack.Screen to _layout.tsx; added SHARE_BASE_URL constant to config.ts; added share-outline icon button to the top-right metaRow of each IdeaCard that triggers iOS/Android native Share sheet
  • Deployed to Cloudflare Workers โ€” OG HTML and deep link redirect verified live

v17 โ€” 2026-03-04

  • Added Google Sign In alongside existing Apple and GitHub OAuth
  • Implemented server-side Google OAuth 2.0 redirect flow (same pattern as GitHub), fixed ON CONFLICT upsert by using SELECTโ†’INSERTโ†’SELECT pattern due to SQLite partial index limitation
  • Fixed provider badge display by adding has_github/has_apple/has_google flags to /me endpoint
  • Fixed username normalization for non-ASCII names by preferring email prefix
  • Redesigned sign-in UI: provider-agnostic copy, ScrollView wrapper, unified button styles (h46/r12), button order Googleโ†’Appleโ†’GitHub
  • Completed deep link sharing: share.ts OG HTML page, IdeaCard share button, app/idea/[id].tsx detail modal
  • Various UI fixes: counter spacing in header, Favorites title padding, sign-in button width reduction

Files (2)

plan.mdpmpt.ai.md
v16 2026-03-04

2026-03-04

  • ยท Implemented deep link idea sharing end-to-end
  • ยท API: added GET /share/:id route (outside /api/ prefix to bypass rate limiter) that returns an OG HTML page with og:title, og:description, og:image meta tags and a meta refresh redirect to joltit://idea/[id]
  • ยท Mobile app: created app/idea/[id].tsx modal screen that fetches the idea via API and shows full detail (source banner, title, description, GitHub card, votes, tags, links); added idea/[id] Stack.Screen to _layout.tsx; added SHARE_BASE_URL constant to config.ts; added share-outline icon button to the top-right metaRow of each IdeaCard that triggers iOS/Android native Share sheet
  • ยท Deployed to Cloudflare Workers โ€” OG HTML and deep link redirect verified live
Detail

joltit

Product Idea

์Šค์™€์ดํ”„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์—… ์•„์ด๋””์–ด๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๋ชจ๋ฐ”์ผ ์•ฑ. ํ•ด์ปค๋‰ด์Šค์—์„œ GitHub ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ์•„์ด๋””์–ด๋ฅผ ์ž๋™ ํฌ๋กค๋งํ•˜๊ณ , ํ‹ด๋”์ฒ˜๋Ÿผ ์Šค์™€์ดํ”„ํ•˜์—ฌ ํ‰๊ฐ€. ์ปค๋ฎค๋‹ˆํ‹ฐ ํˆฌํ‘œ ๊ธฐ๋ฐ˜ ๋žญํ‚น, ์ฐœ ๋ชฉ๋ก, GitHub OAuth ์—ฐ๋™.

Features

  • ์Šค์™€์ดํ”„ ํ‰๊ฐ€ (Like/Pass/Super Like)
  • HN ์•„์ด๋””์–ด ์ž๋™ ํฌ๋กค๋ง (6์‹œ๊ฐ„๋งˆ๋‹ค)
  • ๋žญํ‚น/ํ†ต๊ณ„ (์ „์ฒด/์ฃผ๊ฐ„/์›”๊ฐ„)
  • ์ฐœ ๋ชฉ๋ก + ๋ฉ”๋ชจ
  • GitHub OAuth ๋กœ๊ทธ์ธ

Tech Stack

React Native (Expo SDK 54, expo-router), Cloudflare Workers (Hono) + D1, Cloudflare Cron Triggers, GitHub OAuth

Progress

  • Project setup
  • Core features implementation
  • Testing & polish

Snapshot Log

v1 โ€” 2026-02-28 ยท Initial Plan

  • pmpt ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”, plan.md + pmpt.ai.md ์ƒ์„ฑ
  • ์ดˆ๊ธฐ ํ…Œํฌ์Šคํƒ: Supabase + PostgreSQL + Node.js

v2 โ€” 2026-02-28 ยท Tech Stack Migration

  • ํ…Œํฌ์Šคํƒ ์ „ํ™˜: Supabase โ†’ Cloudflare Workers (Hono) + D1
  • ํฌ๋กค๋ง ์†Œ์Šค ์ •๋ฆฌ (Reddit ์ œ๊ฑฐ, HN ์ค‘์‹ฌ)
  • ๋ณด์•ˆ ์„น์…˜ ์ถ”๊ฐ€ (AES-GCM ํ† ํฐ ์•”ํ˜ธํ™”, JWT, CORS, Rate Limiting)

v3 โ€” 2026-03-01 ยท Core Architecture

  • ์นด๋“œ ๋””์ž์ธ ์ƒ์„ธํ™” (์†Œ์Šค ์ปฌ๋Ÿฌ ํ—ค๋”, ํˆฌํ‘œ ๊ทธ๋ฆฌ๋“œ, GitHub ์นด๋“œ)
  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํ™•์žฅ (github_url, stars, forks, language, tags, impression_count ๋“ฑ)
  • ํ”ผ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (impression ๊ธฐ๋ฐ˜ ๊ณต์ • ๋…ธ์ถœ) + ๋žญํ‚น ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์Šน์ธ์œจ ๊ธฐ๋ฐ˜)
  • Cross-tab ์ƒํƒœ ๊ด€๋ฆฌ (LocalVotesContext)

v4 โ€” 2026-03-01 ยท Algorithm Refinement

  • ๋žญํ‚น ์ตœ์†Œ ๋…ธ์ถœ 10โ†’1๋กœ ์™„ํ™”
  • ํ”ผ๋“œ ์ •๋ ฌ RANDOM() โ†’ deterministic (id ASC) ๋ณ€๊ฒฝ
  • GitHub-only ํ•„ํ„ฐ ์ ์šฉ (GitHub URL ์žˆ๋Š” ์•„์ด๋””์–ด๋งŒ ์ €์žฅ)
  • HTML ์—”ํ‹ฐํ‹ฐ ๋””์ฝ”๋”ฉ, useRef ํŒจํ„ด์œผ๋กœ stale closure ๋ฐฉ์ง€
  • ์นด๋“œ Sticky Footer ๋””์ž์ธ

v5 โ€” 2026-03-01 ยท Rankings Polish

  • ํˆฌํ‘œ 0๊ฑด ์•„์ด๋””์–ด ๋žญํ‚น์—์„œ ์ˆจ๊น€ ์ฒ˜๋ฆฌ

v6~v8 โ€” 2026-03-01 ยท API Pagination & Docs

  • API ideas ์—”๋“œํฌ์ธํŠธ์— pagination ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ (page, offset, total, totalPages, hasMore)
  • COUNT ์ฟผ๋ฆฌ Promise.all ๋ณ‘๋ ฌ ์‹คํ–‰์œผ๋กœ ์„ฑ๋Šฅ ์ตœ์ ํ™”
  • pmpt docs ๋ณต์› ๋ฐ ์ •๋ฆฌ, ํ˜„์žฌ DB 142๊ฐœ ์•„์ด๋””์–ด

v9 โ€” 2026-03-01 ยท Commit & Publish

  • Git ์ปค๋ฐ‹/ํ‘ธ์‹œ ์™„๋ฃŒ (ee9a50a)
  • pmptwiki ์ฒซ ํผ๋ธ”๋ฆฌ์‹œ ์™„๋ฃŒ

v9 โ€” 2026-03-01

  • Snapshot Log ์ •๋ฆฌ โ€” v1~v9 ์ „์ฒด ์ด๋ ฅ ๊ธฐ๋ก ์™„์„ฑ

v10 โ€” 2026-03-01

  • Pre-publish ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์™„๋ฃŒ โ€” ์ „์ฒด ์Šค๋ƒ…์ƒท .meta.json note ๋ณด๊ฐ• ๋ฐ pmpt.md Snapshot Log ์ •๋น„

v11 โ€” 2026-03-01

  • Translate plan.md and plan-progress.json to English for international audience

v12 โ€” Multi-source Crawlers + Onboarding + UI Polish

  • DEV.to + GitHub Search ํฌ๋กค๋Ÿฌ ์ถ”๊ฐ€ (๋ผ์šด๋“œ๋กœ๋นˆ ์Šค์ผ€์ค„๋ง์œผ๋กœ Cloudflare 50 subrequest ์ œํ•œ ๋Œ€์‘), ์˜จ๋ณด๋”ฉ 3ํŽ˜์ด์ง€ ํ”Œ๋กœ์šฐ, Favorite ์ƒ์„ธ ๋ชจ๋‹ฌ ํŽ˜์ด์ง€, Rankings Daily ํƒญ, ํ”„๋กœํ•„ ์ˆซ์ž ํฌ๋งท (1k+234), ์นด๋“œ/๋ฒ„ํŠผ ํฌ๊ธฐ ๊ฐœ์„ , ์Šค์™€์ดํ”„ ํžŒํŠธ ํˆดํŒ

v12 โ€” 2026-03-01

  • DEV.to + GitHub Search ํฌ๋กค๋Ÿฌ ์ถ”๊ฐ€ (๋ผ์šด๋“œ๋กœ๋นˆ ์Šค์ผ€์ค„๋ง), ์˜จ๋ณด๋”ฉ 3ํŽ˜์ด์ง€ ํ”Œ๋กœ์šฐ, Favorite ์ƒ์„ธ ๋ชจ๋‹ฌ ํŽ˜์ด์ง€, Daily ๋žญํ‚น ํƒญ, ํ”„๋กœํ•„ 1k+234 ํฌ๋งท, ์Šค์™€์ดํ”„ ํžŒํŠธ ํˆดํŒ, ์นด๋“œ/๋ฒ„ํŠผ ๋ ˆ์ด์•„์›ƒ ๊ฐœ์„ 

v13 โ€” 2026-03-02

  • Implemented Impression system โ€” Super Like triggers bottom-sheet modal for writing 300-char first impressions with inspiration prompts. Added daily quotes in Discover header, reflection prompts in empty state, My Impressions section in Profile with teal-bordered cards, Idea Explorer level badges (Lv1-5), full impressions list page, and impression display in Favorite detail. Backend: new impression/vote_type columns on user_favorites, GET /api/favorites/impressions, POST /api/favorites/:id/impression endpoints.

v14 โ€” 2026-03-02

  • Implemented Collections feature โ€” users can create named collections (like playlists) to organize favorites. Added user_collections + collection_items tables, full CRUD API, CollectionCard/CreateCollectionModal/AddToCollectionSheet components, collection detail screen, and redesigned Favorites tab with horizontal collection scroll.

v15 โ€” 2026-03-02

  • Added GitHub README excerpt feature - crawls first paragraph from README.md and displays on Discover cards. Backend: enricher fetches from raw.githubusercontent.com, parses markdown to extract meaningful first paragraph (500 char limit), runs in Round A cron cycle. Frontend: IdeaCard shows README excerpt in styled card with tagline fallback. Backfilled 34/250 existing ideas.

v16 โ€” 2026-03-04

  • Implemented deep link idea sharing end-to-end
  • API: added GET /share/:id route (outside /api/ prefix to bypass rate limiter) that returns an OG HTML page with og:title, og:description, og:image meta tags and a meta refresh redirect to joltit://idea/[id]
  • Mobile app: created app/idea/[id].tsx modal screen that fetches the idea via API and shows full detail (source banner, title, description, GitHub card, votes, tags, links); added idea/[id] Stack.Screen to _layout.tsx; added SHARE_BASE_URL constant to config.ts; added share-outline icon button to the top-right metaRow of each IdeaCard that triggers iOS/Android native Share sheet
  • Deployed to Cloudflare Workers โ€” OG HTML and deep link redirect verified live

Files (2)

plan.mdpmpt.ai.md
v15 2026-03-02

2026-03-02

  • ยท Added GitHub README excerpt feature - crawls first paragraph from README.md and displays on Discover cards. Backend: enricher fetches from raw.githubusercontent.com, parses markdown to extract meaningful first paragraph (500 char limit), runs in Round A cron cycle. Frontend: IdeaCard shows README excerpt in styled card with tagline fallback. Backfilled 34/250 existing ideas.
Detail

joltit

Product Idea

์Šค์™€์ดํ”„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์—… ์•„์ด๋””์–ด๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๋ชจ๋ฐ”์ผ ์•ฑ. ํ•ด์ปค๋‰ด์Šค์—์„œ GitHub ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ์•„์ด๋””์–ด๋ฅผ ์ž๋™ ํฌ๋กค๋งํ•˜๊ณ , ํ‹ด๋”์ฒ˜๋Ÿผ ์Šค์™€์ดํ”„ํ•˜์—ฌ ํ‰๊ฐ€. ์ปค๋ฎค๋‹ˆํ‹ฐ ํˆฌํ‘œ ๊ธฐ๋ฐ˜ ๋žญํ‚น, ์ฐœ ๋ชฉ๋ก, GitHub OAuth ์—ฐ๋™.

Features

  • ์Šค์™€์ดํ”„ ํ‰๊ฐ€ (Like/Pass/Super Like)
  • HN ์•„์ด๋””์–ด ์ž๋™ ํฌ๋กค๋ง (6์‹œ๊ฐ„๋งˆ๋‹ค)
  • ๋žญํ‚น/ํ†ต๊ณ„ (์ „์ฒด/์ฃผ๊ฐ„/์›”๊ฐ„)
  • ์ฐœ ๋ชฉ๋ก + ๋ฉ”๋ชจ
  • GitHub OAuth ๋กœ๊ทธ์ธ

Tech Stack

React Native (Expo SDK 54, expo-router), Cloudflare Workers (Hono) + D1, Cloudflare Cron Triggers, GitHub OAuth

Progress

  • Project setup
  • Core features implementation
  • Testing & polish

Snapshot Log

v1 โ€” 2026-02-28 ยท Initial Plan

  • pmpt ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”, plan.md + pmpt.ai.md ์ƒ์„ฑ
  • ์ดˆ๊ธฐ ํ…Œํฌ์Šคํƒ: Supabase + PostgreSQL + Node.js

v2 โ€” 2026-02-28 ยท Tech Stack Migration

  • ํ…Œํฌ์Šคํƒ ์ „ํ™˜: Supabase โ†’ Cloudflare Workers (Hono) + D1
  • ํฌ๋กค๋ง ์†Œ์Šค ์ •๋ฆฌ (Reddit ์ œ๊ฑฐ, HN ์ค‘์‹ฌ)
  • ๋ณด์•ˆ ์„น์…˜ ์ถ”๊ฐ€ (AES-GCM ํ† ํฐ ์•”ํ˜ธํ™”, JWT, CORS, Rate Limiting)

v3 โ€” 2026-03-01 ยท Core Architecture

  • ์นด๋“œ ๋””์ž์ธ ์ƒ์„ธํ™” (์†Œ์Šค ์ปฌ๋Ÿฌ ํ—ค๋”, ํˆฌํ‘œ ๊ทธ๋ฆฌ๋“œ, GitHub ์นด๋“œ)
  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํ™•์žฅ (github_url, stars, forks, language, tags, impression_count ๋“ฑ)
  • ํ”ผ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (impression ๊ธฐ๋ฐ˜ ๊ณต์ • ๋…ธ์ถœ) + ๋žญํ‚น ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์Šน์ธ์œจ ๊ธฐ๋ฐ˜)
  • Cross-tab ์ƒํƒœ ๊ด€๋ฆฌ (LocalVotesContext)

v4 โ€” 2026-03-01 ยท Algorithm Refinement

  • ๋žญํ‚น ์ตœ์†Œ ๋…ธ์ถœ 10โ†’1๋กœ ์™„ํ™”
  • ํ”ผ๋“œ ์ •๋ ฌ RANDOM() โ†’ deterministic (id ASC) ๋ณ€๊ฒฝ
  • GitHub-only ํ•„ํ„ฐ ์ ์šฉ (GitHub URL ์žˆ๋Š” ์•„์ด๋””์–ด๋งŒ ์ €์žฅ)
  • HTML ์—”ํ‹ฐํ‹ฐ ๋””์ฝ”๋”ฉ, useRef ํŒจํ„ด์œผ๋กœ stale closure ๋ฐฉ์ง€
  • ์นด๋“œ Sticky Footer ๋””์ž์ธ

v5 โ€” 2026-03-01 ยท Rankings Polish

  • ํˆฌํ‘œ 0๊ฑด ์•„์ด๋””์–ด ๋žญํ‚น์—์„œ ์ˆจ๊น€ ์ฒ˜๋ฆฌ

v6~v8 โ€” 2026-03-01 ยท API Pagination & Docs

  • API ideas ์—”๋“œํฌ์ธํŠธ์— pagination ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ (page, offset, total, totalPages, hasMore)
  • COUNT ์ฟผ๋ฆฌ Promise.all ๋ณ‘๋ ฌ ์‹คํ–‰์œผ๋กœ ์„ฑ๋Šฅ ์ตœ์ ํ™”
  • pmpt docs ๋ณต์› ๋ฐ ์ •๋ฆฌ, ํ˜„์žฌ DB 142๊ฐœ ์•„์ด๋””์–ด

v9 โ€” 2026-03-01 ยท Commit & Publish

  • Git ์ปค๋ฐ‹/ํ‘ธ์‹œ ์™„๋ฃŒ (ee9a50a)
  • pmptwiki ์ฒซ ํผ๋ธ”๋ฆฌ์‹œ ์™„๋ฃŒ

v9 โ€” 2026-03-01

  • Snapshot Log ์ •๋ฆฌ โ€” v1~v9 ์ „์ฒด ์ด๋ ฅ ๊ธฐ๋ก ์™„์„ฑ

v10 โ€” 2026-03-01

  • Pre-publish ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์™„๋ฃŒ โ€” ์ „์ฒด ์Šค๋ƒ…์ƒท .meta.json note ๋ณด๊ฐ• ๋ฐ pmpt.md Snapshot Log ์ •๋น„

v11 โ€” 2026-03-01

  • Translate plan.md and plan-progress.json to English for international audience

v12 โ€” Multi-source Crawlers + Onboarding + UI Polish

  • DEV.to + GitHub Search ํฌ๋กค๋Ÿฌ ์ถ”๊ฐ€ (๋ผ์šด๋“œ๋กœ๋นˆ ์Šค์ผ€์ค„๋ง์œผ๋กœ Cloudflare 50 subrequest ์ œํ•œ ๋Œ€์‘), ์˜จ๋ณด๋”ฉ 3ํŽ˜์ด์ง€ ํ”Œ๋กœ์šฐ, Favorite ์ƒ์„ธ ๋ชจ๋‹ฌ ํŽ˜์ด์ง€, Rankings Daily ํƒญ, ํ”„๋กœํ•„ ์ˆซ์ž ํฌ๋งท (1k+234), ์นด๋“œ/๋ฒ„ํŠผ ํฌ๊ธฐ ๊ฐœ์„ , ์Šค์™€์ดํ”„ ํžŒํŠธ ํˆดํŒ

v12 โ€” 2026-03-01

  • DEV.to + GitHub Search ํฌ๋กค๋Ÿฌ ์ถ”๊ฐ€ (๋ผ์šด๋“œ๋กœ๋นˆ ์Šค์ผ€์ค„๋ง), ์˜จ๋ณด๋”ฉ 3ํŽ˜์ด์ง€ ํ”Œ๋กœ์šฐ, Favorite ์ƒ์„ธ ๋ชจ๋‹ฌ ํŽ˜์ด์ง€, Daily ๋žญํ‚น ํƒญ, ํ”„๋กœํ•„ 1k+234 ํฌ๋งท, ์Šค์™€์ดํ”„ ํžŒํŠธ ํˆดํŒ, ์นด๋“œ/๋ฒ„ํŠผ ๋ ˆ์ด์•„์›ƒ ๊ฐœ์„ 

v13 โ€” 2026-03-02

  • Implemented Impression system โ€” Super Like triggers bottom-sheet modal for writing 300-char first impressions with inspiration prompts. Added daily quotes in Discover header, reflection prompts in empty state, My Impressions section in Profile with teal-bordered cards, Idea Explorer level badges (Lv1-5), full impressions list page, and impression display in Favorite detail. Backend: new impression/vote_type columns on user_favorites, GET /api/favorites/impressions, POST /api/favorites/:id/impression endpoints.

v14 โ€” 2026-03-02

  • Implemented Collections feature โ€” users can create named collections (like playlists) to organize favorites. Added user_collections + collection_items tables, full CRUD API, CollectionCard/CreateCollectionModal/AddToCollectionSheet components, collection detail screen, and redesigned Favorites tab with horizontal collection scroll.

v15 โ€” 2026-03-02

  • Added GitHub README excerpt feature - crawls first paragraph from README.md and displays on Discover cards. Backend: enricher fetches from raw.githubusercontent.com, parses markdown to extract meaningful first paragraph (500 char limit), runs in Round A cron cycle. Frontend: IdeaCard shows README excerpt in styled card with tagline fallback. Backfilled 34/250 existing ideas.

Files (2)

plan.mdpmpt.ai.md
v14 2026-03-02

2026-03-02

  • ยท Implemented Collections feature โ€” users can create named collections (like playlists) to organize favorites. Added user_collections + collection_items tables, full CRUD API, CollectionCard/CreateCollectionModal/AddToCollectionSheet components, collection detail screen, and redesigned Favorites tab with horizontal collection scroll.
Detail

joltit

Product Idea

์Šค์™€์ดํ”„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์—… ์•„์ด๋””์–ด๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๋ชจ๋ฐ”์ผ ์•ฑ. ํ•ด์ปค๋‰ด์Šค์—์„œ GitHub ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ์•„์ด๋””์–ด๋ฅผ ์ž๋™ ํฌ๋กค๋งํ•˜๊ณ , ํ‹ด๋”์ฒ˜๋Ÿผ ์Šค์™€์ดํ”„ํ•˜์—ฌ ํ‰๊ฐ€. ์ปค๋ฎค๋‹ˆํ‹ฐ ํˆฌํ‘œ ๊ธฐ๋ฐ˜ ๋žญํ‚น, ์ฐœ ๋ชฉ๋ก, GitHub OAuth ์—ฐ๋™.

Features

  • ์Šค์™€์ดํ”„ ํ‰๊ฐ€ (Like/Pass/Super Like)
  • HN ์•„์ด๋””์–ด ์ž๋™ ํฌ๋กค๋ง (6์‹œ๊ฐ„๋งˆ๋‹ค)
  • ๋žญํ‚น/ํ†ต๊ณ„ (์ „์ฒด/์ฃผ๊ฐ„/์›”๊ฐ„)
  • ์ฐœ ๋ชฉ๋ก + ๋ฉ”๋ชจ
  • GitHub OAuth ๋กœ๊ทธ์ธ

Tech Stack

React Native (Expo SDK 54, expo-router), Cloudflare Workers (Hono) + D1, Cloudflare Cron Triggers, GitHub OAuth

Progress

  • Project setup
  • Core features implementation
  • Testing & polish

Snapshot Log

v1 โ€” 2026-02-28 ยท Initial Plan

  • pmpt ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”, plan.md + pmpt.ai.md ์ƒ์„ฑ
  • ์ดˆ๊ธฐ ํ…Œํฌ์Šคํƒ: Supabase + PostgreSQL + Node.js

v2 โ€” 2026-02-28 ยท Tech Stack Migration

  • ํ…Œํฌ์Šคํƒ ์ „ํ™˜: Supabase โ†’ Cloudflare Workers (Hono) + D1
  • ํฌ๋กค๋ง ์†Œ์Šค ์ •๋ฆฌ (Reddit ์ œ๊ฑฐ, HN ์ค‘์‹ฌ)
  • ๋ณด์•ˆ ์„น์…˜ ์ถ”๊ฐ€ (AES-GCM ํ† ํฐ ์•”ํ˜ธํ™”, JWT, CORS, Rate Limiting)

v3 โ€” 2026-03-01 ยท Core Architecture

  • ์นด๋“œ ๋””์ž์ธ ์ƒ์„ธํ™” (์†Œ์Šค ์ปฌ๋Ÿฌ ํ—ค๋”, ํˆฌํ‘œ ๊ทธ๋ฆฌ๋“œ, GitHub ์นด๋“œ)
  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํ™•์žฅ (github_url, stars, forks, language, tags, impression_count ๋“ฑ)
  • ํ”ผ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (impression ๊ธฐ๋ฐ˜ ๊ณต์ • ๋…ธ์ถœ) + ๋žญํ‚น ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์Šน์ธ์œจ ๊ธฐ๋ฐ˜)
  • Cross-tab ์ƒํƒœ ๊ด€๋ฆฌ (LocalVotesContext)

v4 โ€” 2026-03-01 ยท Algorithm Refinement

  • ๋žญํ‚น ์ตœ์†Œ ๋…ธ์ถœ 10โ†’1๋กœ ์™„ํ™”
  • ํ”ผ๋“œ ์ •๋ ฌ RANDOM() โ†’ deterministic (id ASC) ๋ณ€๊ฒฝ
  • GitHub-only ํ•„ํ„ฐ ์ ์šฉ (GitHub URL ์žˆ๋Š” ์•„์ด๋””์–ด๋งŒ ์ €์žฅ)
  • HTML ์—”ํ‹ฐํ‹ฐ ๋””์ฝ”๋”ฉ, useRef ํŒจํ„ด์œผ๋กœ stale closure ๋ฐฉ์ง€
  • ์นด๋“œ Sticky Footer ๋””์ž์ธ

v5 โ€” 2026-03-01 ยท Rankings Polish

  • ํˆฌํ‘œ 0๊ฑด ์•„์ด๋””์–ด ๋žญํ‚น์—์„œ ์ˆจ๊น€ ์ฒ˜๋ฆฌ

v6~v8 โ€” 2026-03-01 ยท API Pagination & Docs

  • API ideas ์—”๋“œํฌ์ธํŠธ์— pagination ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ (page, offset, total, totalPages, hasMore)
  • COUNT ์ฟผ๋ฆฌ Promise.all ๋ณ‘๋ ฌ ์‹คํ–‰์œผ๋กœ ์„ฑ๋Šฅ ์ตœ์ ํ™”
  • pmpt docs ๋ณต์› ๋ฐ ์ •๋ฆฌ, ํ˜„์žฌ DB 142๊ฐœ ์•„์ด๋””์–ด

v9 โ€” 2026-03-01 ยท Commit & Publish

  • Git ์ปค๋ฐ‹/ํ‘ธ์‹œ ์™„๋ฃŒ (ee9a50a)
  • pmptwiki ์ฒซ ํผ๋ธ”๋ฆฌ์‹œ ์™„๋ฃŒ

v9 โ€” 2026-03-01

  • Snapshot Log ์ •๋ฆฌ โ€” v1~v9 ์ „์ฒด ์ด๋ ฅ ๊ธฐ๋ก ์™„์„ฑ

v10 โ€” 2026-03-01

  • Pre-publish ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์™„๋ฃŒ โ€” ์ „์ฒด ์Šค๋ƒ…์ƒท .meta.json note ๋ณด๊ฐ• ๋ฐ pmpt.md Snapshot Log ์ •๋น„

v11 โ€” 2026-03-01

  • Translate plan.md and plan-progress.json to English for international audience

v12 โ€” Multi-source Crawlers + Onboarding + UI Polish

  • DEV.to + GitHub Search ํฌ๋กค๋Ÿฌ ์ถ”๊ฐ€ (๋ผ์šด๋“œ๋กœ๋นˆ ์Šค์ผ€์ค„๋ง์œผ๋กœ Cloudflare 50 subrequest ์ œํ•œ ๋Œ€์‘), ์˜จ๋ณด๋”ฉ 3ํŽ˜์ด์ง€ ํ”Œ๋กœ์šฐ, Favorite ์ƒ์„ธ ๋ชจ๋‹ฌ ํŽ˜์ด์ง€, Rankings Daily ํƒญ, ํ”„๋กœํ•„ ์ˆซ์ž ํฌ๋งท (1k+234), ์นด๋“œ/๋ฒ„ํŠผ ํฌ๊ธฐ ๊ฐœ์„ , ์Šค์™€์ดํ”„ ํžŒํŠธ ํˆดํŒ

v12 โ€” 2026-03-01

  • DEV.to + GitHub Search ํฌ๋กค๋Ÿฌ ์ถ”๊ฐ€ (๋ผ์šด๋“œ๋กœ๋นˆ ์Šค์ผ€์ค„๋ง), ์˜จ๋ณด๋”ฉ 3ํŽ˜์ด์ง€ ํ”Œ๋กœ์šฐ, Favorite ์ƒ์„ธ ๋ชจ๋‹ฌ ํŽ˜์ด์ง€, Daily ๋žญํ‚น ํƒญ, ํ”„๋กœํ•„ 1k+234 ํฌ๋งท, ์Šค์™€์ดํ”„ ํžŒํŠธ ํˆดํŒ, ์นด๋“œ/๋ฒ„ํŠผ ๋ ˆ์ด์•„์›ƒ ๊ฐœ์„ 

v13 โ€” 2026-03-02

  • Implemented Impression system โ€” Super Like triggers bottom-sheet modal for writing 300-char first impressions with inspiration prompts. Added daily quotes in Discover header, reflection prompts in empty state, My Impressions section in Profile with teal-bordered cards, Idea Explorer level badges (Lv1-5), full impressions list page, and impression display in Favorite detail. Backend: new impression/vote_type columns on user_favorites, GET /api/favorites/impressions, POST /api/favorites/:id/impression endpoints.

v14 โ€” 2026-03-02

  • Implemented Collections feature โ€” users can create named collections (like playlists) to organize favorites. Added user_collections + collection_items tables, full CRUD API, CollectionCard/CreateCollectionModal/AddToCollectionSheet components, collection detail screen, and redesigned Favorites tab with horizontal collection scroll.

Files (2)

plan.mdpmpt.ai.md
v13 2026-03-02

2026-03-02

  • ยท Implemented Impression system โ€” Super Like triggers bottom-sheet modal for writing 300-char first impressions with inspiration prompts. Added daily quotes in Discover header, reflection prompts in empty state, My Impressions section in Profile with teal-bordered cards, Idea Explorer level badges (Lv1-5), full impressions list page, and impression display in Favorite detail. Backend: new impression/vote_type columns on user_favorites, GET /api/favorites/impressions, POST /api/favorites/:id/impression endpoints.
Detail

joltit

Product Idea

์Šค์™€์ดํ”„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์—… ์•„์ด๋””์–ด๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๋ชจ๋ฐ”์ผ ์•ฑ. ํ•ด์ปค๋‰ด์Šค์—์„œ GitHub ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ์•„์ด๋””์–ด๋ฅผ ์ž๋™ ํฌ๋กค๋งํ•˜๊ณ , ํ‹ด๋”์ฒ˜๋Ÿผ ์Šค์™€์ดํ”„ํ•˜์—ฌ ํ‰๊ฐ€. ์ปค๋ฎค๋‹ˆํ‹ฐ ํˆฌํ‘œ ๊ธฐ๋ฐ˜ ๋žญํ‚น, ์ฐœ ๋ชฉ๋ก, GitHub OAuth ์—ฐ๋™.

Features

  • ์Šค์™€์ดํ”„ ํ‰๊ฐ€ (Like/Pass/Super Like)
  • HN ์•„์ด๋””์–ด ์ž๋™ ํฌ๋กค๋ง (6์‹œ๊ฐ„๋งˆ๋‹ค)
  • ๋žญํ‚น/ํ†ต๊ณ„ (์ „์ฒด/์ฃผ๊ฐ„/์›”๊ฐ„)
  • ์ฐœ ๋ชฉ๋ก + ๋ฉ”๋ชจ
  • GitHub OAuth ๋กœ๊ทธ์ธ

Tech Stack

React Native (Expo SDK 54, expo-router), Cloudflare Workers (Hono) + D1, Cloudflare Cron Triggers, GitHub OAuth

Progress

  • Project setup
  • Core features implementation
  • Testing & polish

Snapshot Log

v1 โ€” 2026-02-28 ยท Initial Plan

  • pmpt ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”, plan.md + pmpt.ai.md ์ƒ์„ฑ
  • ์ดˆ๊ธฐ ํ…Œํฌ์Šคํƒ: Supabase + PostgreSQL + Node.js

v2 โ€” 2026-02-28 ยท Tech Stack Migration

  • ํ…Œํฌ์Šคํƒ ์ „ํ™˜: Supabase โ†’ Cloudflare Workers (Hono) + D1
  • ํฌ๋กค๋ง ์†Œ์Šค ์ •๋ฆฌ (Reddit ์ œ๊ฑฐ, HN ์ค‘์‹ฌ)
  • ๋ณด์•ˆ ์„น์…˜ ์ถ”๊ฐ€ (AES-GCM ํ† ํฐ ์•”ํ˜ธํ™”, JWT, CORS, Rate Limiting)

v3 โ€” 2026-03-01 ยท Core Architecture

  • ์นด๋“œ ๋””์ž์ธ ์ƒ์„ธํ™” (์†Œ์Šค ์ปฌ๋Ÿฌ ํ—ค๋”, ํˆฌํ‘œ ๊ทธ๋ฆฌ๋“œ, GitHub ์นด๋“œ)
  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํ™•์žฅ (github_url, stars, forks, language, tags, impression_count ๋“ฑ)
  • ํ”ผ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (impression ๊ธฐ๋ฐ˜ ๊ณต์ • ๋…ธ์ถœ) + ๋žญํ‚น ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์Šน์ธ์œจ ๊ธฐ๋ฐ˜)
  • Cross-tab ์ƒํƒœ ๊ด€๋ฆฌ (LocalVotesContext)

v4 โ€” 2026-03-01 ยท Algorithm Refinement

  • ๋žญํ‚น ์ตœ์†Œ ๋…ธ์ถœ 10โ†’1๋กœ ์™„ํ™”
  • ํ”ผ๋“œ ์ •๋ ฌ RANDOM() โ†’ deterministic (id ASC) ๋ณ€๊ฒฝ
  • GitHub-only ํ•„ํ„ฐ ์ ์šฉ (GitHub URL ์žˆ๋Š” ์•„์ด๋””์–ด๋งŒ ์ €์žฅ)
  • HTML ์—”ํ‹ฐํ‹ฐ ๋””์ฝ”๋”ฉ, useRef ํŒจํ„ด์œผ๋กœ stale closure ๋ฐฉ์ง€
  • ์นด๋“œ Sticky Footer ๋””์ž์ธ

v5 โ€” 2026-03-01 ยท Rankings Polish

  • ํˆฌํ‘œ 0๊ฑด ์•„์ด๋””์–ด ๋žญํ‚น์—์„œ ์ˆจ๊น€ ์ฒ˜๋ฆฌ

v6~v8 โ€” 2026-03-01 ยท API Pagination & Docs

  • API ideas ์—”๋“œํฌ์ธํŠธ์— pagination ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ (page, offset, total, totalPages, hasMore)
  • COUNT ์ฟผ๋ฆฌ Promise.all ๋ณ‘๋ ฌ ์‹คํ–‰์œผ๋กœ ์„ฑ๋Šฅ ์ตœ์ ํ™”
  • pmpt docs ๋ณต์› ๋ฐ ์ •๋ฆฌ, ํ˜„์žฌ DB 142๊ฐœ ์•„์ด๋””์–ด

v9 โ€” 2026-03-01 ยท Commit & Publish

  • Git ์ปค๋ฐ‹/ํ‘ธ์‹œ ์™„๋ฃŒ (ee9a50a)
  • pmptwiki ์ฒซ ํผ๋ธ”๋ฆฌ์‹œ ์™„๋ฃŒ

v9 โ€” 2026-03-01

  • Snapshot Log ์ •๋ฆฌ โ€” v1~v9 ์ „์ฒด ์ด๋ ฅ ๊ธฐ๋ก ์™„์„ฑ

v10 โ€” 2026-03-01

  • Pre-publish ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์™„๋ฃŒ โ€” ์ „์ฒด ์Šค๋ƒ…์ƒท .meta.json note ๋ณด๊ฐ• ๋ฐ pmpt.md Snapshot Log ์ •๋น„

v11 โ€” 2026-03-01

  • Translate plan.md and plan-progress.json to English for international audience

v12 โ€” Multi-source Crawlers + Onboarding + UI Polish

  • DEV.to + GitHub Search ํฌ๋กค๋Ÿฌ ์ถ”๊ฐ€ (๋ผ์šด๋“œ๋กœ๋นˆ ์Šค์ผ€์ค„๋ง์œผ๋กœ Cloudflare 50 subrequest ์ œํ•œ ๋Œ€์‘), ์˜จ๋ณด๋”ฉ 3ํŽ˜์ด์ง€ ํ”Œ๋กœ์šฐ, Favorite ์ƒ์„ธ ๋ชจ๋‹ฌ ํŽ˜์ด์ง€, Rankings Daily ํƒญ, ํ”„๋กœํ•„ ์ˆซ์ž ํฌ๋งท (1k+234), ์นด๋“œ/๋ฒ„ํŠผ ํฌ๊ธฐ ๊ฐœ์„ , ์Šค์™€์ดํ”„ ํžŒํŠธ ํˆดํŒ

v12 โ€” 2026-03-01

  • DEV.to + GitHub Search ํฌ๋กค๋Ÿฌ ์ถ”๊ฐ€ (๋ผ์šด๋“œ๋กœ๋นˆ ์Šค์ผ€์ค„๋ง), ์˜จ๋ณด๋”ฉ 3ํŽ˜์ด์ง€ ํ”Œ๋กœ์šฐ, Favorite ์ƒ์„ธ ๋ชจ๋‹ฌ ํŽ˜์ด์ง€, Daily ๋žญํ‚น ํƒญ, ํ”„๋กœํ•„ 1k+234 ํฌ๋งท, ์Šค์™€์ดํ”„ ํžŒํŠธ ํˆดํŒ, ์นด๋“œ/๋ฒ„ํŠผ ๋ ˆ์ด์•„์›ƒ ๊ฐœ์„ 

v13 โ€” 2026-03-02

  • Implemented Impression system โ€” Super Like triggers bottom-sheet modal for writing 300-char first impressions with inspiration prompts. Added daily quotes in Discover header, reflection prompts in empty state, My Impressions section in Profile with teal-bordered cards, Idea Explorer level badges (Lv1-5), full impressions list page, and impression display in Favorite detail. Backend: new impression/vote_type columns on user_favorites, GET /api/favorites/impressions, POST /api/favorites/:id/impression endpoints.

Files (2)

plan.mdpmpt.ai.md
v12 2026-03-01

Multi-source Crawlers + Onboarding + UI Polish

  • ยท DEV.to + GitHub Search ํฌ๋กค๋Ÿฌ ์ถ”๊ฐ€ (๋ผ์šด๋“œ๋กœ๋นˆ ์Šค์ผ€์ค„๋ง์œผ๋กœ Cloudflare 50 subrequest ์ œํ•œ ๋Œ€์‘), ์˜จ๋ณด๋”ฉ 3ํŽ˜์ด์ง€ ํ”Œ๋กœ์šฐ, Favorite ์ƒ์„ธ ๋ชจ๋‹ฌ ํŽ˜์ด์ง€, Rankings Daily ํƒญ, ํ”„๋กœํ•„ ์ˆซ์ž ํฌ๋งท (1k+234), ์นด๋“œ/๋ฒ„ํŠผ ํฌ๊ธฐ ๊ฐœ์„ , ์Šค์™€์ดํ”„ ํžŒํŠธ ํˆดํŒ
Detail

joltit

Product Idea

์Šค์™€์ดํ”„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์—… ์•„์ด๋””์–ด๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๋ชจ๋ฐ”์ผ ์•ฑ. ํ•ด์ปค๋‰ด์Šค์—์„œ GitHub ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ์•„์ด๋””์–ด๋ฅผ ์ž๋™ ํฌ๋กค๋งํ•˜๊ณ , ํ‹ด๋”์ฒ˜๋Ÿผ ์Šค์™€์ดํ”„ํ•˜์—ฌ ํ‰๊ฐ€. ์ปค๋ฎค๋‹ˆํ‹ฐ ํˆฌํ‘œ ๊ธฐ๋ฐ˜ ๋žญํ‚น, ์ฐœ ๋ชฉ๋ก, GitHub OAuth ์—ฐ๋™.

Features

  • ์Šค์™€์ดํ”„ ํ‰๊ฐ€ (Like/Pass/Super Like)
  • HN ์•„์ด๋””์–ด ์ž๋™ ํฌ๋กค๋ง (6์‹œ๊ฐ„๋งˆ๋‹ค)
  • ๋žญํ‚น/ํ†ต๊ณ„ (์ „์ฒด/์ฃผ๊ฐ„/์›”๊ฐ„)
  • ์ฐœ ๋ชฉ๋ก + ๋ฉ”๋ชจ
  • GitHub OAuth ๋กœ๊ทธ์ธ

Tech Stack

React Native (Expo SDK 54, expo-router), Cloudflare Workers (Hono) + D1, Cloudflare Cron Triggers, GitHub OAuth

Progress

  • Project setup
  • Core features implementation
  • Testing & polish

Snapshot Log

v1 โ€” 2026-02-28 ยท Initial Plan

  • pmpt ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”, plan.md + pmpt.ai.md ์ƒ์„ฑ
  • ์ดˆ๊ธฐ ํ…Œํฌ์Šคํƒ: Supabase + PostgreSQL + Node.js

v2 โ€” 2026-02-28 ยท Tech Stack Migration

  • ํ…Œํฌ์Šคํƒ ์ „ํ™˜: Supabase โ†’ Cloudflare Workers (Hono) + D1
  • ํฌ๋กค๋ง ์†Œ์Šค ์ •๋ฆฌ (Reddit ์ œ๊ฑฐ, HN ์ค‘์‹ฌ)
  • ๋ณด์•ˆ ์„น์…˜ ์ถ”๊ฐ€ (AES-GCM ํ† ํฐ ์•”ํ˜ธํ™”, JWT, CORS, Rate Limiting)

v3 โ€” 2026-03-01 ยท Core Architecture

  • ์นด๋“œ ๋””์ž์ธ ์ƒ์„ธํ™” (์†Œ์Šค ์ปฌ๋Ÿฌ ํ—ค๋”, ํˆฌํ‘œ ๊ทธ๋ฆฌ๋“œ, GitHub ์นด๋“œ)
  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํ™•์žฅ (github_url, stars, forks, language, tags, impression_count ๋“ฑ)
  • ํ”ผ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (impression ๊ธฐ๋ฐ˜ ๊ณต์ • ๋…ธ์ถœ) + ๋žญํ‚น ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์Šน์ธ์œจ ๊ธฐ๋ฐ˜)
  • Cross-tab ์ƒํƒœ ๊ด€๋ฆฌ (LocalVotesContext)

v4 โ€” 2026-03-01 ยท Algorithm Refinement

  • ๋žญํ‚น ์ตœ์†Œ ๋…ธ์ถœ 10โ†’1๋กœ ์™„ํ™”
  • ํ”ผ๋“œ ์ •๋ ฌ RANDOM() โ†’ deterministic (id ASC) ๋ณ€๊ฒฝ
  • GitHub-only ํ•„ํ„ฐ ์ ์šฉ (GitHub URL ์žˆ๋Š” ์•„์ด๋””์–ด๋งŒ ์ €์žฅ)
  • HTML ์—”ํ‹ฐํ‹ฐ ๋””์ฝ”๋”ฉ, useRef ํŒจํ„ด์œผ๋กœ stale closure ๋ฐฉ์ง€
  • ์นด๋“œ Sticky Footer ๋””์ž์ธ

v5 โ€” 2026-03-01 ยท Rankings Polish

  • ํˆฌํ‘œ 0๊ฑด ์•„์ด๋””์–ด ๋žญํ‚น์—์„œ ์ˆจ๊น€ ์ฒ˜๋ฆฌ

v6~v8 โ€” 2026-03-01 ยท API Pagination & Docs

  • API ideas ์—”๋“œํฌ์ธํŠธ์— pagination ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ (page, offset, total, totalPages, hasMore)
  • COUNT ์ฟผ๋ฆฌ Promise.all ๋ณ‘๋ ฌ ์‹คํ–‰์œผ๋กœ ์„ฑ๋Šฅ ์ตœ์ ํ™”
  • pmpt docs ๋ณต์› ๋ฐ ์ •๋ฆฌ, ํ˜„์žฌ DB 142๊ฐœ ์•„์ด๋””์–ด

v9 โ€” 2026-03-01 ยท Commit & Publish

  • Git ์ปค๋ฐ‹/ํ‘ธ์‹œ ์™„๋ฃŒ (ee9a50a)
  • pmptwiki ์ฒซ ํผ๋ธ”๋ฆฌ์‹œ ์™„๋ฃŒ

v9 โ€” 2026-03-01

  • Snapshot Log ์ •๋ฆฌ โ€” v1~v9 ์ „์ฒด ์ด๋ ฅ ๊ธฐ๋ก ์™„์„ฑ

v10 โ€” 2026-03-01

  • Pre-publish ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์™„๋ฃŒ โ€” ์ „์ฒด ์Šค๋ƒ…์ƒท .meta.json note ๋ณด๊ฐ• ๋ฐ pmpt.md Snapshot Log ์ •๋น„

v11 โ€” 2026-03-01

  • Translate plan.md and plan-progress.json to English for international audience

v12 โ€” Multi-source Crawlers + Onboarding + UI Polish

  • DEV.to + GitHub Search ํฌ๋กค๋Ÿฌ ์ถ”๊ฐ€ (๋ผ์šด๋“œ๋กœ๋นˆ ์Šค์ผ€์ค„๋ง์œผ๋กœ Cloudflare 50 subrequest ์ œํ•œ ๋Œ€์‘), ์˜จ๋ณด๋”ฉ 3ํŽ˜์ด์ง€ ํ”Œ๋กœ์šฐ, Favorite ์ƒ์„ธ ๋ชจ๋‹ฌ ํŽ˜์ด์ง€, Rankings Daily ํƒญ, ํ”„๋กœํ•„ ์ˆซ์ž ํฌ๋งท (1k+234), ์นด๋“œ/๋ฒ„ํŠผ ํฌ๊ธฐ ๊ฐœ์„ , ์Šค์™€์ดํ”„ ํžŒํŠธ ํˆดํŒ

v12 โ€” 2026-03-01

  • DEV.to + GitHub Search ํฌ๋กค๋Ÿฌ ์ถ”๊ฐ€ (๋ผ์šด๋“œ๋กœ๋นˆ ์Šค์ผ€์ค„๋ง), ์˜จ๋ณด๋”ฉ 3ํŽ˜์ด์ง€ ํ”Œ๋กœ์šฐ, Favorite ์ƒ์„ธ ๋ชจ๋‹ฌ ํŽ˜์ด์ง€, Daily ๋žญํ‚น ํƒญ, ํ”„๋กœํ•„ 1k+234 ํฌ๋งท, ์Šค์™€์ดํ”„ ํžŒํŠธ ํˆดํŒ, ์นด๋“œ/๋ฒ„ํŠผ ๋ ˆ์ด์•„์›ƒ ๊ฐœ์„ 

Files (2)

plan.mdpmpt.ai.md
v11 2026-03-01

2026-03-01

  • ยท Translate plan.md and plan-progress.json to English for international audience
Detail

joltit

Product Idea

์Šค์™€์ดํ”„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์—… ์•„์ด๋””์–ด๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๋ชจ๋ฐ”์ผ ์•ฑ. ํ•ด์ปค๋‰ด์Šค์—์„œ GitHub ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ์•„์ด๋””์–ด๋ฅผ ์ž๋™ ํฌ๋กค๋งํ•˜๊ณ , ํ‹ด๋”์ฒ˜๋Ÿผ ์Šค์™€์ดํ”„ํ•˜์—ฌ ํ‰๊ฐ€. ์ปค๋ฎค๋‹ˆํ‹ฐ ํˆฌํ‘œ ๊ธฐ๋ฐ˜ ๋žญํ‚น, ์ฐœ ๋ชฉ๋ก, GitHub OAuth ์—ฐ๋™.

Features

  • ์Šค์™€์ดํ”„ ํ‰๊ฐ€ (Like/Pass/Super Like)
  • HN ์•„์ด๋””์–ด ์ž๋™ ํฌ๋กค๋ง (6์‹œ๊ฐ„๋งˆ๋‹ค)
  • ๋žญํ‚น/ํ†ต๊ณ„ (์ „์ฒด/์ฃผ๊ฐ„/์›”๊ฐ„)
  • ์ฐœ ๋ชฉ๋ก + ๋ฉ”๋ชจ
  • GitHub OAuth ๋กœ๊ทธ์ธ

Tech Stack

React Native (Expo SDK 54, expo-router), Cloudflare Workers (Hono) + D1, Cloudflare Cron Triggers, GitHub OAuth

Progress

  • Project setup
  • Core features implementation
  • Testing & polish

Snapshot Log

v1 โ€” 2026-02-28 ยท Initial Plan

  • pmpt ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”, plan.md + pmpt.ai.md ์ƒ์„ฑ
  • ์ดˆ๊ธฐ ํ…Œํฌ์Šคํƒ: Supabase + PostgreSQL + Node.js

v2 โ€” 2026-02-28 ยท Tech Stack Migration

  • ํ…Œํฌ์Šคํƒ ์ „ํ™˜: Supabase โ†’ Cloudflare Workers (Hono) + D1
  • ํฌ๋กค๋ง ์†Œ์Šค ์ •๋ฆฌ (Reddit ์ œ๊ฑฐ, HN ์ค‘์‹ฌ)
  • ๋ณด์•ˆ ์„น์…˜ ์ถ”๊ฐ€ (AES-GCM ํ† ํฐ ์•”ํ˜ธํ™”, JWT, CORS, Rate Limiting)

v3 โ€” 2026-03-01 ยท Core Architecture

  • ์นด๋“œ ๋””์ž์ธ ์ƒ์„ธํ™” (์†Œ์Šค ์ปฌ๋Ÿฌ ํ—ค๋”, ํˆฌํ‘œ ๊ทธ๋ฆฌ๋“œ, GitHub ์นด๋“œ)
  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํ™•์žฅ (github_url, stars, forks, language, tags, impression_count ๋“ฑ)
  • ํ”ผ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (impression ๊ธฐ๋ฐ˜ ๊ณต์ • ๋…ธ์ถœ) + ๋žญํ‚น ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์Šน์ธ์œจ ๊ธฐ๋ฐ˜)
  • Cross-tab ์ƒํƒœ ๊ด€๋ฆฌ (LocalVotesContext)

v4 โ€” 2026-03-01 ยท Algorithm Refinement

  • ๋žญํ‚น ์ตœ์†Œ ๋…ธ์ถœ 10โ†’1๋กœ ์™„ํ™”
  • ํ”ผ๋“œ ์ •๋ ฌ RANDOM() โ†’ deterministic (id ASC) ๋ณ€๊ฒฝ
  • GitHub-only ํ•„ํ„ฐ ์ ์šฉ (GitHub URL ์žˆ๋Š” ์•„์ด๋””์–ด๋งŒ ์ €์žฅ)
  • HTML ์—”ํ‹ฐํ‹ฐ ๋””์ฝ”๋”ฉ, useRef ํŒจํ„ด์œผ๋กœ stale closure ๋ฐฉ์ง€
  • ์นด๋“œ Sticky Footer ๋””์ž์ธ

v5 โ€” 2026-03-01 ยท Rankings Polish

  • ํˆฌํ‘œ 0๊ฑด ์•„์ด๋””์–ด ๋žญํ‚น์—์„œ ์ˆจ๊น€ ์ฒ˜๋ฆฌ

v6~v8 โ€” 2026-03-01 ยท API Pagination & Docs

  • API ideas ์—”๋“œํฌ์ธํŠธ์— pagination ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ (page, offset, total, totalPages, hasMore)
  • COUNT ์ฟผ๋ฆฌ Promise.all ๋ณ‘๋ ฌ ์‹คํ–‰์œผ๋กœ ์„ฑ๋Šฅ ์ตœ์ ํ™”
  • pmpt docs ๋ณต์› ๋ฐ ์ •๋ฆฌ, ํ˜„์žฌ DB 142๊ฐœ ์•„์ด๋””์–ด

v9 โ€” 2026-03-01 ยท Commit & Publish

  • Git ์ปค๋ฐ‹/ํ‘ธ์‹œ ์™„๋ฃŒ (ee9a50a)
  • pmptwiki ์ฒซ ํผ๋ธ”๋ฆฌ์‹œ ์™„๋ฃŒ

v9 โ€” 2026-03-01

  • Snapshot Log ์ •๋ฆฌ โ€” v1~v9 ์ „์ฒด ์ด๋ ฅ ๊ธฐ๋ก ์™„์„ฑ

v10 โ€” 2026-03-01

  • Pre-publish ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์™„๋ฃŒ โ€” ์ „์ฒด ์Šค๋ƒ…์ƒท .meta.json note ๋ณด๊ฐ• ๋ฐ pmpt.md Snapshot Log ์ •๋น„

v11 โ€” 2026-03-01

  • Translate plan.md and plan-progress.json to English for international audience

Files (2)

plan.mdpmpt.ai.md
v10 2026-03-01

2026-03-01

  • ยท Pre-publish ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์™„๋ฃŒ โ€” ์ „์ฒด ์Šค๋ƒ…์ƒท .meta.json note ๋ณด๊ฐ• ๋ฐ pmpt.md Snapshot Log ์ •๋น„
Detail

joltit

Product Idea

์Šค์™€์ดํ”„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์—… ์•„์ด๋””์–ด๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๋ชจ๋ฐ”์ผ ์•ฑ. ํ•ด์ปค๋‰ด์Šค์—์„œ GitHub ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ์•„์ด๋””์–ด๋ฅผ ์ž๋™ ํฌ๋กค๋งํ•˜๊ณ , ํ‹ด๋”์ฒ˜๋Ÿผ ์Šค์™€์ดํ”„ํ•˜์—ฌ ํ‰๊ฐ€. ์ปค๋ฎค๋‹ˆํ‹ฐ ํˆฌํ‘œ ๊ธฐ๋ฐ˜ ๋žญํ‚น, ์ฐœ ๋ชฉ๋ก, GitHub OAuth ์—ฐ๋™.

Features

  • ์Šค์™€์ดํ”„ ํ‰๊ฐ€ (Like/Pass/Super Like)
  • HN ์•„์ด๋””์–ด ์ž๋™ ํฌ๋กค๋ง (6์‹œ๊ฐ„๋งˆ๋‹ค)
  • ๋žญํ‚น/ํ†ต๊ณ„ (์ „์ฒด/์ฃผ๊ฐ„/์›”๊ฐ„)
  • ์ฐœ ๋ชฉ๋ก + ๋ฉ”๋ชจ
  • GitHub OAuth ๋กœ๊ทธ์ธ

Tech Stack

React Native (Expo SDK 54, expo-router), Cloudflare Workers (Hono) + D1, Cloudflare Cron Triggers, GitHub OAuth

Progress

  • Project setup
  • Core features implementation
  • Testing & polish

Snapshot Log

v1 โ€” 2026-02-28 ยท Initial Plan

  • pmpt ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”, plan.md + pmpt.ai.md ์ƒ์„ฑ
  • ์ดˆ๊ธฐ ํ…Œํฌ์Šคํƒ: Supabase + PostgreSQL + Node.js

v2 โ€” 2026-02-28 ยท Tech Stack Migration

  • ํ…Œํฌ์Šคํƒ ์ „ํ™˜: Supabase โ†’ Cloudflare Workers (Hono) + D1
  • ํฌ๋กค๋ง ์†Œ์Šค ์ •๋ฆฌ (Reddit ์ œ๊ฑฐ, HN ์ค‘์‹ฌ)
  • ๋ณด์•ˆ ์„น์…˜ ์ถ”๊ฐ€ (AES-GCM ํ† ํฐ ์•”ํ˜ธํ™”, JWT, CORS, Rate Limiting)

v3 โ€” 2026-03-01 ยท Core Architecture

  • ์นด๋“œ ๋””์ž์ธ ์ƒ์„ธํ™” (์†Œ์Šค ์ปฌ๋Ÿฌ ํ—ค๋”, ํˆฌํ‘œ ๊ทธ๋ฆฌ๋“œ, GitHub ์นด๋“œ)
  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํ™•์žฅ (github_url, stars, forks, language, tags, impression_count ๋“ฑ)
  • ํ”ผ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (impression ๊ธฐ๋ฐ˜ ๊ณต์ • ๋…ธ์ถœ) + ๋žญํ‚น ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์Šน์ธ์œจ ๊ธฐ๋ฐ˜)
  • Cross-tab ์ƒํƒœ ๊ด€๋ฆฌ (LocalVotesContext)

v4 โ€” 2026-03-01 ยท Algorithm Refinement

  • ๋žญํ‚น ์ตœ์†Œ ๋…ธ์ถœ 10โ†’1๋กœ ์™„ํ™”
  • ํ”ผ๋“œ ์ •๋ ฌ RANDOM() โ†’ deterministic (id ASC) ๋ณ€๊ฒฝ
  • GitHub-only ํ•„ํ„ฐ ์ ์šฉ (GitHub URL ์žˆ๋Š” ์•„์ด๋””์–ด๋งŒ ์ €์žฅ)
  • HTML ์—”ํ‹ฐํ‹ฐ ๋””์ฝ”๋”ฉ, useRef ํŒจํ„ด์œผ๋กœ stale closure ๋ฐฉ์ง€
  • ์นด๋“œ Sticky Footer ๋””์ž์ธ

v5 โ€” 2026-03-01 ยท Rankings Polish

  • ํˆฌํ‘œ 0๊ฑด ์•„์ด๋””์–ด ๋žญํ‚น์—์„œ ์ˆจ๊น€ ์ฒ˜๋ฆฌ

v6~v8 โ€” 2026-03-01 ยท API Pagination & Docs

  • API ideas ์—”๋“œํฌ์ธํŠธ์— pagination ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ (page, offset, total, totalPages, hasMore)
  • COUNT ์ฟผ๋ฆฌ Promise.all ๋ณ‘๋ ฌ ์‹คํ–‰์œผ๋กœ ์„ฑ๋Šฅ ์ตœ์ ํ™”
  • pmpt docs ๋ณต์› ๋ฐ ์ •๋ฆฌ, ํ˜„์žฌ DB 142๊ฐœ ์•„์ด๋””์–ด

v9 โ€” 2026-03-01 ยท Commit & Publish

  • Git ์ปค๋ฐ‹/ํ‘ธ์‹œ ์™„๋ฃŒ (ee9a50a)
  • pmptwiki ์ฒซ ํผ๋ธ”๋ฆฌ์‹œ ์™„๋ฃŒ

v9 โ€” 2026-03-01

  • Snapshot Log ์ •๋ฆฌ โ€” v1~v9 ์ „์ฒด ์ด๋ ฅ ๊ธฐ๋ก ์™„์„ฑ

v10 โ€” 2026-03-01

  • Pre-publish ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์™„๋ฃŒ โ€” ์ „์ฒด ์Šค๋ƒ…์ƒท .meta.json note ๋ณด๊ฐ• ๋ฐ pmpt.md Snapshot Log ์ •๋น„

Files (2)

plan.mdpmpt.ai.md
v9 2026-03-01

2026-03-01 ยท Commit & Publish

  • ยท Git ์ปค๋ฐ‹/ํ‘ธ์‹œ ์™„๋ฃŒ (ee9a50a)
  • ยท pmptwiki ์ฒซ ํผ๋ธ”๋ฆฌ์‹œ ์™„๋ฃŒ
Detail

joltit

Product Idea

์Šค์™€์ดํ”„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์—… ์•„์ด๋””์–ด๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๋ชจ๋ฐ”์ผ ์•ฑ. ํ•ด์ปค๋‰ด์Šค์—์„œ GitHub ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ์•„์ด๋””์–ด๋ฅผ ์ž๋™ ํฌ๋กค๋งํ•˜๊ณ , ํ‹ด๋”์ฒ˜๋Ÿผ ์Šค์™€์ดํ”„ํ•˜์—ฌ ํ‰๊ฐ€. ์ปค๋ฎค๋‹ˆํ‹ฐ ํˆฌํ‘œ ๊ธฐ๋ฐ˜ ๋žญํ‚น, ์ฐœ ๋ชฉ๋ก, GitHub OAuth ์—ฐ๋™.

Features

  • ์Šค์™€์ดํ”„ ํ‰๊ฐ€ (Like/Pass/Super Like)
  • HN ์•„์ด๋””์–ด ์ž๋™ ํฌ๋กค๋ง (6์‹œ๊ฐ„๋งˆ๋‹ค)
  • ๋žญํ‚น/ํ†ต๊ณ„ (์ „์ฒด/์ฃผ๊ฐ„/์›”๊ฐ„)
  • ์ฐœ ๋ชฉ๋ก + ๋ฉ”๋ชจ
  • GitHub OAuth ๋กœ๊ทธ์ธ

Tech Stack

React Native (Expo SDK 54, expo-router), Cloudflare Workers (Hono) + D1, Cloudflare Cron Triggers, GitHub OAuth

Progress

  • Project setup
  • Core features implementation
  • Testing & polish

Snapshot Log

v1 โ€” 2026-02-28 ยท Initial Plan

  • pmpt ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”, plan.md + pmpt.ai.md ์ƒ์„ฑ
  • ์ดˆ๊ธฐ ํ…Œํฌ์Šคํƒ: Supabase + PostgreSQL + Node.js

v2 โ€” 2026-02-28 ยท Tech Stack Migration

  • ํ…Œํฌ์Šคํƒ ์ „ํ™˜: Supabase โ†’ Cloudflare Workers (Hono) + D1
  • ํฌ๋กค๋ง ์†Œ์Šค ์ •๋ฆฌ (Reddit ์ œ๊ฑฐ, HN ์ค‘์‹ฌ)
  • ๋ณด์•ˆ ์„น์…˜ ์ถ”๊ฐ€ (AES-GCM ํ† ํฐ ์•”ํ˜ธํ™”, JWT, CORS, Rate Limiting)

v3 โ€” 2026-03-01 ยท Core Architecture

  • ์นด๋“œ ๋””์ž์ธ ์ƒ์„ธํ™” (์†Œ์Šค ์ปฌ๋Ÿฌ ํ—ค๋”, ํˆฌํ‘œ ๊ทธ๋ฆฌ๋“œ, GitHub ์นด๋“œ)
  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํ™•์žฅ (github_url, stars, forks, language, tags, impression_count ๋“ฑ)
  • ํ”ผ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (impression ๊ธฐ๋ฐ˜ ๊ณต์ • ๋…ธ์ถœ) + ๋žญํ‚น ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์Šน์ธ์œจ ๊ธฐ๋ฐ˜)
  • Cross-tab ์ƒํƒœ ๊ด€๋ฆฌ (LocalVotesContext)

v4 โ€” 2026-03-01 ยท Algorithm Refinement

  • ๋žญํ‚น ์ตœ์†Œ ๋…ธ์ถœ 10โ†’1๋กœ ์™„ํ™”
  • ํ”ผ๋“œ ์ •๋ ฌ RANDOM() โ†’ deterministic (id ASC) ๋ณ€๊ฒฝ
  • GitHub-only ํ•„ํ„ฐ ์ ์šฉ (GitHub URL ์žˆ๋Š” ์•„์ด๋””์–ด๋งŒ ์ €์žฅ)
  • HTML ์—”ํ‹ฐํ‹ฐ ๋””์ฝ”๋”ฉ, useRef ํŒจํ„ด์œผ๋กœ stale closure ๋ฐฉ์ง€
  • ์นด๋“œ Sticky Footer ๋””์ž์ธ

v5 โ€” 2026-03-01 ยท Rankings Polish

  • ํˆฌํ‘œ 0๊ฑด ์•„์ด๋””์–ด ๋žญํ‚น์—์„œ ์ˆจ๊น€ ์ฒ˜๋ฆฌ

v6~v8 โ€” 2026-03-01 ยท API Pagination & Docs

  • API ideas ์—”๋“œํฌ์ธํŠธ์— pagination ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ (page, offset, total, totalPages, hasMore)
  • COUNT ์ฟผ๋ฆฌ Promise.all ๋ณ‘๋ ฌ ์‹คํ–‰์œผ๋กœ ์„ฑ๋Šฅ ์ตœ์ ํ™”
  • pmpt docs ๋ณต์› ๋ฐ ์ •๋ฆฌ, ํ˜„์žฌ DB 142๊ฐœ ์•„์ด๋””์–ด

v9 โ€” 2026-03-01 ยท Commit & Publish

  • Git ์ปค๋ฐ‹/ํ‘ธ์‹œ ์™„๋ฃŒ (ee9a50a)
  • pmptwiki ์ฒซ ํผ๋ธ”๋ฆฌ์‹œ ์™„๋ฃŒ

v9 โ€” 2026-03-01

  • Snapshot Log ์ •๋ฆฌ โ€” v1~v9 ์ „์ฒด ์ด๋ ฅ ๊ธฐ๋ก ์™„์„ฑ

Files (2)

plan.mdpmpt.ai.md
v8 2026-03-01

2026-03-01

  • ยท Docs ๋ณต์› + API pagination ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ (page, offset, total, totalPages, hasMore)
Detail

joltit

Product Idea

์Šค์™€์ดํ”„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์—… ์•„์ด๋””์–ด๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๋ชจ๋ฐ”์ผ ์•ฑ. ํ•ด์ปค๋‰ด์Šค์—์„œ GitHub ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ์•„์ด๋””์–ด๋ฅผ ์ž๋™ ํฌ๋กค๋งํ•˜๊ณ , ํ‹ด๋”์ฒ˜๋Ÿผ ์Šค์™€์ดํ”„ํ•˜์—ฌ ํ‰๊ฐ€. ์ปค๋ฎค๋‹ˆํ‹ฐ ํˆฌํ‘œ ๊ธฐ๋ฐ˜ ๋žญํ‚น, ์ฐœ ๋ชฉ๋ก, GitHub OAuth ์—ฐ๋™.

Features

  • ์Šค์™€์ดํ”„ ํ‰๊ฐ€ (Like/Pass/Super Like)
  • HN ์•„์ด๋””์–ด ์ž๋™ ํฌ๋กค๋ง (6์‹œ๊ฐ„๋งˆ๋‹ค)
  • ๋žญํ‚น/ํ†ต๊ณ„ (์ „์ฒด/์ฃผ๊ฐ„/์›”๊ฐ„)
  • ์ฐœ ๋ชฉ๋ก + ๋ฉ”๋ชจ
  • GitHub OAuth ๋กœ๊ทธ์ธ

Tech Stack

React Native (Expo SDK 54, expo-router), Cloudflare Workers (Hono) + D1, Cloudflare Cron Triggers, GitHub OAuth

Progress

  • Project setup
  • Core features implementation
  • Testing & polish

Snapshot Log

v1 - Initial Setup

  • Project initialized with pmpt

This document tracks your project progress. Update it as you build. AI instructions are in pmpt.ai.md โ€” paste that into your AI tool.

v8 โ€” 2026-03-01

  • Docs ๋ณต์› + API pagination ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ (page, offset, total, totalPages, hasMore)

Files (2)

plan.mdpmpt.ai.md
v7 2026-03-01

Docs Restructure โ€” pmpt_plan ์‹คํ–‰์œผ๋กœ pmpt.md ์‹ ๊ทœ ์ƒ์„ฑ (ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ถ”์ ์šฉ). ๊ทธ๋Ÿฌ๋‚˜ pmpt_plan์ด ๊ธฐ์กด ์ƒ์„ธ docs๋ฅผ ๋ฎ์–ด์“ฐ๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ. plan.md๊ฐ€ ๊ฐ„๋žตํ•œ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๋Œ€์ฒด๋˜๊ณ , pmpt.ai.md์˜ ์ƒ์„ธ ์•„ํ‚คํ…์ฒ˜ ๋ฌธ์„œ๊ฐ€ ๋‹จ์ˆœ ์š”์•ฝ์œผ๋กœ ๊ต์ฒด๋จ. ์ดํ›„ v8์—์„œ v5 ์Šค๋ƒ…์ƒท ๊ธฐ๋ฐ˜์œผ๋กœ ๋ณต์› ์ง„ํ–‰.

plan.md, pmpt.ai.md, pmpt.md

Detail

joltit

Product Idea

์Šค์™€์ดํ”„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์—… ์•„์ด๋””์–ด๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๋ชจ๋ฐ”์ผ ์•ฑ. ํ•ด์ปค๋‰ด์Šค์—์„œ GitHub ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ์•„์ด๋””์–ด๋ฅผ ์ž๋™ ํฌ๋กค๋งํ•˜๊ณ , ํ‹ด๋”์ฒ˜๋Ÿผ ์Šค์™€์ดํ”„ํ•˜์—ฌ ํ‰๊ฐ€. ์ปค๋ฎค๋‹ˆํ‹ฐ ํˆฌํ‘œ ๊ธฐ๋ฐ˜ ๋žญํ‚น, ์ฐœ ๋ชฉ๋ก, GitHub OAuth ์—ฐ๋™.

Features

  • ์Šค์™€์ดํ”„ ํ‰๊ฐ€ (Like/Pass/Super Like)
  • HN ์•„์ด๋””์–ด ์ž๋™ ํฌ๋กค๋ง (6์‹œ๊ฐ„๋งˆ๋‹ค)
  • ๋žญํ‚น/ํ†ต๊ณ„ (์ „์ฒด/์ฃผ๊ฐ„/์›”๊ฐ„)
  • ์ฐœ ๋ชฉ๋ก + ๋ฉ”๋ชจ
  • GitHub OAuth ๋กœ๊ทธ์ธ

Tech Stack

React Native (Expo SDK 54, expo-router), Cloudflare Workers (Hono) + D1, Cloudflare Cron Triggers, GitHub OAuth

Progress

  • Project setup
  • Core features implementation
  • Testing & polish

Snapshot Log

v1 - Initial Setup

  • Project initialized with pmpt

This document tracks your project progress. Update it as you build. AI instructions are in pmpt.ai.md โ€” paste that into your AI tool.

Files (2)

plan.mdpmpt.ai.md
v6 2026-03-01

API ideas ์—”๋“œํฌ์ธํŠธ์— pagination ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ (page, offset, total, totalPages, hasMore). COUNT ์ฟผ๋ฆฌ๋ฅผ Promise.all๋กœ ๋ณ‘๋ ฌ ์‹คํ–‰ํ•˜์—ฌ ์„ฑ๋Šฅ ์ตœ์ ํ™”.

pmpt.ai.md

Detail

Files (2)

plan.mdpmpt.ai.md
v5 2026-03-01

2026-03-01 ยท Rankings Polish

  • ยท ํˆฌํ‘œ 0๊ฑด ์•„์ด๋””์–ด ๋žญํ‚น์—์„œ ์ˆจ๊น€ ์ฒ˜๋ฆฌ
Detail

Files (2)

plan.mdpmpt.ai.md
v4 2026-03-01

2026-03-01 ยท Algorithm Refinement

  • ยท ๋žญํ‚น ์ตœ์†Œ ๋…ธ์ถœ 10โ†’1๋กœ ์™„ํ™”
  • ยท ํ”ผ๋“œ ์ •๋ ฌ RANDOM() โ†’ deterministic (id ASC) ๋ณ€๊ฒฝ
  • ยท GitHub-only ํ•„ํ„ฐ ์ ์šฉ (GitHub URL ์žˆ๋Š” ์•„์ด๋””์–ด๋งŒ ์ €์žฅ)
  • ยท HTML ์—”ํ‹ฐํ‹ฐ ๋””์ฝ”๋”ฉ, useRef ํŒจํ„ด์œผ๋กœ stale closure ๋ฐฉ์ง€
  • ยท ์นด๋“œ Sticky Footer ๋””์ž์ธ
Detail

Files (2)

plan.mdpmpt.ai.md
v3 2026-03-01

2026-03-01 ยท Core Architecture

  • ยท ์นด๋“œ ๋””์ž์ธ ์ƒ์„ธํ™” (์†Œ์Šค ์ปฌ๋Ÿฌ ํ—ค๋”, ํˆฌํ‘œ ๊ทธ๋ฆฌ๋“œ, GitHub ์นด๋“œ)
  • ยท ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํ™•์žฅ (github_url, stars, forks, language, tags, impression_count ๋“ฑ)
  • ยท ํ”ผ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (impression ๊ธฐ๋ฐ˜ ๊ณต์ • ๋…ธ์ถœ) + ๋žญํ‚น ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์Šน์ธ์œจ ๊ธฐ๋ฐ˜)
  • ยท Cross-tab ์ƒํƒœ ๊ด€๋ฆฌ (LocalVotesContext)
Detail

Files (2)

plan.mdpmpt.ai.md
v2 2026-02-28

2026-02-28 ยท Tech Stack Migration

  • ยท ํ…Œํฌ์Šคํƒ ์ „ํ™˜: Supabase โ†’ Cloudflare Workers (Hono) + D1
  • ยท ํฌ๋กค๋ง ์†Œ์Šค ์ •๋ฆฌ (Reddit ์ œ๊ฑฐ, HN ์ค‘์‹ฌ)
  • ยท ๋ณด์•ˆ ์„น์…˜ ์ถ”๊ฐ€ (AES-GCM ํ† ํฐ ์•”ํ˜ธํ™”, JWT, CORS, Rate Limiting)
Detail

Files (2)

plan.mdpmpt.ai.md
v1 2026-02-28

2026-02-28 ยท Initial Plan

  • ยท pmpt ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”, plan.md + pmpt.ai.md ์ƒ์„ฑ
  • ยท ์ดˆ๊ธฐ ํ…Œํฌ์Šคํƒ: Supabase + PostgreSQL + Node.js
Detail

Files (2)

plan.mdpmpt.ai.md