hunter / neppit

Anonymous text forum

Clone this repo

Branches
Tags
View All
  • 4cc5019 Add brotli support by Hunter Praska at 2018-10-10 10:19:29 -05:00

  • f1b6089 Fix post editing, add gzip compression by Hunter Praska at 2018-10-10 09:45:48 -05:00

  • a4fdf80 Improve admin template by Hunter Praska at 2018-10-01 03:26:57 -05:00

  • a6f5fa5 Add support for error messages by Hunter Praska at 2018-10-01 03:12:15 -05:00

  • ee95e3e Add program to reformat posts by Hunter Praska at 2018-08-21 17:53:14 -05:00

View Log

Neppit

An anonymous Internet forum. You can see it in action at https://forum.hunterpraska.com.

Neppit is intended as a forum for software projects; an alternative to other options such as discourse.

Install

Make sure that you have setup Postgresql.

Sass is used for our stylesheets, make sure that you have sassc installed if you wish to build the css.

We use just for convenience, you can install just with cargo install just. If you do not wish to install just, just run the commands in Justfile. Just syntax is very similar to make.

$ createdb neppit
# Make sure you change `url` and `db_url`
$ vim neppit.toml
$ just run-release

Neppit only needs the executable, the resources folder, and a neppit.toml to run. SQL and templates are included at compile time.

Non-Goals

  • User Logins: Neppit is anonymous
  • Images: Image boards tend to attract unsavory content, not hosting images makes admin work much easier
  • JavaScript: Neppit will always provide full functionality without JavaScript
  • Ephemeral content: Neppit is more like a traditional forum; content stays forever

API

  • List of boards: /api, /json
  • Catalog for a board: /api/<board>
  • Thread: /api/<board>/<thread>
  • You can also get a json representation of a catalog/thread by adding .json to the end of the url.

Wish List

These are features that would be nice to have, but that I might not work on.

  • Basic Moderation: bans, etc. - EASY
    • Deleting a post should have a confirmation page
    • Move threads to other board
    • Improve admin page
  • Moderation classes - MEDIUM
    • Admin can modify boards, rules, etc
    • Mod can delete posts, ban users, etc.
  • Improved styling - EASY
  • Email subscription to boards/threads - MEDIUM
  • Support Pages - MEDIUM
    • Ideally we should only show n threads per page of the catalog, and n posts per page of a thread.
    • This normally does not matter for image boards as the content is ephemeral, but Neppit does not support this feature.
    • Look at SMF for an example of how this might look.
  • Support other db backends - MEDIUM
    • Supporting other diesel backends should be straightforward
    • Consider using a trait that contains each DB action and impl the trait for each connection type
  • Better logging - MEDIUM
  • Tagging - HARD
    • This would allow a larger variety of use cases, such as a bug tracker
    • Ideally would be optional
    • Info on db schema
    • To be useful, we would need a search/filter feature of some sort
      • This will probably need to be done by text parsing ala GitHub
      • Drop downs could be used, but would only support adding one tag at a time
  • Update API - EASY
    • There should be an API for admins/moderators - MEDIUM
  • Advanced formatting features
    • Maybe support Markdown or a subset?
      • This should be a config option
  • It would be nice to serve data over Gopher too
    • We could probably just start up another thread to serve gopher content
    • I need to rewrite my gopher server, but when I do that I can make a library of the useful bits