Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
미니애폴리스·세인트폴 지역의 콘서트·스포츠·가족 나들이·축제 등 최신 소식
The pulse of the Twin Cities. Concerts, sports, family outings, festivals, and the wonderfully unique — all across the Minneapolis–St. Paul metro.
라이프스타일TypeScript · CSSGitHub @citypulsemn온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A hub for everything happening across the Twin Cities metro — both downtowns plus all first- and second-ring suburbs (Plymouth, Maple Grove, Bloomington, Edina, Woodbury, and the rest). A calendar, a Mapbox map, category filters (music, sports, family, arts, food, unique, festival), live text search, full event detail, and shareable event/day pages, in the City Pulse MN brand. Privacy-friendly analytics (Vercel). Password-protected admin dashboard. Row-level-security hardened. Weekly Instagram content generator. Email capture with owned subscriber list. Add-to-calendar (.ics + Google).README 전문 보기 ↗A hub for everything happening across the Twin Cities metro — both downtowns plus all first- and second-ring suburbs (Plymouth, Maple Grove, Bloomington, Edina, Woodbury, and the rest). A calendar, a Mapbox map, category filters (music, sports, family, arts, food, unique, festival), live text search, full event detail, and shareable event/day pages, in the City Pulse MN brand. Privacy-friendly analytics (Vercel). Password-protected admin dashboard. Row-level-security hardened. Weekly Instagram content generator. Email capture with owned subscriber list. Add-to-calendar (.ics + Google). Price & area filters. Curated collection landing pages. Weekly email digest. Community event submissions with admin moderation. Saved events (per-visitor list, no login). Content-based event classification. Venue-anchored discovery. Coverage monitor. Multi-day event handling. Freshness re-verification. Time integrity (all-day events, normalized timezones). Title hygiene (display-clean titles, canonical city names). First-party analytics (event_stats, admin engagement dashboard). Trending (decayed, intent-weighted ranking on the homepage and collections). Personalized digest (leads with each subscriber's saved events). Saved-list durability (signed magic links, cross-device merge). Neighborhoods (coordinate-derived districts with browse pages). Venue pages (registry-derived schedule pages with maps and Place JSON-LD). City landing pages (metro-wide, thin-content-guarded). Evergreen /this-weekend page (weekend clock, day-grouped). Instagram card generator (locked-rules admin tool). Responsive — tuned for laptop and phone. SEO-ready: schema.org event data, sitemap, and branded share cards.
Live at citypulsemn.com — hosted on Vercel, with the GoDaddy-registered domain pointed at it.
Events are kept fresh by an automated weekly pipeline: AI research agents find events, normalize and geocode them, and upsert them into Postgres; the website reads published rows. The database is the boundary between the two — see docs/ARCHITECTURE.md.
@anthropic-ai/sdk) — research agents with web searchnpm install
npm run dev # http://localhost:3000 (runs on bundled sample data)
Add DATABASE_URL and Mapbox/Anthropic keys to go live. Full path: docs/SETUP.md.
npm run dev # website (dev)
npm run build # type-check + build the site
npm test # unit tests (25): window logic, dedup key, price tiering
npm run pipeline # run the weekly research pipeline once (needs env)
| Doc | What's in it |
|---|---|
| DEPLOY-WALKTHROUGH.md | The friendly, detailed, no-experience-assumed version — every concept and click explained |
| ARCHITECTURE.md | System overview, the master flow diagram, where everything lives |
| DATABASE.md | Schema, the dedup key, lifecycle, time zones, provisioning Supabase/Neon |
| PIPELINE.md | The weekly automation: agents, normalize, upsert, auto-publish & hiding, scheduling |
| CONNECTORS-AND-TOOLS.md | Every external service, env var, and where to get each key |
| SETUP.md | Zero-to-live runbook with a verify checklist and troubleshooting |
app/ Website (Next.js App Router)
components/ Calendar, map, filters, detail panels
lib/
events.ts READ boundary (Postgres → EventRecord, sample fallback)
db.ts Postgres connection (Supabase/Neon)
event-key.ts Dedup key + price tiering (tested)
geocode.ts Mapbox geocoding
upsert.ts WRITE boundary (idempotent upsert + archive)
agents/ Research subagents (Claude + web_search) + prompts
dates.ts Calendar/window logic (tested)
scripts/run-pipeline.ts The weekly orchestrator
db/schema.sql Database schema
.github/workflows/ Weekly cron
examples/trigger-alternative/ Optional Trigger.dev version of the pipeline
See .env.example. Website needs DATABASE_URL + NEXT_PUBLIC_MAPBOX_TOKEN; the pipeline also needs ANTHROPIC_API_KEY + a Mapbox geocoding token. Full matrix in CONNECTORS-AND-TOOLS.md.