Very much a work in progress
The agora (/ˈæɡərə/; Ancient Greek: ἀγορά agorá) was a central public space in ancient Greek city-states. It is the best representation of city form’s response to accommodate the social and political order of the polis. The literal meaning of the word is "gathering place" or "assembly". The agora was the center of the athletic, artistic, spiritual and political life in the city. The Ancient Agora of Athens is the best-known example.
-- Wikipedia
The main goals of Agora is:
- To be easy to install
- To be performant
- (Eventually) to work with everyones favorite database
- (Also eventually) have all the features everyone might need
This project started from having a difficult time installing other forums due to complicated install (and imperfect) install scripts, forums that can't be easily installed via docker, forums that can't be easily installed natively because "Hosting Rails applications is complicated".
It was also in part inspired from lemmy, a federated reddit alternative, because it was so easy to install via docker and natively. They also have an install method for kubernetes though I haven't tried that one out.
My first and favorite programming language is Rust so obviously I had to write Agora in rust. Agora is built on:
Agora should perform well on cheap VPSs.
Want to join us? Take a look at some of these issues:
- [Issues labeled "good first issue"][good-first-issue]
- [Issues labeled "help wanted"][help-wanted]
Will use a Web Assembly(wasm) and javascript frontend until I decide which I prefer. Wasm can be written in rust, allowing for an isomorphic SPA that can share code between the frontend and backend. This should be easier to write and maintain. However right now wasm interaction with the DOM is expensive, compiled wasm can be quite large(even with optimizations), and the ecosystem for wasm frontends is quite new. Javascript does not share these issues. Solid-js is the current javascript performance king in this domain, trading blows with hand optimized vanillajs, and may provide an overall better user experience and will integrate with current web design tools.
Leaning towards tailwindcss with linaria to write css in javscript with no runtime cost. Tailwinds is designed to be used with PostCSS to create the smallest possible css for application.
My plan is to:
- Design the wasm fronted with a shared library with backed
- Design the javscript frontend as similar as possible to wasm
- Write CSS in the javascript frontend(hopefully js and wasm are similar enough that the css works for both frontends)
The Tide project adheres to the Contributor Covenant Code of Conduct. This describes the minimum behavior expected from all contributors.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.