Anonymous Santa Clauses
Draw names for Secret Santa with friends, family or the office. Free, no ads, no passwords: sign in with a magic link, share a code, roll the dice.
Regional mountain weather, a map, and posts
Translation pending
LifestyleTypeScript · JavaScriptGitHub @jakedclOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Mountain weather and trip reports for the Northeast
Taken from the repository README
Loading the full README.
Read the full README ↗Mountain weather and trip reports for the Northeast. Bannquet pulls National Weather Service forecasts for summits and valleys across the Adirondacks, Catskills, Shawangunks, Green Mountains, White Mountains and Maine, and keeps published trip reports for the crew.
Live at bannquet.com.
config/weather-regions.json, so adding a spot is a data change./peaks lists the Catskill 35, Adirondack 46, New Hampshire 48, Vermont 4000-footers, Maine 4000-footers, and the New England 67 as those three New England lists together. A summit counts only when someone logs “I climbed this.” The lists live in config/challenges. A finished list shows a small 88×31 badge on the stats page and on that person's profile. /stats keeps the miles, elevation, and summit leaderboards for on foot, bike, and ski./community links to posts, peaks, stats, trips, and the map. Posts, peaks, stats, and trips share a small sub-nav./trips is a light planner: a title, a date, notes, an I'm-in toggle, attached pins, routes and photos, and a shared packing list. Templates for day hike, overnight, winter, bike, and ski live in config/packing-templates.json../conditions, which lists the same National Weather Service extremes and the spots behind them.More detail on the weather endpoints is in API_DOCUMENTATION.md.
Next.js 16.3, React 19.2, TypeScript, Tailwind CSS 4, Framer Motion, Drizzle ORM, and Neon Postgres. Weather comes from the NWS API. Deployed on Vercel.
You need Node.js 20 or newer.
npm install
npm run dev
Then open http://localhost:3000. Copy .env.example to .env.local.
Weather pages work with no keys. Mountain fishing reads USGS water data without a key, on a low rate limit. Set USGS_WATER_DATA_API_KEY (or WATER_DATA_API_KEY) on Vercel for the higher limit. Trip reports stay empty until DATABASE_URL points at a Postgres database and the schema has been migrated. Reading the site stays public. Anyone can make an account at /sign-up. Until Jake approves them on /admin, they can sign in and read, but they cannot post or edit. An invite link from /admin still skips that wait. After that they sign in with email and password. ADMIN_EMAIL is the address that can sign in without an invite and is stored as admin. Sessions last a week and refresh when someone comes back, which is as long as Neon Auth keeps them. Photo uploads need BLOB_READ_WRITE_TOKEN from the Vercel Blob store.
DATABASE_URL is the pooled Neon connection (the host contains -pooler). DATABASE_URL_UNPOOLED is the direct connection Drizzle uses for migrations.
npm run db:generate # write a new SQL migration from src/db/schema.ts
npm run db:migrate # apply drizzle/ to DATABASE_URL_UNPOOLED
Run migrations against a Neon branch before production. The first migration enables PostGIS.
Old /trip-reports/<id> links redirect to /posts/<id>. The public feed is /posts. Profile pages live at /user/<username>; /hikers/<username> redirects there.
npm run dev starts the dev servernpm run build builds for productionnpm run start serves the production buildnpm run lint runs ESLintnpm run typecheck runs TypeScriptnpm test runs the small node testsThe live-conditions socket server for the user map is a separate project, bannquet-io.