static site frontend for mapped.at mapped.at
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

Demo lexicons

+197 -1
+30
lexicons/at.mapped.test.activityType.json
··· 1 + { 2 + "id": "at.mapped.test.activityType", 3 + "lexicon": 1, 4 + "defs": { 5 + "main": { 6 + "key": "tid", 7 + "type": "record", 8 + "description": "A user-defined activity type (e.g., Hiking, Cycling, Kayaking). Users can create custom activity types.", 9 + "record": { 10 + "type": "object", 11 + "required": [ 12 + "name" 13 + ], 14 + "properties": { 15 + "name": { 16 + "type": "string", 17 + "description": "The name of the activity type", 18 + "maxLength": 50 19 + }, 20 + "description": { 21 + "type": "string", 22 + "description": "Optional description of the activity type", 23 + "maxLength": 256 24 + } 25 + } 26 + } 27 + } 28 + }, 29 + "$type": "com.atproto.lexicon.schema" 30 + }
+30
lexicons/at.mapped.test.location.json
··· 1 + { 2 + "id": "at.mapped.test.location", 3 + "defs": { 4 + "main": { 5 + "type": "object", 6 + "required": [ 7 + "latitude", 8 + "longitude" 9 + ], 10 + "properties": { 11 + "name": { 12 + "type": "string", 13 + "description": "The name of the location." 14 + }, 15 + "altitude": { 16 + "type": "string" 17 + }, 18 + "latitude": { 19 + "type": "string" 20 + }, 21 + "longitude": { 22 + "type": "string" 23 + } 24 + }, 25 + "description": "A physical location in the form of a WGS84 coordinate." 26 + } 27 + }, 28 + "$type": "com.atproto.lexicon.schema", 29 + "lexicon": 1 30 + }
+69
lexicons/at.mapped.test.post.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "at.mapped.test.post", 4 + "$type": "com.atproto.lexicon.schema", 5 + "description": "A post representing either an activity or a travel experience", 6 + "revision": 1, 7 + "defs": { 8 + "main": { 9 + "key": "tid", 10 + "type": "record", 11 + "record": { 12 + "type": "object", 13 + "required": [ 14 + "timestamp" 15 + ], 16 + "properties": { 17 + "title": { 18 + "type": "string", 19 + "description": "Optional title for the post (especially useful for travel posts)", 20 + "maxLength": 100 21 + }, 22 + "text": { 23 + "type": "string", 24 + "description": "Caption or description text for the post", 25 + "maxLength": 512 26 + }, 27 + "timestamp": { 28 + "type": "string", 29 + "format": "datetime", 30 + "description": "When the post was created" 31 + }, 32 + "activityType": { 33 + "type": "ref", 34 + "ref": "com.atproto.repo.strongRef", 35 + "description": "Reference to an activityType record. If present, this is an activity post; if absent, it's a travel post" 36 + }, 37 + "location": { 38 + "type": "ref", 39 + "ref": "com.atproto.repo.strongRef", 40 + "description": "Reference to a location record" 41 + }, 42 + "trail": { 43 + "type": "ref", 44 + "ref": "com.atproto.repo.strongRef", 45 + "description": "Reference to a trail record with route geometry" 46 + }, 47 + "stats": { 48 + "type": "object", 49 + "description": "Activity statistics (distance, duration, elevation). Only relevant for activity posts", 50 + "properties": { 51 + "distance": { 52 + "type": "integer", 53 + "description": "Distance covered in meters" 54 + }, 55 + "duration": { 56 + "type": "integer", 57 + "description": "Duration of the activity in seconds" 58 + }, 59 + "elevation": { 60 + "type": "integer", 61 + "description": "Elevation gain in meters" 62 + } 63 + } 64 + } 65 + } 66 + } 67 + } 68 + } 69 + }
+42
lexicons/at.mapped.test.trail.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "at.mapped.test.trail", 4 + "$type": "com.atproto.lexicon.schema", 5 + "description": "A trail or route record containing GeoJSON geometry", 6 + "revision": 1, 7 + "defs": { 8 + "main": { 9 + "key": "tid", 10 + "type": "record", 11 + "record": { 12 + "type": "object", 13 + "required": [ 14 + "name" 15 + ], 16 + "properties": { 17 + "name": { 18 + "type": "string", 19 + "description": "Display name of the trail or route" 20 + }, 21 + "activityType": { 22 + "type": "ref", 23 + "ref": "com.atproto.repo.strongRef", 24 + "description": "Reference to an activityType record" 25 + }, 26 + "polyline": { 27 + "type": "string", 28 + "description": "Encoded Polyline representing the trail geometry" 29 + }, 30 + "locations": { 31 + "type": "array", 32 + "description": "Optional array of location references along the trail", 33 + "items": { 34 + "type": "ref", 35 + "ref": "at.mapped.test.location" 36 + } 37 + } 38 + } 39 + } 40 + } 41 + } 42 + }
+25
lexicons/com.atproto.repo.strongRef.json
··· 1 + { 2 + "id": "com.atproto.repo.strongRef", 3 + "defs": { 4 + "main": { 5 + "type": "object", 6 + "required": [ 7 + "uri", 8 + "cid" 9 + ], 10 + "properties": { 11 + "cid": { 12 + "type": "string", 13 + "format": "cid" 14 + }, 15 + "uri": { 16 + "type": "string", 17 + "format": "at-uri" 18 + } 19 + } 20 + } 21 + }, 22 + "$type": "com.atproto.lexicon.schema", 23 + "lexicon": 1, 24 + "description": "A URI with a content-hash fingerprint." 25 + }
+1 -1
oauth-client-metadata.json
··· 12 12 "response_types": [ 13 13 "code" 14 14 ], 15 - "scope": "atproto", 15 + "scope": "atproto repo:at.mapped.*", 16 16 "token_endpoint_auth_method": "none", 17 17 "client_name": "mapped.at", 18 18 "client_uri": "https://mapped.tngl.io"