Skip to content

papes1ns/merln

 
 

Repository files navigation

test validate license-check deploy

merln merln

Metadata-Enriched-RSS-Linker-Node

Overview

An example merln project.

  • typesafe code
  • schema validation
  • FOSS license audit
  • GDPR compliant
  • automation

merln is maintained by me. Originally started as a simple fork of an open source project by SST. They are innovating across the board. Be sure to check them out!

API

You can access this data through an API.

curl https://natepapes.com/api.json

Validation

There's a GitHub Action that will automatically validate your submission against our schema to ensure:

  • All required fields are present
  • Data types are correct
  • Values are within acceptable ranges
  • TOML syntax is valid

Schema Reference

Models must conform to the following schema, as defined in packages/core/src/schemas.ts.

Provider Schema:

export const Provider = z
  .object({
    id: z.string().toLowerCase(),
    name: z.string(),
    profile: z.string().url("Must be a valid URL"),
    rss: z.string().url("Must be a valid URL"),
    contents: z.record(Content).optional(),
  })
  .strict();

Content Schema:

export const Content = z
  .object({
    id: z.string().toLowerCase(),
    title: z.string(),
    description: z.string().optional(),
    url: z.string().url("Must be a valid URL"),
    created_at: z.string(),
    estimated_time_minutes: z.number().int().positive().optional(),
    tags: z.array(z.string()).optional(),
  })
  .strict();

Examples

See existing providers in the providers/ directory for reference:

  • providers/atomicobject/ - spin posts
  • providers/github/ - gist posts
  • providers/youtube/ - youtube posts

Working on frontend

Make sure you have Bun installed.

bun run dev

And it'll open the frontend at http://localhost:3000

About

An educational concept of a Metadata Enriched RSS Linker Node. MERLN

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 75.9%
  • CSS 21.4%
  • HTML 2.7%