{"id":14007266,"url":"https://github.com/alexmarqs/my-reminders-serverless-api","last_synced_at":"2025-03-15T13:18:47.758Z","repository":{"id":43353011,"uuid":"337168040","full_name":"alexmarqs/my-reminders-serverless-api","owner":"alexmarqs","description":"⏰ Personal reminders built with Vercel API Serverless Functions (Notion as CMS + Twilio) ","archived":false,"fork":false,"pushed_at":"2022-03-06T13:58:50.000Z","size":99,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-30T17:40:46.184Z","etag":null,"topics":["aws-lambda","cron-jobs","github-actions","notion","notion-api","sentry","serverless-functions","twilio","typescript","vercel"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexmarqs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-08T18:18:11.000Z","updated_at":"2024-06-08T14:34:15.000Z","dependencies_parsed_at":"2022-08-20T00:41:15.196Z","dependency_job_id":null,"html_url":"https://github.com/alexmarqs/my-reminders-serverless-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexmarqs%2Fmy-reminders-serverless-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexmarqs%2Fmy-reminders-serverless-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexmarqs%2Fmy-reminders-serverless-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexmarqs%2Fmy-reminders-serverless-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexmarqs","download_url":"https://codeload.github.com/alexmarqs/my-reminders-serverless-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243732199,"owners_count":20338839,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-lambda","cron-jobs","github-actions","notion","notion-api","sentry","serverless-functions","twilio","typescript","vercel"],"created_at":"2024-08-10T10:01:57.230Z","updated_at":"2025-03-15T13:18:47.740Z","avatar_url":"https://github.com/alexmarqs.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# My reminders using Vercel API serverless functions ⏰ 🚀\n\n[![Actions Status](https://github.com/alexmarqs/my-reminders-serverless-api/workflows/My%20reminders%20workflow/badge.svg)](https://github.com/alexmarqs/my-reminders-serverless-api/actions)\n\nThis repository contains some serverless functions that I'm using to periodically remind me about personal stuff. I'm deploying these functions with the cloud platform Vercel (internally they use the AWS to host functions as lambdas).\n\nAvailable API endpoints:\n\n- `api/reminders`: Read my personal reminders from **Notion** and send them by a **SMS (via Twilio)** to my phone number;\n\n## Scheduled/cron job to call my API endpoints\n\nThere are multiple options for this. I can create my own scheduler job system, use one of the existing online cron services (easycron, cron-job.org, etc.) or use the main cloud providers (AWS, Google Cloud, Azure) that also have cron services available. However, in this case I'm using the **Github Actions** to create a scheduled job to invoke my API, check the folder `.github/workflows` for more details.\n\n## Prerequisites\n\nInstall Vercel globally to be able to run the project and deploy it later.\n\n```\nnpm install -g vercel\n```\n\nThe required environemnt variables (see `.env.example`) must be configured.\n\n## Deployment\n\nTo replicate the Vercel deployment environment locally without requiring a deploy each time a change is made, execute:\n\n```\nvercel dev\n```\n\nTo test the cron jobs against the API serverless functions during the development I can use the [ngrok](https://ngrok.com/) in order to expose them to the world through my local machine.\n\nTo create a deployment for a production environemnt, execute:\n\n```\nvercel --prod\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexmarqs%2Fmy-reminders-serverless-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexmarqs%2Fmy-reminders-serverless-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexmarqs%2Fmy-reminders-serverless-api/lists"}