Skip to content
This repository was archived by the owner on Jul 8, 2025. It is now read-only.

sasazame/web-curator

Repository files navigation

Web Curator

A web application built with Cloudflare Workers (Hono) that allows users to store, organize, and search articles, movies, or any work available on the internet.

🚧 Status: Discontinued Prototype

This project is a functional prototype that demonstrates the core concepts but is no longer actively developed.

Features

  • 🔗 Store and organize web content by URL
  • 🏷️ Tag-based categorization
  • 🔍 Full-text search functionality
  • 🖼️ Automatic OGP (Open Graph Protocol) data extraction
  • 📱 Responsive tile/list view display
  • ⚡ Edge computing with Cloudflare Workers

Tech Stack

  • Backend: Cloudflare Workers + Hono
  • Database: Cloudflare D1 (SQLite)
  • Frontend: React + Vite
  • Runtime: Bun
  • Testing: Vitest with TDD approach

Prerequisites

  • Bun installed
  • Wrangler CLI for Cloudflare Workers
  • Cloudflare account (for deployment)

Installation

# Install dependencies
bun install

# Copy environment variables
cp .dev.vars.example .dev.vars

Development

# Run tests
bun test

# Run tests in watch mode
bun test:watch

# Start local development server
bun run dev

# Start frontend development server
bun run dev:client

API Endpoints

  • POST /api/articles - Create new article
  • GET /api/articles - List articles (paginated)
  • GET /api/articles/:id - Get single article
  • PUT /api/articles/:id - Update article
  • DELETE /api/articles/:id - Delete article
  • GET /api/search - Search articles
  • GET /api/tags - Get tag statistics
  • POST /api/ogp/fetch - Fetch OGP data for URL

Database Setup

# Create D1 database
bun run db:init

# Run migrations
bun run db:migrate

Deployment

# Deploy to Cloudflare Workers
bun run deploy

Project Structure

web-curator/
├── src/
│   ├── server/         # Backend API
│   ├── client/         # React frontend
│   └── shared/         # Shared types
├── test/               # Test files
├── docs/               # Documentation
└── database/           # SQL schemas

Testing

The project follows TDD (Test Driven Development) principles with comprehensive test coverage:

  • Unit tests for models and services
  • Integration tests for API routes
  • 51 tests with 100% coverage

Why This Project?

This was built as a proof-of-concept to explore:

  • Cloudflare Workers and D1 database capabilities
  • Server-side OGP fetching to bypass CORS limitations
  • SQLite FTS5 for full-text search at the edge
  • TDD approach with factory pattern for better testability
  • Edge computing for low-latency web applications

The core functionality works well, demonstrating that a full-featured web application can run entirely on Cloudflare's edge infrastructure.

What Developers Usually Do with Discontinued Projects

  1. Archive on GitHub - Mark as archived to show it's no longer maintained
  2. Add clear status - Indicate it's discontinued/prototype (✓ done above)
  3. Document learnings - Share what worked and what didn't
  4. License it - Allow others to fork and continue if interested
  5. Keep it public - Others can learn from the code

Feel free to:

  • Fork this project
  • Use the code as reference
  • Build upon the ideas
  • Report issues (though they may not be fixed)

License

MIT

About

Web content organizer built with Cloudflare Workers, Hono, and React

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published