a conlanging community and platform
- document your conlangs, their dictionaries, their families...
- collaboration between you and your friends
- modern, responsive design
to participate in beta tests for our official instance, join our discord
Axismundi is written in Rust, with a simple frontend using Typescript (and some React components).
If you want a full dev environment, run just dev; this will run all the required Docker containers
and start the app, auto-reloading on changes.
You will need to fill out a config.json; an example one is provided in ./resources/config.json.
Run the backend with just run (or inspect the justfile any other time a just command is needed).
This assumes a database is running, which can be started with just db.
We use:
- a PostgreSQL database
- an S3 compatible storage service (MinIO, or Cloudflare R2, etc ...)
- Resend for email sending (though it should be easy to swap out for another service)
The backend has a number of models, which are the main entities in the system, such as User, Language, etc.
Then, on top, we have the controllers, which handle the HTTP requests and responses.
These abstract over the internal model handling, either through HTML or JSON.
The frontend should be built with just build, which uses SWC to compile the Typescript files,
and processes the CSS files with LightningCSS.
We use integration testing with real Postgres and real MinIO, and a mocked email module. The justfile will just set this up for you so long as you have Docker (or some compatible runtime).
Axismundi is distributed under the Non-violent Public License. The source for the NVPL can be found at its repo.