diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..25c24b1
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,45 @@
+# Contributing to Consentify
+
+Thanks for your interest in contributing!
+
+## Prerequisites
+
+- Node.js 20+
+- pnpm 9+
+
+## Setup
+
+```bash
+git clone https://github.com/RomanDenysov/consentify.git
+cd consentify
+pnpm install
+```
+
+## Development
+
+```bash
+# Build all packages
+pnpm -r build
+
+# Run tests
+pnpm test
+```
+
+## Code Style
+
+- TypeScript strict mode
+- Zero runtime dependencies in `@consentify/core`
+- All new features must include tests
+
+## Pull Request Process
+
+1. Fork the repository
+2. Create a feature branch (`git checkout -b feat/my-feature`)
+3. Make your changes and add tests
+4. Run `pnpm -r build && pnpm test` to verify everything passes
+5. Commit with a descriptive message (`feat: add my feature`)
+6. Open a PR to `main`
+
+## License
+
+By contributing, you agree that your contributions will be licensed under the MIT License.
diff --git a/README.md b/README.md
index 2aaedbc..963ded8 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,11 @@
+
+
# consentify
**Headless cookie consent that actually blocks scripts.**
[](https://www.npmjs.com/package/@consentify/core)
-[](#)
+[](https://github.com/RomanDenysov/consentify/actions/workflows/ci.yml)
[](https://bundlephobia.com/package/@consentify/core)
[](#)
[](https://www.typescriptlang.org/)
@@ -33,6 +35,17 @@ consent.client.set({ analytics: true });
consent.client.get('analytics'); // true
```
+## Why Consentify?
+
+| | Consentify | CookieBot | CookieYes | DIY |
+|---|---|---|---|---|
+| Bundle size | ~2 KB | 140 KB+ | 90 KB+ | varies |
+| Script blocking | `guard()` | manual | manual | manual |
+| SSR support | native | none | none | manual |
+| Headless (own UI) | yes | no | no | yes |
+| Zero dependencies | yes | no | no | varies |
+| Price | Free / OSS | from $12/mo | from $9/mo | Free |
+
## The Full Integration: Blocking Google Analytics Until Consent
This is what consent management is actually for -- preventing tracking scripts from loading until the user explicitly opts in. `guard()` handles the entire lifecycle: wait for consent, load the script, and optionally clean up if consent is revoked.
@@ -261,8 +274,19 @@ The `'necessary'` category is always `true` and cannot be disabled. When you cha
A hosted consent management platform with a visual banner editor, analytics dashboard, and compliance reporting.
+- **Visual banner builder** -- drag-and-drop consent UI
+- **Consent analytics dashboard** -- see opt-in/out rates
+- **One-line integration** -- single script tag setup
+- **Multi-language support** -- GDPR-compliant translations
+
[consentify.dev](https://consentify.dev)
+## Roadmap
+
+- `@consentify/gtm` -- Google Consent Mode v2 adapter
+- `@consentify/next` -- Next.js middleware with automatic cookie handling
+- Geo-aware consent defaults -- show banners only where required
+
## Support
If you find this project useful, consider supporting its development:
diff --git a/assets/banner.svg b/assets/banner.svg
new file mode 100644
index 0000000..a2dde3f
--- /dev/null
+++ b/assets/banner.svg
@@ -0,0 +1,4 @@
+