Unlisted
Like
summer-notes-v1
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.
Viewing readonly version of main branch: v13View latest version
A simple notes collection app built with Val Town, featuring categorized note management with archive functionality.
- Create, Edit, and Archive Notes: Full CRUD operations except deletion (notes are archived instead)
- Categories and Groups: Organize notes with predefined categories and groups
- Color Themes: Choose from 8 different color themes for visual organization
- Filtering: Filter notes by category, group, and archived status
- Grouping: Group notes by category or group for better organization
- Terminal-style Design: macOS terminal-inspired note cards
- Responsive Design: Works on desktop and mobile devices
- Backend: Hono.js with SQLite database
- Frontend: React 18 with TypeScript
- Styling: DaisyUI + Tailwind CSS (Nord theme)
- Platform: Val Town
├── backend/
│ ├── database/
│ │ ├── migrations.ts # Database schema setup
│ │ └── queries.ts # Database operations
│ ├── routes/
│ │ └── notes.ts # Notes API endpoints
│ └── index.ts # Main server entry point
├── frontend/
│ ├── components/
│ │ ├── App.tsx # Main application component
│ │ ├── NoteCard.tsx # Individual note display
│ │ ├── NoteForm.tsx # Note creation/editing form
│ │ └── FilterBar.tsx # Filtering and grouping controls
│ ├── index.html # HTML template with meta tags
│ └── index.tsx # React entry point
├── shared/
│ ├── config.ts # Centralized configuration
│ └── types.ts # TypeScript type definitions
└── README.md
All app configuration is centralized in /shared/config.ts:
- Categories: css, val-town, prompts, notes, chat-gpt, cursor-chats, bash-commands
- Groups: first, second, third, fourth, fifth
- Colors: primary, secondary, accent, neutral, info, success, warning, error
- Theme: Nord (DaisyUI theme)
GET /api/notes- Get all notes (with optional filters)POST /api/notes- Create a new notePUT /api/notes/:id- Update an existing notePATCH /api/notes/:id/archive- Archive a notePATCH /api/notes/:id/unarchive- Unarchive a note
Notes are stored in SQLite with the following structure:
CREATE TABLE summer_notes_v1 (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
content TEXT NOT NULL,
category TEXT NOT NULL,
group_name TEXT NOT NULL,
color TEXT NOT NULL,
archived BOOLEAN DEFAULT FALSE,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
)
- KISS: Simple, focused functionality
- YAGNI: Only implemented required features
- SoC: Clear separation between frontend, backend, and shared code
- SRP: Each component has a single responsibility
- DRY: Centralized configuration and shared utilities
The app includes comprehensive meta tags for:
- Apple mobile web app support
- Open Graph (Facebook/WhatsApp sharing)
- Twitter card support
- Proper favicon and touch icons