Skip to content

Conversation

@NayanUnni95
Copy link
Contributor

@NayanUnni95 NayanUnni95 commented Nov 12, 2025

Summary

Fixed an issue where certain user profiles generated by the Groq API included an unwanted intro message before the actual description.
Closes #86

Description

Some auto-generated profile descriptions contained the following introductory line:

Here's a concise, SEO-optimized first-person profile description that highlights username's strongest technical skills and expertise:

This message was unintentionally included due to the current Groq API prompt format.
The prompt has been updated to ensure the final output only contains the first-person profile description, removing all meta or instructional text.

Motivation and Context

This change ensures that user profiles remain clean and professional without extra text that doesn’t belong in the final output.
It resolves the issue reported in profiles such as agastya18 and shaheem-pp, where the extra line was visible.
Fixing this improves the consistency and quality of generated bios, aligning them with the intended format.

How has this been tested?

  • Tested the updated prompt using multiple GitHub usernames to confirm correct behavior.
  • Verified that all generated descriptions contain only the intended first-person text.
  • Tested across various users; issue was previously affecting <10% of cases(The issue not present in my test).
  • Confirmed successful outputs for the following test profiles:
    • shaheem-pp
    • agastya18
    • sunithvs
    • liyasthomas
    • torvalds

All test profiles now generate clean, first-person descriptions without the unwanted preface.

Screenshots (if appropriate):

Before

Screenshot from 2025-11-12 02-13-45 Screenshot from 2025-11-12 02-17-59

After

Screenshot from 2025-11-12 20-06-58 Screenshot from 2025-11-12 20-07-35 Screenshot from 2025-11-12 20-22-14 Screenshot from 2025-11-12 20-22-48

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.

@vercel
Copy link
Contributor

vercel bot commented Nov 12, 2025

@NayanUnni95 is attempting to deploy a commit to the lamsta Team on Vercel.

A member of the Team first needs to authorize it.

@gemini-code-assist
Copy link

Summary of Changes

Hello @NayanUnni95, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request primarily addresses a bug in the AI-generated profile descriptions by refining the Groq API prompt to remove unwanted introductory text, ensuring cleaner and more professional user bios. Concurrently, it introduces SEO content generation for profiles to boost their online visibility. The underlying analytics infrastructure has been upgraded from Nocodb to Supabase for improved data handling, and the project's documentation has been extensively revised to provide clearer guidance for contributors and users. Several frontend components also received updates for better user experience and performance.

Highlights

  • AI-Generated Profile Description Fix: Resolved an issue where auto-generated user profile descriptions from the Groq API included an unwanted introductory message. The AI prompt has been refined to ensure only the first-person profile description is returned, improving the quality and professionalism of user bios.
  • SEO Content Generation: Introduced a new feature to generate SEO-optimized content (title, description, keywords) for user profiles using the Groq API. This enhances discoverability and professional presence for developer portfolios.
  • Analytics Platform Migration: Migrated the user analytics tracking from Nocodb to Supabase, improving the robustness and scalability of data collection. This includes passing URL search parameters for better tracking of user acquisition sources.
  • Documentation Overhaul: Significantly updated the CONTRIBUTING.md and README.md files. The CONTRIBUTING.md now provides comprehensive setup instructions for both frontend (Next.js) and backend (FastAPI), along with detailed development, testing, and code review guidelines. The README.md includes a new section for environment setup and API key generation.
  • Frontend Enhancements: Implemented dynamic metadata generation for user profile pages, updated social media links to use new constants, and refined the GitHub modal with debounced input, loading states, and improved navigation. The 'About' section now conditionally renders, and image loading has been optimized.
Ignored Files
  • Ignored by pattern: .github/workflows/** (2)
    • .github/workflows/consumer.yml
    • .github/workflows/weekly_sync.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request addresses an issue with unwanted introductory text in AI-generated profile descriptions by refining the Groq API prompt. Beyond this fix, the PR introduces several significant enhancements. It adds a new feature to generate SEO-optimized metadata (title, description, keywords) for user profiles. The analytics backend has been migrated from Nocodb to Supabase, with improved data collection including UTM parameters. The UI/UX has been improved, notably in the GitHub username modal which now uses debouncing to validate usernames and provides a better loading state. Documentation has also been substantially updated to improve the contributor experience. My review includes suggestions to improve code robustness, fix inconsistencies in documentation, and remove duplicated code.

1. **Clone the Repository:**
```bash
git clone https://github.com/devb-io/devb.io.git
git clone https://github.com/sunithvs/devb.io.git

Choose a reason for hiding this comment

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

high

The repository clone URL has been changed to point to a personal fork (sunithvs/devb.io) instead of the organization's repository (devb-io/devb.io). This appears to be an accidental change. Please revert this to point to the main project repository. This also applies to the contribution and license links on lines 109 and 113, which also point to the personal fork.

Suggested change
git clone https://github.com/sunithvs/devb.io.git
git clone https://github.com/devb-io/devb.io.git

If you have any questions, feel free to open an issue or reach out via [support@devb.io](mailto:support@devb.io).
If you have any questions, feel free to:
- Open an issue on GitHub
- Join our [Discord community](https://discord.gg/W364NEY6)

Choose a reason for hiding this comment

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

medium

The Discord community link appears to be outdated. This file points to https://discord.gg/W364NEY6, while README.md was updated in this same pull request to use https://discord.gg/se8fhSWSw9. Please update this link to ensure consistency across all documentation.

Suggested change
- Join our [Discord community](https://discord.gg/W364NEY6)
- Join our [Discord community](https://discord.gg/se8fhSWSw9)

Comment on lines 59 to 61
title = result["title"]
description = result["description"]
keywords = result["keywords"]

Choose a reason for hiding this comment

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

medium

Accessing dictionary keys directly (e.g., result["title"]) can raise a KeyError if the key is missing from the AI's response, which would cause an unhandled exception. It's safer to use the .get() method, which returns None if the key is not found. The subsequent check on line 63 will then correctly handle cases where keys are missing.

Suggested change
title = result["title"]
description = result["description"]
keywords = result["keywords"]
title = result.get("title")
description = result.get("description")
keywords = result.get("keywords")

Comment on lines 12 to 19
// Utility function to detect provider from URL
const detectProvider = (url: string): string => {
const urlLower = url.toLowerCase();
if (urlLower.includes('medium.com')) return 'medium';
if (urlLower.includes('instagram.com')) return 'instagram';
if (urlLower.includes('huggingface.co')) return 'huggingface';
return 'generic';
};

Choose a reason for hiding this comment

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

medium

The detectProvider utility function is also defined in www/components/ProfileSection.tsx. To adhere to the DRY (Don't Repeat Yourself) principle and improve maintainability, this function should be extracted into a single, shared utility file (e.g., lib/utils.ts) and then imported into both api.ts and ProfileSection.tsx.

@sunithvs sunithvs changed the base branch from v2 to main November 13, 2025 11:13
@sunithvs sunithvs merged commit c46948e into sunithvs:main Nov 13, 2025
0 of 2 checks passed
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.

Profile description response issue

2 participants