This repository is my custom Url shortener solution which uses:
- Reactjs for frontend
- Nodejs and Azure functions for the backend
- Azure Bicep to get the resources deployed to Azure
- GitHub Actions for automatic deployments
Below items are used in Azure to host the app:
- Azure Static Web Apps to host the frontend
- Azure Functions serverless for the backend
- Table storage to keep the records
- Entra ID for authentication
- Application Insights for monitoring the apps
- Log Analytics workspace for logs
For frontend I've used a basic create-react-app based application and it has a few components to handle the listing and creation of URLs.
As for the APIs, I've used a few HTTP triggered functions to create, list and delete URLs, and a timer trigger function which pulls data from the log analytics workspace to update the page views for each route.
The total cost of hosting the app:
Service | Tier | Cost |
---|---|---|
Static web apps | Standard | $9 |
Azure Functions | Consumption | $0 for 1M requests per month |
Azure Monitor | Basic | $0 for 5GB ingestion |
Azure Table Storage | Standard | $0.5 for 1GB and 100K transactions |
Total | $9.05 |