Idiomatically is a site for exploring idioms across languages and locales.
Check out this blog post to learn more about the inspiration for Idiomatically.net.
Idiomatically started as a side project to explore different technologies. I hope it serves as an example of how to combine these together into a functioning application. Some of the technologies used are
- TypeScript
- React
- React Router
- Apollo (server and client) with Server Side Rendering
- GraphQL
- MongoDB (using the Azure CosmosDB API for MongoDB)
- Node.js
- Express
- Passport.js for authentication
- Ant Design (UX Framework)
- Docker
- GitHub Actions (Used to build and publish docker image to Azure WebApps)
There are a couple options to run locally. To do iterative development you should run with node locally. But you can also quickly get an instance up with docker.
For development you must first set configuration up a configuration file by creating a file lib/.env.staging.local
that contains filled in settings from this example file.
Once configured you can run the server and client server to enable iterative development.
Server
yarn server:start
Client
yarn client:start
To get it running self-contained you can just use docker-compose which will bootstrap it with a local mongodb instance.
docker-compose up --build
To stop the service run:
docker-compose stop