• Townie
    AI
  • Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
yawnxyz

yawnxyz

mockingbird

Public
Like
mockingbird
Home
Code
10
backend
1
core
4
frontend
1
.gitignore
.vtignore
AGENTS.md
EXAMPLE.md
README.md
deno.json
main.js
Branches
1
Pull requests
Remixes
History
Environment variables
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
/
README.md
Code
/
README.md
Search
…
README.md

Mockingbird

A minimal Hono + Alpine.js starter template that works with both Val Town and local Deno.

Project Structure

/
├── main.js              # Entry point - minimal Hono setup
├── core/
│   ├── utils.js         # Core utilities (file reading, ID generation)
│   └── routes.js        # Route definitions
├── frontend/
│   └── index.html       # Alpine.js frontend
└── backend/             # Additional backend modules (as needed)

Getting Started

Local Development

# Run the development server deno task serve # The app will be available at http://localhost:9990

Val Town Deployment

The app is designed to work seamlessly on Val Town. Simply:

  1. Create a new Val Town project
  2. Upload your files
  3. The app will automatically detect the Val Town environment

Key Features

  • Environment-aware file reading: Automatically uses Val Town's readFile or Deno's native file reading
  • Hono for backend: Fast, lightweight web framework
  • Alpine.js for frontend: Minimal, reactive frontend framework
  • Tailwind CSS: Utility-first styling
  • Menlo font: Monospace typography throughout

API Endpoints

  • GET / - Serves the main HTML page
  • GET /api/health - Health check endpoint

Environment Detection

The app detects whether it's running on Val Town or locally:

export default (typeof Deno !== "undefined" && Deno.env.get("valtown")) ? app.fetch : app;

Adding New Features

Adding Routes

Add new routes in core/routes.js:

app.get('/api/myendpoint', (c) => { return c.json({ data: 'your data' }); });

Adding Utilities

Add reusable functions in core/utils.js or create new modules in /core.

Backend Logic

Create new modules in /backend for complex backend logic.

FeaturesVersion controlCode intelligenceCLI
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2025 Val Town, Inc.