nosilha.com is a community-driven cultural heritage hub for Brava Island, Cape Verde. This open-source, volunteer-supported project preserves and celebrates the island's rich cultural memory while connecting the global Cape Verdean diaspora, local residents, and international visitors to the heart of Brava.
Quick Links: Features | Getting Started | Documentation | Contributing
🚧 Pre-Release (v0.0.2) — Actively developed. Core features functional, some areas under construction.
| Audience | What They'll Find |
|---|---|
| Cape Verdean Diaspora | Cultural heritage, community connection, homeland updates |
| Local Residents | Shared heritage celebration, local services directory |
| Cultural Researchers | History, traditions, cultural documentation |
| International Visitors | Trip planning, authentic experiences, heritage sites |
| Feature | Description |
|---|---|
| 🏛️ Cultural Archive | History, traditions, and cultural practices with stories of significant figures |
| 🏘️ Town Pages | Detailed pages for each town with historical context |
| 📸 Media Galleries | Photo and video galleries of landscapes, people, and culture |
| 🗺️ Interactive Maps | Mapbox-powered maps with landmarks and heritage sites |
| 📒 Community Directory | Local businesses, artisans, and services |
| 🌐 Multilingual | English, Portuguese, and French support |
| Frontend | Backend | Infrastructure |
|---|---|---|
| Next.js 16 + React 19.2 (App Router) | Spring Boot 4.0 + Kotlin 2.3.0 | Google Cloud Run (serverless) |
| TypeScript + Tailwind CSS | PostgreSQL 16 + Flyway migrations | Terraform IaC |
| Supabase Auth + Mapbox GL | Spring Modulith 2.0.1 | GitHub Actions CI/CD |
The project uses Taskfile to orchestrate development workflows. Install it with brew install go-task.
task check # Verify prerequisites (Docker, Node, pnpm, Java)
task setup # Copy env templates (API, web, infra), install web dependencies
task dev # Start API (auto-starts postgres) + web in parallelThe API uses Spring Boot Docker Compose integration to auto-start and configure PostgreSQL — no manual docker-compose up needed.
Frontend-only (no backend)? Use task setup:mock && task dev:web to run with mock data.
Full guide: See
docs/00-getting-started/getting-started.mdfor prerequisites, environment variables, daily workflows, and troubleshooting.
| Service | URL |
|---|---|
| Frontend | http://localhost:3000 |
| Backend API | http://localhost:8080/api/v1/ |
| Swagger UI | http://localhost:8080/swagger-ui.html |
| Health Check | http://localhost:8080/actuator/health |
| PostgreSQL | localhost:5432 (db: nosilha_db, user: nosilha, password: nosilha) |
task test # Run all tests (API + web)
task lint # Run all linters (ktlint + ESLint)- Review Setup: See
docs/40-operations/ci-cd-pipeline.md - Configure Secrets: Set up GitHub secrets and Google Cloud credentials
- Deploy Infrastructure: Use Terraform to provision GCP resources
- Automated Deployment: Push to
mainbranch triggers automatic deployment
| Document | Description |
|---|---|
| Getting Started | Developer setup, prerequisites, daily workflows |
| Architecture | System design, components, data flow |
| Design System | UI components, styling, patterns |
| API Reference | Backend endpoints and schemas |
| API Coding Standards | Backend coding conventions |
| Testing Guide | E2E and unit testing approach |
| State Management | Zustand, TanStack Query patterns |
| Spring Modulith | Backend module architecture |
| CI/CD Pipeline | Deployment and automation |
| Troubleshooting | Common issues and solutions |
See the Changelog for releases, updates, and milestones.
This is an open project dedicated to the celebration of Brava. We welcome contributions from the community. Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
- Questions & Discussion: GitHub Discussions
- Bug Reports & Features: GitHub Issues
- Security Vulnerabilities: See SECURITY.md
This project is licensed under the MIT License - see the LICENSE file for details.
Why MIT? This permissive license allows maximum flexibility for developers and organizations to use, modify, and build upon Nos Ilha while encouraging contributions back to the community.
For Brava. By Brava. Always.
