# Requirements Document ## Introduction A personal homepage at andreknie.de for Dr. Andre Knie that serves as a central platform for trust-building, content access, speaking visibility, consulting positioning, and lead generation. The site presents the stakeholder's AI expertise in a calm, professional, hype-free manner while making content from the Kniepunkt column, Almost Intelligent podcast, talks, and consulting work persistently accessible. It reduces dependency on LinkedIn algorithms and creates a bridge between the personal brand and the Data Hive Cassel (dHive) company offering. ## Glossary - **Homepage**: The personal website at andreknie.de serving as the stakeholder's central digital presence - **Stakeholder**: Dr. Andre Knie — AI expert, consultant, speaker, content author, and Managing Director of dHive - **dHive**: Data Hive Cassel — the company associated with the stakeholder, operating at d-hive.de - **Kniepunkt**: A weekly AI column authored by the stakeholder, currently at 38+ issues - **Almost_Intelligent**: A bi-weekly AI podcast bridging artificial and natural intelligence - **Content_Archive**: The collection of all content objects accessible on the homepage - **Content_Object**: A discrete piece of content — one of: Post, Resource, Talk, Consulting_Example, Newsletter_Issue, Podcast_Episode, or Event - **Post**: Written content including articles and content originating from or related to LinkedIn posts - **Resource**: Downloadable or otherwise useful material that supports visitors and generates leads - **Talk**: A speaking topic, example, or event-related credibility item - **Consulting_Example**: An example of advisory or consulting work presented without exposing confidential client details - **Newsletter_Issue**: An edition or content item related to the Kniepunkt column or newsletter communication - **Podcast_Episode**: An episode of Almost Intelligent - **Event**: A relevant appearance, date, or time-bound activity - **Lead_Data**: Basic visitor-provided contact information collected for resource downloads, newsletter sign-ups, or inquiries - **Inquiry**: A visitor's contact request or talk request submitted through the homepage - **Sales_Funnel**: The business process for turning visitor interest into qualified leads - **Content_Filter**: A business-level classification that helps visitors find content by relevant criteria - **Visitor**: A public user browsing the homepage - **Email_Confirmation**: A verification step to reduce bot submissions and improve inquiry quality ## Requirements ### Requirement 1: Personal Profile Presentation **User Story:** As a visitor, I want to see a clear and prominent personal profile of Dr. Andre Knie, so that I quickly understand who he is, what he stands for, and how he frames AI. #### Acceptance Criteria 1. THE Homepage SHALL present the Stakeholder's personal profile in a dedicated section visible without scrolling on a standard desktop viewport (1280×720 or larger), including the Stakeholder's name, a professional photo, and a summary statement of no more than 150 words 2. THE Homepage SHALL communicate the Stakeholder's roles by explicitly naming all of the following: AI expert, consultant, speaker, content author, and Managing Director of dHive 3. THE Homepage SHALL present AI using factual, evidence-based language and SHALL NOT use superlatives (e.g., "revolutionary", "game-changing"), apocalyptic framing (e.g., "existential threat", "will replace all jobs"), or unsubstantiated predictions 4. THE Homepage SHALL explain the Stakeholder's perspective on sovereign AI from Germany by including a positioning statement that references at least data sovereignty, independence from non-European providers, and practical applicability for German organizations 5. THE Homepage SHALL make the relationship between the Stakeholder's personal offer and dHive understandable by presenting both the personal brand and dHive in the same viewport, with each having its own identifiable label or heading, and neither occupying more than 70% of the shared section's visual area ### Requirement 2: Target Audience Orientation **User Story:** As a visitor from a mid-sized company, HR, OD, IT leadership, or event organization, I want the homepage to address my context, so that I can evaluate the stakeholder's relevance for my needs. #### Acceptance Criteria 1. THE Homepage SHALL explicitly name mid-sized companies, HR and people development, organizational development, IT leaders, and managing directors as target audiences in visible page content so that each audience segment can identify itself within 1 scroll of the landing view 2. THE Homepage SHALL present at least 3 speaking examples including topic title, event name, and format (keynote, workshop, panel) to enable event organizers to evaluate the Stakeholder as a potential speaker 3. THE Homepage SHALL present AI-related content using factual statements, concrete project references, or verifiable data points rather than unsubstantiated superlatives or subjective claims 4. THE Homepage SHALL avoid superlative adjectives (e.g., "best", "leading", "unmatched"), unsubstantiated success claims without reference, and call-to-action language that urges immediate purchase or booking without prior context ### Requirement 3: Post and Article Access **User Story:** As a visitor, I want to access posts and articles, so that I can read the stakeholder's written content on AI topics persistently without relying on LinkedIn. #### Acceptance Criteria 1. THE Content_Archive SHALL provide access to Posts that were originally published on LinkedIn or authored independently, each containing at minimum a title, publication date, and body text 2. WHEN a Visitor selects a Post, THE Content_Archive SHALL display the post title, publication date, and full body text including any inline formatting and hyperlinks 3. THE Content_Archive SHALL present Posts in reverse chronological order by publication date, allowing a Visitor to browse through all available entries 4. IF a Visitor selects a Post that is unavailable or cannot be loaded, THEN THE Content_Archive SHALL display an error message indicating that the requested content could not be found 5. THE Content_Archive SHALL display a list of available Posts showing at minimum the title and publication date for each entry to support discovery ### Requirement 4: Resource Access and Lead Capture **User Story:** As a visitor, I want to access downloadable resources, so that I can use practical AI-related materials, and as the stakeholder, I want lead capture on downloads to support the Sales Funnel. #### Acceptance Criteria 1. THE Homepage SHALL display at least 1 downloadable Resource in a dedicated resource area, where each Resource shows a title, a short description (maximum 200 characters), and a download indicator 2. THE Homepage SHALL allow Resources designated as downloadable to be accessed by Visitors only after Lead_Data submission 3. WHEN a Visitor requests a Resource download, THE Homepage SHALL present a form requiring the following Lead_Data fields before granting access: name (maximum 100 characters), email address (validated as a correctly formatted email), and company name (maximum 150 characters) 4. IF a Visitor submits Lead_Data that fails validation, THEN THE Homepage SHALL display an error indication next to each invalid field and retain all previously entered valid data 5. WHEN Lead_Data is successfully collected through a Resource download, THE Homepage SHALL store the Lead_Data record associated with the downloaded Resource identifier and a timestamp, making it retrievable for Sales_Funnel development 6. THE Homepage SHALL display the list of required Lead_Data fields and their purpose to the Visitor before the Lead_Data form is submitted ### Requirement 5: Talk and Speaking Content **User Story:** As an event organizer, I want to see examples of talks and speaking engagements, so that I can evaluate the stakeholder as a potential speaker for my event. #### Acceptance Criteria 1. THE Content_Archive SHALL provide access to Talks as defined Content_Objects within the browsable content structure 2. WHEN a Visitor views Talk content, THE Homepage SHALL present for each Talk at minimum: a speaking topic title, a description of the talk content, and at least one past event or context where the talk was delivered 3. THE Homepage SHALL present Talks in a way that allows event organizers to assess the Stakeholder's speaking relevance by showing topic coverage, target audience fit, and evidence of prior speaking engagements 4. IF no Talks are available in the Content_Archive, THEN THE Homepage SHALL not display an empty Talk section to Visitors ### Requirement 6: Consulting Examples **User Story:** As a potential client, I want to see examples of consulting work, so that I can assess the stakeholder's advisory relevance for my organization. #### Acceptance Criteria 1. THE Content_Archive SHALL display a collection of at least 3 and at most 10 Consulting_Examples, each presenting a title, industry tag, organization-size category, problem domain, approach taken, and outcomes achieved 2. WHEN a Visitor views a Consulting_Example, THE Homepage SHALL present the problem domain, approach, and outcomes without exposing client organization names, specific revenue figures, or internal project identifiers 3. THE Homepage SHALL present each Consulting_Example with an industry tag and an organization-size category (50–5,000 employees) so that a Visitor can identify examples matching mid-sized organizations 4. IF no Consulting_Examples are available in the Content_Archive, THEN THE Homepage SHALL display an informational message indicating that examples are currently being prepared ### Requirement 7: Kniepunkt Column Home **User Story:** As a reader of the Kniepunkt column, I want a dedicated home for the column on the homepage, so that I can access current and past issues without depending on LinkedIn or newsletter delivery. #### Acceptance Criteria 1. THE Homepage SHALL display a distinct, labeled section dedicated to Kniepunkt content, visually separated from other Homepage content 2. THE Content_Archive SHALL display a list of all available Newsletter_Issues related to the Kniepunkt column, each showing at minimum the issue title and publication date 3. THE Content_Archive SHALL present Newsletter_Issues sorted by publication date in descending order (newest first) 4. WHEN a Visitor selects a Newsletter_Issue from the Content_Archive, THE Homepage SHALL display the full content of that issue ### Requirement 8: Almost Intelligent Podcast Home **User Story:** As a podcast listener, I want a dedicated home for Almost Intelligent on the homepage, so that I can discover and access episodes. #### Acceptance Criteria 1. THE Homepage SHALL display a visually distinct section for Almost_Intelligent that includes the podcast name, a brief description, and a link or entry point to the full episode listing 2. THE Content_Archive SHALL display Podcast_Episodes in reverse-chronological order, showing for each episode at minimum: title, publication date, and a short description or summary 3. WHEN a Visitor browses podcast content, THE Homepage SHALL present a maximum of 10 episodes per page with pagination controls to access older episodes 4. WHEN a Visitor selects a Podcast_Episode, THE Homepage SHALL provide a direct link to the episode audio on the hosting platform or an embedded player 5. IF no Podcast_Episodes are available, THEN THE Homepage SHALL display a message indicating that no episodes have been published yet ### Requirement 9: Events and Dates **User Story:** As a visitor, I want to see relevant events and dates, so that I know where and when the stakeholder appears or is active. #### Acceptance Criteria 1. THE Content_Archive SHALL store Events as entities with the following required attributes: title, date (ISO 8601), location, event type (talk, workshop, conference, appearance), and description (maximum 300 characters) 2. WHEN a Visitor views Events, THE Content_Archive SHALL present them in reverse-chronological order grouped by year, with upcoming events (date >= today) listed before past events 3. THE Content_Archive SHALL support a maximum of 200 stored Event entities 4. IF an Event entity is missing any required attribute (title, date, location, event type), THEN THE Content_Archive SHALL reject the entity with an error message indicating the missing fields ### Requirement 10: Newsletter Subscription **User Story:** As a visitor interested in the stakeholder's AI perspective, I want to subscribe to the newsletter or column, so that I receive regular updates. #### Acceptance Criteria 1. THE Homepage SHALL display a subscription form requiring the Visitor to provide an email address to subscribe to the newsletter or Kniepunkt-related communication 2. WHEN a Visitor submits the subscription form with a valid email address, THE Homepage SHALL create both a communication subscription and a Sales_Funnel entry 3. WHEN a Visitor submits the subscription form, THE Homepage SHALL send a confirmation email to the provided address requiring the Visitor to confirm the subscription before it becomes active (double opt-in) 4. IF the Visitor does not confirm the subscription within 48 hours, THEN THE Homepage SHALL discard the pending subscription and the Sales_Funnel entry 5. IF the submitted email address does not conform to a valid email format, THEN THE Homepage SHALL display an inline error message indicating the invalid format and SHALL NOT create a subscription or Sales_Funnel entry 6. IF the submitted email address is already associated with an active subscription, THEN THE Homepage SHALL inform the Visitor that the email is already subscribed and SHALL NOT create a duplicate entry ### Requirement 11: Contact Request **User Story:** As a potential client or partner, I want to contact the stakeholder through the homepage, so that I can initiate a conversation without needing LinkedIn. #### Acceptance Criteria 1. THE Homepage SHALL display a contact form requiring at minimum the Visitor's name, email address, and a message body (maximum 2000 characters) 2. WHEN a Visitor submits the contact form, THE Homepage SHALL send a confirmation email to the Visitor's provided email address containing a unique confirmation link that expires after 24 hours 3. WHEN the Visitor clicks the confirmation link within the expiration period, THE Homepage SHALL send an email notification containing the Visitor's name, email address, and message to the Stakeholder 4. IF the confirmation link is not clicked within 24 hours, THEN THE Homepage SHALL discard the contact request and not deliver the message to the Stakeholder 5. IF the contact form is submitted with any required field empty or with an invalid email format, THEN THE Homepage SHALL display a validation error indicating which fields need correction ### Requirement 12: Talk Request **User Story:** As an event organizer, I want to request or inquire about a talk through the homepage, so that I can engage the stakeholder as a speaker. #### Acceptance Criteria 1. THE Homepage SHALL allow Visitors to submit a talk request by providing at minimum: visitor name, visitor email address, event name, proposed topic or talk title, and a message field (maximum 2000 characters) 2. WHEN a Visitor submits a talk request, THE Homepage SHALL send an Email_Confirmation message to the visitor's provided email address, and the visitor must confirm within 48 hours for the request to be forwarded 3. WHEN a Visitor confirms their email within the confirmation period, THE Homepage SHALL send an email notification containing the talk request details to the Stakeholder 4. IF a Visitor does not confirm their email within 48 hours, THEN THE Homepage SHALL discard the talk request and not notify the Stakeholder 5. WHEN a Visitor submits a talk request, THE Homepage SHALL validate that all required fields are non-empty and that the email address matches a valid email format before initiating the Email_Confirmation step ### Requirement 13: Content Filtering and Browsing **User Story:** As a visitor, I want to filter or group content by relevant criteria, so that I can find specific topics or content types efficiently. #### Acceptance Criteria 1. THE Homepage SHALL allow Visitors to filter content by at least one tag-based criterion derived from content metadata (such as topic, content type, or skill area) 2. WHEN a Visitor selects a filter criterion, THE Homepage SHALL display only content items matching that criterion within 1 second of interaction 3. IF no content items match the selected filter criterion, THEN THE Homepage SHALL display a message indicating that no matching content is available 4. THE Homepage SHALL derive filter criteria dynamically from the existing content metadata so that adding new content with new tags automatically extends the available filter options without requiring code changes 5. THE Content_Filter criteria SHALL be stored as content metadata (tags or categories) on each content item rather than as a fixed enumerated list, supporting a maximum of 20 distinct filter values at any time ### Requirement 14: Content Management **User Story:** As the stakeholder, I want to add new content to the homepage, so that the site stays current with my latest work and publications. #### Acceptance Criteria 1. THE Homepage SHALL allow the Stakeholder to add new Content_Objects by creating a content file containing at minimum a title, a publication date, a content-area assignment, and a body 2. WHEN the Stakeholder adds a new Content_Object and assigns it to a content area (Posts, Resources, Talks, Consulting_Examples, Newsletter_Issues, Podcast_Episodes, or Events), THE Homepage SHALL display the Content_Object within that content area after the next deployment 3. THE content structure SHALL allow the Stakeholder to add, rename, or remove content areas without requiring changes to existing Content_Objects that belong to other areas 4. IF the Stakeholder adds a Content_Object with a content-area value that does not match any defined content area, THEN THE Homepage SHALL reject the Content_Object and indicate the invalid content-area value along with the list of valid content areas 5. WHEN multiple Content_Objects exist within the same content area, THE Homepage SHALL display them ordered by publication date descending (newest first) ### Requirement 15: Content Type Scope **User Story:** As the stakeholder, I want the first version limited to confirmed content types, so that scope remains manageable and focused. #### Acceptance Criteria 1. THE Homepage SHALL support the following Content_Object types in the first version: Post, Resource, Talk, Consulting_Example, Newsletter_Issue, Podcast_Episode, and Event 2. THE Homepage SHALL NOT introduce additional Content_Object types beyond the confirmed list in the first version ### Requirement 16: Cross-Reference to dHive **User Story:** As a visitor, I want to understand the connection between the stakeholder and dHive, so that I can navigate to the company offering when relevant. #### Acceptance Criteria 1. THE Homepage SHALL include at least one visible link to the dHive company website (d-hive.de) that identifies the stakeholder's role (e.g., Founder & CEO) at the company 2. THE Homepage SHALL present dHive references as secondary content, meaning dHive branding (logo, company name) occupies no more than 20% of any visible section's area and does not appear above or before the stakeholder's personal name and title 3. WHEN a visitor activates a dHive link, THE Homepage SHALL navigate to https://d-hive.de in a new browser tab ### Requirement 17: Tone and Communication Standards **User Story:** As a visitor, I want the homepage to feel professional, calm, and trustworthy, so that I can engage with the content without feeling marketed to. #### Acceptance Criteria 1. THE Homepage SHALL use factual, declarative language across all content elements (headings, body text, calls-to-action, and labels) without superlatives (e.g., "best", "unbelievable", "revolutionary"), urgency phrases (e.g., "act now", "limited time", "don't miss out"), or unsubstantiated comparative claims 2. THE Homepage SHALL NOT contain fearmongering language (predictions of negative consequences for inaction), countdown timers, animated promotional banners, or aggressive upselling patterns (e.g., repeated purchase prompts, pop-up offers) 3. THE Homepage SHALL present AI as a useful tool by stating at least one concrete limitation or regulatory consideration (e.g., AI Act compliance, data sovereignty) alongside any stated capability 4. THE Homepage SHALL NOT attribute capabilities, credentials, or results to the Stakeholder, dHive, or the offer that are not substantiated by verifiable facts present in the Knowledge_Base 5. WHEN describing services or expertise, THE Homepage SHALL use specific, quantifiable evidence from the Knowledge_Base (e.g., project count, years of experience, certifications held) rather than subjective qualifiers (e.g., "highly experienced", "leading expert", "world-class") ### Requirement 18: Scope Boundaries for First Version **User Story:** As the stakeholder, I want clear scope boundaries for the first version, so that development stays focused on confirmed features. #### Acceptance Criteria 1. THE Homepage first version SHALL NOT include appointment scheduling functionality such as booking forms, time slot selection, or availability calendars 2. THE Homepage first version SHALL NOT include a calendar displaying available time slots for any service or consultation 3. THE Homepage first version SHALL NOT include any login-protected or access-restricted section that provides additional features to registered or subscribed users 4. THE Homepage first version SHALL serve all content publicly without requiring user authentication or distinguishing between visitor types 5. THE Homepage first version SHALL NOT include user account creation, login, or subscription management functionality