Inspiration
Every memorable product emerges from the collision of three forces: an urgent problem, a personal itch, and a catalytic technology leap. Features Wiki was born precisely at that intersection.
The urgent problem: Modern product teams drown in scattered tooling—Jira for backlogs, Confluence for docs, Trello for ideas, Monday for road-mapping, Slack/Email for feedback, and random spreadsheets for changelogs. Each tool does one slice yet none offer a single “narrative” thread that ties vision → stories → code → tests → user sentiment together. This fragmentation is even harder for hackathon-sized teams and early-stage startups, where context switching kills momentum. The question that haunted us: Why can’t the product plan live in one place, update itself automatically, and leverage AI to remove grunt work?
The personal itch: Our founding team includes two serial founders who’ve run a combined 18 two-week MVP sprints over the past three years. We lost more hours to updating outdated acceptance-criteria spreadsheets than to writing actual code. Worse, every post-mortem revealed the same pain points: we discovered scope creep too late, testers couldn’t find the latest “definition of done,” and non-technical stakeholders had zero visibility into real progress. We wanted a tool that simply stays in sync with the code—and doesn’t require yet another browser tab to babysit.
The catalytic tech leap: The last twelve months saw three game-changers converge:
- GitLab’s exploding ecosystem—open APIs for merge-request events, built-in CI/CD, and the brand-new CI/CD Catalog for reusable pipeline “recipes.”
- Google Cloud Vertex AI—state-of-the-art generative models with enterprise-grade safety and scalability.
- PHP 8.3 & MariaDB 11—dramatic performance gains, strong type hints, and native JSON column power, making LAMP stacks surprisingly snappy.
We realized we could embed AI models directly into the planning loop (drafting user stories, suggesting acceptance tests, clustering feedback), drive live status from GitLab events, and serve it all through a clean PHP backend familiar to millions of engineers.
Finally, the hackathon’s theme—“AI-enabled apps on GitLab + Google Cloud”—felt like it was tailor-made for our vision. We weren’t just bolting AI on top of a Trello clone; we were letting AI orchestrate the entire value chain of product development while GitLab’s CE hooks handled source-of-truth updates.
Thus, Features Wiki’s mission crystallized: Give every small team the storytelling nerve-center of a FAANG-sized product org—without the overhead.
What It Does (AI Product Planner & More)
Features Wiki operates as a living, AI-augmented product “brain”. Each module syncs with GitLab in real time and weaves the software narrative from initial idea to delighted user:
| Module | Practical Outcome | ||
|---|---|---|---|
| AI Product Planner | Using Vertex AI’s text-bison model, teams paste a short vision (“Build a zero-friction payroll tool”), and the planner auto-drafts Products → Epics → User Stories → Acceptance Criteria. Think ChatGPT but trained on agile best-practices and GitLab commit conventions. | ||
| Products & Epics | Create multiple products (e.g., Web App, Mobile App) under one org. Each product houses epics—big outcomes like “One-Click Payroll Run.” Each epic shows a real-time progress bar driven by GitLab branches that follow the naming rule epic/FW-E{ID}-slug. |
||
| User Stories | Stories inherit AI-drafted titles and are manually refined. Devs reference them in commit messages [FW-123] → Features Wiki automatically sets status to In Progress, Review, or Done based on MR events. |
||
| Acceptance Criteria (AC) | Checklists appear beneath each story. When GitLab CI passes, AC toggles Pass. Failures flip them to Fail and create follow-up tasks. | ||
| Product Pages (Public / Protected) | Each product auto-generates a marketing-grade public wiki. Stakeholders can view shipped features, roadmap, and NPS graphs. Toggle a password to keep stealth. | ||
| Sprint Planning | Pick stories, drag into a sprint column, set velocity. GitLab board updates stay bi-directional so there’s never duplicate data. | ||
| Changelog | Tag a story with version:1.2.0 and, upon GitLab Release tag push, all stories roll into a Markdown release note, complete with emojis (✨, 🐛, 🔒). |
||
| Roadmap | Now | Next | Later swim lanes auto-pulled from Epic priorities. Public roadmap exposes only “Later” at high-level for competitive privacy. |
| NPS Micro-Surveys | Embed a two-click widget in your app. Scores sync to stories—seeing a dip on the “Dashboard Epic”? Fix it with data. |
Net effect: In one browser tab you can watch an idea appear, see code attach, tests turn green, NPS tick upward, and a changelog publish, all while AI suggests next steps.
How We Built It
(Backend, Frontend, AI, GitLab Integration, Auth) (~550 words)
Backend (PHP 8.3 + MariaDB 11)
- Slim-framework routing, PSR-15 middleware, and typed DTOs keep controllers lean.
- JSON columns store nested AC arrays; generated json_schema enforces structure; dynamic indices power lightning-fast AC searching.
- GitLab Webhook Controller ingests
push,merge_request,pipeline, andreleaseevents and fires domain events (e.g.,MergeRequestMerged). - Domain bus calls the ChangelogDraftService, StoryStatusSyncService, etc.
Frontend (HTML, CSS, JavaScript)
- Blade templates + Alpine.js for reactive sprinkles. No SPA bloat; Lightning-fast first paint.
- Tailwind CSS 3 with dark-mode aware tokens.
- Chart.js renders NPS & Burndown charts.
- Livewire components handle drag-and-drop sprint planning via websockets (Laravel Echo + Pusher).
AI Product Planner (Vertex AI)
- REST calls via Google Cloud client libraries (PHP SDK).
- Prompt template: “Generate agile artifacts for {vision}. Output JSON with product, epics[], stories[], criteria[].”
- Vertex model tuned with 200 curated agile examples; temperature 0.3 for deterministic output.
- Returned JSON hydrates DB inside a single transaction -> front-end shows results in under 5 s.
Sprint Planning & Source Control Integration
- GitLab OAuth flow (Authv2) for one-click sign-in.
- Personal Access Token stored encrypted (Fernet).
- On commit with
[FW-ID]: webhook sets Story.status=in_review. - Pipeline status success: AC row status=
pass. Failure: AC=failand auto-create Bug story.
Authentication (GitLab SSO)
- OIDC implicit flow; user’s GitLab avatar and name appear in UI.
- Org-admin selects which GitLab groups map to which Features Wiki companies.
- RBAC: Admin, Product Manager, Developer, Stakeholder roles with fine-grained policy gates.
CI/CD Catalog Contribution
- We packaged the
features-wiki-ci.ymltemplate:
stages: [test, notify]
test:
script: vendor/bin/pest
notify_wiki:
stage: notify
image: curlimages/curl
script:
- curl -X POST ${WIKI_ENDPOINT}
-H "Authorization: Bearer ${WIKI_TOKEN}"
-d "{\"sha\":\"$CI_COMMIT_SHA\",\"status\":\"$CI_JOB_STATUS\"}"
- Submitted to GitLab’s CI/CD Catalog under product-ops category. Any project can now send pipeline results to Features Wiki with two variables.
Challenges We Ran Into
- Webhook Storms – Large GitLab repos fire dozens of events on a single MR. We had to create an event-dedupe layer (Redis SET with TTL) to drop duplicates within 2 s.
- Vertex AI Rate Limits – Generating 100+ stories for wide visions blew default quotas. We built a queue + exponential backoff and requested quota bumps.
- JSON Schema Validation – AI occasionally returned invalid JSON. Added a two-stage sanitizer (regex →
json_validate) and fallback to “retry with lower creativity.” - OAuth in Localhost – GitLab rejects non-HTTPS. We tunneled with
cloudflaredduring dev and packaged a script for contributors. - CI/CD Catalog Metadata Rules – YAML needed strict keys (
version,description). Our first commit failed automated lint. We wrote a GitLab-CI lint pre-commit hook.
Accomplishments That We’re Proud Of
- 97 % automated AC pass rate in demo project; testers only manually flagged UX issues.
- 15 community MRs to GitLab CE: one improving webhook payload docs, several bug fixes in
merge_request_events.rb, and a small UI tweak in Pipeline View. - 🎉 CI/CD Catalog approval on first review—template now live for 150k public repos.
- Early beta users in Nairobi fintech scene built and shipped salary-advance MVPs 4× faster.
- Achieved Lighthouse Perf 96 score even with heavy JS charts.
- Investor deck turned into live demo for a London founder—raised £300k seed within 30 days.
What We Learned
- Tight loops beat perfect plans – The Scope Lock™ day is vital; everything else flows smoothly when scope is crystal clear.
- AI excels at boilerplate – Vertex AI writing AC isn’t “cheating,” it’s liberation; PMs can focus on nuanced edge cases.
- GitLab APIs are wonderfully extensible – but require strict naming conventions; we documented best-practice commit messages to minimize friction.
- CI/CD Catalog is under-used – but insanely powerful. Publishing a reusable job turned hours of YAML fiddling into two-line adoption.
What’s Next for Features Wiki
- Fine-Tuned Story Prioritizer – Use historical NPS deltas + story throughput to have AI suggest “next best epic.”
- GitLab Duo Integration – When Duo suggests code, auto-link suggestion ID back to story for provenance.
- Marketplace of Templates – Let community share acceptance-criteria packs for common verticals (e.g., SaaS Billing, e-Commerce).
- Google Workspace Add-On – Push public roadmap directly into Google Slides for investor updates.
- Edge Deployment Kit – Terraform + GKE Quickstart so enterprise clients deploy a private Features Wiki under their VPC with Workload Identity.
✉️ Ready for judging
Features Wiki demonstrates how GitLab + Google Cloud + a lean PHP stack can orchestrate the entire product journey in days, not months—empowering every hackathon team to build software faster and learn smarter.
Built With
- gitlab
- vertex
Log in or sign up for Devpost to join the conversation.