Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
주말 등산 예보와 스노우도니아·레이크 디스트릭트·브리콘·케언검·사우스 다운스 중 한 곳을 추천합니다
Summit forecasts for Snowdonia, the Lake District, the Brecon Beacons, the Cairngorms and the South Downs, with one recommendation for the weekend.
라이프스타일TypeScript · CSSGitHub @gibbon-4-code온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기PoC for seeing the weather for different mountains near you
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Where should I hike, and when? Tell it where you're starting from (a postcode or a town), how long you'll drive and which day (up to two weeks ahead), and it ranks around 80 hikes across England and Wales, with Scotland to follow. The recommendation weighs three things: the weather while you'd be walking, the drive, and how good the hike is.
The destinations run from easy South Downs and Peak District walks to the big days in the Lake District and Snowdonia. They live in src/data/mountains/, one file per country.
Built with Next.js 16, TypeScript, Tailwind CSS, shadcn/ui and Auth.js.README 전문 보기 ↗Where should I hike, and when? Tell it where you're starting from (a postcode or a town), how long you'll drive and which day (up to two weeks ahead), and it ranks around 200 hikes across England, Wales and Scotland. The recommendation weighs three things: the weather while you'd be walking, the drive, and how good the hike is.
The destinations run from easy South Downs and Peak District walks to the big days in the Lake District, Snowdonia, Glen Coe, Skye and Torridon. They live in src/data/mountains/, one file per country.
Built with Next.js 16, TypeScript, Tailwind CSS, shadcn/ui and Auth.js.
Browser ──> /api/plan (Next.js server, needs sign-in)
├─ Open-Meteo (no key: forecast for every destination, sunrise and sunset)
├─ OpenRouteService (ORS_API_KEY, road drive times)
└─ postcodes.io (no key: turns your postcode or town into coordinates)
──> /api/second-opinion (needs sign-in, when you open a destination's details)
└─ Met Office Weather DataHub (MET_OFFICE_API_KEY, optional)
──> /api/scout (needs sign-in, when you press "Ask the Scout about this search")
└─ Claude, via the Anthropic API (ANTHROPIC_API_KEY, optional): an agent that calls
the app's own ranking and Met Office lookups as tools, then recommends a hill and a day
The Scout is an AI agent (src/lib/agent/) on the results page. It works from the search you ran (starting point, day, drive limit, walk length and your Settings weights) and may suggest the day either side instead. Claude decides which days and hills to look at using two tools, answers in a fixed format, and the app then checks the pick against its own safety rules and your filters before showing it. Each answer costs about 6–9 cents, so the same search's answer is reused for an hour. How it was built, stage by stage, is in docs/agent-journal.md, and npm run eval measures it against 15 test weekends (evals/scout/).
API keys never reach the browser. Only the server reads them (src/lib/env.ts is marked server-only).
One request covers every destination. Open-Meteo forecasts all of them in a single batched call, and OpenRouteService returns every drive time in one matrix call. The Met Office charges one call per mountain, so it's only asked about the mountain you open.
Each part falls back. Without a routing key it estimates drive times from straight-line distance. If the weather source fails, it uses generated demo data with a clear label.
Caching keeps you inside the free plans. Forecasts are cached for an hour and drive times for a day. The routes need sign-in, so strangers can't use up your allowance.
Scoring runs in the browser (src/lib/scoring.ts), so changing the weights in Settings updates the ranking instantly. It only looks at 09:00 to 16:00, counts wind for more on exposed ridges, trusts forecasts four or more days out less, and never recommends a day with dangerous gusts, thunder, heavy snow or severe wind chill.
You need Node.js 22 or newer.
npm install
cp .env.example .env.local # optional: the app runs without any keys
npm run dev # http://localhost:4317
With no keys at all, you get live Open-Meteo forecasts, estimated drive times, and sign-in switched off (local development only, with a banner saying so).
Other commands: npm test, npm run lint, npm run typecheck, npm run build.
All of these are free. Put the values in .env.local, which git ignores, and never in the code.
MET_OFFICE_API_KEY. It is optional: the app only calls it when you open a destination, once per mountain per hour.ORS_API_KEY.ANTHROPIC_API_KEY. Without it the Scout button says it isn't set up; everything else works.http://localhost:4317 and the callback URL to http://localhost:4317/api/auth/callback/github.AUTH_GITHUB_ID, then generate a secret and put it in AUTH_GITHUB_SECRET.npx auth secret (or openssl rand -base64 32) and put the result in AUTH_SECRET.ALLOWED_GITHUB_USERS. Nobody else will be able to sign in.Restart npm run dev after changing .env.local.
GitHub Pages can only serve static files, so it can't keep API keys secret. Instead, the code lives on GitHub and Vercel runs it for free:
.env.example that you use.https://<your-app>.vercel.app/api/auth/callback/github. A separate OAuth app for production is cleaner.main goes live, and every pull request gets its own preview URL.A production deployment without the AUTH_* variables won't serve any forecasts. It shows a "sign-in isn't configured" message rather than opening the app to everyone.
.env.local is git-ignored. Only .env.example, which has no values, is committed..env.local and in Vercel, redeploy, then revoke the old key.src/
app/
page.tsx dashboard (needs sign-in)
signin/page.tsx GitHub sign-in
api/plan/route.ts combines forecasts and drive times (needs sign-in)
api/second-opinion/ Met Office view of one destination (needs sign-in)
api/auth/[...nextauth]/ Auth.js handlers
auth.ts Auth.js setup and allowlist
data/mountains/ the destinations, one file per country
scripts/
check-mountains.mts checks the destinations against OpenStreetMap
lib/
env.ts server-only reading and checking of keys
plan.ts builds the plan for a day and applies the fallbacks
scoring.ts weather, travel and quality scores, safety vetoes, recommendation
providers/ Met Office, Open-Meteo, OpenRouteService, postcodes.io, demo data
components/ dashboard, cards, detail panel, chart, settings
src/data/mountains/. Each entry needs the summit position and height, the trailhead car park's position, the difficulty, the exposure (low, medium, high or extreme), a 1 to 5 quality rating, the route, the walking time and a town to stay in.npm run check:mountains -- src/data/mountains/wales.ts
This looks for a named peak near each summit and a car park near each trailhead, and lists anything that doesn't line up, with nearby alternatives. Add --fix to copy OpenStreetMap's summit position and height into the file wherever the name matches. The public Overpass server is shared and sometimes overloaded; if it keeps timing out, point the script at a mirror, for example OVERPASS_URL=https://maps.mail.ru/osm/tools/overpass/api/interpreter.npm test. A data test checks every entry is complete, inside Great Britain and has its trailhead within 12 km of its summit.Everything else in the app picks the new entry up automatically.
Summit positions and heights, and trailhead car parks, were checked against OpenStreetMap data, © OpenStreetMap contributors, available under the Open Database Licence. Weather from Open-Meteo (CC BY 4.0) and, optionally, the Met Office.
The scores are a planning aid, not a safety call. On the day, check the Met Office mountain forecast or MWIS, and make your own judgement on the hill.