idiomatically
idiomatically copied to clipboard
A website for exploring Idioms across languages and locales.
Idiomatically
About
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.
Search for idioms and filter by language

Explore different ways to express an idiom in other languages and locales

Contribute or update idioms

Technologies
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)
Running Locally
There are a couple options to run locally. Do do iterative development you should run with node locally. But you can also quickly get an instance up with docker.
Node
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:staging
Client
yarn client:start
Docker
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