Bygga
Type the product name from the box. Bygga shows every assembly step in 3D, with the parts, screws and tools for each one, and reads it out loud.
Tripfolio is a free travel map app: color the countries and US states you've visited, keep every trip with photos, and follow friends' maps. No download needed.
LifestyleTypeScript · CSSGitHub @meiryu100OnlineOwner 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
Tripfolio - social travel app with interactive world map
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗A social travel app built around an interactive world map. Mark the countries you've visited and the ones you want to visit, keep trips with dates, photos and notes, and explore the world through the people you follow.
Stack: Next.js 16 (App Router) · TypeScript · Tailwind CSS v4 · TanStack Query · Zustand (UI state) · Drizzle ORM · PostgreSQL 17 · S3-compatible storage (RustFS locally) · d3-geo map · zod
Requires Node 20+ and Docker Desktop.
npm install
cp .env.example .env.local # defaults match docker-compose.yml
docker compose up -d # PostgreSQL + S3 storage (creates the photos bucket)
npm run db:setup # migrate + load countries + demo community
npm run dev
The seed also creates a community of 21 travelers with real photos: @daniel.wanders plus 20 more defined in src/server/db/seed-travelers.json (10 male, 10 female, 2–3 countries each, 110 photos in total). Photos are downloaded from Wikimedia Commons at seed time (freely licensed; photographers and licenses are credited under each trip's gallery). This step needs an internet connection and takes about a minute and a half; if a download fails the trip is still created, just without that photo.
In development, emails (password resets) are printed in the terminal running npm run dev.
| Command | What it does |
|---|---|
npm run dev | Dev server |
npm run build / start | Production build / server |
npm run db:generate | Create a migration after editing src/server/db/schema.ts |
npm run db:migrate | Apply migrations |
npm run db:seed | Load countries + demo users (idempotent) |
npm run db:studio | Browse the database |
npm run countries | Rebuild src/data/* from the world-countries / world-atlas datasets |
Create an OAuth client at https://console.cloud.google.com/apis/credentials with the redirect URI {APP_URL}/api/auth/google/callback, then set GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET in .env.local. The “Continue with Google” button appears automatically.
Password-reset emails print to the server console until you set RESEND_API_KEY (from https://resend.com). MAIL_FROM defaults to [email protected], which Resend only delivers to your own account's address; verify a domain in Resend and set e.g. MAIL_FROM="Tripfolio <[email protected]>" to email everyone. Seeded @example.com accounts are never emailed.
src/
app/ Pages (App Router) and API route handlers (app/api/**)
features/ Feature modules: data hooks + feature components
auth/ map/ trips/ social/ explore/ profile/ settings/ stats/
components/ Shared UI (Button, Sheet, Avatar, cards, app shell…)
lib/ Client/shared: API client, types, validation (zod), utils
server/ Server-only code
db/ Drizzle schema, connection, seed data
auth/ Password hashing, sessions, Google OAuth
http/ Route wrapper (auth, CSRF, rate limits, errors), uploads
services/ Business logic + authorization (one file per domain)
storage/ S3 client + image processing (sharp)
proxy.ts Redirects signed-out visitors away from app pages
drizzle/ SQL migrations
scripts/ db-migrate, db-seed, build-countries
See ARCHITECTURE.md for the data model, API, security model and how to extend it.