FeaturesTemplatesShowcaseTownie
AI
BlogDocsPricing
Log inSign up
lightweight
lightweightglimpse2-runbook-view-glimpse-save-login-react
Remix of lightweight/glimpse2-runbook-view-glimpse-save-login
Public
Like
glimpse2-runbook-view-glimpse-save-login-react
Home
Code
8
_townie
13
backend
7
frontend
5
shared
3
.vtignore
README.md
deno.json
H
main.tsx
Branches
2
Pull requests
Remixes
History
Environment variables
6
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
_townie
/
05-glimpse.md
Code
/
_townie
/
05-glimpse.md
Search
9/5/2025
Viewing readonly version of main branch: v13
View latest version
05-glimpse.md

Instructions for Adding Duplicate Route with Dashboard Table Display

Overview

Create a duplicate route that serves the same functionality as an existing route, then update the dashboard to display both routes in a clean comparison table format.

Step 1: Analyze Existing Route Structure

  1. Check main router (/main.tsx) to understand current routing setup
  2. Identify the existing route in /backend/routes/views/_views.routes.ts
  3. Locate the controller that handles the route functionality
  4. Note the authentication middleware applied to the existing route

Step 2: Create Duplicate Route Module

  1. Create directory structure: /backend/routes/glimpse/
  2. Create route file: /backend/routes/glimpse/_glimpse.routes.ts
    • Import Hono and the existing controller
    • Define route as /:id (not /glimpse/:id since mounting handles prefix)
    • Export the Hono app as default
  3. Create documentation: /backend/routes/glimpse/README.md
    • Document the route purpose, authentication, parameters, and response
    • Note that it's equivalent to the original route

Step 3: Update Main Router

  1. Add import for the new route module in /main.tsx
  2. Add authentication middleware for the new route path (same as original)
  3. Mount the route after middleware setup
  4. Maintain proper order: imports → middleware → route mounting

Step 4: Update Dashboard Display

  1. Locate the dashboard file at /backend/routes/views/dashboard.tsx
  2. Find the section that displays glimpse links (look for demo pages display)
  3. Replace the existing link display with a three-column table:
    • Column 1: "Name" (30% width) - shows page title with emoji
    • Column 2: "Original Route" (35% width) - shows /views/glimpse/{:id} as clickable link
    • Column 3: "New Shortcut Route" (35% width) - shows /glimpse/{:id} as clickable link
  4. Style the table with:
    • Clean borders and spacing
    • Header row with background color
    • Different link colors (blue for original, green for new)
    • Monospace font for route paths
    • Proper vertical alignment

Step 5: Implementation Details

Route File Template (_glimpse.routes.ts):

import { Hono } from "npm:hono@3.12.12";
import { glimpseHandler } from "../../controllers/glimpse.controller.ts";

const app = new Hono();
app.get("/:id", glimpseHandler);
export default app;

Main Router Updates:

  • Import: import glimpseRoutes from "./backend/routes/glimpse/_glimpse.routes.ts";
  • Auth: app.use("/glimpse/*", authCheck);
  • Mount: app.route("/glimpse", glimpseRoutes);

Dashboard Table Structure:

  • Three columns with clear headers
  • Page name in first column (no repetition)
  • Both route formats as clickable links
  • Consistent styling and spacing
  • Color coding for route types

Step 6: Testing

  1. Test both routes return identical responses (login page if not authenticated)
  2. Verify table display shows all demo pages with both route formats
  3. Confirm links work and open in new tabs
  4. Check responsive layout and readability

Key Principles

  • No code duplication - reuse existing controller
  • Consistent authentication - same middleware for both routes
  • Clean architecture - maintain separation between router, routes, and controllers
  • User-friendly display - clear comparison table without repetition
  • Functional testing - both routes must behave identically

This approach creates a clean duplicate route with an intuitive dashboard display that demonstrates both URL formats side-by-side.


Townie, stop here! Before proceeding to additional steps, confirm that this step is working correctly.

If everything is working as intended: conclude this step with these messages:

  1. Briefly summarize the work that was just completed and why it's important
  2. Provide the URL to the dashboard that you just updated so the user can see that the new routes are live. Tell the user that they can copy and paste that URL into a new tab to see the links.

Next step: build a task endpoint that saves /glimpse/:id routes to Notion database pages

Follow the instructions in /_townie/07-save.md to add the /tasks/url endpoint

Go to top
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Product
FeaturesPricing
Developers
DocsStatusAPI ExamplesNPM Package Examples
Explore
ShowcaseTemplatesNewest ValsTrending ValsNewsletter
Company
AboutBlogCareersBrandhi@val.town
Terms of usePrivacy policyAbuse contact
© 2025 Val Town, Inc.