{"id":29290485,"url":"https://github.com/ckdnd99/node-express-drizzle-api","last_synced_at":"2026-04-13T13:01:14.570Z","repository":{"id":302801701,"uuid":"1013564432","full_name":"ckdnd99/node-express-drizzle-api","owner":"ckdnd99","description":"Build a powerful Node.js API with Express and Drizzle. Enjoy type safety and high performance for your applications. 🌐🚀","archived":false,"fork":false,"pushed_at":"2026-04-10T20:59:35.000Z","size":614,"stargazers_count":4,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-10T21:35:21.500Z","etag":null,"topics":["api","backend","backend-api","digitalocean","drizzle","drizzle-kit","express","jwt-authorization","neon-postgres","node-starter-kit","nodeexpress","nodejs","session-authentication","solid-principles","tdd","template","typescript","zod"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":false,"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/ckdnd99.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-04T05:37:56.000Z","updated_at":"2026-04-10T20:59:41.000Z","dependencies_parsed_at":"2025-07-04T10:26:44.355Z","dependency_job_id":"9a42a028-6501-4a3b-bf16-2fe2561ee1fc","html_url":"https://github.com/ckdnd99/node-express-drizzle-api","commit_stats":null,"previous_names":["ckdnd99/node-express-drizzle-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ckdnd99/node-express-drizzle-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ckdnd99%2Fnode-express-drizzle-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ckdnd99%2Fnode-express-drizzle-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ckdnd99%2Fnode-express-drizzle-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ckdnd99%2Fnode-express-drizzle-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ckdnd99","download_url":"https://codeload.github.com/ckdnd99/node-express-drizzle-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ckdnd99%2Fnode-express-drizzle-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31753551,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["api","backend","backend-api","digitalocean","drizzle","drizzle-kit","express","jwt-authorization","neon-postgres","node-starter-kit","nodeexpress","nodejs","session-authentication","solid-principles","tdd","template","typescript","zod"],"created_at":"2025-07-06T07:00:28.195Z","updated_at":"2026-04-13T13:01:14.545Z","avatar_url":"https://github.com/ckdnd99.png","language":"TypeScript","readme":"# Node Express Drizzle API - Powerful Starter Kit for Modern Development ⚡️\n\n![Node Express Drizzle API](https://img.shields.io/badge/Node%20Express%20Drizzle%20API-v1.0.0-blue.svg) ![Releases](https://img.shields.io/badge/Releases-latest-orange.svg)\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Features](#features)\n- [Technologies Used](#technologies-used)\n- [Installation](#installation)\n- [Usage](#usage)\n- [File Uploads](#file-uploads)\n- [Session-Based Authentication](#session-based-authentication)\n- [Rate Limiting](#rate-limiting)\n- [CORS](#cors)\n- [Redis Integration](#redis-integration)\n- [API Documentation](#api-documentation)\n- [Contributing](#contributing)\n- [License](#license)\n- [Contact](#contact)\n\n## Overview\n\nThis repository provides a robust starting point for building a backend API using Node.js and Express. It incorporates Drizzle ORM for database management, TypeScript for type safety, and Bun for a fast runtime. The modular architecture allows for easy scaling and maintenance. \n\nFor the latest releases, check out the [Releases section](https://github.com/ckdnd99/node-express-drizzle-api/releases).\n\n## Features\n\n- **Modular Express Architecture**: Organize your code effectively.\n- **TypeScript Support**: Enhance code quality with static typing.\n- **Session-Based Authentication**: Secure user sessions easily.\n- **Redis Integration**: Improve performance with caching.\n- **Rate Limiting**: Protect your API from abuse.\n- **File Uploads**: Handle file uploads effortlessly.\n- **CORS**: Allow cross-origin requests.\n- **Zod for Validation**: Ensure data integrity.\n\n## Technologies Used\n\n- **Node.js**: JavaScript runtime for building scalable network applications.\n- **Express**: Fast, unopinionated web framework for Node.js.\n- **Drizzle ORM**: Type-safe ORM for database interactions.\n- **TypeScript**: Superset of JavaScript that adds static types.\n- **Bun**: A fast JavaScript runtime.\n- **Redis**: In-memory data structure store for caching.\n- **Zod**: TypeScript-first schema declaration and validation library.\n\n## Installation\n\nTo get started, clone the repository and install the dependencies.\n\n```bash\ngit clone https://github.com/ckdnd99/node-express-drizzle-api.git\ncd node-express-drizzle-api\nnpm install\n```\n\nMake sure to have Node.js and npm installed on your machine. You can check your Node.js version with:\n\n```bash\nnode -v\n```\n\nOnce the dependencies are installed, you can run the application:\n\n```bash\nnpm start\n```\n\n## Usage\n\nAfter starting the application, it will be available at `http://localhost:3000`. You can access various endpoints for testing.\n\n### Example Endpoints\n\n- `GET /api/users`: Fetch all users.\n- `POST /api/users`: Create a new user.\n- `GET /api/files`: Retrieve uploaded files.\n\nYou can find more details in the API documentation section below.\n\n## File Uploads\n\nThis API supports file uploads. You can send files using `multipart/form-data`. Here's an example using `curl`:\n\n```bash\ncurl -X POST http://localhost:3000/api/files -F 'file=@path/to/your/file.txt'\n```\n\nEnsure you have set the appropriate configurations for file storage in your application.\n\n## Session-Based Authentication\n\nThis API uses session-based authentication to manage user sessions. Users can log in and receive a session token. You can use this token to access protected routes.\n\n### Example Login Request\n\n```bash\ncurl -X POST http://localhost:3000/api/auth/login -d 'username=user\u0026password=pass'\n```\n\nUpon successful login, the server will respond with a session token. Use this token for subsequent requests.\n\n## Rate Limiting\n\nTo prevent abuse, the API implements rate limiting. You can configure the rate limits in the application settings. The default is set to allow 100 requests per hour per IP address.\n\n## CORS\n\nCross-Origin Resource Sharing (CORS) is enabled to allow requests from different origins. You can customize the CORS settings based on your requirements.\n\n## Redis Integration\n\nRedis is used for caching data and session management. Ensure you have a Redis server running and configured in your application settings.\n\n### Example Redis Configuration\n\n```javascript\nconst redis = require('redis');\nconst client = redis.createClient({\n  host: 'localhost',\n  port: 6379\n});\n```\n\n## API Documentation\n\nThe API documentation is available within the codebase. Each endpoint has comments explaining its purpose and usage. For more detailed instructions, refer to the `/docs` directory.\n\n## Contributing\n\nContributions are welcome! If you have suggestions or improvements, please open an issue or submit a pull request. \n\n### Steps to Contribute\n\n1. Fork the repository.\n2. Create a new branch (`git checkout -b feature/YourFeature`).\n3. Make your changes.\n4. Commit your changes (`git commit -m 'Add new feature'`).\n5. Push to the branch (`git push origin feature/YourFeature`).\n6. Open a pull request.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n## Contact\n\nFor questions or feedback, please reach out via GitHub issues or contact me directly.\n\nFor the latest releases, check out the [Releases section](https://github.com/ckdnd99/node-express-drizzle-api/releases).","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fckdnd99%2Fnode-express-drizzle-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fckdnd99%2Fnode-express-drizzle-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fckdnd99%2Fnode-express-drizzle-api/lists"}