a customizable self-hosted homepage built with asp.net core
- 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)
- speed dial
- 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