Giter VIP home page Giter VIP logo

horseman's Introduction

๐Ÿด Horseman, the headless CMS

Horseman is a headless CMS thats powered by Cloudflare KV and the Cache API. Using DurableObjects to ensure data indexes are valid and up to date.

Horseman was created when I wanted to make a news feed for Wordful, my multiplayer Wordle game. Looking at other offerings, I wished for something simple, yet quick. After some quick discussions, I realised I could make my own headless CMS by utilising Cloudflare's global KV. This makes Horseman no less than 50ms from anyone around the world.

You can find a public Horseman instance on my website, here: https://horseman.ceru.dev/

API documentation can be found here: https://horseman.stoplight.io/docs/horseman/abe38a2fb9c9d-list-models

โšก Features

  • World-wide, high speed, infinitely scalable, all thanks to Cloudflare Workers.
  • Modern, sleek UI for creating and managing your Objects.
  • Caching API built in, smartly clears cache to ensure your data is always up to date world-wide. Also reduces read costs significantly so you dont have to worry about a sudden burst of requests killing your bill.
  • Wildcard searching built-in. Alongside other features such as cursors, Horseman can perform wildcard searching on any indexed field.
    • For example: ?Field=eq.Hello* would find any Object with Hello in Field. Wildcards can go anywhere in the string.
  • Relationships to bind two Objects together. Add an Author to that Post without having to type them out every time.

๐Ÿ”ฅ Todo

  • Pub/Sub channels for getting up to date information on your Objects.
  • An "organisation" system to allow people to be assigned to groups modifying the same group of Objects.
  • A plugin system to support third-party modifications to the API. For self-hosted users only, however would allow for people to add custom content-based embeds/RSS feeds.
  • Ask for more feedback
  • Better documentation ๐Ÿ“š

Have an idea? Make a discussion post about it and tell us all about your awesome idea!!

๐Ÿ”ง Setting up

What you'll need:

  • A machine with Wrangler 2
  • A paid Workers subscription ($5 a month, used for the password hashing Worker & DurableObjects)
  • A setup, working password hashing Worker: (https://github.com/AggressivelyMeows/password-hashing)
  • Please read the README to get the passowrd hashing Worker setup correctly.

Step 1 - Config

Open wrangler.toml and edit the lines described by the comments. Make sure to follow them precicely otherwise Horseman will not work.

Step 2 - Publish the Worker

Run npx wrangler publish to publish Horseman to your Cloudflare account. Once done, you will neekd to visit /v1/__meta/init to start the database. This step is required for Horseman to know whats going on.

โœจ Acknowledgements

Horseman was created by Cerulean, all code (except ./src/tsndr_router.js, from https://www.npmjs.com/package/@tsndr/cloudflare-worker-router, read comments for why) is copyright of Connor Vince. Please read the Licence terms before publishing your own Horseman instance.

horseman's People

Contributors

aggressivelymeows avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.