ai-startup-skills
AI 제품을 만드는 스타트업을 위한 7단계 에이전트 스킬: 검증 → 비즈플랜 → 정책 → 로드쇼 → 고객 확보 → 가격 책정 → 등록
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기CuriouslyCory's Developer Website
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
• Step 1: Clone the repository
• Step 2: Run npm install
• Step 3: ????
• Step 4: Profit
The website includes a custom blog system with the following features:README 전문 보기 ↗npm installThe website includes a custom blog system with the following features:
main. pnpm blog:index still works for local/dev use to extract metadata and searchable body content from custom post components and update the database. If OPENAI_API_KEY is set, the same run also (re-)embeds each post for semantic search — indexing is skipped for posts whose content hasn't changed since the last run, so a normal re-run costs no API calls; set FORCE_REEMBED=1 to force every post to re-embed regardless (useful after changing embedding logic). Editing a post's body requires re-running the indexer for the change to be searchable either way.Indexing runs in the Blog Indexing GitHub Action (.github/workflows/index-blog.yml): it triggers on push to main when files under src/app/blog/**, src/scripts/**, or prisma/** change, and can also be run manually via workflow_dispatch with a force input that sets FORCE_REEMBED to re-embed every post. The workflow applies pending Prisma migrations (pnpm db:migrate) and then runs pnpm blog:index.
The workflow needs the following repo secrets, set under Settings → Secrets and variables → Actions:
| Secret | Required | Purpose |
|---|---|---|
DATABASE_URL | Yes | Connection string used by db:migrate and blog:index |
OPENAI_API_KEY | No | Enables semantic-search embedding during indexing; without it, indexing is FTS-only |
DEFAULT_AUTHOR_ID | No | Fallback author ID for posts that don't specify one |
OPENAI_API_KEY must also be set in the Vercel project's environment variables — the GitHub secret only covers indexing, while query-time semantic search on /blog?q= runs in the deployed app.
/blog?q= searches post titles, excerpts, and body text using Postgres full-text search, and — when OPENAI_API_KEY is configured — blends in semantic (meaning-based) search so conceptual queries can find a relevant post even without matching keywords. The two result sets are merged into a single ranking; if no API key is set, or a query is too short, or the semantic lookup fails or times out, search transparently falls back to full-text search alone. Only published posts are matched, and only content as of the last time pnpm blog:index was run — if you edit a post's body, re-run the indexer for the change to show up in search results.
src/app/blog/your-post-slug/page.tsx file in that directory with your custom content---bm (this is what the indexer's parser looks for), and published: true is required — without it the post is treated as a draft and never appears in listings or search:/*
---bm
title: Your Post Title
excerpt: Short description of your post
coverImage: /images/blog/your-image.jpg
publishedAt: 2023-12-15
featured: true
published: true
tags: tag1,tag2,tag3
---
*/
The slug is taken from the directory name, not the metadata block. The block is parsed as YAML, so wrap any value containing a colon in quotes (e.g. title: "My Post: A Subtitle") — an unquoted : is read as a key/value separator and breaks parsing.
main and the blog-indexing GitHub Action will automatically index the new post (search and listings won't show it until then). The indexer extracts both metadata and searchable body content from the page component, so a merge that edits a post's body triggers re-indexing too. Before merging, run pnpm blog:index locally to verify the post extracts cleanly. Blog indexing is decoupled from the build. With OPENAI_API_KEY set, the same command also embeds the post for semantic search — the cost for a full blog's worth of posts is a few pennies at most, and unchanged posts are skipped automatically on re-runs (set FORCE_REEMBED=1 to bypass that and re-embed everything).| Command | Description |
|---|---|
pnpm dev | Start the local dev server with Turbopack |
pnpm lint | Run ESLint |
pnpm typecheck | Run the TypeScript compiler in --noEmit mode |
pnpm test | Run the Vitest test suite |
pnpm build | Build for production (does not touch the database) |
pnpm db:migrate | Apply Prisma migrations (prisma migrate deploy) — source of truth for schema changes; prefer this over prisma db push |
pnpm blog:index | Run the indexer: extract metadata and searchable body content from custom post components and update the database. Also (re-)embeds posts for semantic search when OPENAI_API_KEY is set, skipping any post whose content is unchanged since its last embed |
This is a T3 Stack project bootstrapped with create-t3-app.