a customizable self-hosted homepage built with asp.net core
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
plans
src
.gitignore
LICENSE
README.md

README.md

Citadel

a customizable self-hosted homepage built with asp.net core

My current plans

  • four built-in main modules
    • speed dial
      • two main features
      • #1: links in categories
      • #2: "goto console" that supports custom search engines, website shortcuts or anything you want
      • links have: name, color, icon (optional), url, weight (for ordering)
      • categories have: name, color, list of links, weight (for ordering)
      • "goto console" entries have: name, shorthand, parameterized url
      • the "goto console" can also open urls directly if you type '.' first
    • bookmarks
      • these have: name, url, description (optional), date of addition, tags (optional)
      • automatically archive site on the date of addition with archive.is
      • two extra (non-implicit) features
      • #1: quick way to add a bookmark (browser toolbar js button?)
      • #2: quick way to sort + tag uncategorized bookmarks
    • frame
      • this is to embed things like rss readers, GTD tools etc...
      • I don't want to implement a bunch of 3rd party APIs, so this seems like an easy solution
      • maybe css injection and other things could come in handy here
    • countdowns
    • countdown for non-immediate events
    • countdown items have: name, target datetime, description, weight (for ordering)
  • auth
    • for one user or multiple
    • could be disabled, or limited to editing only
    • content is same for all users
  • ability to add custom modules (I might do a sample for github stars, or reddit saved posts)
  • API first design, so clients can be easily built if needed
    • maybe expose some sort of bot api after 1.0 as that's going to be all the rage later
  • "principle of the single http call": load a heavily cached static site so it's fast (yeah I just made that principle up, but you get the jist)
    • to clarify a bit: a single call to the speed dial page should get all the content (including js, css and html) in one pass - I don't want to see browser redraws, or any JS running on the page (maybe analytics, but that could be done with redirects as well)
    • JS is fine in edit more
  • sqlite db
    • but maybe abstract that away so someone could change it around later if needed

Some sketches

Speed Dial speed dial

Bookmarks bookmarks

Speed dial edit speed dial edit