Skip to content

satya-ranjon/LinkFree

Β 
Β 

Repository files navigation

Open in GitPod Uptime License: MIT GitHub release (latest by date) GitHub repo size

Warning (2)

In order for your profile to appear, it must be deployed. We try to collect a few profiles before we begin to deploy.

A note for Hacktoberfest participants:

  • Pull requests which add or edit your information in a data/${yourname}.json file will NOT be counted for Hacktoberfest.
  • Pull requests which improve the codebase, documentation, or other aspects of the project and are in line with the core values of the event will count. The project contains the hacktoberfest topic, so the PRs will be automatically counted towards Hacktoberfest. However, profile update PRs will have the label invalid and therefore won't be counted towards this event.

LinkFree by EddieHub

  • LinkFree connects audiences to all of your content with one link. It is an open-source alternative to Linktree implemented in JavaScript.
  • It was initially created on a YouTube live stream.

Eddie Jaoude's LinkFree profile GIF

Example using Gitpod, an ephemeral dev environment in the cloud (free)

Gitpod GIF with progress bar

πŸ‘¨β€πŸ’» Demo

Check out the website: https://linkfree.eddiehub.io

πŸ‘‡ Prerequisites

Before contributing or adding a new feature, please make sure you have already installed the following tools:

  • Git
  • NodeJs (Works with Node LTS version v16.17.0)
  • Optional NVM: Switch Node version by using nvm use (on Windows, use nvm use v16.17.0). If this is not installed, run nvm install v16.17.0.

QUICKSTART

You can use Gitpod in the cloud or you can set this up locally with the following steps

  1. copy the .env.example file to .env and update any details required
  2. mongodb is required, it is possible to use docker-compose up to start the mongodb service
  3. npm install
  4. npm run dev

Storybook

See what components are available

  1. npm run storybook
  2. navigate to http://localhost:6006

Contributing to Storybook

  1. Create a story file in stories/components with the same filename as the component but append .stories.js to the filename
  2. Import the component into the story file, see the existing example
  3. Set the default arguments by looking at the requirements from the component itself
  4. Run npm run storybook to see the added components and visit http://localhost:6006 to interact with them in the browser

Alternatively, skip all the steps by using Gitpod Ready-to-Code

Tests

We use Playwright for writing automated end to end (e2e) tests.

  1. Install Playwright dependencies npx playwright install --with-deps
  2. Run tests npm run test
npm run test

> linkfree@1.0.0 test
> npx playwright test


Running 18 tests using 4 workers

  10 skipped
  8 passed (13s)

To open last HTML report run:

  npx playwright show-report

πŸ‘¨β€πŸ’» Contributing

  • Contributions make the open source community such an amazing place to learn, inspire, and create.
  • Any contributions you make are truly appreciated.
  • Check out our contribution guidelines for more information.

🎭 To Add Your Profile

In the data directory, create a .json file with the same name as your GitHub username. For example, if your GitHub username is eddiehub, create a file named eddiehub.json. This will ensure that your username is unique.

Optional fields: milestones and type(personal | community)
Looking for inspiration? You can view the following profiles for an example:

Your brand new file should look something similar to this one:

Note: add/remove links objects to customise your profile, milestones are optional

{
  "name": "YOUR NAME",
  "displayStatsPublic": true,
  "type": "personal",
  "bio": "Open Source Enthusiast!",
  "avatar": "https://github.com/YOUR_GITHUB_USERNAME.png",
  "tags": ["javascript", "typescript"],
  "socials": [
    { "platform": "twitter", "url": "https://twitter.com/YOUR_TWITTER_USERNAME" },
    { "platform": "github", "url": "https://github.com/YOUR_GITHUB_USERNAME" }
  ],
  "links": [
    {
      "name": "Follow me on GitHub",
      "url": "https://github.com/YOUR_GITHUB_USERNAME",
      "icon": "github"
    },
    {
      "name": "Follow me on Twitter",
      "url": "https://twitter.com/YOUR_TWITTER_USERNAME",
      "icon": "twitter"
    }
  ],
  "milestones": [
    {
      "title": "Started Freelancing",
      "date": "December 2021",
      "icon": "dollar",
      "color": "grey",
      "description": "Started freelancing",
      "url": "https://www.eddiejaoude.io/"
    }
  ]
}

Your URL will be https://linkfree.eddiehub.io/<yourusername>

For example: https://linkfree.eddiehub.io/eddiejaoude

To include your avatar, you have to replace <yourusername> with your GitHub username in the format of https://github.com/<yourusername>.png and it will automatically be fetched from your GitHub account.

For example: http://github.com/eddiejaoude.png

Note: After your PR gets merged, the project still needs to be deployed for your profile to be displayed.

Available Icons:

Check Icons.md for all the supported icons.

Single user mode

If you wish to self-host this app for a single user, follow the same steps as above, but then in the file config/user.json add your username.

For example

{
  "username": "eddiejaoude"
}

πŸ›‘οΈ License

LinkFree is licensed under the MIT License - see the LICENSE file for details.

πŸ’ͺ Thanks to all Contributors

Thanks a lot for spending your time helping LinkFree grow. Thanks a lot! Keep rocking 🍻

Contributors

πŸ™ Support

This project needs a ⭐️ from you. Don't forget to leave a star ⭐️

About

Open source alternative to LinkTree

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 98.6%
  • Other 1.4%