{"id":27210709,"url":"https://github.com/nishantjoshi00/waypoint","last_synced_at":"2025-10-08T23:40:40.444Z","repository":{"id":247243321,"uuid":"825345980","full_name":"NishantJoshi00/waypoint","owner":"NishantJoshi00","description":"dynamic YAML-driven URL shortener and command mapper with real-time config updates","archived":false,"fork":false,"pushed_at":"2025-08-28T21:47:19.000Z","size":210,"stargazers_count":21,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-01T15:42:40.270Z","etag":null,"topics":["fortheloveofcode","shell-completion","shortener"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NishantJoshi00.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-07T14:27:54.000Z","updated_at":"2025-09-20T01:50:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"fff9e2b3-3c26-4b4e-8ba8-f33af33da926","html_url":"https://github.com/NishantJoshi00/waypoint","commit_stats":{"total_commits":10,"total_committers":2,"mean_commits":5.0,"dds":0.09999999999999998,"last_synced_commit":"5a21d315fffeab1403762f6c5dbc04a6d7cee125"},"previous_names":["nishantjoshi00/yamlink","nishantjoshi00/waypoint"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NishantJoshi00/waypoint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NishantJoshi00%2Fwaypoint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NishantJoshi00%2Fwaypoint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NishantJoshi00%2Fwaypoint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NishantJoshi00%2Fwaypoint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NishantJoshi00","download_url":"https://codeload.github.com/NishantJoshi00/waypoint/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NishantJoshi00%2Fwaypoint/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000730,"owners_count":26082862,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fortheloveofcode","shell-completion","shortener"],"created_at":"2025-04-10T01:14:08.898Z","updated_at":"2025-10-08T23:40:40.427Z","avatar_url":"https://github.com/NishantJoshi00.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003cimg src=\"./assets/image.jpeg\" width=\"100%\" style=\"max-height: 200px; object-fit: cover; object-position: center 25%;\" /\u003e\n  \u003c/picture\u003e\n\u003c/div\u003e\n\n# WayPoint\n\nA fast, lightweight URL mapping and redirection system that dynamically manages URL shortcuts through YAML configuration files. Perfect for creating and managing custom URL shorteners for internal tools, documentation, or any web resources.\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/NishantJoshi00/waypoint)](https://goreportcard.com/report/github.com/NishantJoshi00/waypoint)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n[![asciicast](https://asciinema.org/a/59AwqH1WoraafCo3Ppsz0iT9R.svg)](https://asciinema.org/a/59AwqH1WoraafCo3Ppsz0iT9R)\n\n## Features\n\n- 🔗 **Human-readable Shortcuts** - Create memorable shortcuts for complex URLs\n- 🌲 **Hierarchical Organization** - Support for nested URL structures through YAML\n- 🔄 **Real-time Updates** - Configuration changes detected automatically without restart\n- 🧩 **Flexible Deployment** - Use as a server or integrate with your shell\n- 📊 **Multiple Access Methods** - Server mode for web access, CLI mode for shell integration\n- 🐚 **Shell Integration** - Native support for zsh and fish shells\n\n## Installation\n\n### Prerequisites\n\n- Go 1.22.4 or higher\n- Make (optional, for using Makefile commands)\n\n### Build from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/NishantJoshi00/waypoint\ncd waypoint\n\n# Build the binaries\ngo build ./cmd/waypoint    # Server component\ngo build ./cmd/wayshell   # CLI component\n```\n\n### Install System-wide\n\n```bash\n# Move binaries to system path\nsudo mv waypoint /usr/local/bin/\nsudo mv wayshell /usr/local/bin/\n```\n\n## Usage\n\n### Server Mode (waypoint)\n\n1. **Create Configuration Files**\n\n   ```yaml\n   # config.yaml\n   host: localhost\n   port: 8080\n   map_file: map.yaml\n   refresh_interval: 5 # seconds\n   ```\n\n   ```yaml\n   # map.yaml\n   github:\n     profile: https://github.com/NishantJoshi00\n   docs:\n     - https://docs.example.com\n   ```\n\n2. **Start the Server**\n\n   ```bash\n   CONFIG_FILE=config.yaml ./waypoint\n   ```\n\n3. **Access URLs**\n   - Visit `http://localhost:8080/github/profile`\n   - Visit `http://localhost:8080/docs/0`\n\n### CLI Mode (wayshell)\n\n1. **Set up Configuration**\n\n   ```yaml\n   # ~/.wayshell.yaml\n   gs: git status\n   gp: git push\n   ```\n\n2. **Use in Shell**\n\n   ```bash\n   # For ZSH\n   source scripts/init.zsh /path/to/wayshell ~/.wayshell.yaml\n\n   # For Fish\n   source scripts/init.fish /path/to/wayshell ~/.wayshell.yaml\n   ```\n\n3. **Use Shortcuts**\n   ```bash\n   s/gs    # Expands to 'git status'\n   s/gp    # Expands to 'git push'\n   ```\n\n## Detailed Configuration\n\n### Server Configuration Options\n\n| Option           | Description                                    | Default     |\n|------------------|------------------------------------------------|-------------|\n| host             | Hostname or IP to bind the server              | localhost   |\n| port             | Port to listen on                              | 8080        |\n| map_file         | Path to YAML file with URL mappings            | map.yaml    |\n| refresh_interval | Seconds between checking for config updates    | 5           |\n\n### URL Mapping Structure\n\nWayPoint supports a nested URL structure with up to 3 levels of depth:\n\n```yaml\n# Simple key-value mapping\ndocs: https://docs.example.com\n\n# Nested mapping\ngithub:\n  profile: https://github.com/NishantJoshi00\n  repo: https://github.com/NishantJoshi00/waypoint\n\n# Array mapping\ntutorials:\n  - https://tutorial1.example.com\n  - https://tutorial2.example.com\n```\n\n## Contributing Guidelines\n\n1. **Issue First**: Create or find an issue before starting work\n2. **Issue Tags**: Use descriptive tags:\n   - [BUG] for bug reports\n   - [FEATURE] for feature requests\n   - [DOCS] for documentation improvements\n3. **Work Assignment**: Don't work on issues already assigned to others\n4. **Testing**: Ensure all tests pass by running `make test`\n5. **Code Style**: Follow Go standard formatting guidelines\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\nBuilt by Human, Documented by LLM.\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnishantjoshi00%2Fwaypoint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnishantjoshi00%2Fwaypoint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnishantjoshi00%2Fwaypoint/lists"}