Skip to content

[PULSE-46] Add Features page, header nav link & version bump to 0.1.3#14

Merged
uz1mani merged 2 commits intomainfrom
staging
Feb 7, 2026
Merged

[PULSE-46] Add Features page, header nav link & version bump to 0.1.3#14
uz1mani merged 2 commits intomainfrom
staging

Conversation

@uz1mani
Copy link
Copy Markdown
Member

@uz1mani uz1mani commented Feb 7, 2026

Work Item

PULSE-46

Summary

  • Added a dedicated Features / Product Tour page (/features) showcasing all Pulse capabilities with mixed layout styles (cards, inline lists, checkmarks, horizontal steps)
  • Added "Features" link to header navigation (unauthenticated) and footer
  • Bumped version to 0.1.3 and @ciphera-net/ui dependency to ^0.0.46 (header gap fix)

Changes

  • app/features/page.tsx — New page with 6 sections: hero with badge, 3 pillar cards (Privacy, Dashboard, Lightweight), 6 core capabilities as icon+text list (no cards), content analytics split section with animated progress bars, trust signals as compact checkmark items (no cards), 3-step horizontal setup flow (no cards), and bottom CTA
  • app/layout-content.tsx — Added "Features" link to customNavItems for unauthenticated users; authenticated users still see "Tools"
  • components/Footer.tsx — Added "Features" to the Company links column
  • package.json — Version 0.1.20.1.3, @ciphera-net/ui ^0.0.45^0.0.46

Test Plan

[ ] Navigate to /features — verify hero, pillar cards, capabilities list, content section, trust signals, steps, and CTA all render
[ ] Verify visual variety — only the 3 pillar cards and content section use bordered blocks; capabilities, trust signals, and steps use inline layouts
[ ] Verify header shows "Why Pulse", "Pricing", "Features" in one nav group with no gap (requires ciphera-ui 0.0.46)
[ ] Verify footer Company column includes "Features" link pointing to /features
[ ] Click "Get Started Free" and "View Pricing" CTAs — verify they trigger OAuth flow and navigate to /pricing respectively
[ ] Click "View all integrations" and "View on GitHub" links — verify they navigate correctly
[ ] Test responsive layout on mobile — verify sections stack properly

…ed users and maintain 'Tools' for authenticated users
… 0.0.46; refine feature descriptions for clarity and consistency
@uz1mani uz1mani merged commit cc14994 into main Feb 7, 2026
@greptile-apps
Copy link
Copy Markdown

greptile-apps bot commented Feb 7, 2026

Greptile Overview

Greptile Summary

  • Adds a new /features product tour page with multiple animated sections (pillars, capabilities list, trust signals, setup steps, CTA).
  • Updates header navigation to show a “Features” link for unauthenticated users while keeping “Tools” for authenticated users.
  • Adds a “Features” link to the footer Company column.
  • Bumps app version to 0.1.3 and updates @ciphera-net/ui to ^0.0.46 (lockfile updated accordingly).

Confidence Score: 4/5

  • This PR is generally safe to merge after fixing a small UI-rendering bug on the new Features page.
  • Changes are mostly additive UI/content and dependency bumps. The main functional issue found is JSX interpreting a literal <script> token in copy, which will render incorrectly and should be escaped. No other behavior changes appear risky.
  • app/features/page.tsx

Important Files Changed

Filename Overview
app/features/page.tsx Adds new client-rendered /features page using framer-motion animations and @ciphera-net/ui components; contains JSX text that will be interpreted as an HTML <script> element instead of displaying literal text.
app/layout-content.tsx Updates Header nav items to show 'Features' for unauthenticated users and keep 'Tools' for authenticated users; change is straightforward.
components/Footer.tsx Adds 'Features' link to footer Company column; low-risk routing change.
package.json Bumps app version to 0.1.3 and updates @ciphera-net/ui dependency to ^0.0.46.
package-lock.json Updates lockfile for version bump and @ciphera-net/ui 0.0.46 resolution/integrity.

Sequence Diagram

sequenceDiagram
  participant U as User (unauth)
  participant N as Next.js App Router
  participant F as /features (FeaturesPage)
  participant H as LayoutContent/Header
  participant O as OAuth endpoint

  U->>N: GET /features
  N->>F: Render FeaturesPage (client component)
  F-->>U: Page UI + framer-motion animations
  U->>H: View header nav
  H-->>U: Shows "Features" link (unauth)
  U->>F: Click "Get Started Free"
  F->>O: initiateOAuthFlow()
  O-->>U: Redirect to OAuth provider
  U->>F: Click "View Pricing"
  F->>N: Navigate to /pricing
Loading

Copy link
Copy Markdown

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

5 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

Comment on lines +321 to +323
>
View all integrations <ArrowRightIcon className="w-4 h-4" />
</Link>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JSX renders <script> tag

In the “How it works” steps, the string Paste one <script> tag. is parsed as JSX/HTML, so it won’t display the literal <script> text (and can produce surprising DOM output). Escape it (e.g. Paste one <script /> tag. via &lt;script&gt;) or wrap the literal in a string/<code> element so the UI shows what you intend.

Prompt To Fix With AI
This is a comment left during a code review.
Path: app/features/page.tsx
Line: 321:323

Comment:
**JSX renders `<script>` tag**

In the “How it works” steps, the string `Paste one <script> tag.` is parsed as JSX/HTML, so it won’t display the literal `<script>` text (and can produce surprising DOM output). Escape it (e.g. `Paste one <script /> tag.` via `&lt;script&gt;`) or wrap the literal in a string/`<code>` element so the UI shows what you intend.

How can I resolve this? If you propose a fix, please make it concise.

@uz1mani uz1mani self-assigned this Feb 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant