Bumps the production group with 21 updates in the / directory: | Package | From | To | | --- | --- | --- | | [turbo](https://github.com/vercel/turborepo) | `2.9.17` | `2.9.18` | | [@logtape/logtape](https://github.com/dahlia/logtape/tree/HEAD/packages/logtape) | `2.1.1` | `2.1.3` | | [isbot](https://github.com/omrilotan/isbot) | `5.1.41` | `5.1.42` | | [nodemailer](https://github.com/nodemailer/nodemailer) | `8.0.10` | `8.0.11` | | [@types/nodemailer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/nodemailer) | `8.0.0` | `8.0.1` | | [@expo/metro-runtime](https://github.com/expo/expo) | `56.0.14` | `56.0.15` | | [@maplibre/maplibre-react-native](https://github.com/maplibre/maplibre-react-native) | `11.3.3` | `11.3.4` | | [expo](https://github.com/expo/expo/tree/HEAD/packages/expo) | `56.0.9` | `56.0.11` | | [expo-constants](https://github.com/expo/expo/tree/HEAD/packages/expo-constants) | `56.0.17` | `56.0.18` | | [expo-dev-client](https://github.com/expo/expo/tree/HEAD/packages/expo-dev-client) | `56.0.19` | `56.0.20` | | [expo-file-system](https://github.com/expo/expo/tree/HEAD/packages/expo-file-system) | `56.0.7` | `56.0.8` | | [expo-linking](https://github.com/expo/expo/tree/HEAD/packages/expo-linking) | `56.0.13` | `56.0.14` | | [expo-location](https://github.com/expo/expo/tree/HEAD/packages/expo-location) | `56.0.16` | `56.0.17` | | [expo-notifications](https://github.com/expo/expo/tree/HEAD/packages/expo-notifications) | `56.0.16` | `56.0.17` | | [expo-router](https://github.com/expo/expo/tree/HEAD/packages/expo-router) | `56.2.9` | `56.2.10` | | [expo-sqlite](https://github.com/expo/expo/tree/HEAD/packages/expo-sqlite) | `56.0.4` | `56.0.5` | | [@codemirror/view](https://github.com/codemirror/view) | `6.43.0` | `6.43.1` | | [pg-boss](https://github.com/timgit/pg-boss) | `12.18.2` | `12.18.3` | | [@sentry/node](https://github.com/getsentry/sentry-javascript) | `10.56.0` | `10.57.0` | | [@sentry/react](https://github.com/getsentry/sentry-javascript) | `10.53.1` | `10.57.0` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.19.20` | `22.19.21` | Updates `turbo` from 2.9.17 to 2.9.18 - [Release notes](https://github.com/vercel/turborepo/releases) - [Changelog](https://github.com/vercel/turborepo/blob/main/RELEASE.md) - [Commits](https://github.com/vercel/turborepo/compare/v2.9.17...v2.9.18) Updates `@logtape/logtape` from 2.1.1 to 2.1.3 - [Changelog](https://github.com/dahlia/logtape/blob/main/CHANGES.md) - [Commits](https://github.com/dahlia/logtape/commits/2.1.3/packages/logtape) Updates `isbot` from 5.1.41 to 5.1.42 - [Changelog](https://github.com/omrilotan/isbot/blob/main/CHANGELOG.md) - [Commits](https://github.com/omrilotan/isbot/compare/v5.1.41...v5.1.42) Updates `nodemailer` from 8.0.10 to 8.0.11 - [Release notes](https://github.com/nodemailer/nodemailer/releases) - [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodemailer/nodemailer/compare/v8.0.10...v8.0.11) Updates `@types/nodemailer` from 8.0.0 to 8.0.1 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/nodemailer) Updates `@types/nodemailer` from 8.0.0 to 8.0.1 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/nodemailer) Updates `@expo/metro-runtime` from 56.0.14 to 56.0.15 - [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits) Updates `@maplibre/maplibre-react-native` from 11.3.3 to 11.3.4 - [Release notes](https://github.com/maplibre/maplibre-react-native/releases) - [Changelog](https://github.com/maplibre/maplibre-react-native/blob/main/CHANGELOG.md) - [Commits](https://github.com/maplibre/maplibre-react-native/compare/v11.3.3...v11.3.4) Updates `expo` from 56.0.9 to 56.0.11 - [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo) Updates `expo-constants` from 56.0.17 to 56.0.18 - [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-constants) Updates `expo-dev-client` from 56.0.19 to 56.0.20 - [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-dev-client) Updates `expo-file-system` from 56.0.7 to 56.0.8 - [Changelog](https://github.com/expo/expo/blob/main/packages/expo-file-system/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-file-system) Updates `expo-linking` from 56.0.13 to 56.0.14 - [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-linking) Updates `expo-location` from 56.0.16 to 56.0.17 - [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-location) Updates `expo-notifications` from 56.0.16 to 56.0.17 - [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-notifications) Updates `expo-router` from 56.2.9 to 56.2.10 - [Changelog](https://github.com/expo/expo/blob/main/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-router) Updates `expo-sqlite` from 56.0.4 to 56.0.5 - [Changelog](https://github.com/expo/expo/blob/main/packages/expo-sqlite/CHANGELOG.md) - [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-sqlite) Updates `@codemirror/view` from 6.43.0 to 6.43.1 - [Changelog](https://github.com/codemirror/view/blob/main/CHANGELOG.md) - [Commits](https://github.com/codemirror/view/commits) Updates `pg-boss` from 12.18.2 to 12.18.3 - [Release notes](https://github.com/timgit/pg-boss/releases) - [Commits](https://github.com/timgit/pg-boss/compare/12.18.2...12.18.3) Updates `@sentry/node` from 10.56.0 to 10.57.0 - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/10.56.0...10.57.0) Updates `@sentry/react` from 10.53.1 to 10.57.0 - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/10.53.1...10.57.0) Updates `@types/node` from 22.19.20 to 22.19.21 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@codemirror/view" dependency-version: 6.43.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: "@expo/metro-runtime" dependency-version: 56.0.15 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: "@logtape/logtape" dependency-version: 2.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: "@maplibre/maplibre-react-native" dependency-version: 11.3.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: "@sentry/node" dependency-version: 10.57.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: production - dependency-name: "@sentry/react" dependency-version: 10.57.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: production - dependency-name: "@types/node" dependency-version: 22.19.21 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: "@types/nodemailer" dependency-version: 8.0.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: production - dependency-name: "@types/nodemailer" dependency-version: 8.0.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: production - dependency-name: expo dependency-version: 56.0.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: expo-constants dependency-version: 56.0.18 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: expo-dev-client dependency-version: 56.0.20 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: expo-file-system dependency-version: 56.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: expo-linking dependency-version: 56.0.14 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: expo-location dependency-version: 56.0.17 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: expo-notifications dependency-version: 56.0.17 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: expo-router dependency-version: 56.2.10 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: expo-sqlite dependency-version: 56.0.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: isbot dependency-version: 5.1.42 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: nodemailer dependency-version: 8.0.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: pg-boss dependency-version: 12.18.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: turbo dependency-version: 2.9.18 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: production ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|---|---|---|
| .agents/skills | ||
| .claude | ||
| .github | ||
| apps | ||
| docker/brouter | ||
| docs | ||
| e2e | ||
| infrastructure | ||
| openspec | ||
| packages | ||
| scripts | ||
| .dockerignore | ||
| .env.development.example | ||
| .gitignore | ||
| .gitleaks.toml | ||
| .mcp.json | ||
| .prettierrc | ||
| .sops.yaml | ||
| CLAUDE.md | ||
| CONTEXT.md | ||
| docker-compose.dev.yml | ||
| eslint.config.js | ||
| LICENSE | ||
| package.json | ||
| playwright.config.ts | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| SECURITY.md | ||
| tsconfig.base.json | ||
| turbo.json | ||
| vitest.config.ts | ||
| vitest.setup.ts | ||
| vitest.shared.ts | ||
trails.cool
Collaborative route planning and federated activity sharing for outdoor enthusiasts.
Planner — Plan routes together in real-time. Share a link, invite friends, edit waypoints collaboratively. Powered by BRouter for intelligent routing with elevation awareness.
Journal — Track your adventures. Import activities from Garmin, Strava, or Wahoo. Share routes and rides with friends. Self-host your own instance and federate with others via ActivityPub.
Status
Early development. See the architecture plan and project philosophy.
Project Structure
This is a TypeScript monorepo using pnpm workspaces and Turborepo.
apps/
planner/ Collaborative route editor (React Router 7 + Yjs + Leaflet)
journal/ Activity social platform (React Router 7 + Fedify + PostGIS)
packages/
types/ Shared TypeScript interfaces
ui/ Shared React components (Tailwind)
map/ Leaflet map wrappers
gpx/ GPX parsing and generation
i18n/ Internationalization (English + German)
Getting Started
Prerequisites: Node.js 20+, pnpm, Docker
# Clone
git clone https://github.com/trails-cool/trails.git
cd trails
# Install dependencies
pnpm install
# Start development (apps only, no database or routing)
pnpm dev
# Start full stack (PostgreSQL + BRouter + apps)
pnpm dev:full
Full Local Dev Setup
pnpm dev:full starts everything needed to test the Planner end-to-end:
- PostgreSQL + PostGIS on port 5432 (via Docker)
- BRouter routing engine on port 17777 (via Docker)
- Database schema pushed automatically via Drizzle
- BRouter segment downloaded for Berlin area (~124MB, cached)
- Journal on http://localhost:3000
- Planner on http://localhost:3001
Other useful commands:
pnpm dev:services # Start Docker services only (DB + BRouter)
pnpm db:push # Push database schema changes
pnpm db:studio # Open Drizzle Studio (DB browser)
Development Tools
This project uses AI-assisted, spec-driven development. See docs/tooling.md for details.
| Tool | Purpose |
|---|---|
| cmux | Native macOS terminal for running multiple AI coding sessions |
| Claude Code | AI coding assistant (primary development tool) |
| GitHub Copilot | AI coding assistant |
| Crit | Browser-based inline code review |
| OpenSpec | Spec-driven development workflow |
Self-Hosting
The Journal is designed to be self-hosted. A single Docker Compose file gets you running:
curl -O https://raw.githubusercontent.com/trails-cool/trails/main/infrastructure/docker-compose.yml
docker compose up -d
See docs/architecture.md for details on self-hosting configuration.
Philosophy
- Privacy by design — The Planner collects zero user data
- Data ownership — Export everything, self-host, no lock-in
- Open source — MIT licensed, built on open standards
- Simplicity — Start simple, add complexity only when needed
Read more: docs/philosophy.md
Contributing
Human contributions are welcome! This project is built with AI-assisted development (Claude Code + OpenSpec), but we value human judgment, design taste, and community input.
License
MIT