OUT is an app that makes raising children together in the city as effortless as possible. It helps parents discover spontaneous opportunities to connect with their community - from open doors at neighbors' houses to impromptu playground meetups.
Note: This repository contains the source code for a Val Town application. It's primarily intended for code sharing and AI tool access. The application is designed to run on Val Town's platform.
The app solves the "computational problem" of parenting social coordination by knowing:
āāā backend/
ā āāā database/
ā ā āāā migrations.ts # Database schema setup
ā ā āāā queries.ts # Database query functions
ā āāā routes/
ā ā āāā users.ts # User management endpoints
ā ā āāā activities.ts # Activity management endpoints
ā ā āāā static.ts # Static file serving
ā āāā index.ts # Main Hono app entry point
āāā frontend/
ā āāā components/
ā ā āāā App.tsx # Main React app
ā ā āāā ActivityList.tsx # List of available activities
ā ā āāā CreateActivity.tsx # Form to create new activities
ā ā āāā FriendsManager.tsx # Manage social circles and friends
ā ā āāā UserSetup.tsx # Initial user registration
ā āāā index.html # Main HTML template
ā āāā index.tsx # Frontend entry point
ā āāā style.css # Styling
āāā shared/
ā āāā types.ts # Shared TypeScript types
āāā README.md
This project is designed to run on Val Town, a platform for hosting serverless TypeScript applications.
backend/index.ts which serves both the API and the frontendWhile this project is optimized for Val Town, you can explore the code locally:
# Clone the repository git clone <your-repo-url> cd OUT-app # Install dependencies (for IDE support) npm install # Note: This project uses Val Town's runtime and won't run locally without modifications
This project uses several Val Town-specific features:
@stevekrouse/sqlite@std/blob@std/email@std/utilsPOST /api/auth/login - Request magic link login emailPOST /api/auth/verify - Verify login token from email linkPOST /api/users - Register a new userGET /api/users/:id - Get user informationPUT /api/users/:id - Update user informationPOST /api/users/:id/friends - Add friend by emailPUT /api/users/:id/friends/:friendId - Move friend to different circleDELETE /api/users/:id/friends/:friendId - Remove friend from all circlesPOST /api/activities - Broadcast a new activityGET /api/activities/:id - Get activity detailsPUT /api/activities/:id/deactivate - Deactivate an activityGET /api/activities/owner/:ownerId - Get activities by ownerGET /api/discovery/:userId - Get available options for a userGET /api/discovery/:userId/formatted - Get formatted options with natural language