{"id":36420991,"url":"https://github.com/antistereov/singularity-core","last_synced_at":"2026-01-11T17:35:31.843Z","repository":{"id":302645249,"uuid":"1012514624","full_name":"antistereov/singularity-core","owner":"antistereov","description":"The foundation for your next backend! Build your app with everything from authentication to content management, ready out of the box. 🚀 ","archived":false,"fork":false,"pushed_at":"2025-12-26T12:49:51.000Z","size":38443,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-27T03:27:27.584Z","etag":null,"topics":["framework","java","kotlin","spring"],"latest_commit_sha":null,"homepage":"https://singularity.stereov.io","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/antistereov.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-02T12:56:31.000Z","updated_at":"2025-12-26T04:02:23.000Z","dependencies_parsed_at":"2025-07-03T13:51:03.654Z","dependency_job_id":"edfa4ca0-9260-4161-a9f3-37b8b100792d","html_url":"https://github.com/antistereov/singularity-core","commit_stats":null,"previous_names":["antistereov/singularity-core"],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/antistereov/singularity-core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antistereov%2Fsingularity-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antistereov%2Fsingularity-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antistereov%2Fsingularity-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antistereov%2Fsingularity-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/antistereov","download_url":"https://codeload.github.com/antistereov/singularity-core/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antistereov%2Fsingularity-core/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28315879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T14:58:17.114Z","status":"ssl_error","status_checked_at":"2026-01-11T14:55:53.580Z","response_time":60,"last_error":"SSL_read: 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":["framework","java","kotlin","spring"],"created_at":"2026-01-11T17:35:31.333Z","updated_at":"2026-01-11T17:35:31.827Z","avatar_url":"https://github.com/antistereov.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eSingularity\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://central.sonatype.com/artifact/io.stereov.singularity/core\"\u003e\n    \u003cimg src=\"https://img.shields.io/maven-central/v/io.stereov.singularity/core.svg?logo=apachemaven\" alt=\"Maven Central\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://singularity.stereov.io\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/docs-available-brightgreen?logo=docusaurus\" alt=\"Docs\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/antistereov/singularity-core?tab=GPL-3.0-1-ov-file\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/antistereov/singularity-core?logo=gnu\" alt=\"License\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://stereov.io\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/My_Website-stereov.io-blue\" alt=\"Website\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://instagram.com/antistereov.coding\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Instagram-@antistereov.coding-ff69b4?logo=instagram\" alt=\"Instagram\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/antistereov\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/X-@antistereov-1DA1F2?logo=x\" alt=\"Twitter\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Welcome to the foundation for your next backend! \n  Build your app with everything from authentication to content management, ready out of the box. 🚀\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  Save time, ensure consistency, and focus on features whether you're building an API,\n  a microservice, or a full-stack app.\n\u003c/p\u003e\n\n## ⚡ Why Use This?\n\n- ✅ **Batteries Included:** Authentication with 2FA and email verification, content management, file storage, and key rotation already set up.\n- ✅ **Production-Ready by Default:** All components are built with real-world usage and scalability in mind. This foundation is built on [Spring](https://spring.io), ensuring a reliable, mature, and modern technology stack.\n- ✅ **Open \u0026 Extensible:** Contributions welcome! Let’s refine this into a toolkit others can benefit from too.\n\n## 🔐 Features at a Glance\n\n### **Authentication \u0026 User Management**\n- 🔒 JWT auth with refresh tokens, 2FA, secure HTTP-only cookies.\n- 📧 Email verification with expiration and resend control.\n- 🧑‍💻 Role-based user access with custom exceptions for better error handling.\n\n### **Data \u0026 Caching**\n- 💾 MongoDB for persistence, Redis for caching and session storage.\n- 🗂️ S3-based object storage abstraction with local fallback.\n\n### **Content Management**\n- 🧩 Abstract base for content types with **built-in access control** (users, groups, roles).\n- 🌍 **Multi-language support** out-of-the-box — store and serve content in multiple locales.\n- 🏷️ Configurable tagging system for flexible content organization.\n- 📝 Prebuilt `Article` class for instant publishing workflows.\n\n### **Security \u0026 Key Management**\n- 🔑 Secret manager integration with **automated key rotation** for your secrets.\n\n### **Performance**\n- ⚙️ Kotlin Coroutines for async flows.\n- 🚦 Configurable IP and user-based rate limiting.\n\n## 🚀 Quickstart\n\n### 1. Create a new project\n\nUse your favorite IDE or build tool to create a new Java or Kotlin project with JDK 21 or higher.\n\n### 2. Add Singularity to your dependencies\n\nAdd the dependency to your `build.gradle.kts`, `build.gradle` or `pom.xml` if using Maven:\n\n**For Gradle with Kotlin DSL:**\n```kotlin\ndependencies {\n    implementation(\"io.stereov.singularity:core:\u003cversion\u003e\") // Check the maven status batch for the latest version\n}\n```\n\n**For Gradle with Groovy:**\n```groovy\ndependencies {\n   implementation 'io.stereov.singularity:core:\u003cversion\u003e' // Check the maven status batch for the latest version\n}\n```\n\n**For Maven:**\n```xml\n\u003cdependency\u003e\n   \u003cgroupId\u003eio.stereov.singularity\u003c/groupId\u003e\n   \u003cartifactId\u003ecore\u003c/artifactId\u003e\n   \u003cversion\u003e_version_\u003c/version\u003e \u003c!-- Check the maven status batch for the latest version --\u003e\n\u003c/dependency\u003e\n```\n\n### 3. Start MongoDB and Redis\n\nDownload the [docker-compose.yaml](https://github.com/antistereov/singularity-core/blob/354c7258e0b6416b108639224fc075d51830198b/infrastructure/docker/docker-compose.yaml) \nto the root of your project and run the containers using:\n\n```bash\ndocker compose up -d\n```\n\nYou have a running instance of MongoDB as your database and Redis as your Cache.\n\n### 4. Create your application class\n\nCreate a Spring Boot Application in Kotlin:\n\n```kotlin\n@SpringBootApplication\nclass YourApplication\n\nfun main() {\n  runApplication\u003cYourApplication\u003e()\n}\n```\n\nOr in Java:\n\n```java\n@SpringBootApplication\npublic class App {\n  public static void main(String[] args) {\n    SpringApplication.run(App.class, args);\n  }\n}\n```\n### 5. Expand\n\nAdd your custom services and features to create your dream. Focus on what matters.\n\n## 📚 Documentation\n\nYou can find a detailed guide to this library here: [https://singularity.stereov.io](https://singularity.stereov.io).\n\nIt also provides a test application to test the preconfigured endpoints in Swagger UI or your favorite tool.\n\n## 🤝 Contribution Guidelines\n\nWe welcome contributions! To get started, please follow these steps:\n\n1. **Fork** the repository.\n2. **Create** a new branch:\n   ```bash\n   git checkout -b your-feature-name\n   ```\n3. **Commit** your changes:\n   ```bash\n   git commit -am \"Describe your feature or fix\"\n   ```\n4. **Push** the branch to your fork:\n   ```bash\n   git push origin your-feature-name\n   ```\n5. **Open a pull request** with a clear and detailed description of your changes.\n\n\u003e ⚠️ **Note:**  \n\u003e This repository is a mirror of the monorepo where all libraries and apps are developed.  \n\u003e If your pull request is accepted, the changes will be manually merged into the monorepo and then reflected here.\n\n## 📄 License\n\nThis project is licensed under the GPLv3 License—see the [LICENSE](../../LICENSE) file for details.\nIf you intend for commercial use, please contact me at [contact@stereov.io](mailto:contact@stereov.io).  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantistereov%2Fsingularity-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantistereov%2Fsingularity-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantistereov%2Fsingularity-core/lists"}